summaryrefslogtreecommitdiffstats
path: root/src/build
diff options
context:
space:
mode:
authorMatthew Raybuck <matthew.raybuck@ibm.com>2019-06-20 12:36:59 -0500
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-07-23 13:52:48 -0500
commitf18f9f2d14773dae84a57c9be8dfdbaa665ce799 (patch)
tree64626bf1b01fb73ae15b7ac9c5100d29ad2180ea /src/build
parentc865c731af71ca5218eaedd6707120c90f234213 (diff)
downloadtalos-hostboot-f18f9f2d14773dae84a57c9be8dfdbaa665ce799.tar.gz
talos-hostboot-f18f9f2d14773dae84a57c9be8dfdbaa665ce799.zip
Add BPM firmware update procedure
Adds the necessary code to update the firmware data of the BPM. This commit doesn't support the config data portion of the update. The BPM code hasn't been hooked into the existing NVDIMM code yet either. These things, along with error paths, will be added in future commits. Change-Id: I11aa8b8afda26a093682765e488a4de0e31c0f6c RTC:210367 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/79277 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Roland Veloz <rveloz@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/build')
-rwxr-xr-xsrc/build/buildpnor/buildBpmFlashImages.pl10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/build/buildpnor/buildBpmFlashImages.pl b/src/build/buildpnor/buildBpmFlashImages.pl
index d2449031d..28e0e2b70 100755
--- a/src/build/buildpnor/buildBpmFlashImages.pl
+++ b/src/build/buildpnor/buildBpmFlashImages.pl
@@ -145,6 +145,8 @@ sub generateFirmwareImage
# The address offsets in the file are prefixed with the @ symbol.
use constant ADDRESS_LINE => "\@";
+ use constant FW_START_ADDRESS_8000 => "\@8000";
+ use constant FW_START_ADDRESS_A000 => "\@A000";
# Each line is plain text where each byte is separated by spaces.
# To determine how many bytes are on the line divide by characters per byte
@@ -173,8 +175,9 @@ sub generateFirmwareImage
last;
}
- # Ignore data from addresses below @8000 because the firmware data
- # only begins from @8000 onward.
+ # There are two possible addresses where the firmware data section can
+ # start: @8000 or @A000. Ignore all data until we reach either of those
+ # addresses since it's only after that, that the firmware data begins.
if (substr($line, 0, 1) eq ADDRESS_LINE)
{
$currentAddress = hex substr($line, 1, 4);
@@ -183,7 +186,8 @@ sub generateFirmwareImage
printf("Found address offset: 0x%04x\n", $currentAddress);
}
- if ($line eq "\@8000")
+ if ( ($line eq FW_START_ADDRESS_8000)
+ || ($line eq FW_START_ADDRESS_A000))
{
$inFirmwareSection = 1;
}
OpenPOWER on IntegriCloud