Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | - | - | ||||
conf/ | H | - | - | 163 | 123 | |
recipes-bsp/ | H | - | - | 74 | 60 | |
recipes-connectivity/ssh-pregen-hostkeys/ | H | - | - | 5 | 3 | |
recipes-kernel/linux/ | H | - | - | 200 | 175 | |
recipes-phosphor/ | H | - | - | 292 | 260 | |
wic/ | H | - | - | 31 | 28 | |
README.md | H A D | 05-Mar-2025 | 5.9 KiB | 101 | 84 |
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 | | | | | | 23 | /dev/ttyAMA2 |--------- IPMI over UART ---------|----| AP | | 24 | | | |______________| | 25 | | | | 26 | | | | 27 | | PLDM over | | 28 | | MCTP over +-------+ +-------+ 29Redfish--| /dev/ttyAMA1 |-------------- UART --------------| MCP | | SCP | 30 +--------------------------+ (terminal_1) (terminal_0) +-------+---------+-------+ 31 | | | 32 FVP debug console | debug console 33 (terminal_0) | (terminal_uart_scp) 34 debug console 35 (terminal_uart_mcp) 36``` 37 38## Features 39 40- 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. 41- The MCP exposes a temperature sensor which our image then exposes over redfish 42 - pldmd should automatically pick up this sensor and expose it on dbus 43- The MCP has a PLDM Event which can be retrieved by pldmd upon using ```pldm event``` command from MCP debug console 44 45## Setup 46 471. Clone the OpenBMC repository and build the FVP 48 ```sh 49 git clone https://github.com/openbmc/openbmc.git 50 cd openbmc 51 52 source setup fvp 53 bitbake obmc-phosphor-image 54 ``` 552. Source the Neoverse Reference Design FVP (RD-V3-R1) from the referenced link below. 56 - Link: https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Infrastructure%20FVPs#v3-r1 573. Extract the ```.tgz``` and store in your local environment. 58 - This binary will be used in step 3, make sure to export this as MODEL before launching the model 594. Navigate to the Neoverse Reference Design Docs and Follow the Getting Started user guide. 60 - Use the platform ```rdv3r1``` 61 - Use the manifest titled ```pinned-rdv3r1-bmc.xml``` 62 - Use the latest release tag of ```RD-INFRA-2025.01.29``` 63 - Follow the Buildroot Boot steps in order to build the software stack and boot the FVP 64 65## Usage 66 671. Start Base FVP with OpenBMC Image 68 - ```./meta-arm/scripts/runfvp build/fvp/tmp/deploy/images/fvp/obmc-phosphor-image-fvp.fvpconf``` 69 - The serial /dev/ttyAMA1 will be automatically configured 70 - pldmd will find ```/usr/share/pldm/host_eid``` which is hardcoded as 18 71 - pldmd will start communicating with the MCP once it's ready 722. Start Neoverse RD-V3-R1 FVP 73 - ```cd model-scripts/rdinfra; ./boot-buildroot.sh -p rdv3r1``` 74 - Can observe SCP FW logs on MCP debug console 75 - Can enter MCP Debug Prompt by pressing Ctrl+e on MCP debug console 763. Connect the UART of MCP to Base FVP with 77 ```socat -x tcp:localhost:5065 tcp:localhost:5165``` 78 - The port numbers are just examples. They can be hardcoded in the FVP config. Otherwise, the FVP will assign them dynamically 79 - ```-x``` tells socat to print the bytes being transferred 804. Connect the UART of AP to Base FVP with 81 ```socat -x tcp:localhost:5066 tcp:localhost:5166``` 82 - The port numbers are just examples. They can be hardcoded in the FVP config. Otherwise, the FVP will assign them dynamically 83 - ```-x``` tells socat to print the bytes being transferred 84 - The AP debug console will show the BMC IP address and subnet mask 85 - During boot, the host sends IPMI commands to get the BMC IP address and subnet mask 865. Query Redfish Sensor and Event 87 - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Chassis/PLDM_Device_1/Thermal``` 88 - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Systems/system/LogServices/PldmEvent/Entries/``` 89 90## Known Issues 91- Because both FVP are running independently, there can be an issue with timeout. 92 That's why a large timeout was configured for pldmd. 93 94## References 95 96- Neoverse System Architecture https://developer.arm.com/documentation/107734/0002/Technical-overview?lang=en 97- Neoverse Reference SW https://neoverse-reference-design.docs.arm.com/en/latest/features/bmc.html 98- Neoverse FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Infrastructure%20FVPs#v3-r1 99- Base FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms 100- PLDM + MCTP Specifications https://www.dmtf.org/standards/pmci 101