Name Date Size #Lines LOC

..--

conf/H--163123

recipes-bsp/H--7460

recipes-connectivity/ssh-pregen-hostkeys/H--53

recipes-kernel/linux/H--200175

recipes-phosphor/H--292260

wic/H--3128

README.mdH A D05-Mar-20255.9 KiB10184

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