# 4.4.10 Configurable fault status register (CFSR; UFSR+BFSR+MMFSR)

**Address offset:** `0x28`
**Reset value:** `0x0000 0000`
**Required privilege:** Privileged

The CFSR is byte-accessible and indicates the cause of a memory management fault, bus fault, or usage fault.

## CFSR subregisters

| Subregister | Address | Access |
|-------------|----------|--------|
| MMFSR | Bits[7:0] | Byte access at `0xE000ED28` |
| BFSR | Bits[15:8] | Byte access at `0xE000ED29` |
| UFSR | Bits[31:16] | Halfword access at `0xE000ED2A` |
| Full CFSR | Bits[31:0] | Word access at `0xE000ED28` |

## Bitfield definitions

### UFSR — Usage Fault Status Register (Bits[31:16])

| Bit | Field | Type | Description |
|-----|-------|------|-------------|
| 31 | DIVBY | rc_w1 | Divide by zero trap |
| 30 | ZERO | rc_w1 | Unaligned memory access trap |
| 29 | UNALI | rc_w1 | Unaligned access fault |
| 28 | UNALIGNED | rc_w1 | Unaligned memory access fault |
| 27 | Reserved | - | - |
| 26 | NOCP | rc_w1 | No coprocessor fault |
| 25 | INVPC | rc_w1 | Invalid PC load fault |
| 24 | INVSTATE | rc_w1 | Invalid state fault |
| 23 | UNDEF | rc_w1 | Undefined instruction fault |
| 22 | Reserved | - | - |
| 21 | INSTR | rc_w1 | Instruction access fault |

### BFSR — Bus Fault Status Register (Bits[15:8])

| Bit | Field | Type | Description |
|-----|-------|------|-------------|
| 15 | BFARVALID | rc_w1 | Bus Fault Address Register valid |
| 14 | Reserved | - | - |
| 13 | LSPERR | rw | Lazy save error |
| 12 | STKERR | rw | Stack error |
| 11 | UNSTKERR | rw | Unstack error |
| 10 | IMPRECISERR | rw | Imprecise data access error |
| 9 | PRECISERR | rw | Precise data access error |
| 8 | IBUSERR | rw | Instruction bus error |

### MMFSR — Memory Management Fault Status Register (Bits[7:0])

| Bit | Field | Type | Description |
|-----|-------|------|-------------|
| 7 | MMARVALID | rc_w1 | Memory Management Fault Address Register valid |
| 6 | Reserved | - | - |
| 5 | MLSPERR | rw | Lazy save error (memory management) |
| 4 | MSTKERR | rw | Stack error (memory management) |
| 3 | MUNSTKERR | rw | Unstack error (memory management) |
| 2 | Reserved | - | - |
| 1 | DACCVIOL | rw | Data access violation |
| 0 | IACCVIOL | rw | Instruction access violation |

---

## See also

- Usage fault status register (UFSR) — page 238
- Bus fault status register (BFSR) — page 239
- Memory management fault address register (MMFSR) — page 240