Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions aarch32-cpu/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
### Changed

- Fixed the Armv7-R `DfsrStatus` and `IfsrStatus` encodings
- Removed `Ifsr::domain` for Armv7-R
- Fixed `interrupt::free` restoring the IRQ state inverted

## [aarch32-cpu v0.4.0]
Expand Down
7 changes: 2 additions & 5 deletions aarch32-cpu/src/register/ifsr.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//! Code for managing IFSR (*Instruction Fault Status Register*)

#[allow(unused)]
#[cfg(any(arm_architecture = "v5te", arm_architecture = "v6"))]
use arbitrary_int::u4;

use crate::register::{SysReg, SysRegRead, SysRegWrite};
Expand Down Expand Up @@ -39,9 +39,6 @@ pub struct Ifsr {
/// AXI Decode or Slave
#[bit(12, r)]
sd: bool,
/// Which domain was being accessed
#[bits(4..=7, rw)]
domain: u4,
/// Status bitfield.
#[bits([0..=3, 10], rw)]
status: Option<IfsrStatus>,
Expand Down Expand Up @@ -167,7 +164,7 @@ pub enum IfsrStatus {
/// Synchronous External abort
SyncExtAbort = 0b01000,
/// Permission fault (MPU)
PermissionFaultFirstLevel = 0b01101,
Permission = 0b01101,
/// IMPLEMENTATION DEFINED fault (Lockdown fault)
Lockdown = 0b10100,
/// Synchronous parity or ECC error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_a32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Skipping instruction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ expression: stdout
---
Hello, this is a prefetch abort exception example
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Doing it again
prefetch abort occurred
IFSR (Fault Status Register): Ifsr { sd: false, domain: 0, status: Ok(DebugEvent) }
IFSR (Fault Status Register): Ifsr { sd: false, status: Ok(DebugEvent) }
IFAR (Faulting Address Register): Ifar(0)
caught bkpt_from_t32
Skipping instruction
Expand Down