The file <cyg/hal/imx.h> can be included from application and eCos package sources to provide definitions related to IMX subsystems. These include register definitions for the interrupt controller, clock management controller, pin multiplexing, GPIO, UART, timers and watchdog subsystems. Register definitions for some devices are to be found in the appropriate driver packages and only base addresses and configuration definitions are provided here. 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/imx_init.inc> contains definitions of helper macros which may be used by i.MXxx platform HALs in order to initialize common subsystems without excessive duplication between the 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 i.MXxx port relies on either the on-chip boot loader, or the JTAG initialization script, to initialize the PLLs and memory controller, so these macros currently largely contain ARM9-generic setup only.