From c3f15e7e1eef0b41d72362e271f03d3ea2753596 Mon Sep 17 00:00:00 2001 From: rayx_huang Date: Thu, 21 Aug 2025 13:55:35 +0800 Subject: [PATCH 1/3] Upgrade AS5835-54X to kernel 6.1 Upgrade kernel version from 4.14 to 6.1 The commit also includes a linux patch for ismt bus to solve I2C hang issue. Signed-off-by: rayx_huang --- ...r-i2c-bus-intel-ismt-add-delay-param.patch | 57 +++++++++++++++++++ .../base/any/kernels/6.1-lts/patches/series | 1 + .../accton/x86-64/as5835-54x/modules/PKG.yml | 2 +- .../x86-64/as5835-54x/modules/builds/Makefile | 4 +- .../as5835-54x/modules/builds/src/Makefile | 4 ++ .../{ => src}/x86-64-accton-as5835-54x-cpld.c | 4 +- .../{ => src}/x86-64-accton-as5835-54x-fan.c | 27 +++++++-- .../{ => src}/x86-64-accton-as5835-54x-leds.c | 0 .../{ => src}/x86-64-accton-as5835-54x-psu.c | 27 +++++++-- .../module/src/platform_lib.h | 3 +- .../module/src/sysi.c | 7 ++- .../src/lib/x86-64-accton-as5835-54x-r0.yml | 2 +- .../x86_64_accton_as5835_54x_r0/__init__.py | 12 +++- 13 files changed, 131 insertions(+), 19 deletions(-) create mode 100644 packages/base/any/kernels/6.1-lts/patches/driver-i2c-bus-intel-ismt-add-delay-param.patch create mode 100644 packages/base/any/kernels/6.1-lts/patches/series create mode 100644 packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/Makefile rename packages/platforms/accton/x86-64/as5835-54x/modules/builds/{ => src}/x86-64-accton-as5835-54x-cpld.c (99%) rename packages/platforms/accton/x86-64/as5835-54x/modules/builds/{ => src}/x86-64-accton-as5835-54x-fan.c (95%) rename packages/platforms/accton/x86-64/as5835-54x/modules/builds/{ => src}/x86-64-accton-as5835-54x-leds.c (100%) rename packages/platforms/accton/x86-64/as5835-54x/modules/builds/{ => src}/x86-64-accton-as5835-54x-psu.c (92%) diff --git a/packages/base/any/kernels/6.1-lts/patches/driver-i2c-bus-intel-ismt-add-delay-param.patch b/packages/base/any/kernels/6.1-lts/patches/driver-i2c-bus-intel-ismt-add-delay-param.patch new file mode 100644 index 000000000..8c19341df --- /dev/null +++ b/packages/base/any/kernels/6.1-lts/patches/driver-i2c-bus-intel-ismt-add-delay-param.patch @@ -0,0 +1,57 @@ +Add 'delay' module param to the driver. + +From: Cumulus Networks + +This is needed on S6000 for safe PMBUS access. +Without setting the 'delay', the ismt driver throws 'completion wait +timed out' error message. +--- + drivers/i2c/busses/i2c-ismt.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c +index a35a27c32..b89fbb60d 100644 +--- a/drivers/i2c/busses/i2c-ismt.c ++++ b/drivers/i2c/busses/i2c-ismt.c +@@ -66,6 +66,7 @@ + #include + #include + #include ++#include + + #include + +@@ -190,9 +191,12 @@ static const struct pci_device_id ismt_ids[] = { + MODULE_DEVICE_TABLE(pci, ismt_ids); + + /* Bus speed control bits for slow debuggers - refer to the docs for usage */ +-static unsigned int bus_speed; ++static unsigned int bus_speed = 100; ++static unsigned int delay = 1000; + module_param(bus_speed, uint, S_IRUGO); +-MODULE_PARM_DESC(bus_speed, "Bus Speed in kHz (0 = BIOS default)"); ++MODULE_PARM_DESC(bus_speed, "Bus Speed in kHz (1000 by default)"); ++module_param(delay, uint, S_IRUGO); ++MODULE_PARM_DESC(delay, "Delay in microsecs before access (1000 by default)"); + + /** + * __ismt_desc_dump() - dump the contents of a specific descriptor +@@ -400,6 +404,9 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr, + struct device *dev = &priv->pci_dev->dev; + u8 *dma_buffer = PTR_ALIGN(&priv->buffer[0], 16); + ++ if (delay > 0) ++ udelay(delay); ++ + desc = &priv->hw[priv->head]; + + /* Initialize the DMA buffer */ +@@ -759,7 +766,7 @@ static void ismt_hw_init(struct ismt_priv *priv) + bus_speed = 1000; + break; + } +- dev_dbg(dev, "SMBus clock is running at %d kHz\n", bus_speed); ++ dev_info(dev, "SMBus clock is running at %d kHz with delay %d us\n", bus_speed, delay); + } + + /** diff --git a/packages/base/any/kernels/6.1-lts/patches/series b/packages/base/any/kernels/6.1-lts/patches/series new file mode 100644 index 000000000..bc5e663c6 --- /dev/null +++ b/packages/base/any/kernels/6.1-lts/patches/series @@ -0,0 +1 @@ +driver-i2c-bus-intel-ismt-add-delay-param.patch diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/PKG.yml b/packages/platforms/accton/x86-64/as5835-54x/modules/PKG.yml index bd45c8ecc..91773f79b 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/modules/PKG.yml +++ b/packages/platforms/accton/x86-64/as5835-54x/modules/PKG.yml @@ -1 +1 @@ -!include $ONL_TEMPLATES/platform-modules.yml VENDOR=accton BASENAME=x86-64-accton-as5835-54x ARCH=amd64 KERNELS="onl-kernel-4.14-lts-x86-64-all:amd64" +!include $ONL_TEMPLATES/platform-modules.yml VENDOR=accton BASENAME=x86-64-accton-as5835-54x ARCH=amd64 KERNELS="onl-kernel-6.1-lts-x86-64-all:amd64" diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/Makefile b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/Makefile index 0b22a49fd..e4f304a9b 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/Makefile +++ b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/Makefile @@ -1,5 +1,5 @@ -KERNELS := onl-kernel-4.14-lts-x86-64-all:amd64 -KMODULES := $(wildcard *.c) +KERNELS := onl-kernel-6.1-lts-x86-64-all:amd64 +KMODULES := src VENDOR := accton BASENAME := x86-64-accton-as5835-54x ARCH := x86_64 diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/Makefile b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/Makefile new file mode 100644 index 000000000..ceca45449 --- /dev/null +++ b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/Makefile @@ -0,0 +1,4 @@ +obj-m += x86-64-accton-as5835-54x-cpld.o +obj-m += x86-64-accton-as5835-54x-fan.o +obj-m += x86-64-accton-as5835-54x-leds.o +obj-m += x86-64-accton-as5835-54x-psu.o diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-cpld.c b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-cpld.c similarity index 99% rename from packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-cpld.c rename to packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-cpld.c index b490e3a5b..c357f4b4b 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-cpld.c +++ b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-cpld.c @@ -1056,7 +1056,7 @@ static int as5835_54x_cpld_probe(struct i2c_client *client, return ret; } -static int as5835_54x_cpld_remove(struct i2c_client *client) +static void as5835_54x_cpld_remove(struct i2c_client *client) { struct as5835_54x_cpld_data *data = i2c_get_clientdata(client); const struct attribute_group *group = NULL; @@ -1083,8 +1083,6 @@ static int as5835_54x_cpld_remove(struct i2c_client *client) } kfree(data); - - return 0; } static int as5835_54x_cpld_read_internal(struct i2c_client *client, u8 reg) diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-fan.c b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-fan.c similarity index 95% rename from packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-fan.c rename to packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-fan.c index 892dd0e87..6170605e5 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-fan.c +++ b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-fan.c @@ -407,6 +407,27 @@ static ssize_t show_version(struct device *dev, struct device_attribute *attr, c return sprintf(buf, "%d\n", val); } +static umode_t as5835_54x_fan_is_visible(const void *drvdata, + enum hwmon_sensor_types type, + u32 attr, int channel) +{ + return 0; +} + +static const struct hwmon_channel_info *as5835_54x_fan_info[] = { + HWMON_CHANNEL_INFO(fan, HWMON_F_ENABLE), + NULL, +}; + +static const struct hwmon_ops as5835_54x_fan_hwmon_ops = { + .is_visible = as5835_54x_fan_is_visible, +}; + +static const struct hwmon_chip_info as5835_54x_fan_chip_info = { + .ops = &as5835_54x_fan_hwmon_ops, + .info = as5835_54x_fan_info, +}; + static int as5835_54x_fan_probe(struct i2c_client *client, const struct i2c_device_id *dev_id) { @@ -437,7 +458,7 @@ static int as5835_54x_fan_probe(struct i2c_client *client, } data->hwmon_dev = hwmon_device_register_with_info(&client->dev, "as5835_54x_fan", - NULL, NULL, NULL); + NULL, &as5835_54x_fan_chip_info, NULL); if (IS_ERR(data->hwmon_dev)) { status = PTR_ERR(data->hwmon_dev); goto exit_remove; @@ -456,13 +477,11 @@ static int as5835_54x_fan_probe(struct i2c_client *client, return status; } -static int as5835_54x_fan_remove(struct i2c_client *client) +static void as5835_54x_fan_remove(struct i2c_client *client) { struct as5835_54x_fan_data *data = i2c_get_clientdata(client); hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&client->dev.kobj, &as5835_54x_fan_group); - - return 0; } /* Addresses to scan */ diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-leds.c b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-leds.c similarity index 100% rename from packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-leds.c rename to packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-leds.c diff --git a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-psu.c b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-psu.c similarity index 92% rename from packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-psu.c rename to packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-psu.c index c2b6e7a89..1b302a23a 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/modules/builds/x86-64-accton-as5835-54x-psu.c +++ b/packages/platforms/accton/x86-64/as5835-54x/modules/builds/src/x86-64-accton-as5835-54x-psu.c @@ -150,6 +150,27 @@ static const struct attribute_group as5835_54x_psu_group = { .attrs = as5835_54x_psu_attributes, }; +static umode_t as5835_54x_psu_is_visible(const void *drvdata, + enum hwmon_sensor_types type, + u32 attr, int channel) +{ + return 0; +} + +static const struct hwmon_channel_info *as5835_54x_psu_info[] = { + HWMON_CHANNEL_INFO(power, HWMON_P_ENABLE), + NULL, +}; + +static const struct hwmon_ops as5835_54x_psu_hwmon_ops = { + .is_visible = as5835_54x_psu_is_visible, +}; + +static const struct hwmon_chip_info as5835_54x_psu_chip_info = { + .ops = &as5835_54x_psu_hwmon_ops, + .info = as5835_54x_psu_info, +}; + static int as5835_54x_psu_probe(struct i2c_client *client, const struct i2c_device_id *dev_id) { @@ -181,7 +202,7 @@ static int as5835_54x_psu_probe(struct i2c_client *client, } data->hwmon_dev = hwmon_device_register_with_info(&client->dev, "as5835_54x_psu", - NULL, NULL, NULL); + NULL, &as5835_54x_psu_chip_info, NULL); if (IS_ERR(data->hwmon_dev)) { status = PTR_ERR(data->hwmon_dev); goto exit_remove; @@ -201,15 +222,13 @@ static int as5835_54x_psu_probe(struct i2c_client *client, return status; } -static int as5835_54x_psu_remove(struct i2c_client *client) +static void as5835_54x_psu_remove(struct i2c_client *client) { struct as5835_54x_psu_data *data = i2c_get_clientdata(client); hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&client->dev.kobj, &as5835_54x_psu_group); kfree(data); - - return 0; } enum psu_index diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h index d49ff7df3..8157e7262 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h @@ -49,7 +49,8 @@ #define FAN_BOARD_PATH "/sys/bus/i2c/devices/3-0063/" #define FAN_NODE(node) FAN_BOARD_PATH#node -#define IDPROM_PATH "/sys/class/i2c-adapter/i2c-1/1-0057/eeprom" +#define IDPROM_PATH_1 "/sys/bus/i2c/devices/0-0057/eeprom" +#define IDPROM_PATH_2 "/sys/bus/i2c/devices/1-0057/eeprom" int psu_ym1401_pmbus_info_get(int id, char *node, int *value); int psu_ym1401_pmbus_info_set(int id, char *node, int value); diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c index 3298a8176..ce7eb4627 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/sysi.c @@ -58,7 +58,12 @@ int onlp_sysi_onie_data_get(uint8_t** data, int* size) { uint8_t* rdata = aim_zmalloc(256); - if(onlp_file_read(rdata, 256, size, IDPROM_PATH) == ONLP_STATUS_OK) { + if (onlp_file_read(rdata, 256, size, IDPROM_PATH_1) == ONLP_STATUS_OK) { + if(*size == 256) { + *data = rdata; + return ONLP_STATUS_OK; + } + } else if (onlp_file_read(rdata, 256, size, IDPROM_PATH_2) == ONLP_STATUS_OK) { if(*size == 256) { *data = rdata; return ONLP_STATUS_OK; diff --git a/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/lib/x86-64-accton-as5835-54x-r0.yml b/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/lib/x86-64-accton-as5835-54x-r0.yml index 6229561f8..08012caaf 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/lib/x86-64-accton-as5835-54x-r0.yml +++ b/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/lib/x86-64-accton-as5835-54x-r0.yml @@ -18,7 +18,7 @@ x86-64-accton-as5835-54x-r0: --stop=1 kernel: - <<: *kernel-4-14 + <<: *kernel-6-1 args: >- nopat diff --git a/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/python/x86_64_accton_as5835_54x_r0/__init__.py b/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/python/x86_64_accton_as5835_54x_r0/__init__.py index 7b4a4a2bb..95610d244 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/python/x86_64_accton_as5835_54x_r0/__init__.py +++ b/packages/platforms/accton/x86-64/as5835-54x/platform-config/r0/src/python/x86_64_accton_as5835_54x_r0/__init__.py @@ -1,6 +1,12 @@ from onl.platform.base import * from onl.platform.accton import * +def get_i2c_bus_num_offset(): + cmd = 'cat /sys/bus/i2c/devices/i2c-0/name' + process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = process.communicate() + return -1 if b'iSMT' in stdout else 0 # the iSMT adapter may get i2c bus 0, hence the offset -1 + class OnlPlatform_x86_64_accton_as5835_54x_r0(OnlPlatformAccton, OnlPlatformPortConfig_48x10_6x40): PLATFORM='x86-64-accton-as5835-54x-r0' @@ -13,11 +19,13 @@ def baseconfig(self): for m in [ 'cpld', 'fan', 'psu', 'leds' ]: self.insmod("x86-64-accton-as5835-54x-%s" % m) + bus_offset = get_i2c_bus_num_offset() + ########### initialize I2C bus 0 ########### self.new_i2c_devices( [ # initialize multiplexer (PCA9548) - ('pca9548', 0x77, 1), + ('pca9548', 0x77, 1 + bus_offset), ('pca9548', 0x70, 2), ('pca9548', 0x71, 2), ('pca9548', 0x72, 2), @@ -52,7 +60,7 @@ def baseconfig(self): ('pca9548', 0x76, 39), # initiate IDPROM - ('24c02', 0x57, 1), + ('24c02', 0x57, 1 + bus_offset), ] ) From cd3968f28d192891dfa12530f46c1d3fdedccf8b Mon Sep 17 00:00:00 2001 From: Aken Liu Date: Wed, 5 Feb 2025 14:16:04 +0800 Subject: [PATCH 2/3] support new DC PSU New PSU: YM-2401HCR,YM-2401HDR Signed-off-by: Aken Liu --- .../x86_64_accton_as5835_54x/module/src/fani.c | 2 +- .../module/src/platform_lib.c | 8 +++++++- .../module/src/platform_lib.h | 6 +++++- .../x86_64_accton_as5835_54x/module/src/psui.c | 14 ++++++++------ 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/fani.c b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/fani.c index 6ad54e74c..72fb1e456 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/fani.c +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/fani.c @@ -167,7 +167,7 @@ _onlp_get_fan_direction_on_psu(void) continue; } - if (PSU_TYPE_AC_F2B == psu_type) { + if (PSU_TYPE_AC_F2B == psu_type || PSU_TYPE_DC_F2B == psu_type) { return ONLP_FAN_STATUS_F2B; } else { diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.c b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.c index 5c70da047..a654c80aa 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.c +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.c @@ -101,6 +101,12 @@ psu_type_t get_psu_type(int id, char* modelname, int modelname_len) AIM_FREE_IF_PTR(fd); } + else if (strncmp(mn, "YM-2401HCR", 10) == 0) { + ptype = PSU_TYPE_DC_F2B; + } + else if (strncmp(mn, "YM-2401HDR", 10) == 0) { + ptype = PSU_TYPE_DC_B2F; + } else if (strncmp(mn, "DPS400AB33A", PSU_MODEL_NAME_LEN) == 0) { ptype = PSU_TYPE_AC_F2B; } @@ -152,4 +158,4 @@ int psu_ym1401_pmbus_info_set(int id, char *node, int value) } return ONLP_STATUS_OK; -} \ No newline at end of file +} diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h index 8157e7262..9464a288e 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/platform_lib.h @@ -70,12 +70,16 @@ enum onlp_thermal_id typedef enum psu_type { PSU_TYPE_UNKNOWN, PSU_TYPE_AC_F2B, - PSU_TYPE_AC_B2F + PSU_TYPE_AC_B2F, + PSU_TYPE_DC_F2B, + PSU_TYPE_DC_B2F } psu_type_t; psu_type_t get_psu_type(int id, char* modelname, int modelname_len); int get_psu_serial_number(int id, char *serial, int serial_len); +#define IS_DC_INPUT(psu_type) (PSU_TYPE_DC_F2B == psu_type || PSU_TYPE_DC_B2F == psu_type) + #define DEBUG_MODE 0 #if (DEBUG_MODE == 1) diff --git a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/psui.c b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/psui.c index 302606a61..be0b8f770 100644 --- a/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/psui.c +++ b/packages/platforms/accton/x86-64/as5835-54x/onlp/builds/x86_64_accton_as5835_54x/module/src/psui.c @@ -68,18 +68,18 @@ onlp_psui_init(void) } static int -psu_ym1401_info_get(onlp_psu_info_t* info) +psu_ym1401_info_get(onlp_psu_info_t* info, bool is_dc_input) { int val = 0; int index = ONLP_OID_ID_GET(info->hdr.id); /* Set capability */ - info->caps = ONLP_PSU_CAPS_AC; + info->caps = (is_dc_input)? ONLP_PSU_CAPS_DC48 : ONLP_PSU_CAPS_AC; - if (info->status & ONLP_PSU_STATUS_FAILED) { - return ONLP_STATUS_OK; - } + if (info->status & ONLP_PSU_STATUS_FAILED) { + return ONLP_STATUS_OK; + } /* Set the associated oid_table */ info->hdr.coids[0] = ONLP_FAN_ID_CREATE(index + CHASSIS_FAN_COUNT); @@ -162,7 +162,9 @@ onlp_psui_info_get(onlp_oid_t id, onlp_psu_info_t* info) switch (psu_type) { case PSU_TYPE_AC_F2B: case PSU_TYPE_AC_B2F: - ret = psu_ym1401_info_get(info); + case PSU_TYPE_DC_F2B: + case PSU_TYPE_DC_B2F: + ret = psu_ym1401_info_get(info, IS_DC_INPUT(psu_type)); break; case PSU_TYPE_UNKNOWN: /* User insert a unknown PSU or unplugged.*/ info->status |= ONLP_PSU_STATUS_UNPLUGGED; From 377782e2fc91e5a6d740cb54d396867f20610df8 Mon Sep 17 00:00:00 2001 From: rayx_huang Date: Tue, 5 Aug 2025 09:44:06 +0800 Subject: [PATCH 3/3] Fix build errors Replace apt.opennetlinux.org with archive.debian.org Signed-off-by: rayx_huang --- builds/any/rootfs/buster/standard/standard.yml | 12 ++++++------ builds/any/rootfs/jessie/standard/standard.yml | 10 ++++++---- .../rootfs/stretch/common/amd64-base-packages.yml | 1 - builds/any/rootfs/stretch/standard/standard.yml | 12 ++++++------ 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/builds/any/rootfs/buster/standard/standard.yml b/builds/any/rootfs/buster/standard/standard.yml index 35637d527..46fa5fbc1 100644 --- a/builds/any/rootfs/buster/standard/standard.yml +++ b/builds/any/rootfs/buster/standard/standard.yml @@ -43,17 +43,17 @@ Multistrap: ONL: packages: *Packages - source: http://apt.opennetlinux.org/debian - suite: unstable + source: http://archive.debian.org/debian/ + suite: ${ONL_DEBIAN_SUITE} + keyring: debian-archive-keyring omitdebsrc: true - arches: amd64, arm64, armel ONL-Local: packages: *Packages - source: http://${APT_CACHE}apt.opennetlinux.org/debian - suite: unstable + source: http://${APT_CACHE}archive.debian.org/debian/ + suite: ${ONL_DEBIAN_SUITE} + keyring: debian-archive-keyring omitdebsrc: true - arches: amd64, arm64, armel Local-All: source: ${ONLPM_OPTION_REPO}/${ONL_DEBIAN_SUITE}/packages/binary-all diff --git a/builds/any/rootfs/jessie/standard/standard.yml b/builds/any/rootfs/jessie/standard/standard.yml index beb19b53c..cfee9eeb9 100644 --- a/builds/any/rootfs/jessie/standard/standard.yml +++ b/builds/any/rootfs/jessie/standard/standard.yml @@ -43,14 +43,16 @@ Multistrap: ONL: packages: *Packages - source: http://apt.opennetlinux.org/debian - suite: unstable + source: http://archive.debian.org/debian/ + suite: ${ONL_DEBIAN_SUITE} + keyring: debian-archive-keyring omitdebsrc: true ONL-Local: packages: *Packages - source: http://${APT_CACHE}apt.opennetlinux.org/debian - suite: unstable + source: http://${APT_CACHE}archive.debian.org/debian/ + suite: ${ONL_DEBIAN_SUITE} + keyring: debian-archive-keyring omitdebsrc: true Local-All: diff --git a/builds/any/rootfs/stretch/common/amd64-base-packages.yml b/builds/any/rootfs/stretch/common/amd64-base-packages.yml index 873d091cf..81be9ada2 100644 --- a/builds/any/rootfs/stretch/common/amd64-base-packages.yml +++ b/builds/any/rootfs/stretch/common/amd64-base-packages.yml @@ -8,7 +8,6 @@ - smartmontools - grub2 - onl-upgrade -- hw-management - onl-kernel-4.9-lts-x86-64-all-modules - onl-kernel-4.14-lts-x86-64-all-modules - onl-kernel-4.19-lts-x86-64-all-modules diff --git a/builds/any/rootfs/stretch/standard/standard.yml b/builds/any/rootfs/stretch/standard/standard.yml index aeedec790..c838529ee 100644 --- a/builds/any/rootfs/stretch/standard/standard.yml +++ b/builds/any/rootfs/stretch/standard/standard.yml @@ -43,17 +43,17 @@ Multistrap: ONL: packages: *Packages - source: http://apt.opennetlinux.org/debian - suite: unstable + source: http://archive.debian.org/debian/ + suite: ${ONL_DEBIAN_SUITE} + keyring: debian-archive-keyring omitdebsrc: true - arches: amd64, arm64, armel ONL-Local: packages: *Packages - source: http://${APT_CACHE}apt.opennetlinux.org/debian - suite: unstable + source: http://${APT_CACHE}archive.debian.org/debian/ + suite: ${ONL_DEBIAN_SUITE} + keyring: debian-archive-keyring omitdebsrc: true - arches: amd64, arm64, armel Local-All: source: ${ONLPM_OPTION_REPO}/${ONL_DEBIAN_SUITE}/packages/binary-all