Skip to content
README.md 6.14 KiB
Newer Older
Vincent Stehle's avatar
Vincent Stehle committed
# Template Structure for SystemReady IR Compliance Reports
This repo structure is the template for collecting compliance evidence for a
Vincent Stehle's avatar
Vincent Stehle committed
SystemReady IR certification.

(For the ES and SR bands, see the [systemready-es-sr-template].)

[systemready-es-sr-template]: https://gitlab.arm.com/systemready/systemready-es-sr-template
## Verification script
A `check-sr-results.py` verification script is available in the [SystemReady
scripts] repository, which can verify if a directory structure is conforming to
this template.

[SystemReady scripts]: https://gitlab.arm.com/systemready/systemready-scripts

## General Instructions
Vincent Stehle's avatar
Vincent Stehle committed
General instructions for collecting SystemReady IR compliance logs:
Grant Likely's avatar
Grant Likely committed
### `./report.txt`
Fill in with information about the system being certified
Grant Likely's avatar
Grant Likely committed
### `./acs-console.log`
If using serial console, capture a full console log from first power on
until completion of ACS tests. Must include all output from firmware.
Should end at a Linux busybox shell prompt after running FWTS tests.
### `./acs_results/`
Vincent Stehle's avatar
Vincent Stehle committed
Place an entire copy of the `acs_results` partitions, as
Grant Likely's avatar
Grant Likely committed
follows:
Grant Likely's avatar
Grant Likely committed
    /fwts
    /linux
    /linux_dump
    /sct_results
    /uefi
    /uefi_dump

Vincent Stehle's avatar
Vincent Stehle committed
Also include the `result.md` output from running the SCT results parser script
from https://gitlab.arm.com/systemready/edk2-test-parser.
Grant Likely's avatar
Grant Likely committed
### `./manual-results/`

Place any results from manually performed tests in this directory tree.
Manual test results must include both a console log of the commands
executed and the result files (if any) generated by the test.

### `./manual-results/bsa-linux/`

Vincent Stehle's avatar
Vincent Stehle committed
Place any BSA results collected manually from Linux.
Grant Likely's avatar
Grant Likely committed

### `./docs/`
Place any firmware or device documentation, manuals, user guides, build instructions, etc..
Grant Likely's avatar
Grant Likely committed
### `./fw/`
Grant Likely's avatar
Grant Likely committed
#### `./fw/screenshots/`
Place some screenshots showing the FW menus (such as UEFI Setup, BMC
web console, uboot shell)
Grant Likely's avatar
Grant Likely committed
#### `./fw/u-boot-sniff.log`
Run the following commands at U-Boot prompt and attach the logs:
Grant Likely's avatar
Grant Likely committed
    u-boot=> help
    u-boot=> version
    u-boot=> printenv
    u-boot=> printenv -e
    u-boot=> bdinfo
    u-boot=> rtc list
    u-boot=> sf probe
    u-boot=> usb reset
    u-boot=> usb info
    u-boot=> mmc rescan
    u-boot=> mmc list
    u-boot=> mmc info
    u-boot=> efidebug devices
    u-boot=> efidebug drivers
    u-boot=> efidebug dh
    u-boot=> efidebug memmap
    u-boot=> efidebug tables
    u-boot=> efidebug boot dump
    u-boot=> bootefi hello ${fdtcontroladdr}
    u-boot=> bootefi selftest ${fdtcontroladdr}

#### `./fw/uefi-sniff.log`
Run the following commands in UEFI Shell and attach the logs (if not
already done by ACS). The UEFI Shell can be run from the ACS image by
pressing a key at the UEFI timeout prompt before tests begin to
execute.

    Shell> pci
    Shell> drivers
    Shell> devices
    Shell> devtree
    Shell> dmpstore
    Shell> dh -d -v
    Shell> memmap
    Shell> smbiosview
    Shell> CapsuleApp.efi -P
    Shell> CapsuleApp.efi -E

#### `./fw/capsule-update.log`
Demonstrate that `UpdateCapsule()` works by capturing a log of using
CapsuleApp.efi from the UEFI shell to install a different version of
firmware.

Start with a copy of the ACS image on an SD card or USB drive and put
a copy of the firmware capsule into the `BOOT` volume.
Begin capture before releasing board from reset so that the initial
firmware log messages are captured.
Boot the ACS image, choose the default Grub option, and then press a
key to break out of running the ACS tests.
From the UEFI shell, use CapsuleApp.efi to install the new version
of firmware.
CapsuleApp.efi will cause the board to reboot after installing.
The U-Boot console log should now show a different version of firmware.

```
Shell> fs2:\
FS2:\> efi/boot/app/capsuleapp.efi capsule.bin
```

Grant Likely's avatar
Grant Likely committed
### `./os-logs/`

#### `./os-logs/linux-[distroname]-[distroversion]/`
Create a directory for each Linux distro used for testing.

Install the OS to a disk, and boot it.
Collect the installation and OS boot logs and save in single `console.log` text file.
Grant Likely's avatar
Grant Likely committed
The install log must begin when the platform is released from reset and
must include:

- All firmware output
- Output from Linux installer
- Output of reboot into installed OS.
- Output of following commands from Linux shell:

```
dmesg
lspci -vvv
lscpu
lsblk
dmidecode
uname -a
efibootmgr
tar cfz sys-firmware.tar.gz /sys/firmware
```

Copy the resulting `sys-firmware.tar.gz` into the results directory.
Vincent Stehle's avatar
Vincent Stehle committed
## SystemReady IR results example
Vincent Stehle's avatar
Vincent Stehle committed
After collecting the results the directory tree should look like this:

```
.
├── acs-console.log
├── acs_results/
Vincent Stehle's avatar
Vincent Stehle committed
│   ├── result.md
│   ├── app_output/
│   │   ├── CapsuleApp_ESRT_table_info.log
│   │   └── CapsuleApp_FMP_protocol_info.log
│   ├── fwts/
│   │   └── FWTSResults.log
│   ├── linux_dump/
│   │   └── lspci.log
│   ├── sct_results/
│   │   ├── EfiCompliantBBTest/
│   │   │   └── EfiCompliant.ini
│   │   ├── Overall/
│   │   │   ├── Summary.ekl
│   │   │   └── Summary.log
│   │   └── Sequence/
│   │       ├── EBBR_manual.seq
│   │       └── EBBR.seq
│   ├── uefi/
│   │   └── BsaResults.log
│   └── uefi_dump/
│       ├── acpiview_l.log
│       ├── acpiview.log
│       ├── acpiview_r.log
│       ├── bcfg.log
│       ├── devices.log
│       ├── dh.log
│       ├── dmpstore.log
│       ├── drivers.log
│       ├── memmap.log
│       ├── pci.log
│       └── smbiosview.log
├── docs/
├── fw/
│   ├── readme.txt
│   ├── u-boot-sniff.log
│   ├── uefi-sniff.log
│   └── capsule-update.log
├── manual-results/
├── os-logs/
│   ├── linux-distro1-version/
│   │   ├── console.log
│   │   └── sys-firmware.tar.gz
│   ├── linux-distro2-version/
│   │   ├── console.log
│   │   └── sys-firmware.tar.gz
Vincent Stehle's avatar
Vincent Stehle committed
│   └── screenshots/
├── README.md
└── report.txt

Vincent Stehle's avatar
Vincent Stehle committed
17 directories, 28 files