Skip to content

The Register Access Layer

  • Included in OS: Yes

The Register Access Layer is code-generated from .yaml register definition files using Corsair.

The register definition files are located in directory registers/definitions.

The generated C/C++ register access header files are located in directory registers/generated.

The template used to generate the C/C++ register access header files can be found here:

registers/generators/c_header_nocstd.j2

Also the Register Map documentation section is generated from the register definition files.

The DFX Controller Register Interface

Due to a limitation of the Corsair tool, the DFX Controller register interface is split across two header files, dfx_controller_ctrl_reg.h and dfx_controller_other_regs.h. The write-only Control register and the read-only Status register are located at the same address. Corsair doesn't support two register definitions at the same address. The workaround is to define the two registers in separate files.

The LiteDRAM Register Access Layer

The LiteDRAM Register Access Layer is generated by the LiteDRAM generator, not by Corsair. The register header files are located in directory <build_dir>/codegen/litedram/sw/include.