improve MPSoC boot and shutdown process

This commit is contained in:
2023-09-25 16:36:35 +02:00
parent 35fd2c72d8
commit 0d0a98220a
4 changed files with 120 additions and 72 deletions

@ -19,6 +19,8 @@
using namespace supv;
using namespace returnvalue;
std::atomic_bool supv::SUPV_ON = false;
PlocSupervisorHandler::PlocSupervisorHandler(object_id_t objectId, CookieIF* comCookie,
Gpio uartIsolatorSwitch, power::Switch_t powerSwitch,
PlocSupvUartManager& supvHelper)
@ -156,6 +158,7 @@ void PlocSupervisorHandler::doStartUp() {
}
if (startupState == StartupState::ON) {
hkset.setReportingEnabled(true);
supv::SUPV_ON = true;
setMode(_MODE_TO_ON);
}
}
@ -169,6 +172,7 @@ void PlocSupervisorHandler::doShutDown() {
nextReplyId = supv::NONE;
uartManager.stop();
uartIsolatorSwitch.pullLow();
supv::SUPV_ON = false;
startupState = StartupState::OFF;
}
@ -202,11 +206,13 @@ ReturnValue_t PlocSupervisorHandler::buildCommandFromCommand(DeviceCommandId_t d
break;
}
case START_MPSOC: {
sif::info << "PLOC SUPV: Starting MPSoC" << std::endl;
prepareEmptyCmd(Apid::BOOT_MAN, static_cast<uint8_t>(tc::BootManId::START_MPSOC));
result = returnvalue::OK;
break;
}
case SHUTDOWN_MPSOC: {
sif::info << "PLOC SUPV: Shutting down MPSoC" << std::endl;
prepareEmptyCmd(Apid::BOOT_MAN, static_cast<uint8_t>(tc::BootManId::SHUTDOWN_MPSOC));
result = returnvalue::OK;
break;