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)

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 @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 configuration register

AHBERCColdResetValue

uint32_t

AHB Error configuration register

AHBERCForcedBits

uint32_t

AHB Error configuration register

AHBERCForcedFlippedBits

uint32_t

AHB Error configuration register

AHBERCReadMask

uint32_t

AHB Error configuration register

AHBERCResetMask

uint32_t

AHB Error configuration register

AHBERCResetValue

uint32_t

AHB Error configuration register

AHBERCWriteMask

uint32_t

AHB Error configuration register

AHBFAR

uint32_t

AHB Failing Address Register

AHBFARColdResetValue

uint32_t

AHB Failing Address Register

AHBFARForcedBits

uint32_t

AHB Failing Address Register

AHBFARForcedFlippedBits

uint32_t

AHB Failing Address Register

AHBFARReadMask

uint32_t

AHB Failing Address Register

AHBFARResetMask

uint32_t

AHB Failing Address Register

AHBFARResetValue

uint32_t

AHB Failing Address Register

AHBFARWriteMask

uint32_t

AHB Failing Address Register

AHBS

uint32_t

AHB Status register

AHBSColdResetValue

uint32_t

AHB Status register

AHBSForcedBits

uint32_t

AHB Status register

AHBSForcedFlippedBits

uint32_t

AHB Status register

AHBSReadMask

uint32_t

AHB Status register

AHBSResetMask

uint32_t

AHB Status register

AHBSResetValue

uint32_t

AHB Status register

AHBSWriteMask

uint32_t

AHB Status register

CONFIG

uint32_t

Configuration register

CONFIGColdResetValue

uint32_t

Configuration register

CONFIGForcedBits

uint32_t

Configuration register

CONFIGForcedFlippedBits

uint32_t

Configuration register

CONFIGReadMask

uint32_t

Configuration register

CONFIGResetMask

uint32_t

Configuration register

CONFIGResetValue

uint32_t

Configuration register

CONFIGWriteMask

uint32_t

Configuration register

Class

*void

Class object

Component

*void

Pointer to component object if part of component

ETHRES

uint32_t

Error threshold register

ETHRESColdResetValue

uint32_t

Error threshold register

ETHRESForcedBits

uint32_t

Error threshold register

ETHRESForcedFlippedBits

uint32_t

Error threshold register

ETHRESReadMask

uint32_t

Error threshold register

ETHRESResetMask

uint32_t

Error threshold register

ETHRESResetValue

uint32_t

Error threshold register

ETHRESWriteMask

uint32_t

Error threshold register

INIT

uint32_t

Initialisation data register

INITColdResetValue

uint32_t

Initialisation data register

INITForcedBits

uint32_t

Initialisation data register

INITForcedFlippedBits

uint32_t

Initialisation data register

INITReadMask

uint32_t

Initialisation data register

INITResetMask

uint32_t

Initialisation data register

INITResetValue

uint32_t

Initialisation data register

INITWriteMask

uint32_t

Initialisation data 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.

POS

uint32_t

Position register

POSColdResetValue

uint32_t

Position register

POSForcedBits

uint32_t

Position register

POSForcedFlippedBits

uint32_t

Position register

POSReadMask

uint32_t

Position register

POSResetMask

uint32_t

Position register

POSResetValue

uint32_t

Position register

POSWriteMask

uint32_t

Position register

RANGEH

uint32_t

Range high address register

RANGEH2

uint32_t

Second range high address register

RANGEH2ColdResetValue

uint32_t

Second range high address register

RANGEH2ForcedBits

uint32_t

Second range high address register

RANGEH2ForcedFlippedBits

uint32_t

Second range high address register

RANGEH2ReadMask

uint32_t

Second range high address register

RANGEH2ResetMask

uint32_t

Second range high address register

RANGEH2ResetValue

uint32_t

Second range high address register

RANGEH2WriteMask

uint32_t

Second range high address register

RANGEHColdResetValue

uint32_t

Range high address register

RANGEHForcedBits

uint32_t

Range high address register

RANGEHForcedFlippedBits

uint32_t

Range high address register

RANGEHReadMask

uint32_t

Range high address register

RANGEHResetMask

uint32_t

Range high address register

RANGEHResetValue

uint32_t

Range high address register

RANGEHWriteMask

uint32_t

Range high address register

RANGEL

uint32_t

Range low address register

RANGEL2

uint32_t

Second range low address register

RANGEL2ColdResetValue

uint32_t

Second range low address register

RANGEL2ForcedBits

uint32_t

Second range low address register

RANGEL2ForcedFlippedBits

uint32_t

Second range low address register

RANGEL2ReadMask

uint32_t

Second range low address register

RANGEL2ResetMask

uint32_t

Second range low address register

RANGEL2ResetValue

uint32_t

Second range low address register

RANGEL2WriteMask

uint32_t

Second range low address register

RANGELColdResetValue

uint32_t

Range low address register

RANGELForcedBits

uint32_t

Range low address register

RANGELForcedFlippedBits

uint32_t

Range low address register

RANGELReadMask

uint32_t

Range low address register

RANGELResetMask

uint32_t

Range low address register

RANGELResetValue

uint32_t

Range low address register

RANGELWriteMask

uint32_t

Range low address register

ReplayLoggingFlags

uint64_t

Replay-time category logging flags

STAT

uint32_t

Status register

STATColdResetValue

uint32_t

Status register

STATForcedBits

uint32_t

Status register

STATForcedFlippedBits

uint32_t

Status register

STATReadMask

uint32_t

Status register

STATResetMask

uint32_t

Status register

STATResetValue

uint32_t

Status register

STATWriteMask

uint32_t

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

Auto-generated Register Interface Impl.

ResetIface

ResetIface

Registers

Register support is currently experimental!

Register Bank Regs

Register AHBS
Description

AHB Status register

Reset value

0x00000000

Warm reset mask

0xffffef00

Diagram
Field Mask Reset Description

CECNT

0xffc00000

0x0

Global correctable error count

UECNT

0x003fc000

0x0

Global uncorrectable error count

DONE

0x00002000

0x0

Task completed

SEC

0x00000800

0x0

Scrubber error counter threshold exceeded

SBC

0x00000400

0x0

Scrubber block error counter threshold exceeded

CE

0x00000200

0x0

Correctable error

NE

0x00000100

0x0

New error

HWRITE

0x00000080

-

AMBA write signal

HMASTER

0x00000078

-

AMBA master signal

HSIZE

0x00000007

-

AMBA size signal

Register AHBFAR
Description

AHB Failing Address Register

Reset value

0x00000000

Warm reset mask

0x00000000

Diagram
Field Mask Reset Description

AHB_FAILING_ADDRESS

0xffffffff

-

AHB failing address

Register AHBERC
Description

AHB Error configuration register

Reset value

0x00000000

Warm reset mask

0xffffc003

Diagram
Field Mask Reset Description

CECNTT

0xffc00000

0x0

Interrupt threshold value for global correctable error count

UECNTT

0x003fc000

0x0

Interrupt threshold value for global uncorrectable error count

CECTE

0x00000002

0x0

Correctable error count threshold enable

UECTE

0x00000001

0x0

Uncorrectable error count threshold enable

Register STAT
Description

Status register

Reset value

0x00000002

Warm reset mask

0xffffc01f

Diagram
Field Mask Reset Description

RUNCOUNT

0xffc00000

0x0

Number of correctable errors in current scrub run

BLKCOUNT

0x003fc000

0x0

Number of correctable errors in current block

DONE

0x00002000

-

Task completed

BURSTLEN

0x0000001e

0x1

2-log of AHB bus cycles

ACTIVE

0x00000001

0x0

Current state

Register CONFIG
Description

Configuration register

Reset value

0x00000000

Warm reset mask

0x0000ffbf

Diagram
Field Mask Reset Description

DELAY

0x0000ff00

0x0

Delay time between processed blocks

IRQD

0x00000080

0x0

Interrupt when task has completed

SERA

0x00000020

0x0

Second memory range enable

LOOP

0x00000010

0x0

Loop mode

MODE

0x0000000c

0x0

Operation mode

ES

0x00000002

0x0

External start enable

SCEN

0x00000001

0x0

Scrubber enable

Register RANGEL
Description

Range low address register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

RLADDR

0xffffffe0

0x0

Scrubber range low address

ALIGN

0x0000001f

0x0

Burst size alignment bits

Register RANGEH
Description

Range high address register

Reset value

0x0000001f

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

RHADDR

0xffffffe0

0x0

Scrubber range high address

ALIGN

0x0000001f

0x1f

Burst size alignment bits

Register POS
Description

Position register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

POSITION

0xffffffe0

0x0

Scrubber position

ALIGN

0x0000001f

0x0

Burst size alignment bits

Register ETHRES
Description

Error threshold register

Reset value

0x00000000

Warm reset mask

0xffffc003

Diagram
Field Mask Reset Description

RECT

0xffc00000

0x0

Interrupt threshold value for current scrub run correctable error count

BECT

0x003fc000

0x0

Interrupt threshold value for current scrub block correctable error count

RECTE

0x00000002

0x0

Scrub run correctable error count threshold enable

BECTE

0x00000001

0x0

Scrub block correctable error count threshold enable

Register INIT
Description

Initialisation data register

Reset value

0x00000000

Warm reset mask

0x00000000

Diagram
Field Mask Reset Description

DATA

0xffffffff

-

Initialisation data

Register RANGEL2
Description

Second range low address register

Reset value

0x00000000

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

RLADDR

0xffffffe0

0x0

Scrubber range low address

ALIGN

0x0000001f

0x0

Burst size alignment bits

Register RANGEH2
Description

Second range high address register

Reset value

0x0000001f

Warm reset mask

0xffffffff

Diagram
Field Mask Reset Description

RHADDR

0xffffffe0

0x0

Scrubber range high address

ALIGN

0x0000001f

0x1f

Burst size alignment bits

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.