Management of non-intelligent RTM

Hello Stefan,

I shared an archive of the project with you on CERNbox.
I am testing this on the CERN-IPMC devkit only (without a LATOURNETT board).

Best regards,
Sylvain

Hello Sylvain,

thanks. I noticed that the project is also in gitlab and I actually also have access to the repository. So next time you just need to let me know the branch or commit hash for me to get the files.

The compiler messages were because you had the same defines twice in your user_defs.h file. You need to remove lines 180 to 183 from this file, then the compilation works again. I did just that and loaded the new version using ipmitool (you’ll need to replace the IP address with the one that is assigned by your DHCP server):

ipmitool -I lan -U ‘’ -P ‘’ -H 192.168.1.34 hpm upgrade hpm1all.img force
ipmitool -I lan -U ‘’ -P ‘’ -H 192.168.1.34 hpm activate norollback

I then get the output below on the debug console. This has the RTM messages. Since I also used the remote compilation, you should be able to get the same result. Can you please try again?

cheers,

Stefan

I am very sorry to report that I don’t get anything containing RTM on my serial output with your instructions.

Can you please share the console output during/after the HPM.1 upgrade?

--> Clone ipmc-dev git repository
--> Git clone successfully finished
--> Configure IPMC source code
FRU information:   
        DONE: FRU file initialized
        DONE: Board information [FRU]
        DONE: Product information [FRU]
        DONE: LEDs description [FRU]
        DONE: Carrier information [FRU]
        DONE: General carrier power [FRU]
        DONE: fru-info binary file generated
                   
Non-intelligent RTM configuration:
        DONE: rtm-fru-info binary file generated
                   
LAN configuration: 
        DONE: Use flashed MAC address enabled
        WARNING: IP address is not valid [set to default: 192.168.1.20]
        DONE: Netmask address [255.255.255.0]
        DONE: Gateway address [192.138.1.3]
        DONE: DHCP Enabled
        DONE: Default IP source (DHCP)
        DONE: MAC based DHCP enabled
                   
ATCA configuration:
        DONE: Device ID [0x12]
        DONE: Device Revision [0x00]
        DONE: Manufacturer ID [0x00A12E]
        DONE: Product ID [0x1236]
        DONE: Non volatile parameters forced to compilation defaults
        DONE: Handle switch [Active: SIGNAL_LOW]
        DONE: SDI interface has been connected to port 0 [baudrate: 115200]
        DONE: PI interface has been connected to port 1 [baudrate: 115200]
        DONE: SOL interface has been connected to SDI [redirection enabled]
                   
Power configuration:
        DONE: Power sequences configured
                   
Sensor configuration:
        DONE: SDR file initialized
        DONE: Device locator ID "DEVKIT" [SDR #0]
        DONE: ATCA Hotswap sensor [SDR #1]
        DONE: IPMB Sensor [SDR #2]
        DONE: Version change Sensor [SDR #3]
        DONE: Sensor "CERN-IPMC temp." added [SDR #4]
        DONE: Sensor "12V Payload" added [SDR #5]
        DONE: Sensor "FPGA Power Good" added [SDR #6]
---------------------> There are no auto-enable sensors
                   
SDR binary:        
final formula: (100*x + 0E0)E-2
--> Configuration process successfully finished
--> Compile IPMC source code
make: Entering directory '/tmp/comp-fjADsaQDuQ'
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/app/libcompat/libcompat.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/net/libnet.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/hal/libhal.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/lib/lib.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/hal/actel/libactel.a
crc32 for the cold data is 0x91833f8c (12 vars total)
compat_record checksums: 0xf2 0xf4
File name: ipmc-core/hal/firmware.bin  size: 149032
Checksum section offset: 000004
Verify post_sram.c code
File name: ipmc-core/boot/boot.bin  size: 18116
Checksum section offset: 0002A0
Unused firmware flash: 72152
Unused boot loader flash: 6460
Making nvm blocks  
ipmc-core/util/mkhpm1img.c: In function hpm1_create_upgrade_image:
ipmc-core/util/mkhpm1img.c:359:5: warning: strncpy output truncated before terminating nul copying 8 bytes from a string of the same length [-Wstringop-truncation]
  359 |     strncpy((char *)hpm1_image.file_header.signature
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  360 |         HPM1_IMAGE_SIGNATURE
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1fw.img'.
Processing file 'ipmc-core/hal/firmware.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1boot.img'.
Processing file 'ipmc-core/boot/boot.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1fru.img'.
Processing file 'ipmc-config/fru-info.bin'.
File name: ipmc-core/iap/iap.bin  size: 478939
Checksum section offset: 000004
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1iap.img'.
Processing file 'ipmc-core/iap/iap.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
--> Compilation successfully finished
--> Archive creation successfully finished
--> Process finished
.--> Binaries: https://cern-ipmc.web.cern.ch/downloadbin/fjADsaQDuQ
--> Download and extract hpm.1 image 

PICMG HPM.1 Upgrade Agent 1.0.9: 

Validating firmware image integrity...OK
Performing preparation stage...
Services may be affected during upgrade. Do you wish to continue? (y/n): OK

Performing upgrade stage:

-------------------------------------------------------------------------------
|ID  | Name        |                     Versions                        | %  |
|    |             |      Active     |      Backup     |      File       |    |
|----|-------------|-----------------|-----------------|-----------------|----|
|   1|A2F-ATCA BOO |   1.30 20250514 | ---.-- -------- |   1.30 20250515 |100%|
|    |Upload Time: 00:01             | Image Size:   18362 bytes              |
|   0|A2F-ATCA FIR |   1.30 20250513 | ---.-- -------- |   1.30 20250515 |100%|
|    |Upload Time: 00:01             | Image Size:  149278 bytes              |
|   2|A2F-ATCA FRU |   1.30 20250513 | ---.-- -------- |   1.30 20250515 |100%|
|    |Upload Time: 00:00             | Image Size:     502 bytes              |
-------------------------------------------------------------------------------
(*) Component requires Payload Cold Reset

Firmware upgrade procedure successful
```**strong text**
[14:13:14.754] <A>: Sensor alert
[14:13:19.730] <A>: Sensor alert
[14:13:24.705] <A>: Sensor alert
[14:13:29.680] <A>: Sensor alert
[14:13:34.559] <_>: IPMI session established (session ID = 00000002)
[14:13:34.799] <A>: Sensor alert
[14:13:37.950] <_>: IPMI session closed (session ID = 00000002)
[14:13:37.982] <_>: IPMI session established (session ID = 00000004)


[14:13:38.350] BMR-A2F Boot Loader v1.3.0.20250515 (c) Pentair Technical Products, Inc.
[14:13:38.414] boot_first_time: 00
[14:13:38.431] boot_type: 12
[14:13:38.446] wdt_reset_type: A3
[14:13:38.462] fw_version: 02
[14:13:38.463] wdt_reset_occurred implemented: false 
[14:13:38.495] Backing up active image to external Flash...
[14:13:38.542] Copying firmware from 00006000 to 00300000 size 00023CD4

[14:13:39.518] bl_hdr:00000000
[14:13:39.534] fw_version: 02
[14:13:39.535] boot_flag: FA
[14:13:39.551] Active partition is #00
[14:13:39.567] active status:07
[14:13:39.583] wdt_reset_occurred:01
[14:13:39.599] reset_type:A3
[14:13:39.615] Firmware address:00006000
[14:13:39.646] Firmware size: 00023CD4
[14:13:39.662] Firmware image (END-START = 00040000) - checksum: 00
[14:13:39.774] Active partition succesfully cheked: 07
[14:13:39.806] boot_flag: FA
[14:13:39.822] active status:07
[14:13:39.823] Booting at address #00006000


[14:13:39.869] <_>: BMR-A2F Firmware (v1.3.0)
[14:13:39.870] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.
[14:13:40.075] <_>: Reset type: cold, reset cause: software
[14:13:40.076] <I> MAC Address loaded from EEPROM [80:D3:36:00:40:F7] 
[14:13:40.077] <_>: Perform Power-on-Self Testing.
[14:13:40.379] <_>: Device type: A2F200M3F-CS288
[14:13:40.382] <_>: MSS clock frequency: 80 MHz
[14:13:40.384] <_>: Fabric clock frequency: 20 MHz
[14:13:40.388] <_>: Fast delay calibration: 2665 cycles per 100uS
[14:13:40.393] <_>: FPGA design: BMR-A2F-ATCA, version 4.0.0
[14:13:40.397] <_>: Flash: 256 KB (00000000 - 00040000)
[14:13:40.401] <_>: SRAM: 64 KB (20000000 - 20010000)
[14:13:40.404] <_>: Operating mode: normal
[14:13:40.406] <_>: Hardware address: 0x43
[14:13:40.409] <_>: Setting RTC with the default date
[14:13:40.413] <_>: FRU 0 state: M0->M1, cause = 0
[14:13:40.416] <_>: LAN iface 0: MAC = 80:D3:36:00:40:F7, IP = 192.168.1.74
[14:13:40.421] <_>: SOL mode: Direct Ethernet (with Core10/100)
[14:13:40.423] <_>: HPM3: Iface 0: reset IPv4 address to 0.0.0.0
[14:13:40.625] <_>: FRU 0 state: M1->M2, cause = 2
[14:13:40.721] <_>: FRU 0 state: M2->M3, cause = 1
[14:13:41.113] <T>: [FM3 FM2 FM1 FC DCDC] Power UP sequence completed SUCCESSFULLY.
[14:13:41.118] <_>: FRU 0 state: M3->M4, cause = 0
[14:13:41.289] <A>: Sensor alert
[14:13:43.384] <_>: CORE_10100: Link is UP, 100Mb FD
[14:13:46.264] <A>: Sensor alert
[14:13:51.239] <A>: Sensor alert
[14:13:56.230] <A>: Sensor alert
[14:14:01.205] <A>: Sensor alert
[14:14:06.181] <A>: Sensor alert
[14:14:09.748] <_>: LAN iface 0: IP = 192.168.1.74
[14:14:11.156] <A>: Sensor alert
[14:14:16.131] <A>: Sensor alert
[14:14:21.106] <A>: Sensor alert
[14:14:26.097] <A>: Sensor alert
[14:14:31.072] <A>: Sensor alert
[14:14:36.047] <A>: Sensor alert

Dear Stefan,

Here are the logs of both the compilation and the serial output corresponding to.
Thanks again for your help.

Best regards,
Sylvain

Hello Sylvain,

it seems like there are still issues with the firmware upgrade. Can you please run the following command and share the output:

ipmitool -I lan -U ‘’ -P ‘’ -H fru -v

BTW, are you using a script to upgrade the firmware? In particular, are you using the norollback option?

If you have another IPMC, it might also be worth trying that one instead if it still has it’s “factory” configuration.

cheers,

Stefan

Hello Stefan,

Yeah I use this command to upload new firmware:

ipmitool -I lan -H $IPMC_IP -U "" -P "" hpm upgrade hpm1all.img force
ipmitool -I lan -H $IPMC_IP -U "" -P "" hpm activate noroolback

The FRU is:

ipmitool -I lan -H 192.168.1.34 -U "" -P "" fru -v
Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20
Discovered PICMG Extension Version 2.3
Discovered IPMB address 0x86
FRU Device Description : Builtin FRU Device (ID 0)
 Board Mfg Date        : Thu May 15 00:00:00 2025
 Board Mfg             : LAPP
 Board Product         : DEVKIT
 Board Serial          : 00001
 Board Part Number     : P000000000
 Board FRU ID          : fru-info.inf
 Product Manufacturer  : LAPP
 Product Name          : DEVKIT
 Product Part Number   : PN00001
 Product Version       : v.2.0
 Product Serial        : 0000001
 Product FRU ID        : fru-info.inf
  PICMG Extension Record
    Unknown OEM Extension Record ID: 2f
  PICMG Extension Record
    FRU_CARRIER_INFO
      AMC.0 extension version: R2.0
      Carrier Sie Number Cnt: 0

  PICMG Extension Record
    FRU_AMC_ACTIVATION
      Maximum Internal Current(@12V): 3.00 A [ 36.00 Watt ]
      Module Activation Readiness:    5 sec.
      Descriptor Count: 0

BTW, since the jtag_player --reset, I can’t even manage to change the IP address or activate DHCP, even though the compilation seems to take good care of it:

--> Clone ipmc-dev git repository
--> Git clone successfully finished
--> Configure IPMC source code
FRU information:   
        DONE: FRU file initialized
        DONE: Board information [FRU]
        DONE: Product information [FRU]
        DONE: LEDs description [FRU]
        DONE: Carrier information [FRU]
        DONE: General carrier power [FRU]
        DONE: fru-info binary file generated
                   
Non-intelligent RTM configuration:
        DONE: rtm-fru-info binary file generated
                   
LAN configuration: 
        DONE: MAC address [80:D3:36:00:40:F7]
        WARNING: IP address is not valid [set to default: 192.168.1.20]
        DONE: Netmask address [255.255.254.0]
        DONE: Gateway address [192.168.0.1]
        DONE: DHCP Enabled
        DONE: Default IP source (DHCP)
        DONE: MAC based DHCP enabled
                   
ATCA configuration:
        DONE: Device ID [0x12]
        DONE: Device Revision [0x00]
        DONE: Manufacturer ID [0x00A12E]
        DONE: Product ID [0x1236]
        DONE: Non volatile parameters forced to compilation defaults
        DONE: Handle switch [Active: SIGNAL_LOW]
        DONE: SDI interface has been connected to port 0 [baudrate: 115200]
        DONE: PI interface has been connected to port 1 [baudrate: 115200]
        DONE: SOL interface has been connected to SDI [redirection enabled]
                   
Power configuration:
        DONE: Power sequences configured
                   
Sensor configuration:
        DONE: SDR file initialized
        DONE: Device locator ID "DEVKIT" [SDR #0]
        DONE: ATCA Hotswap sensor [SDR #1]
        DONE: IPMB Sensor [SDR #2]
        DONE: Version change Sensor [SDR #3]
        DONE: Sensor "CERN-IPMC temp." added [SDR #4]
        DONE: Sensor "12V Payload" added [SDR #5]
        DONE: Sensor "FPGA Power Good" added [SDR #6]
---------------------> There are no auto-enable sensors
                   
SDR binary:        
final formula: (100*x + 0E0)E-2
--> Configuration process successfully finished
--> Compile IPMC source code
make: Entering directory '/tmp/comp-Bsra0SFIV7'
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/app/libcompat/libcompat.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/net/libnet.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/hal/libhal.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/lib/lib.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/hal/actel/libactel.a
crc32 for the cold data is 0xb2b85e92 (12 vars total)
compat_record checksums: 0x37 0xa1
File name: ipmc-core/hal/firmware.bin  size: 149688
Checksum section offset: 000004
Verify post_sram.c code
File name: ipmc-core/boot/boot.bin  size: 18116
Checksum section offset: 0002A0
Unused firmware flash: 71496
Unused boot loader flash: 6460
Making nvm blocks  
ipmc-core/util/mkhpm1img.c: In function hpm1_create_upgrade_image:
ipmc-core/util/mkhpm1img.c:359:5: warning: strncpy output truncated before terminating nul copying 8 bytes from a string of the same length [-Wstringop-truncation]
  359 |     strncpy((char *)hpm1_image.file_header.signature
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  360 |         HPM1_IMAGE_SIGNATURE
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1fw.img'.
Processing file 'ipmc-core/hal/firmware.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1boot.img'.
Processing file 'ipmc-core/boot/boot.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1fru.img'.
Processing file 'ipmc-config/fru-info.bin'.
File name: ipmc-core/iap/iap.bin  size: 478939
Checksum section offset: 000004
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1iap.img'.
Processing file 'ipmc-core/iap/iap.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
--> Compilation successfully finished
--> Archive creation successfully finished
--> Process finished
.--> Binaries: https://cern-ipmc.web.cern.ch/downloadbin/Bsra0SFIV7
--> Download and extract hpm.1 image

What do you think ?

Best regards,
Sylvain

In fact it does not even run my sensors as intended…

My code is clearly compiled, and present in *.img files returned by your compilation server, but not run.

Hello Sylvain,

can you please reprogram your IPMC with the “factory” firmware? You can find the programming file here:

https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-tester/-/blob/master/ipmc-config/stapl/cern_ipmc_tester.stp

The command to use is the following:

jtag-player -v -aprogram cern_ipmc_tester.stp

The program should be under /usr/bin, you may have to run it with sudo if you get errors.

This may fix the issue of not being able to upload the firmware using HPM.1.

cheers,

Stefan

Hello Stefan,

Here is the result:

$ wget https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-tester/-/blob/master/ipmc-config/stapl/cern_ipmc_tester.stp
$ which jtag_player 
/usr/bin/jtag_player
$ sudo jtag-player -v -aprogram cern_ipmc_tester.stp
DEBUG: STAPL Player Version 3.2
DEBUG: Ported to RPi from Jam STAPL Player Version 2.2
Copyright (C) 1997-2000 Altera Corporation
DEBUG: Updated by Julian Mendez
STATUS: {"key": "CRC", "res": -2, "verbose": "not found", "value": "0x0080", "expected": "0x0000"}
ERROR: line 7: syntax error.
Program terminated.
STATUS: {"key": "duration", "hours":  0, "minutes":  0, "seconds":  0}

Hello Sylvain,

you cannot get the file from gitlab like that, have a look at the contents, you would have gotten an HTML file, not the actual STAPL file. You either need to download the file via the gitlab web interface or just clone the ipmc-tester repository.

Let me know if that works.

cheers,

Stefan

Here is the result:

$ sudo jtag-player -v -aprogram cern_ipmc_tester.stp
DEBUG: STAPL Player Version 3.2
DEBUG: Ported to RPi from Jam STAPL Player Version 2.2
Copyright (C) 1997-2000 Altera Corporation
DEBUG: Updated by Julian Mendez
STATUS: {"key": "CRC", "res": 0, "verbose": "matched", "value": "0xA31D", "expected": "0xA31D"}
DEBUG: NOTE "CREATOR" = "FlashPro Version: v11.9 SP4"
DEBUG: NOTE "CAPTURE" = "11.9.4.4"
DEBUG: NOTE "DEVICE" = "A2F200M3F"
DEBUG: NOTE "PACKAGE" = "A2F200M3F-cs288"
DEBUG: NOTE "DATE" = "2024/10/01"
DEBUG: NOTE "TIME" = "09:32:56"
DEBUG: NOTE "STAPL_VERSION" = "JESD71"
DEBUG: NOTE "VENDOR" = "Microsemi Corporation"
DEBUG: NOTE "IDCODE" = "05A131CF"
DEBUG: NOTE "IDMASK" = "0DFFFFFF"
DEBUG: NOTE "DESIGN" = "TOPLEVEL"
DEBUG: NOTE "DESIGN_DIRECTORY" = "C:\HardwarePlatformManagement\CERN-IPMC\Firmware\EDA-03254-V3-0\designer\impl4\"
DEBUG: NOTE "CHECKSUM" = "155C"
DEBUG: NOTE "SECURITY" = "Disable"
DEBUG: NOTE "ALG_VERSION" = "20"
DEBUG: NOTE "MAP_VERSION" = "1"
DEBUG: NOTE "TOOL_VERSION" = "1"
DEBUG: NOTE "MAX_FREQ" = "20000000"
DEBUG: NOTE "SILSIG" = "01102024"
DEBUG: NOTE "ACT_FROM_SPECIFICATION" = "Region_0_0 (0, 3) (0, 0);Region_1_0 (1, 3) (1, 0)
    ;Region_1_4 (1, 15) (1, 4);"
DEBUG: NOTE "SPEED_GRAD" = "STD"
DEBUG: NOTE "TEMP_GRAD" = "IND"
DEBUG: NOTE "EXPRESS_CONFIGURATION" = "1"
DEBUG: NOTE "PLAYER_VERSION_VARIABLE" = "PLAYERVERSIONVARIABLE"
DEBUG: NOTE "PLAYER_VERSION_SW_VARIABLE" = "PLAYERVERSIONSWVARIABLE"
EXPORT: {"key": "Frequency", "value": "4000000 Hz"}
DEBUG: Mode of WPI pins 7,0,1,changed to OUTPUT, 2 to INPUT
EXPORT: {"key": "FSN", "count": 48, "value": "HEX FB5CA6500010"}
EXPORT: {"key": "message", "value": "Erase ..."}
EXPORT: {"key": "ACTEL_SLOG_UROW", "count": 128, "value": "HEX 55AF06C1022BE4299A2D689928FE001F"}
EXPORT: {"key": "message", "value": "Completed erase"}
EXPORT: {"key": "CHECKSUM", "count": 16, "value": "HEX 155C"}
EXPORT: {"key": "message", "value": "Programming FPGA Array"}
EXPORT: {"key": "PERCENT_DONE", "value": 0}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
EXPORT: {"key": "message", "value": "Verifying FPGA Array"}
EXPORT: {"key": "PERCENT_DONE", "value": 0}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
EXPORT: {"key": "message", "value": "        Verifying FPGA Array -- pass"}
EXPORT: {"key": "message", "value": "Program FlashROM ..."}
EXPORT: {"key": "message", "value": "Verify FlashROM ..."}
EXPORT: {"key": "message", "value": "        Verify FlashROM -- pass"}
EXPORT: {"key": "message", "value": "Program System Init and Boot Clients..."}
EXPORT: {"key": "message", "value": "Program Embedded Flash Memory Module ALL...."}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
EXPORT: {"key": "message", "value": "Verify System Init and Boot Clients..."}
EXPORT: {"key": "message", "value": "Verify Embedded Flash Memory Module ALL..."}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
STATUS: {"key": "exit", "code": 0, "verbose": "Success"}
STATUS: {"key": "duration", "hours":  0, "minutes":  1, "seconds": 24}

Which gives me the output:

[23:44:38.010] BMR-A2F Boot Loader v1.3.0 (c) Pentair Technical Products, Inc.
[23:44:38.011] boot_first_time: 00
[23:44:38.011] boot_type: 23
[23:44:38.012] wdt_reset_type: 23
[23:44:38.012] fw_version: 00
[23:44:38.012] wdt_reset_occurred implemented: false 
[23:44:38.013] Backing up active image to external Flash...
[23:44:38.014] Copying firmware from 00006000 to 00300000 size 00028E88

[23:44:39.055] bl_hdr:00000000
[23:44:39.055] fw_version: 00
[23:44:39.055] boot_flag: FA
[23:44:39.056] Active partition is #00
[23:44:39.056] active status:07
[23:44:39.056] wdt_reset_occurred:00
[23:44:39.057] reset_type:23
[23:44:39.057] Firmware address:00006000
[23:44:39.058] Firmware size: 00028E88
[23:44:39.058] Firmware image (END-START = 00040000) - checksum: 00
[23:44:39.149] Active partition succesfully cheked: 07
[23:44:39.149] boot_flag: D2
[23:44:39.150] active status:02
[23:44:39.150] Booting at address #00006000


[23:44:39.740] <_>: BMR-A2F Firmware (v1.3.0), AMC carrier edition.
[23:44:39.768] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.

[23:44:39.769] *** Initializing non-volatile memory:

[23:44:39.770] *** Initialize default NV params: done
[23:44:39.848] *** Programming main FRU Info data: done

[23:44:39.960] *** Finished.
[23:44:40.022] <_>: Reset type: hard, reset cause: power failure
[23:44:40.023] <_>: Perform Power-on-Self Testing.
[23:44:40.294] <_>: Device type: A2F200M3F-CS288
[23:44:40.295] <_>: MSS clock frequency: 80 MHz
[23:44:40.348] <_>: Fabric clock frequency: 20 MHz
[23:44:40.348] <_>: Fast delay calibration: 2665 cycles per 100uS
[23:44:40.349] <_>: FPGA design: BMR-A2F-AMCc, version 4.0.0
[23:44:40.350] <_>: Flash: 256 KB (00000000 - 00040000)
[23:44:40.351] <_>: SRAM: 64 KB (20000000 - 20010000)
[23:44:40.352] <_>: Operating mode: normal
[23:44:40.352] <_>: Hardware address: 0x43
[23:44:40.353] <_>: Setting RTC with the default date
[23:44:40.354] <_>: FRU 0 state: M0->M1, cause = 0
[23:44:40.354] <_>: LAN iface 0: MAC = 0A:0A:0A:0A:0A:86, IP = 192.168.1.34
[23:44:40.355] <_>: AMC # 1: FRU state M0
[23:44:40.363] <_>: AMC # 2: FRU state M0
[23:44:40.364] <_>: AMC # 3: FRU state M0
[23:44:40.379] <_>: AMC # 4: FRU state M0
[23:44:40.395] <_>: AMC # 5: FRU state M0
[23:44:40.396] <_>: AMC # 6: FRU state M0
[23:44:40.411] <_>: AMC # 7: FRU state M0
[23:44:40.477] <_>: AMC # 8: FRU state M0
[23:44:40.478] <_>: RTM: FRU state M0
[23:44:40.478] <_>: reading and parsing Carrier FRU info
[23:44:40.479] <_>:   found a Carrier Information Table
[23:44:40.480] <_>:     registered AMC site # 1
[23:44:40.480] <_>:     registered AMC site # 2
[23:44:40.481] <_>:     registered AMC site # 3
[23:44:40.481] <_>:     registered AMC site # 4
[23:44:40.482] <_>:     registered AMC site # 5
[23:44:40.482] <_>:     registered AMC site # 6
[23:44:40.483] <_>:     registered AMC site # 7
[23:44:40.484] <_>:     registered AMC site # 8
[23:44:40.484] <_>:   found a Carrier Activation & Management record
[23:44:40.485] <_>:     maximum internal power = 10.0A
[23:44:40.524] <_>:     AMC # 1: maximum current = 6.0A
[23:44:40.525] <_>:     AMC # 2: maximum current = 6.0A
[23:44:40.526] <_>:     AMC # 3: maximum current = 6.0A
[23:44:40.526] <_>:     AMC # 4: maximum current = 6.0A
[23:44:40.527] <_>:     AMC # 5: maximum current = 6.0A
[23:44:40.528] <_>:     AMC # 6: maximum current = 6.0A
[23:44:40.528] <_>:     AMC # 7: maximum current = 6.0A
[23:44:40.529] <_>:     AMC # 8: maximum current = 6.0A
[23:44:40.530] <_>:     RTM: maximum current = 6.0A
[23:44:40.530] <_>: LAN iface 0: IP = 192.168.1.34
[23:44:40.732] <_>: FRU 0 state: M1->M2, cause = 2
[23:44:40.876] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[23:44:41.884] <_>: FRU 0 state: M2->M3, cause = 1
[23:44:42.396] <_>: FRU 0 state: M3->M4, cause = 0
[23:44:43.516] <_>: CORE_10100: Link is UP, 100Mb FD

Ok so now I’ve got some log from AMC8 when I toggle corresponding pins with the devkit, but no RTM in the FRU or in the log so far.

[23:49:54.649] BMR-A2F Boot Loader v1.3.0.20250520 (c) Pentair Technical Products, Inc.
[23:49:54.713] boot_first_time: 00
[23:49:54.729] boot_type: 12
[23:49:54.729] wdt_reset_type: A3
[23:49:54.745] fw_version: 00
[23:49:54.761] wdt_reset_occurred implemented: false 
[23:49:54.793] Backing up active image to external Flash...
[23:49:54.825] Copying firmware from 00006000 to 00300000 size 00028E88

[23:49:55.913] bl_hdr:00000000
[23:49:55.929] fw_version: 00
[23:49:55.945] boot_flag: FA
[23:49:55.961] Active partition is #00
[23:49:55.977] active status:07
[23:49:55.993] wdt_reset_occurred:00
[23:49:56.009] reset_type:A3
[23:49:56.025] Firmware address:00006000
[23:49:56.041] Firmware size: 00028E88
[23:49:56.057] Firmware image (END-START = 00040000) - checksum: 00
[23:49:56.185] Active partition succesfully cheked: 07
[23:49:56.217] boot_flag: FA
[23:49:56.233] active status:07
[23:49:56.249] Booting at address #00006000


[23:49:56.878] <_>: BMR-A2F Firmware (v1.3.0), AMC carrier edition.
[23:49:56.878] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.
[23:49:56.940] <_>: Reset type: hard, reset cause: power failure
[23:49:56.941] <_>: Perform Power-on-Self Testing.
[23:49:57.255] <_>: Device type: A2F200M3F-CS288
[23:49:57.256] <_>: MSS clock frequency: 80 MHz
[23:49:57.256] <_>: Fabric clock frequency: 20 MHz
[23:49:57.257] <_>: Fast delay calibration: 2665 cycles per 100uS
[23:49:57.258] <_>: FPGA design: BMR-A2F-AMCc, version 4.0.0
[23:49:57.259] <_>: Flash: 256 KB (00000000 - 00040000)
[23:49:57.260] <_>: SRAM: 64 KB (20000000 - 20010000)
[23:49:57.260] <_>: Operating mode: normal
[23:49:57.261] <_>: Hardware address: 0x43
[23:49:57.261] <_>: Setting RTC with the default date
[23:49:57.262] <_>: FRU 0 state: M0->M1, cause = 0
[23:49:57.263] <_>: LAN iface 0: MAC = 0A:0A:0A:0A:0A:86, IP = 192.168.1.34
[23:49:57.264] <_>: AMC # 1: FRU state M0
[23:49:57.271] <_>: AMC # 2: FRU state M0
[23:49:57.286] <_>: AMC # 3: FRU state M0
[23:49:57.287] <_>: AMC # 4: FRU state M0
[23:49:57.303] <_>: AMC # 5: FRU state M0
[23:49:57.318] <_>: AMC # 6: FRU state M0
[23:49:57.319] <_>: AMC # 7: FRU state M0
[23:49:57.334] <_>: AMC # 8: FRU state M0
[23:49:57.395] <_>: RTM: FRU state M0
[23:49:57.396] <_>: reading and parsing Carrier FRU info
[23:49:57.397] <_>:   found a Carrier Information Table
[23:49:57.397] <E>:     too few carrier site numbers (0)
[23:49:57.398] <E>:     unknown AMC site # 1
[23:49:57.399] <E>:     unknown AMC site # 2
[23:49:57.399] <E>:     unknown AMC site # 3
[23:49:57.399] <E>:     unknown AMC site # 4
[23:49:57.400] <E>:     unknown AMC site # 5
[23:49:57.401] <E>:     unknown AMC site # 6
[23:49:57.401] <E>:     unknown AMC site # 7
[23:49:57.402] <E>:     unknown AMC site # 8
[23:49:57.402] <_>: LAN iface 0: IP = 192.168.1.34
[23:50:01.379] <_>: CORE_10100: Link is UP, 100Mb FD
[23:50:05.282] <_>: FRU 0 state: M1->M2, cause = 2
[23:50:06.450] <_>: FRU 0 state: M2->M3, cause = 1
[23:50:06.690] <_>: FRU 0 state: M3->M4, cause = 0
[23:50:14.768] <_>: AMC # 8: Module has been inserted
[23:50:14.800] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[23:50:14.848] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[23:50:14.912] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[23:50:14.976] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[23:50:15.040] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[23:50:15.104] <L>: IPMB-L error: IPMC 80: no acknowledge
[23:50:16.112] <_>: AMC # 8: reading and parsing FRU info
[23:50:16.128] <_>: AMC # 8:   found a Module Current Requirements record
[23:50:16.155] <_>: AMC # 8:     requested payload current = 5.0A
[23:50:16.156] <_>: AMC # 8: reading, validating and merging Module SDRs
[23:50:16.218] <_>: AMC # 8:   added 2 SDR(s), 1 sensor(s)
[23:50:16.266] <_>: AMC # 8: FRU state M0->M1, cause = 0
[23:50:17.466] <_>: AMC # 8: hot swap handle is open
[23:50:23.081] <_>: AMC # 8: hot swap handle is closed
[23:50:31.431] <_>: AMC # 8: hot swap handle is open
[23:50:39.710] <_>: AMC # 8: Module has been extracted
[23:50:39.711] <_>: AMC # 8: FRU state M1->M0, cause = a
[23:51:30.037] <_>: IPMI session established (session ID = 00000002)
[23:51:30.117] <_>: IPMI session closed (session ID = 00000002)
[23:52:12.222] <_>: AMC # 8: Module has been inserted
[23:52:12.526] <E>: AMC # 8: Management Power Good timed out
[23:52:28.171] <_>: IPMI session established (session ID = 00000004)
[23:52:28.251] <_>: IPMI session closed (session ID = 00000004)

Hello Sylvain,

that looks good. Can you try to upload your firmware using HPM.1 now?

cheers,

Stefan

Hello Stefan,

I already did, and that what you are looking at.
To summarize, no “RTM*” output, no trace of my code modifications, no DHCP, but FRU changed:

ipmitool -I lan -H 192.168.1.34 -U "" -P "" fru -v
Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20
Discovered PICMG Extension Version 2.3
Discovered IPMB address 0x86
FRU Device Description : Builtin FRU Device (ID 0)
 Board Mfg Date        : Tue May 20 00:00:00 2025
 Board Mfg             : LAPP
 Board Product         : DEVKIT
 Board Serial          : 00001
 Board Part Number     : P000000000
 Board FRU ID          : fru-info.inf
 Product Manufacturer  : LAPP
 Product Name          : DEVKIT
 Product Part Number   : PN00001
 Product Version       : v.2.0
 Product Serial        : 0000001
 Product FRU ID        : fru-info.inf
  PICMG Extension Record
    Unknown OEM Extension Record ID: 2f
  PICMG Extension Record
    FRU_CARRIER_INFO
      AMC.0 extension version: R2.0
      Carrier Sie Number Cnt: 0

  PICMG Extension Record
    FRU_AMC_ACTIVATION
      Maximum Internal Current(@12V): 3.00 A [ 36.00 Watt ]
      Module Activation Readiness:    5 sec.
      Descriptor Count: 0


FRU Device Description : AMC (ID 8)
Retrying FRU read with request size 237
Retrying FRU read with request size 229
Retrying FRU read with request size 221
Retrying FRU read with request size 213
Retrying FRU read with request size 205
Retrying FRU read with request size 197
Retrying FRU read with request size 189
Retrying FRU read with request size 181
Retrying FRU read with request size 173
Retrying FRU read with request size 165
Retrying FRU read with request size 157
Retrying FRU read with request size 149
Retrying FRU read with request size 141
Retrying FRU read with request size 133
Retrying FRU read with request size 125
Retrying FRU read with request size 117
Retrying FRU read with request size 109
Retrying FRU read with request size 101
Retrying FRU read with request size 93
Retrying FRU read with request size 85
Retrying FRU read with request size 77
Retrying FRU read with request size 69
Retrying FRU read with request size 61
Retrying FRU read with request size 53
Retrying FRU read with request size 45
Retrying FRU read with request size 37
Retrying FRU read with request size 29
Retrying FRU read with request size 28
Retrying FRU read with request size 27
Retrying FRU read with request size 26
Retrying FRU read with request size 25
Retrying FRU read with request size 24
Retrying FRU read with request size 23
Retrying FRU read with request size 22
Retrying FRU read with request size 21
Retrying FRU read with request size 20
 Board Mfg Date        : Mon Jan  1 00:00:00 1996
 Board Mfg             : CERN
 Board Product         : IPMCTestPad
 Board Serial          : 000000000
 Board Part Number     : IPMC-TP
 Board FRU ID          : CoreFRU
 Product Manufacturer  : CERN
 Product Name          : IPMCTestPad
 Product Part Number   : R1
 Product Version       : CERN-v0
 Product Serial        : 00000
 Product Asset Tag     : No tag
 Product FRU ID        : CoreFRU
  PICMG Extension Record
    FRU_AMC_CURRENT
      Current draw(@12V): 5.00 A [ 60.00 Watt ]

Hello Sylvain,

yes, indeed, I could reproduce your problem starting with a new IPMC mezzanine. Can you please upload and activate the following firmware using HPM.1:

https://gitlab.cern.ch/ep-ese-be-xtca/ipmc-user-firmware/-/blob/ipmc-user/hpm1all.img

And then upload and activate your firmware. This did the trick for me and should only be needed to be done once.

It’s probably also a good idea to add a file user_mainfile.c to your ipmc-user folder with content similar to the following:

#include <defs.h>
#include <cfgint.h>
#include <app.h>

/* INIT_CALLBACK(fctname) is called during the IPMC initialisation */
INIT_CALLBACK(usermain_init) {
debug_printf("<_>: IPMC firmware with RTM support compiled on " DATE " at " TIME “\n”);
}

This way you will get a message similar to the following on the IPMC console when it boots and you will know if a new firmware version has been correctly loaded and activated:

<_>: IPMC firmware with RTM support compiled on May 20 2025 at 16:47:57

cheers,

Stefan

Hello Sefan,

I was full of hope at reading your message.
But I do not manage to get it working on my side.
I strictly followed your instruction, and still no RTM-related output on the console.

So I retried from scratch in this order:

  1. sudo jtag-player -v -aprogram ~/SylvainL/ipmc-tester/ipmc-config/stapl/cern_ipmc_tester.stp
DEBUG: STAPL Player Version 3.2
DEBUG: Ported to RPi from Jam STAPL Player Version 2.2
Copyright (C) 1997-2000 Altera Corporation
DEBUG: Updated by Julian Mendez
STATUS: {"key": "CRC", "res": 0, "verbose": "matched", "value": "0xA31D", "expected": "0xA31D"}
DEBUG: NOTE "CREATOR" = "FlashPro Version: v11.9 SP4"
DEBUG: NOTE "CAPTURE" = "11.9.4.4"
DEBUG: NOTE "DEVICE" = "A2F200M3F"
DEBUG: NOTE "PACKAGE" = "A2F200M3F-cs288"
DEBUG: NOTE "DATE" = "2024/10/01"
DEBUG: NOTE "TIME" = "09:32:56"
DEBUG: NOTE "STAPL_VERSION" = "JESD71"
DEBUG: NOTE "VENDOR" = "Microsemi Corporation"
DEBUG: NOTE "IDCODE" = "05A131CF"
DEBUG: NOTE "IDMASK" = "0DFFFFFF"
DEBUG: NOTE "DESIGN" = "TOPLEVEL"
DEBUG: NOTE "DESIGN_DIRECTORY" = "C:\HardwarePlatformManagement\CERN-IPMC\Firmware\EDA-03254-V3-0\designer\impl4\"
DEBUG: NOTE "CHECKSUM" = "155C"
DEBUG: NOTE "SECURITY" = "Disable"
DEBUG: NOTE "ALG_VERSION" = "20"
DEBUG: NOTE "MAP_VERSION" = "1"
DEBUG: NOTE "TOOL_VERSION" = "1"
DEBUG: NOTE "MAX_FREQ" = "20000000"
DEBUG: NOTE "SILSIG" = "01102024"
DEBUG: NOTE "ACT_FROM_SPECIFICATION" = "Region_0_0 (0, 3) (0, 0);Region_1_0 (1, 3) (1, 0)
    ;Region_1_4 (1, 15) (1, 4);"
DEBUG: NOTE "SPEED_GRAD" = "STD"
DEBUG: NOTE "TEMP_GRAD" = "IND"
DEBUG: NOTE "EXPRESS_CONFIGURATION" = "1"
DEBUG: NOTE "PLAYER_VERSION_VARIABLE" = "PLAYERVERSIONVARIABLE"
DEBUG: NOTE "PLAYER_VERSION_SW_VARIABLE" = "PLAYERVERSIONSWVARIABLE"
EXPORT: {"key": "Frequency", "value": "4000000 Hz"}
DEBUG: Mode of WPI pins 7,0,1,changed to OUTPUT, 2 to INPUT
EXPORT: {"key": "FSN", "count": 48, "value": "HEX FB5CA6500010"}
EXPORT: {"key": "message", "value": "Erase ..."}
EXPORT: {"key": "ACTEL_SLOG_UROW", "count": 128, "value": "HEX 155C0701022BE4299A2D689928FE001F"}
EXPORT: {"key": "message", "value": "Completed erase"}
EXPORT: {"key": "CHECKSUM", "count": 16, "value": "HEX 155C"}
EXPORT: {"key": "message", "value": "Programming FPGA Array"}
EXPORT: {"key": "PERCENT_DONE", "value": 0}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
EXPORT: {"key": "message", "value": "Verifying FPGA Array"}
EXPORT: {"key": "PERCENT_DONE", "value": 0}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
EXPORT: {"key": "message", "value": "        Verifying FPGA Array -- pass"}
EXPORT: {"key": "message", "value": "Program FlashROM ..."}
EXPORT: {"key": "message", "value": "Verify FlashROM ..."}
EXPORT: {"key": "message", "value": "        Verify FlashROM -- pass"}
EXPORT: {"key": "message", "value": "Program System Init and Boot Clients..."}
EXPORT: {"key": "message", "value": "Program Embedded Flash Memory Module ALL...."}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
EXPORT: {"key": "message", "value": "Verify System Init and Boot Clients..."}
EXPORT: {"key": "message", "value": "Verify Embedded Flash Memory Module ALL..."}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 10}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 20}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 30}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 40}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 50}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 60}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 70}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 80}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 90}
EXPORT: {"key": "PERCENT_DONE", "value": 100}
STATUS: {"key": "exit", "code": 0, "verbose": "Success"}
STATUS: {"key": "duration", "hours":  0, "minutes":  1, "seconds": 25}
  1. (IPMC_IP=192.168.1.34; cd ~/SylvainL/tmp/ipmc-user-firmware/; yes | ipmitool -I lan -H $IPMC_IP -U “” -P “” hpm upgrade hpm1all.img force; ipmitool -I lan -H $IPMC_IP -U “” -P “” hpm activate noroolback)
PICMG HPM.1 Upgrade Agent 1.0.9: 

Validating firmware image integrity...OK
Performing preparation stage...
Services may be affected during upgrade. Do you wish to continue? (y/n): OK

Performing upgrade stage:

-------------------------------------------------------------------------------
|ID  | Name        |                     Versions                        | %  |
|    |             |      Active     |      Backup     |      File       |    |
|----|-------------|-----------------|-----------------|-----------------|----|
|   1|A2F-ATCA BOO |   1.30 00000000 | ---.-- -------- |   1.30 00000000 |100%|
|    |Upload Time: 00:01             | Image Size:   18262 bytes              |
|   0|A2F-ATCA FIR |   1.30 00000000 | ---.-- -------- |   1.30 00000000 |100%|
|    |Upload Time: 00:01             | Image Size:  125086 bytes              |
|   2|A2F-ATCA FRU |   1.30 00000000 | ---.-- -------- |   1.30 00000000 |100%|
|    |Upload Time: 00:00             | Image Size:     494 bytes              |
-------------------------------------------------------------------------------
(*) Component requires Payload Cold Reset

Firmware upgrade procedure successful


PICMG HPM.1 Upgrade Agent 1.0.9: 

Close Session command failed
[pi@lapp-pi06: ~/SylvainL - 08:26:44] $ ipmitool -I lan -H 192.168.1.34 -U "" -P "" fru -v

Get Auth Capabilities command failed
Error: Unable to establish LAN session
Error: Unable to establish IPMI v1.5 / RMCP session
[pi@lapp-pi06: ~/SylvainL - 08:27:09] $ 
[pi@lapp-pi06: ~/SylvainL - 08:27:09] $ ipmitool -I lan -H 192.168.1.34 -U "" -P "" fru -v
Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20
Discovered PICMG Extension Version 2.3
Discovered IPMB address 0x86
FRU Device Description : Builtin FRU Device (ID 0)
 Board Mfg Date        : Thu Jun  1 00:00:00 2017
 Board Mfg             : Cirly/Addax
 Board Product         : CERN-IPMC
 Board Serial          : 00001
 Board Part Number     : P580050995
 Board FRU ID          : fru-info.inf
 Product Manufacturer  : CERN
 Product Name          : CERN-IPMC
 Product Part Number   : PN00001
 Product Version       : v.1.20
 Product Serial        : 0000001
 Product FRU ID        : fru-info.inf
  PICMG Extension Record
    Unknown OEM Extension Record ID: 2f
  PICMG Extension Record
    FRU_CARRIER_INFO
      AMC.0 extension version: R2.0
      Carrier Sie Number Cnt: 0

  PICMG Extension Record
    FRU_AMC_ACTIVATION
      Maximum Internal Current(@12V): 10.00 A [ 120.00 Watt ]
      Module Activation Readiness:    5 sec.
      Descriptor Count: 0
  1. then I compile and upload my code (with the user_mainfile.c addition as proposed)
--> Clone ipmc-dev git repository
--> Git clone successfully finished
--> Configure IPMC source code
FRU information:   
        DONE: FRU file initialized
        DONE: Board information [FRU]
        DONE: Product information [FRU]
        DONE: LEDs description [FRU]
        DONE: Carrier information [FRU]
        DONE: General carrier power [FRU]
        DONE: fru-info binary file generated
                   
Non-intelligent RTM configuration:
        DONE: rtm-fru-info binary file generated
                   
LAN configuration: 
        DONE: MAC address [80:D3:36:00:40:F7]
        WARNING: IP address is not valid [set to default: 192.168.1.20]
        DONE: Netmask address [255.255.254.0]
        DONE: Gateway address [192.168.0.1]
        DONE: DHCP Enabled
        DONE: Default IP source (DHCP)
        DONE: MAC based DHCP enabled
                   
ATCA configuration:
        DONE: Device ID [0x12]
        DONE: Device Revision [0x00]
        DONE: Manufacturer ID [0x00A12E]
        DONE: Product ID [0x1236]
        DONE: Non volatile parameters forced to compilation defaults
        DONE: Handle switch [Active: SIGNAL_LOW]
        DONE: SDI interface has been connected to port 0 [baudrate: 115200]
        DONE: PI interface has been connected to port 1 [baudrate: 115200]
        DONE: SOL interface has been connected to SDI [redirection enabled]
                   
Power configuration:
        DONE: Power sequences configured
                   
Sensor configuration:
        DONE: SDR file initialized
        DONE: Device locator ID "DEVKIT" [SDR #0]
        DONE: ATCA Hotswap sensor [SDR #1]
        DONE: IPMB Sensor [SDR #2]
        DONE: Version change Sensor [SDR #3]
        DONE: Sensor "CERN-IPMC temp." added [SDR #4]
        DONE: Sensor "12V Payload" added [SDR #5]
        DONE: Sensor "FPGA Power Good" added [SDR #6]
---------------------> There are no auto-enable sensors
                   
SDR binary:        
final formula: (100*x + 0E0)E-2
--> Configuration process successfully finished
--> Compile IPMC source code
make: Entering directory '/tmp/comp-SQPQOnCdpY'
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/app/libcompat/libcompat.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/net/libnet.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/hal/libhal.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/lib/lib.a
/usr/local/arm-toolchain/bin/arm-none-eabi-ar: creating ipmc-core/hal/actel/libactel.a
crc32 for the cold data is 0xdc04b417 (12 vars total)
compat_record checksums: 0xc0 0x6a
File name: ipmc-core/hal/firmware.bin  size: 149848
Checksum section offset: 000004
Verify post_sram.c code
File name: ipmc-core/boot/boot.bin  size: 18116
Checksum section offset: 0002A0
Unused firmware flash: 71336
Unused boot loader flash: 6460
Making nvm blocks  
ipmc-core/util/mkhpm1img.c: In function hpm1_create_upgrade_image:
ipmc-core/util/mkhpm1img.c:359:5: warning: strncpy output truncated before terminating nul copying 8 bytes from a string of the same length [-Wstringop-truncation]
  359 |     strncpy((char *)hpm1_image.file_header.signature
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  360 |         HPM1_IMAGE_SIGNATURE
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1fw.img'.
Processing file 'ipmc-core/hal/firmware.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1boot.img'.
Processing file 'ipmc-core/boot/boot.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1fru.img'.
Processing file 'ipmc-config/fru-info.bin'.
File name: ipmc-core/iap/iap.bin  size: 478939
Checksum section offset: 000004
HPM.1 Image Creation Utility. Pentair Technical Products
Creating HPM.1 Upgrade Image 'hpm1iap.img'.
Processing file 'ipmc-core/iap/iap.bin'.
HPM.1 Image Creation Utility. Pentair Technical Products
--> Compilation successfully finished
--> Archive creation successfully finished
--> Process finished
                   

--> Binaries: https://cern-ipmc.web.cern.ch/downloadbin/SQPQOnCdpY
--> Download and extract hpm.1 image 

PICMG HPM.1 Upgrade Agent 1.0.9: 

Validating firmware image integrity...OK
Performing preparation stage...
    Invalid image file for manufacturer 96

    Image Information
        Device Id : 0x12
        Prod   Id : 0x1236
        Manuf  Id : 0x00a12e
    Board Information
        Device Id : 0x12
        Prod   Id : 0x1236
        Manuf  Id : 0x000060
 Continue ignoring DeviceID/ProductID/ManufacturingID (Y/N): 
Services may be affected during upgrade. Do you wish to continue? (y/n): OK

Performing upgrade stage:

-------------------------------------------------------------------------------
|ID  | Name        |                     Versions                        | %  |
|    |             |      Active     |      Backup     |      File       |    |
|----|-------------|-----------------|-----------------|-----------------|----|
|   1|A2F-ATCA BOO |   1.30 00000000 | ---.-- -------- |   1.30 20250521 |100%|
|    |Upload Time: 00:01             | Image Size:   18362 bytes              |
|   0|A2F-ATCA FIR |   1.30 00000000 |   1.30 00000000 |   1.30 20250521 |100%|
|    |Upload Time: 00:01             | Image Size:  150094 bytes              |
|   2|A2F-ATCA FRU |   1.30 00000000 | ---.-- -------- |   1.30 20250521 |100%|
|    |Upload Time: 00:00             | Image Size:     502 bytes              |
-------------------------------------------------------------------------------
(*) Component requires Payload Cold Reset

Firmware upgrade procedure successful


PICMG HPM.1 Upgrade Agent 1.0.9: 

Close Session command failed
[pi@lapp-pi06: ~/SylvainL - 08:28:13] $ ipmitool -I lan -H 192.168.1.34 -U "" -P "" fru -v
Running Get PICMG Properties my_addr 0x20, transit 0, target 0x20
Discovered PICMG Extension Version 2.3
Discovered IPMB address 0x86
FRU Device Description : Builtin FRU Device (ID 0)
 Board Mfg Date        : Tue May 20 00:00:00 2025
 Board Mfg             : LAPP
 Board Product         : DEVKIT
 Board Serial          : 00001
 Board Part Number     : P000000000
 Board FRU ID          : fru-info.inf
 Product Manufacturer  : LAPP
 Product Name          : DEVKIT
 Product Part Number   : PN00001
 Product Version       : v.2.0
 Product Serial        : 0000001
 Product FRU ID        : fru-info.inf
  PICMG Extension Record
    Unknown OEM Extension Record ID: 2f
  PICMG Extension Record
    FRU_CARRIER_INFO
      AMC.0 extension version: R2.0
      Carrier Sie Number Cnt: 0

  PICMG Extension Record
    FRU_AMC_ACTIVATION
      Maximum Internal Current(@12V): 3.00 A [ 36.00 Watt ]
      Module Activation Readiness:    5 sec.
      Descriptor Count: 0

On the console I get:

[20:25:55.816] BMR-A2F Boot Loader v1.3.0 (c) Pentair Technical Products, Inc.
[20:25:55.854] boot_first_time: 00
[20:25:55.855] boot_type: 12
[20:25:55.855] wdt_reset_type: 23
[20:25:55.856] fw_version: 00
[20:25:55.856] wdt_reset_occurred implemented: false 
[20:25:55.858] Backing up active image to external Flash...
[20:25:55.859] Copying firmware from 00006000 to 00300000 size 00028E88

[20:25:56.899] bl_hdr:00000000
[20:25:56.900] fw_version: 00
[20:25:56.900] boot_flag: FA
[20:25:56.900] Active partition is #00
[20:25:56.901] active status:07
[20:25:56.901] wdt_reset_occurred:00
[20:25:56.902] reset_type:23
[20:25:56.903] Firmware address:00006000
[20:25:56.904] Firmware size: 00028E88
[20:25:56.904] Firmware image (END-START = 00040000) - checksum: 00
[20:25:56.992] Active partition succesfully cheked: 07
[20:25:56.993] boot_flag: D2
[20:25:56.993] active status:02
[20:25:56.994] Booting at address #00006000


[20:25:57.584] <_>: BMR-A2F Firmware (v1.3.0), AMC carrier edition.
[20:25:57.612] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.

[20:25:57.613] *** Initializing non-volatile memory:

[20:25:57.614] *** Initialize default NV params: done
[20:25:57.691] *** Programming main FRU Info data: done

[20:25:57.803] *** Finished.
[20:25:57.851] <_>: Reset type: hard, reset cause: power failure
[20:25:57.852] <_>: Perform Power-on-Self Testing.
[20:25:58.139] <_>: Device type: A2F200M3F-CS288
[20:25:58.140] <_>: MSS clock frequency: 80 MHz
[20:25:58.201] <_>: Fabric clock frequency: 20 MHz
[20:25:58.202] <_>: Fast delay calibration: 2665 cycles per 100uS
[20:25:58.203] <_>: FPGA design: BMR-A2F-AMCc, version 4.0.0
[20:25:58.205] <_>: Flash: 256 KB (00000000 - 00040000)
[20:25:58.206] <_>: SRAM: 64 KB (20000000 - 20010000)
[20:25:58.207] <_>: Operating mode: normal
[20:25:58.208] <_>: Hardware address: 0x43
[20:25:58.209] <_>: Setting RTC with the default date
[20:25:58.211] <_>: FRU 0 state: M0->M1, cause = 0
[20:25:58.212] <_>: LAN iface 0: MAC = 0A:0A:0A:0A:0A:86, IP = 192.168.1.34
[20:25:58.214] <_>: AMC # 1: FRU state M0
[20:25:58.215] <_>: AMC # 2: FRU state M0
[20:25:58.217] <_>: AMC # 3: FRU state M0
[20:25:58.217] <_>: AMC # 4: FRU state M0
[20:25:58.233] <_>: AMC # 5: FRU state M0
[20:25:58.249] <_>: AMC # 6: FRU state M0
[20:25:58.249] <_>: AMC # 7: FRU state M0
[20:25:58.265] <_>: AMC # 8: FRU state M0
[20:25:58.323] <_>: RTM: FRU state M0
[20:25:58.324] <_>: reading and parsing Carrier FRU info
[20:25:58.325] <_>:   found a Carrier Information Table
[20:25:58.325] <_>:     registered AMC site # 1
[20:25:58.326] <_>:     registered AMC site # 2
[20:25:58.327] <_>:     registered AMC site # 3
[20:25:58.328] <_>:     registered AMC site # 4
[20:25:58.329] <_>:     registered AMC site # 5
[20:25:58.330] <_>:     registered AMC site # 6
[20:25:58.330] <_>:     registered AMC site # 7
[20:25:58.331] <_>:     registered AMC site # 8
[20:25:58.332] <_>:   found a Carrier Activation & Management record
[20:25:58.333] <_>:     maximum internal power = 10.0A
[20:25:58.334] <_>:     AMC # 1: maximum current = 6.0A
[20:25:58.371] <_>:     AMC # 2: maximum current = 6.0A
[20:25:58.372] <_>:     AMC # 3: maximum current = 6.0A
[20:25:58.373] <_>:     AMC # 4: maximum current = 6.0A
[20:25:58.374] <_>:     AMC # 5: maximum current = 6.0A
[20:25:58.375] <_>:     AMC # 6: maximum current = 6.0A
[20:25:58.376] <_>:     AMC # 7: maximum current = 6.0A
[20:25:58.378] <_>:     AMC # 8: maximum current = 6.0A
[20:25:58.379] <_>:     RTM: maximum current = 6.0A
[20:25:58.380] <_>: LAN iface 0: IP = 192.168.1.34
[20:25:58.531] <_>: AMC # 8: Module has been inserted
[20:25:58.547] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[20:25:58.611] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[20:25:58.675] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[20:25:58.739] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[20:25:58.803] <E> iface_ipmb_send_message_ipmb: i2c NACK 
[20:25:58.851] <L>: IPMB-L error: IPMC 80: no acknowledge
[20:25:59.875] <_>: AMC # 8: reading and parsing FRU info
[20:25:59.909] <_>: AMC # 8:   found a Module Current Requirements record
[20:25:59.910] <_>: AMC # 8:     requested payload current = 5.0A
[20:25:59.911] <_>: AMC # 8: reading, validating and merging Module SDRs
[20:25:59.973] <_>: AMC # 8:   added 2 SDR(s), 1 sensor(s)
[20:26:00.021] <_>: AMC # 8: FRU state M0->M1, cause = 0
[20:26:01.124] <_>: AMC # 8: hot swap handle is closed
[20:26:02.356] <_>: CORE_10100: Link is UP, 100Mb FD
[20:26:35.006] <_>: IPMI session established (session ID = 00000002)
[20:26:35.022] <_>: IPMI session closed (session ID = 00000002)
[20:26:48.924] <_>: IPMI session established (session ID = 00000004)
[20:26:52.475] <_>: IPMI session closed (session ID = 00000004)
[20:26:52.507] <_>: IPMI session established (session ID = 00000006)


[20:26:52.928] BMR-A2F Boot Loader v1.3.0 (c) Pentair Technical Products, Inc.
[20:26:52.930] boot_first_time: 00
[20:26:52.931] boot_type: 12
[20:26:52.931] wdt_reset_type: A3
[20:26:52.932] fw_version: 00
[20:26:52.932] wdt_reset_occurred implemented: false 
[20:26:52.933] bl_hdr:00000000
[20:26:52.934] fw_version: 00
[20:26:52.935] boot_flag: 61
[20:26:52.935] Active partition is #01
[20:26:52.936] active status:01
[20:26:52.937] wdt_reset_occurred:00
[20:26:52.938] reset_type:A3
[20:26:52.938] Firmware address:00340000
[20:26:52.939] Firmware size: 0001E7A8
[20:26:53.021] Updating active image from external flash...
[20:26:53.022] Copying firmware from 00340000 to 00006000 size 0001E7A8

[20:26:59.734] Update finished
[20:26:59.735] Active partition succesfully cheked: 01
[20:26:59.736] boot_flag: 61
[20:26:59.736] active status:01
[20:26:59.737] Booting at address #00006000


[20:27:00.326] <_>: BMR-A2F Firmware (v1.3.0)
[20:27:00.347] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.
[20:27:00.433] <_>: Convert Cold and NV data from the backup firmware format...
[20:27:00.465] <_>: Cold data are converted to new format.
[20:27:00.481] <W> Non volatile parameters have been forced to default 
[20:27:00.513] <_>: Reset type: cold, reset cause: power failure
[20:27:00.535] <I> MAC Address loaded from EEPROM [80:D3:36:00:40:F7] 
[20:27:00.537] <_>: Perform Power-on-Self Testing.
[20:27:00.842] <_>: Device type: A2F200M3F-CS288
[20:27:00.842] <_>: MSS clock frequency: 80 MHz
[20:27:00.843] <_>: Fabric clock frequency: 20 MHz
[20:27:00.844] <_>: Fast delay calibration: 2665 cycles per 100uS
[20:27:00.846] <_>: FPGA design: BMR-A2F-ATCA, version 4.0.0
[20:27:00.847] <_>: Flash: 256 KB (00000000 - 00040000)
[20:27:00.849] <_>: SRAM: 64 KB (20000000 - 20010000)
[20:27:00.850] <_>: Operating mode: normal
[20:27:00.851] <_>: Hardware address: 0x43
[20:27:00.852] <_>: Setting RTC with the default date
[20:27:00.853] <_>: FRU 0 state: M0->M1, cause = 0
[20:27:00.855] <_>: LAN iface 0: MAC = 80:D3:36:00:40:F7, IP = 192.168.1.34
[20:27:00.856] <_>: LAN iface 0: IP = 192.168.1.34
[20:27:00.937] <W> Reboot once to reset non-volatile parameters 


[20:27:01.351] BMR-A2F Boot Loader v1.3.0 (c) Pentair Technical Products, Inc.
[20:27:01.352] boot_first_time: 00
[20:27:01.353] boot_type: 12
[20:27:01.354] wdt_reset_type: 92
[20:27:01.354] fw_version: 00
[20:27:01.355] wdt_reset_occurred implemented: false 
[20:27:01.356] bl_hdr:00000000
[20:27:01.357] fw_version: 00
[20:27:01.357] boot_flag: 67
[20:27:01.358] Active partition is #01
[20:27:01.359] active status:07
[20:27:01.359] wdt_reset_occurred:00
[20:27:01.360] reset_type:92
[20:27:01.361] Firmware address:00006000
[20:27:01.361] Firmware size: 0001E7A8
[20:27:01.362] Firmware image (END-START = 00040000) - checksum: 00
[20:27:01.399] Active partition succesfully cheked: 07
[20:27:01.420] boot_flag: 67
[20:27:01.421] active status:07
[20:27:01.421] Booting at address #00006000


[20:27:02.012] <_>: BMR-A2F Firmware (v1.3.0)
[20:27:02.013] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.
[20:27:02.092] <_>: Reset type: hard, reset cause: power failure
[20:27:02.093] <I> MAC Address loaded from EEPROM [80:D3:36:00:40:F7] 
[20:27:02.095] <_>: Perform Power-on-Self Testing.
[20:27:02.397] <_>: Device type: A2F200M3F-CS288
[20:27:02.398] <_>: MSS clock frequency: 80 MHz
[20:27:02.398] <_>: Fabric clock frequency: 20 MHz
[20:27:02.400] <_>: Fast delay calibration: 2665 cycles per 100uS
[20:27:02.401] <_>: FPGA design: BMR-A2F-ATCA, version 4.0.0
[20:27:02.403] <_>: Flash: 256 KB (00000000 - 00040000)
[20:27:02.404] <_>: SRAM: 64 KB (20000000 - 20010000)
[20:27:02.406] <_>: Operating mode: normal
[20:27:02.407] <_>: Hardware address: 0x43
[20:27:02.408] <_>: Setting RTC with the default date
[20:27:02.409] <_>: FRU 0 state: M0->M1, cause = 0
[20:27:02.410] <_>: LAN iface 0: MAC = 80:D3:36:00:40:F7, IP = 192.168.1.34
[20:27:02.412] <_>: LAN iface 0: IP = 192.168.1.34
[20:27:05.404] <_>: CORE_10100: Link is UP, 100Mb FD
[20:27:32.520] <_>: IPMI session established (session ID = 00000002)
[20:27:32.584] <_>: IPMI session closed (session ID = 00000002)
[20:28:18.016] <_>: IPMI session established (session ID = 00000004)
[20:28:21.343] <_>: IPMI session closed (session ID = 00000004)
[20:28:21.375] <_>: IPMI session established (session ID = 00000006)


[20:28:21.759] BMR-A2F Boot Loader v1.3.0.20250521 (c) Pentair Technical Products, Inc.
[20:28:21.807] boot_first_time: 00
[20:28:21.823] boot_type: 12
[20:28:21.839] wdt_reset_type: A3
[20:28:21.855] fw_version: 00
[20:28:21.856] wdt_reset_occurred implemented: false 
[20:28:21.888] Backing up active image to external Flash...
[20:28:21.935] Copying firmware from 00006000 to 00300000 size 0001E7A8

[20:28:22.911] bl_hdr:00000000
[20:28:22.927] fw_version: 00
[20:28:22.943] boot_flag: FA
[20:28:22.959] Active partition is #00
[20:28:22.975] active status:07
[20:28:22.991] wdt_reset_occurred:00
[20:28:23.007] reset_type:A3
[20:28:23.023] Firmware address:00006000
[20:28:23.039] Firmware size: 0001E7A8
[20:28:23.055] Firmware image (END-START = 00040000) - checksum: 00
[20:28:23.151] Active partition succesfully cheked: 07
[20:28:23.199] boot_flag: FA
[20:28:23.200] active status:07
[20:28:23.215] Booting at address #00006000


[20:28:23.839] <_>: BMR-A2F Firmware (v1.3.0)
[20:28:23.841] <_>: Pentair Technical Products, Inc. (c) Copyright 2004-2016.
[20:28:23.918] <_>: Reset type: hard, reset cause: power failure
[20:28:23.919] <I> MAC Address loaded from EEPROM [80:D3:36:00:40:F7] 
[20:28:23.920] <_>: Perform Power-on-Self Testing.
[20:28:24.223] <_>: Device type: A2F200M3F-CS288
[20:28:24.226] <_>: MSS clock frequency: 80 MHz
[20:28:24.228] <_>: Fabric clock frequency: 20 MHz
[20:28:24.231] <_>: Fast delay calibration: 2665 cycles per 100uS
[20:28:24.236] <_>: FPGA design: BMR-A2F-ATCA, version 4.0.0
[20:28:24.239] <_>: Flash: 256 KB (00000000 - 00040000)
[20:28:24.242] <_>: SRAM: 64 KB (20000000 - 20010000)
[20:28:24.244] <_>: Operating mode: normal
[20:28:24.247] <_>: Hardware address: 0x43
[20:28:24.249] <_>: Setting RTC with the default date
[20:28:24.251] <_>: FRU 0 state: M0->M1, cause = 0
[20:28:24.254] <_>: LAN iface 0: MAC = 80:D3:36:00:40:F7, IP = 192.168.1.34
[20:28:24.258] <_>: LAN iface 0: IP = 192.168.1.34
[20:28:28.222] <_>: CORE_10100: Link is UP, 100Mb FD