GRLIB GRIOMMU Model

The GRIOMMU model is available in the GrIoMmu plugin.

Loading the Plugin

import GrIoMmu

Configuration

The model should be attached in two directions:

Firstly, IO-devices need to have their memory access interface references routed through the IOMMU. To do this, connect the memory access iface ref in the device to IOMMUAccessIface in the IOMMU.

Secondly, the IOMMU needs to get access to the device’s AMBA PNP info. The info is used to populate the MasterConfig registers. To set the PNP info, attach it to the devicePnp array.

The IOMMUAccessIface and devicePnp array assumes that the same device indexes are used. Not connecting devices the correct way is undefined behaviour.

Connecting the GRIOMMU
// Connect command
connect a=iommu.devicePnp[0] b=device:ApbIface (1)
connect a=device.mem b=iommu:IOMMUAccessIface[0] (2)

// Or with assigmment syntax
iommu.devicePnp[0] = device:ApbIface (1)
device.mem = iommu:IOMMUAccessIface[0] (2)
1 Index should match index on next line.
2 Index should match index on previous line.

@GRIOMMU Reference

Properties

Name Type Description

Class

*void

Class object

Component

*void

Pointer to component object if part of component

LocalName

*char

Local name (in component, if applicable)

LogMessageFlags

uint64_t

Per-object log message suppression flags

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

ObjectID

uint64_t

Unique ObjectID.

ReplayLoggingFlags

uint64_t

Replay-time category logging flags

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @GRIOMMU

new

Create new instance of GRIOMMU

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

GRIOMMU Reference

Properties

Name Type Description

AHBFASColdResetValue

uint32_t

AHB failing access register

AHBFASForcedBits

uint32_t

AHB failing access register

AHBFASForcedFlippedBits

uint32_t

AHB failing access register

AHBFASReadMask

uint32_t

AHB failing access register

AHBFASResetMask

uint32_t

AHB failing access register

AHBFASResetValue

uint32_t

AHB failing access register

AHBFASWriteMask

uint32_t

AHB failing access register

CTRLColdResetValue

uint32_t

Control register

CTRLForcedBits

uint32_t

Control register

CTRLForcedFlippedBits

uint32_t

Control register

CTRLReadMask

uint32_t

Control register

CTRLResetMask

uint32_t

Control register

CTRLResetValue

uint32_t

Control register

CTRLWriteMask

uint32_t

Control register

Class

*void

Class object

Component

*void

Pointer to component object if part of component

DERRIColdResetValue

uint32_t

Data RAM error injection register

DERRIForcedBits

uint32_t

Data RAM error injection register

DERRIForcedFlippedBits

uint32_t

Data RAM error injection register

DERRIReadMask

uint32_t

Data RAM error injection register

DERRIResetMask

uint32_t

Data RAM error injection register

DERRIResetValue

uint32_t

Data RAM error injection register

DERRIWriteMask

uint32_t

Data RAM error injection register

DIAGCTRLColdResetValue

uint32_t

Diagnostic cache access register

DIAGCTRLForcedBits

uint32_t

Diagnostic cache access register

DIAGCTRLForcedFlippedBits

uint32_t

Diagnostic cache access register

DIAGCTRLReadMask

uint32_t

Diagnostic cache access register

DIAGCTRLResetMask

uint32_t

Diagnostic cache access register

DIAGCTRLResetValue

uint32_t

Diagnostic cache access register

DIAGCTRLWriteMask

uint32_t

Diagnostic cache access register

DIAGTColdResetValue

uint32_t

Diagnostic cache access tag register

DIAGTForcedBits

uint32_t

Diagnostic cache access tag register

DIAGTForcedFlippedBits

uint32_t

Diagnostic cache access tag register

DIAGTReadMask

uint32_t

Diagnostic cache access tag register

DIAGTResetMask

uint32_t

Diagnostic cache access tag register

DIAGTResetValue

uint32_t

Diagnostic cache access tag register

DIAGTWriteMask

uint32_t

Diagnostic cache access tag register

FLUSHColdResetValue

uint32_t

TLB/cache flush register

FLUSHForcedBits

uint32_t

TLB/cache flush register

FLUSHForcedFlippedBits

uint32_t

TLB/cache flush register

FLUSHReadMask

uint32_t

TLB/cache flush register

FLUSHResetMask

uint32_t

TLB/cache flush register

FLUSHResetValue

uint32_t

TLB/cache flush register

FLUSHWriteMask

uint32_t

TLB/cache flush register

IMASKColdResetValue

uint32_t

Interrupt mask register

IMASKForcedBits

uint32_t

Interrupt mask register

IMASKForcedFlippedBits

uint32_t

Interrupt mask register

IMASKReadMask

uint32_t

Interrupt mask register

IMASKResetMask

uint32_t

Interrupt mask register

IMASKResetValue

uint32_t

Interrupt mask register

IMASKWriteMask

uint32_t

Interrupt mask register

LocalName

*char

Local name (in component, if applicable)

LogMessageFlags

uint64_t

Per-object log message suppression flags

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

ObjectID

uint64_t

Unique ObjectID.

ReplayLoggingFlags

uint64_t

Replay-time category logging flags

STATUSColdResetValue

uint32_t

Status register

STATUSForcedBits

uint32_t

Status register

STATUSForcedFlippedBits

uint32_t

Status register

STATUSReadMask

uint32_t

Status register

STATUSResetMask

uint32_t

Status register

STATUSResetValue

uint32_t

Status register

STATUSWriteMask

uint32_t

Status register

TERRIColdResetValue

uint32_t

Tag RAM error injection register

TERRIForcedBits

uint32_t

Tag RAM error injection register

TERRIForcedFlippedBits

uint32_t

Tag RAM error injection register

TERRIReadMask

uint32_t

Tag RAM error injection register

TERRIResetMask

uint32_t

Tag RAM error injection register

TERRIResetValue

uint32_t

Tag RAM error injection register

TERRIWriteMask

uint32_t

Tag RAM error injection register

TimeSource

*void

Time source object

abhFailingAccess

uint32_t

AHB failing access register

asmpAccessControl

[uint32_t; 4]

ASMP access control register

capbility

[uint32_t; 3]

Capability register

config.interrupt

uint8_t

Interrupt number

config.littleEndian

uint8_t

Endianess of memory interface.

control

uint32_t

Control register

dataRamErrorInjection

uint32_t

Data RAM error injection register

devicePnp

[temu_IfaceRef; 16]/ <unknown>

Devices under IOMMU control

diagnosticCacheAccess

uint32_t

Diagnostic cache access register

diagnosticCacheAccessData

[uint32_t; 8]

Diagnostic cache access data register

diagnosticCacheAccessTag

uint32_t

Diagnostic cache access tag register

groupConfig

[uint32_t; 16]

Group control register

irq

temu_IfaceRef/ <unknown>

ASMP access control register

irqMask

uint32_t

Interrupt mask register

masterConfig

[uint32_t; 16]

Master configuration register

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

mem

temu_IfaceRef/ <unknown>

Main memory bus

secondaryMasterPnp.bar

[uint32_t; 4]

AMBA plug and play base address register

secondaryMasterPnp.ident

uint32_t

AMBA plug and play config word

secondaryMasterPnp.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

status

uint32_t

Status register

tagRamErrorInjection

uint32_t

Tag RAM error injection register

tlbCacheFlush

uint32_t

TLB/cache flush register

Interfaces

Name Type Description

DeviceIface

DeviceIface

IOMMUAccessIface

MemAccessIface

IOMMU memory access interfaces

MasterAhbIface

AhbIface

Master AHB interfaces

MemAccessIface

MemAccessIface

RegisterIface

temu::RegisterIface

Auto-generated Register Interface Impl.

ResetIface

ResetIface

SlaveAhbIface

AhbIface

Registers

Register support is currently experimental!

Register Bank Regs

Register CTRL
Description

Control register

Reset value

0x00000000

Warm reset mask

0x001fffff

Diagram
Field Mask Reset Description

PGSZ

0x001c0000

0x0

Page size

LB

0x00020000

0x0

Lookup bus

SP

0x00010000

0x0

SPLIT support

ITR

0x0000f000

0x0

IOMMU translation range

DP

0x00000800

0x0

Disable prefetch

SIV

0x00000400

0x0

Save invalid IOPTE

HPROT

0x00000300

0x0

HPROT encoding

AU

0x00000080

0x0

Always update

WP

0x00000040

0x0

Write protection only

DM

0x00000020

0x0

Diagnostic mode

GS

0x00000010

0x0

Group-set-addressing

CE

0x00000008

0x0

Cache/TLB enable

PM

0x00000006

0x0

Protection mode

EN

0x00000001

0x0

Enable

Register FLUSH
Description

TLB/cache flush register

Reset value

0x00000000

Warm reset mask

0x000000f3

Diagram
Field Mask Reset Description

FGRP

0x000000f0

0x0

Flush group

GF

0x00000002

0x0

Group flush

F

0x00000001

0x0

Flush

Register STATUS
Description

Status register

Reset value

0x00000000

Warm reset mask

0x00000000

Diagram
Field Mask Reset Description

PE

0x00000020

-

Parity error

DE

0x00000010

-

Diagnostic mode enabled

FC

0x00000008

-

Flush completed

FL

0x00000004

-

Flush started

AD

0x00000002

-

Access denied

TE

0x00000001

-

Translation error

Register IMASK
Description

Interrupt mask register

Reset value

0x00000000

Warm reset mask

0x0000002f

Diagram
Field Mask Reset Description

PEI

0x00000020

0x0

Parity error interrupt

FCI

0x00000008

0x0

Flush completed interrupt

FLI

0x00000004

0x0

Flush started interrupt

ADI

0x00000002

0x0

Access denied interrupt

TEI

0x00000001

0x0

Translation error interrupt

Register AHBFAS
Description

AHB failing access register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

FADDR

0xffffffe0

0x0

Failing address

FW

0x00000010

0x0

Failing write

FMASTER

0x0000000f

0x0

Failing master

Register DIAGCTRL
Description

Diagnostic cache access register

Reset value

0x00000000

Warm reset mask

0xc037ffff

Diagram
Field Mask Reset Description

DA

0x80000000

0x0

Diagnostic access

RW

0x40000000

0x0

Read/write

DP

0x00200000

0x0

Data parity error

TP

0x00100000

0x0

Tag parity error

SETADDR

0x0007ffff

0x0

Cache set address

Register DIAGT
Description

Diagnostic cache access tag register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

TAG

0xfffffffe

0x0

Cache tag

V

0x00000001

0x0

Valid

Register DERRI
Description

Data RAM error injection register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

DPERRINJ

0xffffffff

0x0

Data RAM parity error injection

Register TERRI
Description

Tag RAM error injection register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

TPERRINJ

0xffffffff

0x0

Tag RAM parity error injection

Register CAP
Description

Capability register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

VALUE

0xffffffff

0x0

Capability register value

Register CAP
Description

Capability register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

VALUE

0xffffffff

0x0

Capability register value

Register CAP
Description

Capability register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

VALUE

0xffffffff

0x0

Capability register value

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register MSTCFG
Description

Master configuration register

Reset value

0x00000000

Warm reset mask

0xfffff01f

Diagram
Field Mask Reset Description

VENDOR

0xff000000

0x0

GRLIB plug and play vendor ID

DEVICE

0x00fff000

0x0

GRLIB plug and play device ID

BS

0x00000010

0x0

Bus select for master

GROUP

0x0000000f

0x0

Group assignment for master

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register GRPCTRL
Description

Group control register

Reset value

0x00000000

Warm reset mask

0xfffffff3

Diagram
Field Mask Reset Description

BASE

0xfffffff0

0x0

Base address

P

0x00000002

0x0

Pass-through

AG

0x00000001

0x0

Active group

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register DIAGD
Description

Diagnostic cache access data register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

CDATA

0xffffffff

0x0

Cache data word

Register ASMPCTRL
Description

ASMP access control register

Reset value

0x00000000

Warm reset mask

0x0007ffff

Diagram
Field Mask Reset Description

FC

0x00040000

0x0

Flush register access control

SC

0x00020000

0x0

Status register access control

MC

0x00010000

0x0

Mask register access control

GRPACCSZCTRL

0x0000ffff

0x0

Group control register access control

Register ASMPCTRL
Description

ASMP access control register

Reset value

0x00000000

Warm reset mask

0x0007ffff

Diagram
Field Mask Reset Description

FC

0x00040000

0x0

Flush register access control

SC

0x00020000

0x0

Status register access control

MC

0x00010000

0x0

Mask register access control

GRPACCSZCTRL

0x0000ffff

0x0

Group control register access control

Register ASMPCTRL
Description

ASMP access control register

Reset value

0x00000000

Warm reset mask

0x0007ffff

Diagram
Field Mask Reset Description

FC

0x00040000

0x0

Flush register access control

SC

0x00020000

0x0

Status register access control

MC

0x00010000

0x0

Mask register access control

GRPACCSZCTRL

0x0000ffff

0x0

Group control register access control

Register ASMPCTRL
Description

ASMP access control register

Reset value

0x00000000

Warm reset mask

0x0007ffff

Diagram
Field Mask Reset Description

FC

0x00040000

0x0

Flush register access control

SC

0x00020000

0x0

Status register access control

MC

0x00010000

0x0

Mask register access control

GRPACCSZCTRL

0x0000ffff

0x0

Group control register access control

Commands

Name Description

delete

Dispose instance of GRIOMMU

Limitations

  • Read and write combining is not simulated

  • Bus select is ignored, only one memory space is used for memory and processor.

  • APV and TLB caches are not implemented at the moment.

  • Flushes are instantaneous. This means that the FLI and FCI will only result in one actual interrupt being raised.