we got one of the new devkit boards with the raspberry pi mounted and I’m wondering if we should use this to flash our firmware when we want to prepare a batch of IPMCs.
I’m talking here about custom firmware generated with compile.py and IPMCs which allow to use ipmitool.
Up to now we had two options:
use the old devkit in a stand-alone setup. Since there is no shelf manager it’s really really slow and you don’t want to prepare 20 IPMCs this way
flash the new firmware when the IPMC is installed in a ATCA blade. Works nicely, but isn’t a good solution if one just wants to prepare 20 IPMCs in one go
Therfore my question: can the new devkit be used to flash a hpm1all.img file we got from compile.py ?
of course this can be done using the devkit. Just connect to the IPMC via the Ethernet interface (e.g. from the RPi) and run the ipmitool hpm upgrade command with the .img file you want to program. Let us know if you need have any problems or need more details.
it’s not that easy: the ethernet interface of the IPMC has to be up and you have to know the IP address.
The ethernet interface of our RPi is set to 192.168.1.10. On the 192.168.1.0/24 network I couldn’t find any other device. For me this means: either the brand new IPMC is using another subnet or the interface isn’t up.
For the old devkit I know that I had to apply several commands to get ethernet up, I’ve tried a few actions on the new w/o success.
I’ve also connected the serial console of the IPMC but there is no ip address reported when the IPMC boots.
Right now I’m stuck. We wanted to use the new devkit to flash our firmware to a number of IPMCs to be ready when the next badge of cards arrive but this doesn’t seem to work out
good to hear that it worked!
And thank you for the feedback. We will look into the issue the ttyUSB ports, although I'm not sure we saw this before. However the numbering of the serial ports is not necessarily always the same, we observed this with our ATCA blades. I also agree that the documentation could be improved.
your last message saved my afternoon, thanks a lot for this hint …
I was able to flash 4 IPMCs in a few minutes (and I remember how slow it is w/o this patch)
2 remarks on the new devkit:
- devkit_ctrl does not necessarily find the right serial connection. I had this issue with the old devkit as well. If a second serial USB device is plugged in, devkit_ctrl tends to use the wrong /dev/ttyUSB*. And crashes. I should have tried before to unplug the debug console. W/o the debug console the set_atca_ha command worked and the ethernet interface came up. By the way: the command is: devkit_ctrl -a set_atca_ha -v 0x43 a little bit strange to use the option -v to specify the value
- and this one in the docu: "Note: It is strongly to keep the Ethernet interface configuration as they are, except for expert person." (p.9) is relatively misleading if the configuration doesn’t match the default settings of an IPMC
At the end everything worked, thanks a lot.
And the procedure is simple and fast enough and we are going to use it also for larger batches of IPMCs we have to equip with new firmware
one more remark: I assume you don’t have a shelf manager connected? In this case updating the firmware will be rather slow, since the IPMC will continuously issue errors because of failing IPMB communication. You can avoid this by rebooting the IPMC in stand alone mode (a mode for benchtop testing) by issuing the following ipmitool command:
raw 0x2e 0x0d 0x0a 0x40 0x00 0x02
The IPMC will then reboot and ignore the IPMB until you reset or power cycle it.
Hope this help,
it would be helpful to get the debug console output from the IPMC.
Did you set the hardware address? Without this the IPMC will not start properly. You need to issue the following command on RPi:
devkit_ctrl -a set_atca_ha 0x43
See also here (page 12):
If you are using the preloaded firmware, the IPMC should then be responding to the IP address 192.168.1.34.
Let me know if you still have problems.
Yes, the devkit (I call it IPMC Tester) can be used to upload F/W. You have to log on to the RaspberryPi and then find the right commands….
If you want. I can show you how that works.