Classes

There are two important classes provided, the AhbCtrl and ApbCtrl classes. These are available in libTEMUAhbCtrl.so and libTEMUApbCtrl.so.

When configuring a non-standard LEON3 / LEON4 based processor, the AHB and APB controllers must be instantiated and connected to devices implementing the plug and play interfaces. For the AhbCtrl class, connections is done using the masters and slaves array properties. For the ApbCtrl class, only the slaves property exist.

@AhbCtrl Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @AhbCtrl

new

Create new instance of AhbCtrl

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

AhbCtrl Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

config.SoCID

uint32_t

SoCID to return at offset 0xff0 if enabled.

config.enableSoCID

uint8_t

Enable SoCID at offset 0xff0.

masters

[temu_IfaceRef; 64]/ <unknown>

AHB master devices.

slaves

[temu_IfaceRef; 64]/ <unknown>

AHB slave devices.

Interfaces

Name Type Description

DeviceIface

DeviceIface

MemAccessIface

MemAccessIface

ObjectIface

ObjectIface

ResetIface

ResetIface

Commands

Name Description

delete

Dispose instance of AhbCtrl

@ApbCtrl Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @ApbCtrl

new

Create new instance of ApbCtrl

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

ApbCtrl Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

pnp.bar

[uint32_t; 4]

pnp.identReg

uint32_t

pnp.userDef

[uint32_t; 3]

slaves

[temu_IfaceRef; 512]/ <unknown>

APB slaves.

Interfaces

Name Type Description

AhbIface

AhbIface

DeviceIface

DeviceIface

MemAccessIface

MemAccessIface

ObjectIface

ObjectIface

ResetIface

ResetIface

Commands

Name Description

delete

Dispose instance of ApbCtrl

@AHB2AHB Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @AHB2AHB

new

Create new instance of AHB2AHB

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

AHB2AHB Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

masterPnp.bar

[uint32_t; 4]

AMBA plug and play base address register

masterPnp.ident

uint32_t

AMBA plug and play config word

masterPnp.user

[uint32_t; 3]

AMBA plug and play user words

slavePnp.bar

[uint32_t; 4]

AMBA plug and play base address register

slavePnp.ident

uint32_t

AMBA plug and play config word

slavePnp.user

[uint32_t; 3]

AMBA plug and play user words

Interfaces

Name Type Description

MasterAhbIface

AhbIface

ResetIface

ResetIface

SlaveAhbIface

AhbIface

Commands

Name Description

delete

Dispose instance of AHB2AHB

@AhbStat Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @AhbStat

new

Create new instance of AhbStat

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

AhbStat Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

config.interrupt

uint8_t

failingAddrReg

uint32_t

irqCtrl

temu_IfaceRef/ <unknown>

Interrupt controller.

pnp.bar

uint32_t

pnp.config

uint32_t

statusReg

uint32_t

Interfaces

Name Type Description

AbsentMemoryIface

MemAccessIface

ApbIface

ApbIface

CorrectableErrorIface

MemAccessIface

DeviceIface

DeviceIface

MemAccessIface

MemAccessIface

ResetIface

ResetIface

UncorrectableErrorIface

MemAccessIface

Commands

Name Description

delete

Dispose instance of AhbStat