ASSP Kernel Extension Overview

This document provides information about the ASSP kernel extension template.

Purpose

The template builds a kernel extension that contains chip specific code.

Library details

The template DLL is identified below.

DLL LIB Short description

katemplate.dll

None

A template for the ASSP part of the baseport.

Description

The kernel can be compiled for various CPUs. For example, ARM9, ARM11 etc. Depending on which CPU the kernel is compiled for it interacts with the hardware in slightly different ways. The kernel relies on the ASSP layer to deal with the differences between the properties of the chip like:

  • interrupt controllers

  • extra register locations

  • GPIOs

  • DMA controllers

  • timers and counters.

The ASSP extension also usually contains the details of the register addresses for one serial port to support debug output. The ASSP usually has functions for accessing registers as this can be non-trivial.

All of these properties are built into the chip on a board together with the arm core. Some of these properties are mandatory. For example, the kernel needs access to at least one timer through the ASSP for the kernel tick.

Note: the ASSP extension does not contain any of the drivers for peripherals like MMC, serial port etc.

Using ASSP kernel extension template

The DLL is made up of these template files:

  • template_assp.cpp

  • interrupts.cpp

  • assp.cpp

  • register.cpp

  • template_assp.cia

  • interrupts.cia

  • assp.cia.

These can be found in the directory template\template_assp\.

The source files in the template_assp folder are quite well commented and should provide ample information on usage.

Related concepts
ASSP/Variant Tutorials
Related information
ASSP/Variant Architecture