| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| conf/ | H | - | - | 164 | 124 | |
| recipes-bsp/ | H | - | - | 74 | 60 | |
| recipes-connectivity/ssh-pregen-hostkeys/ | H | - | - | 5 | 3 | |
| recipes-extended/rsyslog/ | H | - | - | 152 | 102 | |
| recipes-kernel/linux/ | H | - | - | 202 | 177 | |
| recipes-phosphor/ | H | - | - | 326 | 286 | |
| wic/ | H | - | - | 31 | 28 | |
| README.md | H A D | 25-Apr-2025 | 7.2 KiB | 118 | 99 |
README.md
1# meta-fvp-base 2 3This layer contains a reference implementation of OpenBMC for Armv-A Base RevC AEM FVP. 4 5The diagram below illustrates this setup. The Base FVP represents the management controller. 6The Neoverse FVP represents the server host SoC. 7The management controller communicates with the following components of the server SoC: 8 9- With the Manageability Control Processor (MCP): Using PLDM over MCTP over UART. 10- With the Application Processor (AP): Using IPMI In-band (UART) interface. 11 12## Diagram 13 14 15``` 16 AP debug console 17 | 18 +--------------------------+ +-------------------------+ 19 | Base FVP | | Neoverse RD-V3-R1 FVP | 20 | | | ______________ | 21 | | | | | | 22 SOL--|------------ /dev/ttyAMA3 |------- Host Serial Console ------|----| | | 23 | | (terminal_3) (terminal_ns_uart0) | | | | 24 | | | | AP | | 25 | | | | | | 26 | /dev/ttyAMA2 |--------- IPMI over UART ---------|----| | | 27 | | (terminal_2) (terminal_3) | |______________| | 28 | | | | 29 | | | | 30 | | PLDM over | | 31 | | MCTP over +-------+ +-------+ 32Redfish--| /dev/ttyAMA1 |-------------- UART --------------| | | | 33 | | (terminal_1) (terminal_0) | MCP | | SCP | 34 | /dev/ttyAMA0 | | | | | 35 +--------------------------+ +-------+---------+-------+ 36 | | | 37 FVP debug console | debug console 38 (terminal_0) | (terminal_uart_scp) 39 debug console 40 (terminal_uart_mcp) 41``` 42 43## Features 44 45- 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. 46- The MCP exposes a temperature sensor which our image then exposes over redfish 47 - pldmd should automatically pick up this sensor and expose it on dbus 48- The MCP has a PLDM Event which can be retrieved by pldmd upon using ```pldm event``` command from MCP debug console 49- Host serial console access in BMC (SOL). 50 51## Setup 52 531. Clone the OpenBMC repository and build the FVP 54 ```sh 55 git clone https://github.com/openbmc/openbmc.git 56 cd openbmc 57 58 source setup fvp 59 bitbake obmc-phosphor-image 60 ``` 612. Source the Neoverse Reference Design FVP (RD-V3-R1) from the referenced link below. 62 - Link: https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Infrastructure%20FVPs#v3-r1 633. Extract the ```.tgz``` and store in your local environment. 64 - This binary will be used in step 3, make sure to export this as MODEL before launching the model 654. Navigate to the Neoverse Reference Design Docs and Follow the Getting Started user guide. 66 - Use the platform ```rdv3r1``` 67 - Use the manifest titled ```pinned-rdv3r1-bmc.xml``` 68 - Use the latest release tag of ```RD-INFRA-2025.01.29``` 69 - Follow the Buildroot Boot steps in order to build the software stack and boot the FVP 70 71## Usage 72 731. Start Base FVP with OpenBMC Image 74 - ```./meta-arm/scripts/runfvp build/fvp/tmp/deploy/images/fvp/obmc-phosphor-image-fvp.fvpconf``` 75 - The serial /dev/ttyAMA1 will be automatically configured 76 - pldmd will find ```/usr/share/pldm/host_eid``` which is hardcoded as 18 77 - pldmd will start communicating with the MCP once it's ready 782. Start Neoverse RD-V3-R1 FVP 79 - ```cd model-scripts/rdinfra; ./boot-buildroot.sh -p rdv3r1``` 80 - Can observe SCP FW logs on MCP debug console 81 - Can enter MCP Debug Prompt by pressing Ctrl+e on MCP debug console 823. Connect the UART of MCP to Base FVP with 83 ```socat -x tcp:localhost:5065 tcp:localhost:5165``` 84 - The port numbers are just examples. They can be hardcoded in the FVP config. Otherwise, the FVP will assign them dynamically 85 - ```-x``` tells socat to print the bytes being transferred 864. Connect the UART of AP to Base FVP with 87 ```socat -x tcp:localhost:5066 tcp:localhost:5166``` 88 - The port numbers are just examples. They can be hardcoded in the FVP config. Otherwise, the FVP will assign them dynamically 89 - ```-x``` tells socat to print the bytes being transferred 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 925. Query Redfish Sensor and Event 93 - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Chassis/PLDM_Device_1/Thermal``` 94 - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Systems/system/LogServices/PldmEvent/Entries/``` 95 96### SOL Access 97 981. Connect host console (terminal_ns_uart0) to BMC (terminal_3) with 99 ```socat -x tcp:localhost:5005 tcp:localhost:5067``` 100 - The port numbers are just examples. They can be hardcoded in the FVP config. Otherwise, the FVP will assign them dynamically 101 - ```-x``` tells socat to print the bytes being transferred 1022. In BMC debug console execute following command to update host state as running. 103 - ```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``` 1043. Log-in to BMC webui (Access via ```https://127.0.0.1:4223```). 1054. In the Overview page click the ```SOL console``` button to access host serial console. 106 107## Known Issues 108- Because both FVP are running independently, there can be an issue with timeout. 109 That's why a large timeout was configured for pldmd. 110 111## References 112 113- Neoverse System Architecture https://developer.arm.com/documentation/107734/0002/Technical-overview?lang=en 114- Neoverse Reference SW https://neoverse-reference-design.docs.arm.com/en/latest/features/bmc.html 115- Neoverse FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Infrastructure%20FVPs#v3-r1 116- Base FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms 117- PLDM + MCTP Specifications https://www.dmtf.org/standards/pmci 118