| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| conf/ | H | - | - | 169 | 127 | |
| recipes-bsp/ | H | - | - | 74 | 60 | |
| recipes-connectivity/ssh-pregen-hostkeys/ | H | - | - | 5 | 3 | |
| recipes-extended/rsyslog/ | H | - | - | 145 | 99 | |
| recipes-kernel/linux/ | H | - | - | 202 | 177 | |
| recipes-phosphor/ | H | - | - | 326 | 286 | |
| wic/ | H | - | - | 31 | 28 | |
| README.md | H A D | 29-Jul-2025 | 7.4 KiB | 123 | 101 |
README.md
1# meta-evb-fvp-base 2 3This layer contains a reference implementation of OpenBMC for Armv-A Base RevC AEM FVP. FVPs (Fixed Virtual Platforms) are a complete simulations of an ARM system, including processor, memory and peripherals. 4 5## Diagram 6 7The diagram below illustrates this setup. 8- The Neoverse FVP represents the server host SoC. 9- The Base FVP represents the management controller. 10- The management controller communicates with the following components of the server SoC: 11 - With the Manageability Control Processor (MCP): Using PLDM over MCTP over UART. 12 - With the Application Processor (AP): Using IPMI In-band (UART) interface. 13 14``` 15 AP debug console 16 | 17 +--------------------------+ +-------------------------+ 18 | Base FVP | | Neoverse RD-V3-R1 FVP | 19 | | | ______________ | 20 | | | | | | 21 SOL--|------------ /dev/ttyAMA3 |------- Host Serial Console ------|----| | | 22 | | (terminal_3) (terminal_ns_uart0) | | | | 23 | | | | AP | | 24 | | | | | | 25 | /dev/ttyAMA2 |--------- IPMI over UART ---------|----| | | 26 | | (terminal_2) (terminal_3) | |______________| | 27 | | | | 28 | | | | 29 | | PLDM over | | 30 | | MCTP over +-------+ +-------+ 31Redfish--| /dev/ttyAMA1 |-------------- UART --------------| | | | 32 | | (terminal_1) (terminal_2) | MCP | | SCP | 33 | /dev/ttyAMA0 | | | | | 34 +--------------------------+ +-------+---------+-------+ 35 | | | 36 FVP debug console | debug console 37 (terminal_0) | (terminal_uart_scp) 38 debug console 39 (terminal_uart_mcp) 40``` 41 42## Features 43 44- The IPMI in-band interface runs over a UART connection between the AP and the BMC, and can be accessed in UEFI as well as the OS. 45- The MCP exposes a temperature sensor which our image then exposes over redfish 46 - pldmd should automatically pick up this sensor and expose it on dbus 47- The MCP has a PLDM Event which can be retrieved by pldmd upon using ```pldm event``` command from MCP debug console 48- Host serial console access in BMC (SOL). 49 50## Setup 51 521. Clone the OpenBMC repository and build the FVP 53 ```sh 54 git clone https://github.com/openbmc/openbmc.git 55 cd openbmc 56 57 source setup fvp 58 bitbake obmc-phosphor-image 59 ``` 602. Source the Neoverse Reference Design FVP (RD-V3-R1) from the referenced link below. 61 - Link: https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Infrastructure%20FVPs#v3-r1 623. Extract the ```.tgz``` and store in your local environment. 63 - Make sure to export this as MODEL before launching the model, ```export MODEL=<absolute path to the platform FVP binary> 644. Navigate to the Neoverse Reference Design Docs and Follow the Getting Started user guide. 65 - Use the platform ```rdv3r1``` 66 - Use the manifest titled ```pinned-rdv3r1-bmc.xml``` 67 - Use the latest release tag of ```RD-INFRA-2025.01.29``` 68 - Follow the Buildroot Boot steps in order to build the software stack and boot the FVP 69 70## Usage 71 721. Start Base FVP with OpenBMC Image 73 - ```./meta-arm/scripts/runfvp build/fvp/tmp/deploy/images/fvp/obmc-phosphor-image-fvp.fvpconf``` 74 - The serial /dev/ttyAMA1 will be automatically configured 75 - pldmd will find ```/usr/share/pldm/host_eid``` which is hardcoded as 18 76 - pldmd will start communicating with the MCP once it's ready 772. Start Neoverse RD-V3-R1 FVP 78 - ```cd model-scripts/rdinfra; ./boot-buildroot.sh -p rdv3r1``` 79 - Can observe SCP FW logs on MCP debug console 80 - Can enter MCP Debug Prompt by pressing Ctrl+e on MCP debug console 813. Connect the UART of Neoverse FVP to Base FVP with `socat` command as required. 82 - The port numbers mentioned in this document (for the `socat` command) are just examples. 83 - They can be hardcoded in the FVP config. Otherwise, the FVP will assign them dynamically. 84 - The `-x` option tells `socat` to print the bytes being transferred 85 86### In-band Communication Channel (IPMI) 87 881. Connect the UART of AP (terminal_3) to Base FVP (terminal_2) with 89 - ```socat -x tcp:localhost:5066 tcp:localhost:5166``` 90 - The AP debug console will show the BMC IP address and subnet mask 91 - During boot, the host sends IPMI commands to get the BMC IP address and subnet mask 92 93### Side-band Communication Channel (PLDM) 94 951. Connect the UART of MCP (terminal_2) to Base FVP (terminal_1) with 96 - ```socat -x tcp:localhost:5065 tcp:localhost:5165``` 972. In BMC debug console execute the following command to restart MCTP discovery process 98 - ```systemctl restart mctpd.service``` 993. Query Redfish Sensor and Event 100 - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Chassis/SatMC/Thermal``` 101 - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Managers/bmc/LogServices/FaultLog/Entries/``` 102 103### Out-of-band Communication Channel (SOL) 104 1051. Connect host console (terminal_ns_uart0) to BMC (terminal_3) with 106 - ```socat -x tcp:localhost:5005 tcp:localhost:5067``` 1072. In BMC debug console execute following command to update host state as running. 108 - ```busctl set-property xyz.openbmc_project.State.Host /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Host CurrentHostState s xyz.openbmc_project.State.Host.HostState.Running``` 1093. Log-in to BMC webui (Access via ```https://127.0.0.1:4223```). 1104. In the Overview page click the ```SOL console``` button to access host serial console. 111 112## Known Issues 113 114- Because both FVP are running independently, there can be an issue with timeout. That's why a large timeout was configured for pldmd. 115 116## References 117 118- Neoverse System Architecture https://developer.arm.com/documentation/107734/0002/Technical-overview?lang=en 119- Neoverse Reference SW https://neoverse-reference-design.docs.arm.com/en/latest/features/bmc.html 120- Neoverse FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Infrastructure%20FVPs#v3-r1 121- Base FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms 122- PLDM + MCTP Specifications https://www.dmtf.org/standards/pmci 123