adapted to new system monitor api

This commit is contained in:
Gatsby Van
2024-02-01 14:56:28 +08:00
parent b7a337f821
commit 1a413e4d06
2 changed files with 15 additions and 22 deletions
+11 -20
View File
@@ -229,6 +229,7 @@ int32_t SystemBus_Init(SYSBUS **instPtr, SYSBUS_CONFIG *config)
(*instPtr)->txQueue = NULL; (*instPtr)->txQueue = NULL;
(*instPtr)->uartInst = NULL; (*instPtr)->uartInst = NULL;
memcpy(&((*instPtr)->config), config, sizeof(SYSBUS_CONFIG)); memcpy(&((*instPtr)->config), config, sizeof(SYSBUS_CONFIG));
memset(&((*instPtr)->sysLog), 0x00, sizeof(SYSLOG));
uartConfig.baseAddr = config->baseAddr; uartConfig.baseAddr = config->baseAddr;
Status = SysbusUart_Init(&((*instPtr)->uartInst), &uartConfig); Status = SysbusUart_Init(&((*instPtr)->uartInst), &uartConfig);
if (Status != SUCCESS) if (Status != SUCCESS)
@@ -289,7 +290,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
{ {
case CMD_SELF_TEST: case CMD_SELF_TEST:
{ {
const HWSTATE *hwStatsPtr; HWSTATE *hwStatsPtr = &(instPtr->sysLog.hwState);
sysbusRsp = malloc(sizeof(SYSBUS_UART_FRAME)); sysbusRsp = malloc(sizeof(SYSBUS_UART_FRAME));
if (sysbusRsp == NULL) { if (sysbusRsp == NULL) {
DBG_ERROR("Failed to allocate memory for SELF TEST Response!\n"); DBG_ERROR("Failed to allocate memory for SELF TEST Response!\n");
@@ -300,7 +301,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
memset(sysbusRsp->data, 0x00, ST_RSP_LEN); memset(sysbusRsp->data, 0x00, ST_RSP_LEN);
sysbusRsp->data[WD_CMD] = CMD_SELF_TEST; sysbusRsp->data[WD_CMD] = CMD_SELF_TEST;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
hwStatsPtr = Phy_RefreshHwSate(linkInstPtr->config.phyInstPtr); SysMonitor_GetHardwareStatus(hwStatsPtr);
if (linkInstPtr->isEnable == false) if (linkInstPtr->isEnable == false)
{ {
sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk) ? ST_RET_OK : ST_RET_ERROR; sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk) ? ST_RET_OK : ST_RET_ERROR;
@@ -309,19 +310,8 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
{ {
sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk && hwStatsPtr->isAntOk) ? ST_RET_OK : ST_RET_ERROR; sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk && hwStatsPtr->isAntOk) ? ST_RET_OK : ST_RET_ERROR;
} }
sysbusRsp->data[WD_SP_PS_VOLT] = hwStatsPtr->spPsVolt; // apply status and omit 2 bytes of overhead.
sysbusRsp->data[WD_SP_PSAUX_VOLT] = hwStatsPtr->spPsAuxVolt; memcpy(sysbusRsp->data + WD_SP_PS_VOLT, &(hwStatsPtr->spPlAuxVolt), ST_RET_INFO_LEN);
sysbusRsp->data[WD_SP_DDR_VOLT] = hwStatsPtr->spDdrVolt;
sysbusRsp->data[WD_SP_PL_VOLT] = hwStatsPtr->spPlVolt;
sysbusRsp->data[WD_SP_PLAUX_VOLT] = hwStatsPtr->spPlAuxVolt;
sysbusRsp->data[WD_SP_BRAM_VOLT] = hwStatsPtr->spBramVolt;
sysbusRsp->data[WD_SP_TEMP] = hwStatsPtr->spTemp;
sysbusRsp->data[WD_ANT_VOLT] = hwStatsPtr->antVolt;
sysbusRsp->data[WD_ANT_RF_TEMP] = hwStatsPtr->antTemp;
sysbusRsp->data[WD_ANT_RF_PLL] = hwStatsPtr->antPll;
sysbusRsp->data[WD_ANT_MGC_0] = hwStatsPtr->antMgc0;
sysbusRsp->data[WD_ANT_MGC_1] = hwStatsPtr->antMgc1;
sysbusRsp->data[WD_ST_DUMMY] = 0; // dummy byte should always be 0
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false) if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
{ {
@@ -446,19 +436,19 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
} }
case CMD_SYS_INFO: case CMD_SYS_INFO:
{ {
SysMonitor_UpdateSysinfoRaw(data + SYS_INFO_OFFSET); SysMonitor_UpdateSysinfo((SYSINFO *)(data + SYS_INFO_OFFSET));
Status = SUCCESS; Status = SUCCESS;
break; break;
} }
// TODO // TODO
case CMD_FLJ_SEND: case CMD_FLJ_SEND:
{ {
SysMonitor_UpdateSendPayloadRaw(data + FLJ_DATA_OFFSET, PAYLOAD_LEN_FLJ_TX); // omit control info SysMonitor_UpdateSendPayload(data + FLJ_DATA_OFFSET, PAYLOAD_LEN_FLJ_TX); // omit control info
break; break;
} }
case CMD_LJ_SEND: case CMD_LJ_SEND:
{ {
SysMonitor_UpdateSendPayloadRaw(data + LJ_DATA_OFFSET, PAYLOAD_LEN_LJ_TX); // omit control info SysMonitor_UpdateSendPayload(data + LJ_DATA_OFFSET, PAYLOAD_LEN_LJ_TX); // omit control info
break; break;
} }
case CMD_FLJ_POLL: case CMD_FLJ_POLL:
@@ -479,7 +469,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
sysbusRsp->data[WD_CMD] = CMD_FLJ_POLL; sysbusRsp->data[WD_CMD] = CMD_FLJ_POLL;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
uint32_t dataId; uint32_t dataId;
SysMonitor_GetRecvPayloadRaw(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId, PAYLOAD_LEN_FLJ_RX); // omit control info SysMonitor_GetRecvPayload(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId, PAYLOAD_LEN_FLJ_RX); // omit control info
if (dataId == DATA_ID_NONE) if (dataId == DATA_ID_NONE)
{ {
free(sysbusRsp); free(sysbusRsp);
@@ -515,7 +505,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
sysbusRsp->data[WD_CMD] = CMD_LJ_POLL; sysbusRsp->data[WD_CMD] = CMD_LJ_POLL;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
uint32_t dataId; uint32_t dataId;
SysMonitor_GetRecvPayloadRaw(sysbusRsp->data + LJ_DATA_OFFSET, &dataId, PAYLOAD_LEN_LJ_RX); // omit control info SysMonitor_GetRecvPayload(sysbusRsp->data + LJ_DATA_OFFSET, &dataId, PAYLOAD_LEN_LJ_RX); // omit control info
if (dataId == DATA_ID_NONE) if (dataId == DATA_ID_NONE)
{ {
free(sysbusRsp); free(sysbusRsp);
@@ -535,6 +525,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
} }
case CMD_FLJ_RM_TEST: case CMD_FLJ_RM_TEST:
{ {
SYSLOG *sysLogPtr = &(instPtr->sysLog);
if (data[WD_FLJ_RM_TEST] != FLJ_RM_TEST_CODE) if (data[WD_FLJ_RM_TEST] != FLJ_RM_TEST_CODE)
{ {
DBG_WARNING("SystemBus::Invalid remote test code!\n"); DBG_WARNING("SystemBus::Invalid remote test code!\n");
+4 -2
View File
@@ -17,10 +17,11 @@
#define __SYSTEMBUS_H_ #define __SYSTEMBUS_H_
/***************************** Include Files *********************************/ /***************************** Include Files *********************************/
#include "systembus_uart.h" // SystemBus UART driver
#include "circ_queue.h"
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "systembus_uart.h" // SystemBus UART driver
#include "circ_queue.h"
#include "../system_monitor.h"
/************************** Constant Definitions *****************************/ /************************** Constant Definitions *****************************/
/************************** Data Type Definitions ****************************/ /************************** Data Type Definitions ****************************/
@@ -35,6 +36,7 @@ typedef struct
typedef struct typedef struct
{ {
SYSBUS_CONFIG config; SYSBUS_CONFIG config;
SYSLOG sysLog;
SYSBUS_UART *uartInst; SYSBUS_UART *uartInst;
CIRC_QUEUE *txQueue; CIRC_QUEUE *txQueue;
CIRC_QUEUE *rxQueue; CIRC_QUEUE *rxQueue;