mirror of
https://github.com/Telecominfraproject/OpenNetworkLinux.git
synced 2026-01-27 18:22:13 +00:00
Fix platform support for R0 vs R0B.
This commit is contained in:
@@ -36,6 +36,14 @@ definitions:
|
||||
defs: *cdefs
|
||||
basename: powerpc_accton_as5710_54x_config
|
||||
|
||||
enum:
|
||||
platform_id:
|
||||
members:
|
||||
- POWERPC_ACCTON_AS5710_54X_R0B:
|
||||
strname : "powerpc-accton-as5710-54x-r0b"
|
||||
- POWERPC_ACCTON_AS5710_54X_R0:
|
||||
strname : "powerpc-accton-as5710-54x-r0"
|
||||
|
||||
portingmacro:
|
||||
POWERPC_ACCTON_AS5710_54X:
|
||||
macros:
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define __PLATFORM_LIB_H__
|
||||
|
||||
#include "powerpc_accton_as5710_54x_log.h"
|
||||
#include "powerpc_accton_as5710_54x_int.h"
|
||||
|
||||
#define PSU1_ID 1
|
||||
#define PSU2_ID 2
|
||||
@@ -66,12 +67,6 @@ typedef enum psu_type {
|
||||
|
||||
psu_type_t get_psu_type(int id, char* modelname, int modelname_len);
|
||||
|
||||
typedef enum platform_id_e {
|
||||
PLATFORM_ID_UNKNOWN,
|
||||
PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0,
|
||||
PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_RX,
|
||||
} platform_id_t;
|
||||
|
||||
extern platform_id_t platform_id;
|
||||
|
||||
#endif /* __PLATFORM_LIB_H__ */
|
||||
|
||||
@@ -4,7 +4,61 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
#include <powerpc_accton_as5710_54x/powerpc_accton_as5710_54x_config.h>
|
||||
#include "powerpc_accton_as5710_54x_int.h"
|
||||
|
||||
/* <auto.start.enum(ALL).source> */
|
||||
aim_map_si_t platform_id_map[] =
|
||||
{
|
||||
{ "powerpc-accton-as5710-54x-r0b", PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0B },
|
||||
{ "powerpc-accton-as5710-54x-r0", PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0 },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
aim_map_si_t platform_id_desc_map[] =
|
||||
{
|
||||
{ "None", PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0B },
|
||||
{ "None", PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0 },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
const char*
|
||||
platform_id_name(platform_id_t e)
|
||||
{
|
||||
const char* name;
|
||||
if(aim_map_si_i(&name, e, platform_id_map, 0)) {
|
||||
return name;
|
||||
}
|
||||
else {
|
||||
return "-invalid value for enum type 'platform_id'";
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
platform_id_value(const char* str, platform_id_t* e, int substr)
|
||||
{
|
||||
int i;
|
||||
AIM_REFERENCE(substr);
|
||||
if(aim_map_si_s(&i, str, platform_id_map, 0)) {
|
||||
/* Enum Found */
|
||||
*e = i;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
const char*
|
||||
platform_id_desc(platform_id_t e)
|
||||
{
|
||||
const char* name;
|
||||
if(aim_map_si_i(&name, e, platform_id_desc_map, 0)) {
|
||||
return name;
|
||||
}
|
||||
else {
|
||||
return "-invalid value for enum type 'platform_id'";
|
||||
}
|
||||
}
|
||||
|
||||
/* <--auto.start.enum(ALL).source> */
|
||||
/* <auto.end.enum(ALL).source> */
|
||||
|
||||
|
||||
@@ -8,5 +8,39 @@
|
||||
|
||||
#include <powerpc_accton_as5710_54x/powerpc_accton_as5710_54x_config.h>
|
||||
|
||||
/* <auto.start.enum(ALL).header> */
|
||||
/** platform_id */
|
||||
typedef enum platform_id_e {
|
||||
PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0B,
|
||||
PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0,
|
||||
PLATFORM_ID_LAST = PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0,
|
||||
PLATFORM_ID_COUNT,
|
||||
PLATFORM_ID_INVALID = -1,
|
||||
} platform_id_t;
|
||||
|
||||
/** Strings macro. */
|
||||
#define PLATFORM_ID_STRINGS \
|
||||
{\
|
||||
"powerpc-accton-as5710-54x-r0b", \
|
||||
"powerpc-accton-as5710-54x-r0", \
|
||||
}
|
||||
/** Enum names. */
|
||||
const char* platform_id_name(platform_id_t e);
|
||||
|
||||
/** Enum values. */
|
||||
int platform_id_value(const char* str, platform_id_t* e, int substr);
|
||||
|
||||
/** Enum descriptions. */
|
||||
const char* platform_id_desc(platform_id_t e);
|
||||
|
||||
/** validator */
|
||||
#define PLATFORM_ID_VALID(_e) \
|
||||
( (0 <= (_e)) && ((_e) <= PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0))
|
||||
|
||||
/** platform_id_map table. */
|
||||
extern aim_map_si_t platform_id_map[];
|
||||
/** platform_id_desc_map table. */
|
||||
extern aim_map_si_t platform_id_desc_map[];
|
||||
/* <auto.end.enum(ALL).header> */
|
||||
|
||||
#endif /* __POWERPC_ACCTON_AS5710_54X_INT_H__ */
|
||||
|
||||
@@ -109,7 +109,7 @@ onlp_sfpi_port_map(int port, int* rport)
|
||||
* SFP port numbers here are 0-based.
|
||||
*/
|
||||
|
||||
if(platform_id == PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0) {
|
||||
if(platform_id == PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0B) {
|
||||
switch(port)
|
||||
{
|
||||
case 48:
|
||||
@@ -146,7 +146,7 @@ onlp_sfpi_port_map(int port, int* rport)
|
||||
static void
|
||||
port_qsfp_cpld_map__(int port, int* rport)
|
||||
{
|
||||
if(platform_id == PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_RX) {
|
||||
if(platform_id == PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0) {
|
||||
switch(port)
|
||||
{
|
||||
case 53:
|
||||
|
||||
@@ -34,12 +34,13 @@
|
||||
#include <fcntl.h>
|
||||
#include <onlplib/mmap.h>
|
||||
#include "platform_lib.h"
|
||||
#include "powerpc_accton_as5710_54x_int.h"
|
||||
|
||||
#define HW_INFO_PATH "/dev/mtd1"
|
||||
#define HW_INFO_LENGTH 2*65536
|
||||
uint8_t hw_info[HW_INFO_LENGTH]={0};
|
||||
|
||||
platform_id_t platform_id = PLATFORM_ID_UNKNOWN;
|
||||
platform_id_t platform_id = PLATFORM_ID_INVALID;
|
||||
|
||||
const char*
|
||||
onlp_sysi_platform_get(void)
|
||||
@@ -50,12 +51,8 @@ onlp_sysi_platform_get(void)
|
||||
int
|
||||
onlp_sysi_platform_set(const char* platform)
|
||||
{
|
||||
if(strstr(platform, "powerpc-accton-as5710-54x-r")) {
|
||||
platform_id = PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_RX;
|
||||
return ONLP_STATUS_OK;
|
||||
}
|
||||
if(strstr(platform, "powerpc-as5710-54x-r0b")) {
|
||||
platform_id = PLATFORM_ID_POWERPC_ACCTON_AS5710_54X_R0;
|
||||
if(platform_id_value(platform, &platform_id, 0) == 0) {
|
||||
/* Platform supported */
|
||||
return ONLP_STATUS_OK;
|
||||
}
|
||||
AIM_LOG_ERROR("No support for platform '%s'", platform);
|
||||
|
||||
Reference in New Issue
Block a user