GRLIB MEMSCRUB Model

The MEMSCRUB device is part of the GRLIB IP library. It is available in libTEMUMEMSCRUB.so.

Loading the Plugin

import MEMSCRUB

Configuration

@MEMSCRUB 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)

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

TimeSource

*void

Time source object

Commands

Name Description

delete

Dispose instance of @MEMSCRUB

new

Create new instance of MEMSCRUB

Command new Arguments

Name Type Required Description

name

string

yes

Name of object to create

MEMSCRUB Reference

Properties

Name Type Description

AHBERC

uint32_t

AHB error config register

AHBFAR

uint32_t

AHB failing address register

AHBS

uint32_t

AHB status register

CONFIG

uint32_t

Scrubber config register

Class

*void

Class object

Component

*void

Pointer to component object if part of component

ETHRES

uint32_t

Error threshold register

INIT

uint32_t

Initialization data register

LocalName

*char

Local name (in component, if applicable)

LoggingFlags

uint64_t

Flags for logging info

Name

*char

Object name

POS

uint32_t

Scrubber position register

RANGEH

uint32_t

Scrubber range high address register

RANGEH2

uint32_t

Second range end address register

RANGEL

uint32_t

Scrubber range low address register

RANGEL2

uint32_t

Second range start address register

STAT

uint32_t

Scrubber status register

TimeSource

*void

Time source object

ahb.pnp.bar

[uint32_t; 4]

AMBA plug and play base address register

ahb.pnp.identReg

uint32_t

AMBA plug and play config word

ahb.pnp.userDef

[uint32_t; 3]

AMBA plug and play user words

config.littleEndian

uint8_t

Endianess of memory interface.

Interfaces

Name Type Description

AhbIface

AhbIface

DeviceIface

DeviceIface

MemAccessIface

MemAccessIface

RegisterIface

temu::RegisterIface

ResetIface

ResetIface

Registers

Register support is currently experimental!

Register Bank default

Register AHBERC
Description

AHB error config register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register AHBFAR
Description

AHB failing address register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register AHBS
Description

AHB status register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register CONFIG
Description

Scrubber config register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register ETHRES
Description

Error threshold register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register INIT
Description

Initialization data register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register POS
Description

Scrubber position register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register RANGEH
Description

Scrubber range high address register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register RANGEH2
Description

Second range end address register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register RANGEL
Description

Scrubber range low address register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register RANGEL2
Description

Second range start address register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Register STAT
Description

Scrubber status register

Reset value

0x00000000

Warm reset mask

0x00000000

Field Mask Reset Description

-

-

-

-

Commands

Name Description

delete

Dispose instance of MEMSCRUB

Limitations

The device is non-functional, in that it only provides registers for reading and writing.

To inject scrubbing errors, set the registers with a fault injection model, and raise any corresponding interrupt manually.