hwinfo

Updated: May 06, 2022

Information about the hardware platform (type of bus, devices, IRQs, etc)

The hwinfo area is one of the more complex sections of the QNX Neutrino system page. It is neither a single structure nor an array of the same type of structure. Rather, it is a sequence of symbolically tagged structures that together describe the hardware installed on the board.

The types and constants that make up the hwinfo area are defined in ${BSP_ROOT_DIR}/src/hardware/startup/lib/public/sys/hwinfo.h and other header files in other directories such as ${BSP_ROOT_DIR}/src/hardware/startup/lib/public/hw/ and ${BSP_ROOT_DIR}/src/hardware/startup/lib/ within your BSP. The startup library's init_hwinfo() function populates this area.

Note:

The hwinfo area doesn't need to describe all of the hardware. For instance, the startup program doesn't have to do PCI queries to discover what's been plugged into every slot.

As the startup implementor, you must decide how complete the hwinfo description needs to be. A good rule to start with is that if a component is fixed to your board, you should include its description in the hwinfo area.

Predefined items and tags

The sysinfo.h file defines all predefined items and tags. You can create additional items and tags, but you should limit these to just what's needed for your system.

CAUTION:
  • All items and tags are defined as HWI_TAG_NAME_*, HWI_TAG_ALIGN_*, and struct hwi_*.
  • The tag name of every item structure must start with an uppercase letter.
  • The tag name of any tag that's not an item must start with a lowercase letter.

Device trees

Items in the hwinfo section of the system page are organized into trees that describe the hardware devices on the board. The hierarchy within these trees is as follows:
/hw/bus/devclass/device
The hierarchy levels are:
hw
The root of the hardware tree.
bus
The bus the hardware is on (pci, eisa, etc.; see Bus item).
devclass
The general class of the device (serial, rtc, etc.; see Group item).
device
The actual chip implementing the device (8250, mc146818, etc.; see Device item).