Browse Source

sync
Merge branch 'master' of 192.168.0.70:/opt/git/gd32f450/GD32F450_BMC_BaseCode

zhangbo 3 years ago
parent
commit
13a2a91024
4 changed files with 52 additions and 9 deletions
  1. BIN
      app/bmc/bmc_app
  2. 5 5
      app/bmc/main.c
  3. 47 1
      app/bmc/msghndlr/OemSMMCmds/OemSMMCmds.c
  4. 0 3
      app/bmc/msghndlr/PDKCmds.c

BIN
app/bmc/bmc_app


+ 5 - 5
app/bmc/main.c

@@ -105,11 +105,11 @@ void main(void)
 // 	}
 
 	//检查软件授权
-	if(CheckLicense() != 0)
-	{
-		system("killall -9 damon.sh");
-		exit(0);
-	}
+	// if(CheckLicense() != 0)
+	// {
+	// 	system("killall -9 damon.sh");
+	// 	exit(0);
+	// }
 
 	PlatformInit();
 	Init_IPMI_FRU_SDR_SEL();

+ 47 - 1
app/bmc/msghndlr/OemSMMCmds/OemSMMCmds.c

@@ -74,10 +74,54 @@ int SMMExample_3h( uint8_t* pReq, uint8_t ReqLen,  uint8_t* pRes)
 	return 	1;
 }
 
-
+//rename sensor
 int SMMExample_4h( uint8_t* pReq, uint8_t ReqLen,  uint8_t* pRes)
 {
 	*pRes= CC_NORMAL;
+
+	uint8_t SensorNum, i;
+	uint8_t rdbuf[MAX_ID_STR_LEN + 1] = {0};
+	SDRRecHdr_T*			pSDRRec;
+
+	//invalid cmd length
+	if(ReqLen <= 1){//havn't got sensor number or senser's new name in cmd
+		*pRes = CC_ILLEGAL_CMD_FOR_SENSOR_REC;
+		return 1;
+	}else if(ReqLen > MAX_ID_STR_LEN +1){//too long serser name
+		*pRes = CC_ILLEGAL_CMD_FOR_SENSOR_REC;
+		return 1;
+	}
+
+	//record cmd
+	for(i=0;i<ReqLen;i++){
+		rdbuf[i] = *pReq++;
+		// printf("rdbuf[%d] = %x\n", i, rdbuf[i]);
+	}
+
+	SensorNum = rdbuf[0];
+	if (getSensorDev(SensorNum) == NULL){//invalid sensornum
+		*pRes = CC_ILLEGAL_CMD_FOR_SENSOR_REC;
+		return 1;
+	}
+
+	pSDRRec	= (SDRRecHdr_T*) SR_FindSDR(SensorNum);
+
+	for(i=1;i<ReqLen;i++){
+		if((rdbuf[i] >= 0x20 && rdbuf[i] <= 0x7e) || (rdbuf[i] == 0x00)){
+			((FullSensorRec_T*)pSDRRec)->IDStr[i-1] = rdbuf[i];
+			// printf("revised ID[%d] = %02x\n", i, ((FullSensorRec_T*)pSDRRec)->IDStr[i-1]);
+		}else{//invalid sensor name(refer to ASCII)
+			*pRes = CC_ILLEGAL_CMD_FOR_SENSOR_REC;
+			return 1;
+		}
+	}
+
+	for(i=ReqLen-1;i<MAX_ID_STR_LEN;i++){//string end
+		((FullSensorRec_T*)pSDRRec)->IDStr[i] = 0;
+	}
+
+	FlushSDRToFlash();
+	
 	return 	1;
 }
 
@@ -86,6 +130,8 @@ int SMMExample_4h( uint8_t* pReq, uint8_t ReqLen,  uint8_t* pRes)
 int SMMExample_5h( uint8_t* pReq, uint8_t ReqLen,  uint8_t* pRes)
 {
 	*pRes= CC_NORMAL;
+	
+
 	return 	1;										
 }
 

+ 0 - 3
app/bmc/msghndlr/PDKCmds.c

@@ -201,8 +201,6 @@ const CmdHndlrMap_T	g_Oem_CmdHndlr [] =	//jimbo add
 	{ CMD_EXAMPLE_7dh,     PRIV_USER,       SMMExample_7dh,      0xff,     0xAAAA,	0xFFFF },
 	{ CMD_EXAMPLE_7eh,     PRIV_USER,       SMMExample_7eh,      0xff,     0xAAAA,	0xFFFF },
 	{ CMD_EXAMPLE_7fh,     PRIV_USER,       SMMExample_7fh,      0xff,     0xAAAA,	0xFFFF },
-    
-    /*************************** storlead oem command *********************************/
     { CMD_EXAMPLE_80h,     PRIV_USER,       SMMExample_80h,      0xff,     0xAAAA,	0xFFFF },
     { CMD_EXAMPLE_81h,     PRIV_USER,       SMMExample_81h,      0xff,     0xAAAA,	0xFFFF },
     { CMD_EXAMPLE_82h,     PRIV_USER,       SMMExample_82h,      0xff,     0xAAAA,	0xFFFF },
@@ -235,7 +233,6 @@ const CmdHndlrMap_T	g_Oem_CmdHndlr [] =	//jimbo add
 	{ CMD_EXAMPLE_9dh,     PRIV_USER,       SMMExample_9dh,      0xff,     0xAAAA,	0xFFFF },
 	{ CMD_EXAMPLE_9eh,     PRIV_USER,       SMMExample_9eh,      0xff,     0xAAAA,	0xFFFF },
 	{ CMD_EXAMPLE_9fh,     PRIV_USER,       SMMExample_9fh,      0xff,     0xAAAA,	0xFFFF },
-	/*************************** storlead oem command end *********************************/
 	{ CMD_EXAMPLE_a0h,     PRIV_USER,       SMMExample_a0h,      0xff,     0xAAAA,	0xFFFF },
 	{ CMD_EXAMPLE_a1h,     PRIV_USER,       SMMExample_a1h,      0xff,     0xAAAA,	0xFFFF },
     { CMD_EXAMPLE_a2h,     PRIV_USER,       SMMExample_a2h,      0xff,     0xAAAA,	0xFFFF },