HPS Hardware Definitions — Details on obtaining hardware definitions for HPS

Register definitions

The file <cyg/hal/altera_hps.h> can be included from application and eCos package sources to provide definitions related to HPS subsystems. These include base addresses for various devices and register definitions for HPS-specific devices such as the system manager, reset manager, pin multiplexing and GPIO. The registers for various devices, such as QSPI, I²C, Ethernet, and the UARTs are defined in the drivers for those devices. The interrupt controller and system timer are implemented in the Cortex-A HAL. This file will normally be included automatically if <cyg/hal/hal_io.h> is included, which is the preferred way of getting these definitions.

Initialization Helper Macros

The file <cyg/hal/> contains definitions of helper macros which may be used by HPS platform HALs in order to initialize common subsystems without excessive duplication between these platform HALs. Typically this file will be included by the hal_platform_setup.h header in the platform HAL, in turn included from the architectural HAL file vectors.S.

This file is solely intended to be used by platform HALs. At the same time, it is only present to assist initialization, and platform HALs are not obliged to use it if their startup requirements vary. NOTE: At present, the only extant HPS port relies on the Altera preloader to initialize the PLLs and memory controller, so these macros currently largely contain Cortex-A-generic setup only.