14.06.2015 Views

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Version</strong> <strong>2.03</strong><br />

Later, if the debug exception has not been reset by<br />

clearing DBSR IAC1 , DBSR IAC2 , DBSR IAC3 , and<br />

DBSR IAC4 , and MSR DE is set to 1, a delayed Debug<br />

interrupt will occur. In this case, CSRR0/DSRR0 [Category:<br />

Embedded.Enhanced Debug will contain the<br />

address of the instruction after the one which enabled<br />

the Debug interrupt by setting MSR DE to 1. Software in<br />

the Debug interrupt handler can observe DBSR IDE to<br />

determine how to interpret the value in CSRR0/DSRR0<br />

[Category: Embedded.Enhanced Debug.<br />

8.4.2 Data Address Compare<br />

Debug Event<br />

One or more Data Address Compare debug events<br />

(DAC1R, DAC1W, DAC2R, DAC2W) occur if they are<br />

enabled, execution is attempted of a data storage<br />

access instruction, and the type, address, and possibly<br />

even the data value of the data storage access meet<br />

the criteria specified in the Debug Control Register 0,<br />

Debug Control Register 2, and the DAC1, DAC2,<br />

DVC1, and DVC2 Registers.<br />

Data Address Compare Read/Write<br />

Enable<br />

DBCR0 DAC1 specifies whether DAC1R debug events<br />

can occur on read-type data storage accesses and<br />

whether DAC1W debug events can occur on write-type<br />

data storage accesses.<br />

DBCR0 DAC2 specifies whether DAC2R debug events<br />

can occur on read-type data storage accesses and<br />

whether DAC2W debug events can occur on write-type<br />

data storage accesses.<br />

Indexed-string instructions (lswx, stswx) for which the<br />

XER field specifies zero bytes as the length of the<br />

string are treated as no-ops, and are not allowed to<br />

cause Data Address Compare debug events.<br />

All Load instructions are considered reads with respect<br />

to debug events, while all Store instructions are considered<br />

writes with respect to debug events. In addition,<br />

the Cache Management instructions, and certain special<br />

cases, are handled as follows.<br />

- dcbt, dcbtls, dcbtep, dcbtst, dcbtstls, dcbtstep,<br />

icbt, icbtls, icbtep, icbi, icblc, dcblc,<br />

and icbiep are all considered reads with<br />

respect to debug events. Note that dcbt,<br />

dcbtep, dcbtst, dcbtstep, icbt, and icbtep<br />

are treated as no-operations when they report<br />

Data Storage or Data TLB Miss exceptions,<br />

instead of being allowed to cause interrupts.<br />

However, these instructions are allowed to<br />

cause Debug interrupts, even when they<br />

would otherwise have been no-op’ed due to a<br />

Data Storage or Data TLB Miss exception.<br />

- dcbz, dcbzep, dcbi, dcbf, dcbfep, dcba,<br />

dcbst, and dcbstep are all considered writes<br />

with respect to debug events. Note that dcbf,<br />

dcbfep, dcbst, and dcbstep are considered<br />

reads with respect to Data Storage exceptions,<br />

since they do not actually change the<br />

data at a given address. However, since the<br />

execution of these instructions may result in<br />

write activity on the processor’s data bus, they<br />

are treated as writes with respect to debug<br />

events.<br />

Data Address Compare User/Supervisor<br />

Mode<br />

DBCR2 DAC1US specifies whether DAC1R and<br />

DAC1W debug events can occur in user mode or<br />

supervisor mode, or both.<br />

DBCR2 DAC2US specifies whether DAC2R and<br />

DAC2W debug events can occur in user mode or<br />

supervisor mode, or both.<br />

Effective/Real Address Mode<br />

DBCR2 DAC1ER specifies whether effective<br />

addresses, real addresses, effective addresses<br />

and MSR DS =0, or effective addresses and<br />

MSR DS =1 are used to in determining an address<br />

match on DAC1R and DAC1W debug events.<br />

DBCR2 DAC2ER specifies whether effective<br />

addresses, real addresses, effective addresses<br />

and MSR DS =0, or effective addresses and<br />

MSR DS =1 are used to in determining an address<br />

match on DAC2R and DAC2W debug events.<br />

Data Address Compare Mode<br />

DBCR2 DAC12M specifies whether all or some of the<br />

bits of the address of the data storage access must<br />

match the contents of the DAC1 or DAC2, whether<br />

the address must be inside a specific range specified<br />

by the DAC1 and DAC2 or outside a specific<br />

range specified by the DAC1 and DAC2 for a<br />

DAC1R, DAC1W, DAC2R or DAC2W debug event<br />

to occur.<br />

There are four data address compare modes.<br />

- Exact address compare mode<br />

If the 64-bit address of the data storage<br />

access is equal to the value in the enabled<br />

Data Address Compare Register, a data<br />

address match occurs.<br />

For 64-bit implementations, the addresses<br />

are masked to compare only bits 32:63 when<br />

the processor is executing in 32-bit mode.<br />

- Address bit match mode<br />

If the address of the data storage access,<br />

ANDed with the contents of the DAC2, are<br />

equal to the contents of the DAC1, also<br />

ANDed with the contents of the DAC2, a data<br />

Chapter 8. Debug Facilities<br />

587

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!