This document serves as notice of an issue with the N1SDP PMIC that may potentially lead to system hangs or even damage to components under certain conditions.
In late 2019, Arm identified a number of N1SDP boards experiencing system hangs during 12-hour stress-ng soak tests. Unstable voltage rails were found to be the root cause, and the issue was resolved by tuning the PMIC with a new binary image. All N1SDP boards leaving the factory since the middle of November 2019 have shipped with this new PMIC image.
Unfortunately, we cannot simply update all N1SDP boards with this new PMIC image as boards previously running the original PMIC image are susceptible to component damage if upgraded and will require an RMA to be repaired.
The consequences of this are that:1) boards built before November 2019 should use the original PMIC image to avoid component damage;2) boards built after November 2019 should use the new PMIC image to avoid system hangs.
Arm is developing a solution whereby the MCC firmware automatically detects both:• whether this is a board built before or after November 2019, based on serial number;• which PMIC image is in use.
If a mismatch is detected, a warning message is printed in the console recommending the user to switch PMIC image.
While the next N1SDP release will include the solution described above, unfortunately it was not ready in time for the N1SDP-2020.03.26 release, which only ships with the original PMIC image. This means users with boards built after November 2019 will actually be overwriting the new PMIC image with the original PMIC image when upgrading to the N1SDP-2020.03.26 release, which may lead to system hangs.
In the interim, we have provided instructions below on how to manually update your N1SDP to use the correct PMIC image.
1. Download the attached n1sdp_new_pmic.zip archive
2. Connect a USB-B cable between your host PC and your N1SDP’s DBG USB port
3. Power cycle your N1SDP
4. On the MCC console, press Enter to halt the boot process if prompted
5. On the MCC console, enter the following command to mount your N1SDP’s motherboard storage as a removable drive on your host PC:
6. On your host PC, extract the n1sdp-new-pmic.zip archive onto your N1SDP’s mounted motherboard storage, overwriting existing files:
$ unzip -o n1sdp-new-pmic.zip -d /path/to/N1SDP
7. On your host PC, ensure the writes have been flushed:
8. Power cycle your N1SDP
Following are some example console outputs after updating your N1SDP.
Board built after November 2019, using original PMIC image (pms_0V85.bin):
Powering up system...Switching on ATXPSU...Switching on main power...Reading Board File \MB\HBI0316A\io_v123f.txtWarning: the PMIC image for this board must be updated.Please edit io_vxxxf.txt stored in \MB\HBI0316A\ andSet MBPMIC: to 300k_8c2.bin or laterPress any key to continue... <-- CLI waits here
Board built before November 2019, using new PMIC image (300k_8c2.bin):
Powering up system...Switching on ATXPSU...Switching on main power...Reading Board File \MB\HBI0316A\io_v123f.txtWarning: the PMIC image for this board must be updated.Please edit io_vxxxf.txt stored in \MB\HBI0316A\ andset MBPMIC: to pms_0V85.binPress any key to continue... <-- CLI waits here
Note that a new flag has also been added to config.txt to skip the “Press any key to continue…” step:
PMIC_FORCE: TRUE ;TRUE = Display warning, False = Display warning and wait for key press
It is advised that your follow the guidance provided by the MCC firmware to update the PMIC firmware rather than toggling this PMIC_FORCE flag to skip the warning, unless explicitly recommended to by Arm.