System Controller (Syscon)

The System Controller provides a read-only identification and configuration register block. Software can query compile-time SoC parameters at runtime: vendor, platform, product, silicon revision, feature flags, reference clock frequency, and build timestamp.

All registers are constants derived from elaboration-time Parameter values. No write access is defined; bus writes are silently ignored.

Features

  • IP Identification block (header + version at 0x000–0x007)

  • 32-bit identity register: vendor, platform, product, and platform class

  • Independent silicon major/minor revision registers

  • 32-bit feature flag register: bit N set when Feature element with ordinal N is present

  • Reference clock frequency register (Hz)

  • UNIX build timestamp register (seconds since epoch)

  • Supported buses: APB3, TileLink, Wishbone

Parameters

Parameter

Default

Description

vendor

(required)

Vendor identifier (Vendor enum)

platform

(required)

Platform identifier (Platform enum)

platformClass

(required)

Platform class (PlatformClass enum): NonMetal (MCU) or Alkali (MPU)

product

(required)

Product identifier (Product enum)

refClockHz

(required)

Board reference oscillator frequency in Hz

siliconMajor

0

Silicon major revision

siliconMinor

1

Silicon minor revision

features

List()

Feature flags to set in the features register

buildDate

env BUILD_DATE or now

UNIX timestamp (seconds). Read from the BUILD_DATE environment variable if set, otherwise captured at elaboration time

Register Map

Offset

Name

Description

0x000

ip_header

IP Identification header (API, length, IP ID)

0x004

ip_version

IP Identification version (major, minor, patch)

0x008

identity

SoC identity (see below)

0x00C

silicon_major

Silicon major revision

0x010

silicon_minor

Silicon minor revision

0x014

features

Feature flag bitmask

0x018

ref_clock

Reference oscillator frequency (Hz)

0x01C

build_date

Build UNIX timestamp (seconds)

Identity Register (0x008)

Bits

Field

Description

[31:24]

platformClass

Platform class ordinal (0=NonMetal/MCU, 1=Alkali/MPU)

[23:16]

product

Product ordinal (0=ElemRV)

[15:8]

platform

Platform ordinal (0=Hydrogen, 1=Carbon, 2=Nitrogen, 3=Oxygen, 4=Phosphorus, 5=Sulfur)

[7:0]

vendor

Vendor ordinal (0=AescSilicon)

Features Register (0x014)

Bit N is set when the Feature element with ordinal N appears in the features parameter list. The SoC builder populates this list automatically by collecting sysconFeatures from each IP on the bus.

Bit

Feature

Description

0

I2c

I2C controller or device present

1

Spi

SPI controller or device present

2

Uart

UART present

3

Gpio

GPIO present

4

Pio

Programmable I/O present

5

Pwm

PWM present

6

Pinmux

Pin multiplexer present

7

Clock

Clock controller present

8

Esm

Error Signaling Module present

9

Mailbox

Mailbox present

10

Mtimer

Machine-mode timer present

11

Plic

Platform-level interrupt controller present

12

Reset

Reset controller present

13

Semaphore

Hardware semaphore present

14

Watchdog

Watchdog timer present

15

Aes

AES accelerator present

16

Crc

CRC engine present

17

Prng

Pseudo-random number generator present

18

Hyperbus

HyperBus interface present

19

Ocram

On-chip SRAM controller present

20

SpiFlash

SPI flash controller present