main.c 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. /*
  2. * bmc_app application main code.
  3. */
  4. #include <stdio.h>
  5. #include <stdint.h>
  6. #include <sys/prctl.h>
  7. #include <semaphore.h>
  8. #include <pthread.h>
  9. #include "com_BmcType.h"
  10. #include "com_IPMIDefs.h"
  11. #include "com_Message.h"
  12. #include "BmcType.h"
  13. #include "main.h"
  14. #include "Session.h"
  15. #include "LANIfc.h"
  16. #include "UDSIfc.h"
  17. #include "IPMBIfc.h"
  18. #include "MsgHndlrTask.h"
  19. #include "ChassisTimerTask.h"
  20. #include "TimerTask.h"
  21. #include "CM_LIB.h"
  22. #include "stm32f429xx.h"
  23. #include "com_gpio.h"
  24. /* gloabl varible */
  25. BMCInfo_t g_BMCInfo;
  26. pthread_t gThreadIDs[256];
  27. uint8_t gThreadIndex = 0;
  28. void main(void)
  29. {
  30. // printf("---> log1\n");
  31. // if(0 != cm_Auth_Encrp_Init(1, 1, TRUE))
  32. // {
  33. // printf("Initialize AT88SC0104C failed!\n");
  34. // sleep(1);
  35. // return;
  36. // }
  37. // printf("---> log2\n");
  38. // if(0 != cm_Auth_Encrp_Personal(1, 1))
  39. // {
  40. // printf("Personal AT88SC0104C failed!\n");
  41. // sleep(1);
  42. // return ;
  43. // }
  44. // printf("---> log3\n");
  45. // if(0 != test_cryptomem())
  46. // {
  47. // while(1)
  48. // {
  49. // printf("Illegal Board!\n");
  50. // sleep(3);
  51. // }
  52. // }
  53. PlatformInit();
  54. Init_IPMI_FRU_SDR_SEL();
  55. InitSdrConfig();
  56. InitSelConfig();
  57. Init_SessionTbl();
  58. InitTimerTaskTbl();
  59. Init_UserInfoTbl();
  60. printf("\tChassisID %#02x, SlotID %#02x\r\n", g_BMCInfo.ChassisID, g_BMCInfo.SlotID);
  61. if(g_BMCInfo.IpmiConfig.PrimaryIPMBSupport)
  62. {
  63. printf("\tPrimaryIPMBBus: %d, channel %d, Addr %#02x\n", g_BMCInfo.IpmiConfig.PrimaryIPMBBus,
  64. PRIMARY_IPMB_CHANNEL, g_BMCInfo.IpmiConfig.PrimaryIPMBAddr);
  65. }
  66. if(g_BMCInfo.IpmiConfig.SecondaryIPMBSupport)
  67. {
  68. printf("\tSecondaryIPMBBus %d, Channel %d, Addr %#02x\n", g_BMCInfo.IpmiConfig.SecondaryIPMBBus,
  69. SECONDARY_IPMB_CHANNEL, g_BMCInfo.IpmiConfig.SecondaryIPMBAddr);
  70. }
  71. /* Create TimerTask */
  72. gThreadIndex = 0;
  73. if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,TimerTask,NULL))
  74. {
  75. printf("%s: Create TimerTask thread failed!\n", __FUNCTION__);
  76. }
  77. /* Create MsgHndlr Task */
  78. gThreadIndex++;
  79. if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,MsgHndlrTask,NULL))
  80. {
  81. printf("%s: Create MsgHndlrTask thread failed!\n", __FUNCTION__);
  82. }
  83. /* Create ChassisTimerTask */
  84. gThreadIndex++;
  85. if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,ChassisTimerTask,NULL))
  86. {
  87. printf("%s: Create ChassisTimerTask thread failed!\n", __FUNCTION__);
  88. }
  89. /* Create SensorMonitorTask */
  90. gThreadIndex++;
  91. if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,SensorMonitorTask,NULL))
  92. {
  93. printf("%s: Create SensorMonitorTask thread failed!\n", __FUNCTION__);
  94. }
  95. /* Create UDS interface */
  96. gThreadIndex++;
  97. if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,UDSIfcTask,NULL))
  98. {
  99. printf("%s: Create UDSIfcTask thread failed!\n", __FUNCTION__);
  100. }
  101. /* Create LAN interface */
  102. gThreadIndex++;
  103. if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,LANIfcTask,NULL))
  104. {
  105. printf("%s: Create LANIfcTask thread failed!\n", __FUNCTION__);
  106. }
  107. // /* Create IPMB interface */
  108. // uint8_t primaryIpmbSelect = 0; //primary
  109. // gThreadIndex++;
  110. // if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,IPMBIfcTask,&primaryIpmbSelect))
  111. // {
  112. // printf("%s: Create LANIfcTask thread failed!\n", __FUNCTION__);
  113. // }
  114. // uint8_t secondaryIpmbSelect = 1; //secondary
  115. // gThreadIndex++;
  116. // if(0 != pthread_create(&gThreadIDs[gThreadIndex],NULL,IPMBIfcTask,&secondaryIpmbSelect))
  117. // {
  118. // printf("%s: Create LANIfcTask thread failed!\n", __FUNCTION__);
  119. // }
  120. /* Create Update FPGA thread */
  121. /* Create UDS interface */
  122. /* Create UDS interface */
  123. /* Create UDS interface */
  124. while(1)
  125. {
  126. sleep(100);
  127. //printf("Hello...\n");
  128. }
  129. }