hwinfo
Information about the hardware platform (type of bus, devices, IRQs, etc)
The hwinfo area is one of the more complex sections of the QNX OS 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.
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.
- All items and tags are defined as
HWI_TAG_NAME_*
,HWI_TAG_ALIGN_*
, andstruct 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
/hw/bus/devclass/device
- hw
- The root of the hardware tree.
- bus
- The bus the hardware is on (
pci
,eisa
, etc.; seeBus item
). - devclass
- The general class of the device (
serial
,rtc
, etc.; seeGroup item
). - device
- The actual chip implementing the device (
8250
,mc146818
, etc.; seeDevice item
).