From 794ed04761fc6fce5cd975f84436e479b477ab52 Mon Sep 17 00:00:00 2001 From: Cleanroom Laptop L15 Date: Thu, 28 Apr 2022 18:30:40 +0200 Subject: [PATCH] prevent sending boot command when mpsoc booted via jtag --- linux/devices/ploc/PlocMPSoCHandler.cpp | 15 +++++++++++++++ linux/devices/ploc/PlocSupervisorHandler.cpp | 2 +- linux/fsfwconfig/OBSWConfig.h.in | 9 +++++---- tmtc | 2 +- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/linux/devices/ploc/PlocMPSoCHandler.cpp b/linux/devices/ploc/PlocMPSoCHandler.cpp index 52fd5812..9ca90bcc 100644 --- a/linux/devices/ploc/PlocMPSoCHandler.cpp +++ b/linux/devices/ploc/PlocMPSoCHandler.cpp @@ -134,6 +134,7 @@ ReturnValue_t PlocMPSoCHandler::executeAction(ActionId_t actionId, MessageQueueI void PlocMPSoCHandler::doStartUp() { #ifdef XIPHOS_Q7S +#if not OBSW_MPSOC_JTAG_BOOT == 1 switch (powerState) { case PowerState::OFF: commandActionHelper.commandAction(supervisorHandler, supv::START_MPSOC); @@ -147,11 +148,19 @@ void PlocMPSoCHandler::doStartUp() { break; } #else + powerState = PowerState::ON; + setMode(_MODE_TO_ON); + uartIsolatorSwitch.pullHigh(); +#endif/* not MSPOC_JTAG_BOOT == 1 */ +#else + powerState = PowerState::ON; setMode(_MODE_TO_ON); #endif /* XIPHOS_Q7S */ } void PlocMPSoCHandler::doShutDown() { +#ifdef XIPHOS_Q7S +#if not OBSW_MPSOC_JTAG_BOOT == 1 switch (powerState) { case PowerState::ON: uartIsolatorSwitch.pullLow(); @@ -164,6 +173,12 @@ void PlocMPSoCHandler::doShutDown() { default: break; } +#else + uartIsolatorSwitch.pullLow(); + setMode(_MODE_POWER_DOWN); + powerState = PowerState::OFF; +#endif +#endif } ReturnValue_t PlocMPSoCHandler::buildNormalDeviceCommand(DeviceCommandId_t* id) { diff --git a/linux/devices/ploc/PlocSupervisorHandler.cpp b/linux/devices/ploc/PlocSupervisorHandler.cpp index d131b63b..c6ef59e8 100644 --- a/linux/devices/ploc/PlocSupervisorHandler.cpp +++ b/linux/devices/ploc/PlocSupervisorHandler.cpp @@ -995,7 +995,7 @@ ReturnValue_t PlocSupervisorHandler::handleBootStatusReport(const uint8_t* data) nextReplyId = supv::EXE_REPORT; #if OBSW_VERBOSE_LEVEL >= 1 && OBSW_DEBUG_PLOC_SUPERVISOR == 1 - sif::info << "PlocSupervisorHandler::handleBootStatusReport: SoC State: " + sif::info << "PlocSupervisorHandler::handleBootStatusReport: SoC State (0 - off, 1 - booting, 3 - operating): " << static_cast(bootStatusReport.socState.value) << std::endl; sif::info << "PlocSupervisorHandler::handleBootStatusReport: Power Cycles: " << static_cast(bootStatusReport.powerCycles.value) << std::endl; diff --git a/linux/fsfwconfig/OBSWConfig.h.in b/linux/fsfwconfig/OBSWConfig.h.in index 23980eac..a0ef1ac6 100644 --- a/linux/fsfwconfig/OBSWConfig.h.in +++ b/linux/fsfwconfig/OBSWConfig.h.in @@ -41,8 +41,8 @@ debugging. */ #define OBSW_ADD_MGT 1 #define OBSW_ADD_BPX_BATTERY_HANDLER 1 #define OBSW_ADD_STAR_TRACKER @OBSW_ADD_STAR_TRACKER@ -#define OBSW_ADD_PLOC_SUPERVISOR 0 -#define OBSW_ADD_PLOC_MPSOC 0 +#define OBSW_ADD_PLOC_SUPERVISOR 1 +#define OBSW_ADD_PLOC_MPSOC 1 #define OBSW_ADD_SUN_SENSORS 1 #define OBSW_ADD_SUS_BOARD_ASS 1 #define OBSW_ADD_ACS_BOARD 1 @@ -55,6 +55,7 @@ debugging. */ #define OBSW_ADD_SYRLINKS 0 #define OBSW_ENABLE_SYRLINKS_TRANSMIT_TIMEOUT 0 #define OBSW_STAR_TRACKER_GROUND_CONFIG 1 +#define OBSW_MPSOC_JTAG_BOOT 0 #endif // XIPHOS_Q7S @@ -152,8 +153,8 @@ debugging. */ #define OBSW_DEBUG_PLOC_SUPERVISOR 1 #define OBSW_DEBUG_PLOC_MPSOC 1 #else -#define OBSW_DEBUG_PLOC_SUPERVISOR 0 -#define OBSW_DEBUG_PLOC_MPSOC 0 +#define OBSW_DEBUG_PLOC_SUPERVISOR 1 +#define OBSW_DEBUG_PLOC_MPSOC 1 #endif #ifdef EGSE diff --git a/tmtc b/tmtc index 4ce67f5b..a457b001 160000 --- a/tmtc +++ b/tmtc @@ -1 +1 @@ -Subproject commit 4ce67f5be4fbde0cfe20aad114923d834ff3394d +Subproject commit a457b001a33a2a561250544b3e9950885e1dac2e