I implemented this as RTM power sequence, without anything happening on the RTM LEDs:
<NonIntelligentRTM>
<AMCPort>8</AMCPort> <!-- IPMC AMC port number (0..8) used for RTM signals -->
<Power>10.0</Power> <!-- RTM power consumption in Watt -->
<HandleSwitch>RTM_HANDLE_SWITCH</HandleSwitch> <!-- Handle switch pin -->
<BlueLed>RTM_BLUE_LED</BlueLed> <!-- Blue LED pin -->
<Invert>
<Pin>MPEN</Pin>
<Pin>MPGOOD</Pin>
<Pin>PWREN</Pin>
<Pin>PWRGOOD</Pin>
</Invert>
<PowerManagement>
<PowerONSeq> <!-- Passive RTM Power ON sequence -->
<step>PSQ_DISABLE_SIGNAL(RTM_RED_LED)</step> <!-- turning OFF the red LED -->
<step>PSQ_SET_TIMER(2, 10000)</step> <!-- whole sequence timeout (10 seconds) -->
<step>PSQ_ENABLE_SIGNAL(CFG_RTM_PWR_ENABLE_SIGNAL)</step>
<step>PSQ_SET_TIMER(1, 200)</step> <!-- sleep 200 milliseconds between each new readout -->
<step>PSQ_JUMP_IFNOT_TIMEOUT(1, 0)</step> <!-- wait here until timer 1 delay expires -->
<step>PSQ_TEST_SIGNAL_JUMP_IFNOT_SET(CFG_RTM_PWR_GOOD_SIGNAL, 4)</step> <!-- If HotSwap control correctly asserted payload power, we jump after global timeout handling and SUCCEED -->
<step>PSQ_JUMP_IFNOT_TIMEOUT(2, -3)</step> <!-- Otherwise retry power good output pin check until main timeout expires -->
<step>PSQ_ENABLE_SIGNAL(RTM_RED_LED)</step> <!-- we only get here if the powerup sequence FAILED, turning ON the red LED -->
<step>PSQ_FAIL</step> <!-- if we ever reach this step, global timeout expired so raises an error -->
<step>PSQ_ENABLE_SIGNAL(RTM_GREEN_LED)</step> <!-- we only get here if the powerup sequence SUCCEEDED, turning ON the green LED -->
<step>PSQ_END</step>
</PowerONSeq>
<PowerOFFSeq> <!-- Passive RTM Power OFF sequence -->
<step>PSQ_DISABLE_SIGNAL(RTM_RED_LED)</step> <!-- turning OFF the red LED -->
<step>PSQ_SET_TIMER(2, 10000)</step> <!-- whole sequence timeout (10 seconds) -->
<step>PSQ_DISABLE_SIGNAL(CFG_RTM_PWR_ENABLE_SIGNAL)</step>
<step>PSQ_SET_TIMER(1, 200)</step> <!-- sleep 200 milliseconds between each new readout -->
<step>PSQ_JUMP_IFNOT_TIMEOUT(1, 0)</step> <!-- wait until timer 1 delay expires -->
<step>PSQ_TEST_SIGNAL_JUMP_IFNOT_SET(CFG_RTM_PWR_GOOD_SIGNAL, 5)</step> <!-- If HotSwap control correctly deasserted payload power, we jump after global timeout handling and SUCCEED -->
<step>PSQ_JUMP_IFNOT_TIMEOUT(2, -3)</step> <!-- Otherwise retry power good output pin check until main timeout expires -->
<step>PSQ_DISABLE_SIGNAL(RTM_GREEN_LED)</step> <!-- we only get here if all the powerdown sequence FAILED, turning OFF the green LED -->
<step>PSQ_ENABLE_SIGNAL(RTM_RED_LED)</step> <!-- we only get here if the powerup sequence FAILED, turning ON the red LED -->
<step>PSQ_FAIL</step> <!-- if we ever reach this step, global timeout expired so raises an error -->
<step>PSQ_DISABLE_SIGNAL(RTM_GREEN_LED)</step> <!-- we only get here if the powerup sequence SUCCEEDED, turning OFF the green LED -->
<step>PSQ_END</step>
</PowerOFFSeq>
</PowerManagement>
</NonIntelligentRTM>
Would you have further advice on this please ?
The LEDs work correctly when actioned directly through ipmitool.
To fulfill our passive RTM support with CERN-IPMC, we need to store its FRU description in an EEPROM that is directly soldered on the RTM board (and connected on the IPMB-L bus), not in the Flash of the IPMC itself (so as to keep the metadata, even in case of IPMC swap during operation).
Is there already some documentation about this use-case available somewhere please ?