xref: /openbmc/qemu/docs/system/arm/sbsa.rst (revision 669dcb60)
1Arm Server Base System Architecture Reference board (``sbsa-ref``)
2==================================================================
3
4While the ``virt`` board is a generic board platform that doesn't match
5any real hardware the ``sbsa-ref`` board intends to look like real
6hardware. The `Server Base System Architecture
7<https://developer.arm.com/documentation/den0029/latest>`_ defines a
8minimum base line of hardware support and importantly how the firmware
9reports that to any operating system.
10
11It is intended to be a machine for developing firmware and testing
12standards compliance with operating systems.
13
14Supported devices
15"""""""""""""""""
16
17The ``sbsa-ref`` board supports:
18
19  - A configurable number of AArch64 CPUs
20  - GIC version 3
21  - System bus AHCI controller
22  - System bus XHCI controller
23  - CDROM and hard disc on AHCI bus
24  - E1000E ethernet card on PCIe bus
25  - Bochs display adapter on PCIe bus
26  - A generic SBSA watchdog device
27
28
29Board to firmware interface
30"""""""""""""""""""""""""""
31
32``sbsa-ref`` is a static system that reports a very minimal devicetree to the
33firmware for non-discoverable information about system components. This
34includes both internal hardware and parts affected by the qemu command line
35(i.e. CPUs and memory). As a result it must have a firmware specifically built
36to expect a certain hardware layout (as you would in a real machine).
37
38DeviceTree information
39''''''''''''''''''''''
40
41The devicetree provided by the board model to the firmware is not intended
42to be a complete compliant DT. It currently reports:
43
44   - CPUs
45   - memory
46   - platform version
47   - GIC addresses
48
49Platform version
50''''''''''''''''
51
52The platform version is only for informing platform firmware about
53what kind of ``sbsa-ref`` board it is running on. It is neither
54a QEMU versioned machine type nor a reflection of the level of the
55SBSA/SystemReady SR support provided.
56
57The ``machine-version-major`` value is updated when changes breaking
58fw compatibility are introduced. The ``machine-version-minor`` value
59is updated when features are added that don't break fw compatibility.
60
61Platform version changes:
62
630.0
64  Devicetree holds information about CPUs, memory and platform version.
65
660.1
67  GIC information is present in devicetree.
68
690.2
70  GIC ITS information is present in devicetree.
71
720.3
73  The USB controller is an XHCI device, not EHCI
74