Skip to content
README.md 10.7 KiB
Newer Older
# Template Structure for SystemReady ES or SR Compliance Reports
This repo structure is the template for collecting compliance evidence for a SystemReady ES or SR certification.
[systemready-es-sr-template]: https://gitlab.arm.com/systemready/systemready-es-sr-template
Sunny Wang's avatar
Sunny Wang committed
## Prerequisites:
- Check the documents below for basic information:
    - Arm SystemReady Requirements Specification - https://developer.arm.com/documentation/den0109/latest
    - SystemReady ES Test and Certification Guide - https://developer.arm.com/documentation/102529/0100/Test-SystemReady-ES-compliance
Sunny Wang's avatar
Sunny Wang committed
- Flash/update the firmware again to clear UEFI variable store/NVRAM right before running the tests, which will avoid fake failures that are caused by using up the UEFI variable store/NVRAM space.
- It is strongly recommended to flash ACS image to a USB disk enclosure with a fast SSD or SATA drive or a directly attached SATA/NVMe drive instead of USB stick, which would significantly shorten the testing time and will be more stable than using USB stick/flash drive.
    - Running SCT with a USB stick may take more than 10 hours, and may run into some unexpected problem caused by USB HW issue. In the worst case, the USB stick may be bricked becasue of so many writes to the USB stick.
Sunny Wang's avatar
Sunny Wang committed
- Go to UEFI/BIOS setup menu to change your system’s "OS hardware description" option to "ACPI mode". You may find the option in Device Manage > O/S Hardware Description Selection.
- Go to UEFI/BIOS setup menu to move the ACS media device (USB drive) to the top of the boot order.
- Install network cable to all network ports and connect to a DHCP server for network related testing.
## General Instructions
General instructions for collecting SystemReady ES or SR compliance logs:
Grant Likely's avatar
Grant Likely committed
### `./report.txt`
Fill in with information about the system being certified
Sunny Wang's avatar
Sunny Wang committed
### `./acs-auto-results/`
- Place the automation test result (Copy the folders below in acs_results in `RESULT` partitions in ACS USB drive/stick to this acs-auto-results folder):
Sunny Wang's avatar
Sunny Wang committed
```
    /acs_results
        /app_output
        /fwts
        /linux
        /linux_dump
        /sct_results
        /uefi
        /uefi_dump
```
Grant Likely's avatar
Grant Likely committed


### `./manual-results/`
- Place any results from manually performed tests. 
Grant Likely's avatar
Grant Likely committed

### `./manual-results/bsa-linux/`
- If you're running the SR ACS, please rename this folder from 'bsa-linux' to 'sbsa-linux'
- Place any BSA or SBSA results (e.g. serial console log) collected manually from Linux (Linux BusyBox).
- Note that if automation test works fine, you won't need to run manul test and put any file in this folder.
Sunny Wang's avatar
Sunny Wang committed
```
        Complete SBSA Linux results can be collected by running the following commands after booting Linux BusyBox
            insmod /lib/modules/sbsa_acs.ko
Sunny Wang's avatar
Sunny Wang committed
            sbsa
Sunny Wang's avatar
Sunny Wang committed
        You can include verbose output (-v):
            sbsa -l 3 -v 2
Sunny Wang's avatar
Sunny Wang committed
        To skip a specific problematic test, use -skip <testnum>
            sbsa -l 3 -v 2 -skip 413
```
Sunny Wang's avatar
Sunny Wang committed
- Examples for ES ACS
```
        Complete BSA UEFI results can be collected by running the following command after booting Linux BusyBox:
            insmod /lib/modules/bsa_acs.ko
            bsa
Sunny Wang's avatar
Sunny Wang committed
        You can include verbose output (-v):
            bsa -v 1
Sunny Wang's avatar
Sunny Wang committed
        To skip a specific problematic tests, use -skip <testnum>
            bsa -skip 104
Sunny Wang's avatar
Sunny Wang committed
```
Grant Likely's avatar
Grant Likely committed

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

- If you're running the SR ACS, please rename this folder from 'bsa-uefi' to 'sbsa-uefi'
- Place any BSA or SBSA results (e.g. serial console log) collected manually from UEFI Shell.
- Note that if automation test works fine, you won't need to run manul test and put any file in this folder.
Sunny Wang's avatar
Sunny Wang committed
```
        Complete SBSA UEFI results can be collected by running the following commands:
Sunny Wang's avatar
Sunny Wang committed
        You can include verbose output (-v):
Sunny Wang's avatar
Sunny Wang committed
        To skip a specific problematic tests, use -skip <testnum>,<testnum>
            FS1:\EFI\BOOT\bsa\sbsa> sbsa.efi -skip 448,449
Sunny Wang's avatar
Sunny Wang committed
```
Sunny Wang's avatar
Sunny Wang committed
- Examples for ES ACS:
Sunny Wang's avatar
Sunny Wang committed
        Complete BSA UEFI results can be collected by running the following command:
Sunny Wang's avatar
Sunny Wang committed
        You can include verbose output (-v):
Sunny Wang's avatar
Sunny Wang committed
        To skip a specific problematic tests, use -skip <testnum>
Sunny Wang's avatar
Sunny Wang committed
```
Grant Likely's avatar
Grant Likely committed
### `./manual-results/fwts/`
- Place any additional FWTS results collected manually from Linux (Linux BusyBox):
- Note that if automation test works fine, you won't need to run manul test and put any file in this folder.
- Examples:
Sunny Wang's avatar
Sunny Wang committed
```
        Complete SBSA UEFI results can be collected by running the following commands:
            fwts  -r stdout -q --uefi-set-var-multiple=1 --uefi-get-mn-count-multiple=1 --sbbr esrt uefibootpath
Sunny Wang's avatar
Sunny Wang committed

        To skip a specific problematic tests, use --skip-test=<testname>
            fwts -r stdout -q --sbbr --skip-test=dmicheck
            fwts -r stdout -q --sbbr --skip-test=uefirtmisc,uefirtvariable,uefirttime
```

Grant Likely's avatar
Grant Likely committed
### `./manual-results/sct/`
Sunny Wang's avatar
Sunny Wang committed
- Place any additional SCT results collected manually from UEFI shell:
- Note: If automation test works fine, you won't need to run manul test and put any file in this folder.
Sunny Wang's avatar
Sunny Wang committed
- Note: Before manually running SCT, please run "connect -r" in UEFI shell first.
Sunny Wang's avatar
Sunny Wang committed
```
       Complete SCT results can be collected by running the following commands
Sunny Wang's avatar
Sunny Wang committed
       FS1:\EFI\BOOT\bbr\SCT>SCT.efi -s SBBR.seq
Sunny Wang's avatar
Sunny Wang committed
       Specific SCT test's result can be collected by running the following commands to use the Menu-Driven Interface
       For details, please check the section 2.2 in https://github.com/tianocore/edk2-test/blob/master/uefi-sct/Doc/UserGuide/UEFI_SCT_II_UserGuide_2_6_A.pdf
       FS1:\EFI\BOOT\bbr\SCT>SCT.efi -u
Sunny Wang's avatar
Sunny Wang committed

```
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/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.
Sunny Wang's avatar
Sunny Wang committed
```
    Shell> connect -r
Grant Likely's avatar
Grant Likely committed
    Shell> pci
    Shell> drivers
    Shell> devices
    Shell> devtree
    Shell> dh -d -v
Grant Likely's avatar
Grant Likely committed
    Shell> memmap
    Shell> smbiosview
    Shell> acpiview -l
    Shell> acpiview
    Shell> acpiview -r 2
    Shell> acpiview -s DSDT -d  (if DSDT table is present)
    Shell> acpiview -s SSDT -d (if SSDT table is present)
    Shell> bcfg boot dump -v
Sunny Wang's avatar
Sunny Wang committed
    Shell> ifconfig -l
    Shell> ifconfig -s eth0 dhcp (If eth0 still hasn’t get IP, run "connect -r" again)
    Shell> ifconfig -l eth0
    Shell> ping xxx.xxx.xxx.xxx (If don’t know any other system’s IP address, you can get DNS Server's IP address from ifconfig output and ping it)
Grant Likely's avatar
Grant Likely committed
### `./os-logs/`
- Please check ./os_logs/OS_image_download_links.txt to get the latest release for testing
#### `./os-logs/[distroname] [distroversion]/`
- Please rename the subfolders. For example, rename 'linux_distro_1' to 'Fedora Server 35'.
- It is recommended to choose one OS per group below (totally 4 OSes) for certification testing to widely cover all the kernel versions and kernel bases. 
    - Groups of the heritage: RHEL/Fedora/CentOS/AlmaLinux, or SLES/openSUSE, or Ubuntu/Debian, or NetBSD/OpenBSD/FreeBSD.
    - For example, you can choose Fedora, openSUSE, Ubuntu, and FreeBSD for your testing. As for more information about OS reference for specific band or condition, please check ./os_logs/OS_image_download_links.txt. 
    - Moreover, it would be good to test OS as many as possible for showing a better result on Arm SCL web even if the OSes are in the same group.
- Install the OS to a disk, and boot it. (Note that a network controller (PCIe or USB) is needed.)
Sunny Wang's avatar
Sunny Wang 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.
- Run the following commands and attach the logs: (For example, save dmesg messages to dmesg.txt)
   - Note that some commands may not exist on some distros, and you may need to install the command or run an alternative command.
Grant Likely's avatar
Grant Likely committed
```
Sunny Wang's avatar
Sunny Wang committed
    sudo -s                      (Prevent from running into "Permission denied" error)
    dmesg
Sunny Wang's avatar
Sunny Wang committed
    lspci -vvv
Sunny Wang's avatar
Sunny Wang committed
    lscpu
    lsblk
    lsusb
    dmidecode
    uname -a
    cat /etc/os-release
    efibootmgr                  (Check the output message to know the <Timeout value> )
    efibootmgr -t 20
    efibootmgr -t <Timeout value>
    efibootmgr -c
    ifconfig                    (If ifconfig is not supported, use "ip addr show" and "ip link show" instead.)
                                (If network port doesn't get IP address, run "dhclient" or "ip a add <assigned IP address>/255.255.255.0 dev eth<number>" and "ip link set dev eth<number> up")
Sunny Wang's avatar
Sunny Wang committed
    ping -c 5 www.arm.com       (If the system is connected to intranet, please ping another system's IP address)
    Go to /sys/firmware and use "ls -lR" (Or use tree /sys/firmware/)
Sunny Wang's avatar
Sunny Wang committed
```
- Copy the entire content of /sys/firmware and attach zipped/archive file.
   - Note that running "tar -cvzf /<Target folder path>/sys_firmware.tgz /sys/firmware/" may result in corruption. In this case, you can run "cp -r sys/firmware <Target folder path>" and then separately compress the files.
#### `./os-logs/VMware ESXi [version]/`
- Please rename the subfolders. For example, rename 'esxi' to 'VMware ESXi 1.9'
Sunny Wang's avatar
Sunny Wang committed
- Install VMWare ESXi to a disk, and boot it. (Note that a network controller (PCIe or USB) is needed.)
- Collect the installation and OS boot logs and save in a text file. If no serial output log, attach screenshots or video instead.
Sunny Wang's avatar
Sunny Wang committed
- Connect to vSphere web console over network and capture screenshots
- Follow the instruction in https://kb.vmware.com/s/article/2004746 to enable ESXi Shell and SSH.
- Connect ESXi shell through the SSH and Run the following commands and attach the logs:
Grant Likely's avatar
Grant Likely committed
```
Sunny Wang's avatar
Sunny Wang committed
    dmesg
    lspci
    irqinfo
    localcli storage core adapter list
    localcli hardware pci list
    esxcli hardware cpu list
    esxcli hardware usb passthrough device list
    vim-cmd hostsvc/hosthardware
    vmware -v
    reboot -f
Grant Likely's avatar
Grant Likely committed
```

#### `./os-logs/winpe/`
Sunny Wang's avatar
Sunny Wang committed
- Boot WinPE from USB key
- Include screenshots and video of WinPE booting (from FW menu to OS startup, and keyboard working in command prompt)
- Run SAC commands and/or WinPE commands below:
Grant Likely's avatar
Grant Likely committed
```
Sunny Wang's avatar
Sunny Wang committed
    id
    d
    cmd
    ch
    Esc + Tab (Switch channel to command channel (like Cmd0001) for running WinPE commands)
    ver
    Systeminfo (This may not be supported)
Sunny Wang's avatar
Sunny Wang committed
    pnputil/enum-devices
    pnputil/enum-drivers
    Esc + Tab (Switch channel to SAC> for running SAC commands)
    shutdown
Grant Likely's avatar
Grant Likely committed
```