62c2b8760b
The current sbsa-ref cannot use EHCI controller which is only able to do 32-bit DMA, since sbsa-ref doesn't have RAM below 4GB. Hence, this uses XHCI to provide a usb controller with 64-bit DMA capablity instead of EHCI. We bump the platform version to 0.3 with this change. Although the hardware at the USB controller address changes, the firmware and Linux can both cope with this -- on an older non-XHCI-aware firmware/kernel setup the probe routine simply fails and the guest proceeds without any USB. (This isn't a loss of functionality, because the old USB controller never worked in the first place.) So we can call this a backwards-compatible change and only bump the minor version. Signed-off-by: Yuquan Wang <wangyuquan1236@phytium.com.cn> Message-id: 20230621103847.447508-2-wangyuquan1236@phytium.com.cn [PMM: tweaked commit message; add line to docs about what changes in platform version 0.3] Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
74 lines
2.3 KiB
ReStructuredText
74 lines
2.3 KiB
ReStructuredText
Arm Server Base System Architecture Reference board (``sbsa-ref``)
|
|
==================================================================
|
|
|
|
While the ``virt`` board is a generic board platform that doesn't match
|
|
any real hardware the ``sbsa-ref`` board intends to look like real
|
|
hardware. The `Server Base System Architecture
|
|
<https://developer.arm.com/documentation/den0029/latest>`_ defines a
|
|
minimum base line of hardware support and importantly how the firmware
|
|
reports that to any operating system.
|
|
|
|
It is intended to be a machine for developing firmware and testing
|
|
standards compliance with operating systems.
|
|
|
|
Supported devices
|
|
"""""""""""""""""
|
|
|
|
The ``sbsa-ref`` board supports:
|
|
|
|
- A configurable number of AArch64 CPUs
|
|
- GIC version 3
|
|
- System bus AHCI controller
|
|
- System bus XHCI controller
|
|
- CDROM and hard disc on AHCI bus
|
|
- E1000E ethernet card on PCIe bus
|
|
- Bochs display adapter on PCIe bus
|
|
- A generic SBSA watchdog device
|
|
|
|
|
|
Board to firmware interface
|
|
"""""""""""""""""""""""""""
|
|
|
|
``sbsa-ref`` is a static system that reports a very minimal devicetree to the
|
|
firmware for non-discoverable information about system components. This
|
|
includes both internal hardware and parts affected by the qemu command line
|
|
(i.e. CPUs and memory). As a result it must have a firmware specifically built
|
|
to expect a certain hardware layout (as you would in a real machine).
|
|
|
|
DeviceTree information
|
|
''''''''''''''''''''''
|
|
|
|
The devicetree provided by the board model to the firmware is not intended
|
|
to be a complete compliant DT. It currently reports:
|
|
|
|
- CPUs
|
|
- memory
|
|
- platform version
|
|
- GIC addresses
|
|
|
|
Platform version
|
|
''''''''''''''''
|
|
|
|
The platform version is only for informing platform firmware about
|
|
what kind of ``sbsa-ref`` board it is running on. It is neither
|
|
a QEMU versioned machine type nor a reflection of the level of the
|
|
SBSA/SystemReady SR support provided.
|
|
|
|
The ``machine-version-major`` value is updated when changes breaking
|
|
fw compatibility are introduced. The ``machine-version-minor`` value
|
|
is updated when features are added that don't break fw compatibility.
|
|
|
|
Platform version changes:
|
|
|
|
0.0
|
|
Devicetree holds information about CPUs, memory and platform version.
|
|
|
|
0.1
|
|
GIC information is present in devicetree.
|
|
|
|
0.2
|
|
GIC ITS information is present in devicetree.
|
|
|
|
0.3
|
|
The USB controller is an XHCI device, not EHCI
|