xref: /openbmc/qemu/docs/system/arm/sbsa.rst (revision c85cad81)
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 EHCI 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
49The platform version is only for informing platform firmware about
50what kind of ``sbsa-ref`` board it is running on. It is neither
51a QEMU versioned machine type nor a reflection of the level of the
52SBSA/SystemReady SR support provided.
53
54The ``machine-version-major`` value is updated when changes breaking
55fw compatibility are introduced. The ``machine-version-minor`` value
56is updated when features are added that don't break fw compatibility.
57