Skip to content

Amd poc pr1#1

Open
Kane-Chen-AS wants to merge 2 commits intoaspeed-masterfrom
amd_poc_pr1
Open

Amd poc pr1#1
Kane-Chen-AS wants to merge 2 commits intoaspeed-masterfrom
amd_poc_pr1

Conversation

@Kane-Chen-AS
Copy link
Owner

No description provided.

jamin-aspeed and others added 2 commits August 4, 2025 10:41
… set PFR_MANIFEST

Currently, the default value of PFR_MANIFEST is pfr_manifest_ast2600_dcscm.json.
However, this file does not exist in the meta-ast2700-pfr layer. Additionally, when
users choose to use Cerberus instead of Intel PFR, the build will still attempt to
parse the obmc-pfr-image recipe, even though the target machines set cerberus pfr mode.

This results in the following error during the build process:

```
Unable to get checksum for nativesdk-obmc-pfr-image SRC_URI entry pfr_manifest_ast2600_dcscm.json: file could not be found
```

Solution:
Moving the default value of "PFR_MANIFEST" into each machine-specific ".bbappend" file.
Move the common installation logic from the .bbappend file directly into the .bb recipe to
simplify the build structure and prevent redundant file inclusion.
Refactor the file directory structure: relocate the files/ directory into the recipe-specific path
(e.g., recipes-intel/pfr/obmc-pfr-image/) to follow Yocto best practices for layer and recipe organization.

Remove unsupported AST2700 A0 json file.

Signed-off-by: Jamin Lin <jamin_lin@aspeedtech.com>
Change-Id: I5d72f891fd11dde95226a10a1fbe0392fff7512d
v1: add ast2700_dcscm_amd board
v2: Add ast2700_dcscm_amd_128 board for 128MB layout

Build Command
```
source setup ast2700-dcscm-amd-128
bitbake obmc-phosphor-image
```

Image Path
```
build/ast2700-dcscm-amd-128/tmp/deploy/images/ast2700-dcscm-amd-128/pfr_images
```

Updating the BMC Image with PFR Info
```
1. Upload `image-mtd-pfr` from the image path to BMC `/run/initramfs/`
   and rename it to `image-bmc`.
2. After the image is uploaded, issue `reboot` to update the image.
3. After reboot, the updated image can be used to test the PFR feature.
```

Get PFR Info
```
1. Run `aspeed-pfr-tool -i`
2. Run `aspeed-pfr-tool -s`
```

Provisioning PFR
```
1. Run `aspeed-pfr-tool -p show` to display current settings.
   It should display all `0xff` data if PFR has not been provisioned.
2. Run `flashcp -v /usr/share/cerberus/provision_rootkey.bin /dev/mtd9`
3. Run `aspeed-pfr-tool -w 0x13 0x4`
4. Run `aspeed-pfr-tool -p show` again to verify the provisioning
   status.
```

Update BMC Firmware via PFR
```
1. Upload `obmc_recovery_image.bin` from the image path to BMC `/tmp`
2. Run `flashcp -v /tmp/obmc_recovery_image.bin /dev/mtd8`
3. Run `aspeed-pfr-tool -w 0x13 0x8`.
   The BMC will hang at this stage because PFR holds the BMC reset
   pin (T-1 stage).
4. Once the firmware update is complete, the reset pin will be
   released, and the BMC will boot up again.
```

Recover BMC Firmware (performed via AST1060 console)
```
1. Run `spim set_dev spim@1`
2. Run `spim config extmux 1`
3. Run `flash erase spi1@0 0`
4. Power cycle (AC off/on) the whole system
5. The AST1060 console will display the following messages indicating
   the active image is corrupted:
<inf> aspeed_state_machine: BMC image verification recovery=Good active=Bad
<inf> aspeed_state_machine: PCH image verification recovery=Good active=Good

6. Then, the following messages will appear to indicate that recovery
is in progress:
<dbg> aspeed_state_machine: do_recovery: Start
<inf> pfr: Image Type: BMC
<inf> pfr: Erasing RW region 2720000 - 291ffff
<inf> pfr: Restoring RW region 400000 - 41ffff
<inf> pfr: Firmware recovery completed, elapsed time = 250879 milliseconds
<inf> pfr: Active Updated!!
<inf> pfr: Repair success

7. After recovery is completed, the BMC will boot up automatically.
```

Signed-off-by: Kane-Chen-AS <kane_chen@aspeedtech.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants