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 EHCI 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.
