diff options
Diffstat (limited to 'meta-evb/meta-evb-arm/meta-evb-fvp-base/README.md')
-rw-r--r-- | meta-evb/meta-evb-arm/meta-evb-fvp-base/README.md | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/meta-evb/meta-evb-arm/meta-evb-fvp-base/README.md b/meta-evb/meta-evb-arm/meta-evb-fvp-base/README.md new file mode 100644 index 0000000000..135e1a05cd --- /dev/null +++ b/meta-evb/meta-evb-arm/meta-evb-fvp-base/README.md @@ -0,0 +1,62 @@ +# meta-fvp-base + +This layer contains a reference implementation of OpenBMC for Armv-A Base RevC AEM FVP. + +The image can be used for the following demonstration setup +where the Base FVP represents the management controller which is communicating +with the Manageability Control Processor (MCP) over PLDM over MCTP over UART. + +## Diagram + +``` + AP debug console + | ++---------------------+ +| Neoverse RD-N2 FVP | +| | PLDM over ++-----+ +-------+ MCTP over +--------------------------+ +| SCP | | MCP | (terminal_0) ------- UART ----- (terminal_1)| /dev/ttyAMA1 Base FVP |--- redfish ++-----+-------+-------+ +--------------------------+ + | | | + | debug console FVP debug console + | (terminal_uart_mcp) (terminal_0) +debug console +(terminal_uart_scp) +``` + +## Features + +- The MCP exposes a temperature sensor which our image then exposes over redfish + - pldmd should automatically pick up this sensor and expose it on dbus +- The MCP has a PLDM Event which can be retrieved by pldmd upon using ```pldm event``` command from MCP debug console + +## Usage + +1. Start Base FVP with OpenBMC Image + - ```./meta-arm/scripts/runfvp build/fvp/tmp/deploy/images/fvp/obmc-phosphor-image-fvp.fvpconf``` + - The serial /dev/ttyAMA1 will be automatically configured + - pldmd will find ```/usr/share/pldm/host_eid``` which is hardcoded as 18 + - pldmd will start communicating with the MCP once it's ready +2. Start Neoverse RD-N2 FVP + - Can observe SCP FW logs on MCP debug console + - Can enter MCP Debug Prompt by pressing Ctrl+e on MCP debug console +3. Connect the UART's of MCP to Base FVP with + ```socat -x tcp:localhost:6005 tcp:localhost:5065``` + - The port numbers are just examples, they can be hardcoded in fvp config, otherwise the fvp's will assign them dynamically + - ```-x``` tells socat to print the bytes being transferred +4. Query Redfish Sensor and Event + - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Chassis/PLDM_Device_1/Thermal``` + - ```curl --insecure -u root:0penBmc -X GET https://127.0.0.1:4223/redfish/v1/Systems/system/LogServices/PldmEvent/Entries/``` + +## Known Issues +- Because both FVP are running independently, there can be an issue with timeout. + That's why a large timeout was configured for pldmd. + +## References + +- SCP FW for MCP https://gitlab.arm.com/firmware/SCP-firmware +- Base FVP Download https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms +- Neoverse FVP Download https://developer.arm.com/downloads/-/arm-ecosystem-fvps +- PLDM + MCTP Specifications https://www.dmtf.org/standards/pmci +- Neoverse System Architecture https://developer.arm.com/documentation/102759/relc/Hardware-and-topology/System-architecture?lang=en +- Other FVP SW Docs https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/ |