Specifications
Intel
®
Quark Core—Debugging Support
Intel
®
Quark SoC X1000 Core
Developer’s Manual October 2013
250 Order Number: 329679-001US
Gi and Li (breakpoint enable, global and local)
When either Gi or Li is set, then the associated breakpoint (as defined by the linear
address in DRi, the length in LENi and the usage criteria in RWi) is enabled. When
either Gi or Li is set, and the Intel
®
Quark SoC X1000 Core detects the ith breakpoint
condition, the exception 1 handler is invoked.
When the Intel
®
Quark SoC X1000 Core performs a task switch to a new Task State
Segment (TSS), all Li bits are cleared. Thus, the Li bits support fast task switching out
of tasks that use some task-local breakpoint registers. The Li bits are cleared by the
Intel
®
Quark SoC X1000 Core during a task switch to avoid spurious exceptions in the
new task. Note that the breakpoints must be re-enabled under software control.
All Intel
®
Quark SoC X1000 Core Gi bits are unaffected during a task switch. The Gi bits
support breakpoints that are active in all tasks executing in the system.
11.3.3 Debug Status Register (DR6)
A Debug Status Register (DR6 shown in Figure 72) allows the exception 1 handler to
easily determine why it was invoked. Note that the exception 1 handler can be invoked
as a result of one of several events:
• DR0 Breakpoint fault/trap
• DR1 Breakpoint fault/trap
• XDR2 Breakpoint fault/trap
• XDR3 Breakpoint fault/trap
• XSingle-step (TF) trap
• XTask switch trap
• XFault due to attempted debug register access when GD=1
The Debug Status Register contains single-bit flags for each of the possible events that
invoke exception 1. Note below that some of these events are faults (exception taken
before the instruction is executed), whereas other events are traps (exception taken
after the debug events occurred).
The flags in DR6 are set by hardware but never cleared by hardware. Exception 1
handler software should clear DR6 before returning to the user program to avoid future
confusion in identifying the source of exception 1.
The fields within the Debug Status Register, DR6, are as follows:
Bi (debug fault/trap due to breakpoint 0–3)
Four breakpoint indicator flags, B[3:0], correspond one-to-one with the breakpoint
registers in DR[3:0]. A flag Bi is set when the condition described by DRi, LENi, and
RWi occurs.
If Gi or Li is set, and if the ith breakpoint is detected, the Intel
®
Quark SoC X1000 Core
invokes the exception 1 handler. The exception is handled as a fault when an
instruction execution breakpoint occurs, or as a trap if a data breakpoint occurs.
Note: A flag Bi is set whenever the hardware detects a match condition on enabled breakpoint
i. When a match is detected on at least one enabled breakpoint i, the hardware
immediately sets all Bi bits that correspond to breakpoint conditions matching at that
instant, whether enabled or not. Although the exception 1 handler may see that
multiple Bi bits are set, only those set Bi bits that correspond to enabled breakpoints (Li
or Gi set) are true indications of why the exception 1 handler was invoked.










