• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Operating System/Drivers
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Version 3.2
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by funman - 2009-06-08
Last edited by funman - 2010-03-09

FS#10296 - ARM: Display Fault Status and Address for data aborts

This extends UIE(), showing the fault address (the address where the fault occured is already displayed, but not the address causing the fault) and the raw status.

This works on all ARM cpus with coprocessor cp15, but here I don’t know if some supported targets don’t have it (I suppse targets without mmu won’t have it)

Note that we could extend it further to show a textual description of the fault. I didn’t do it since I use it on my Clip and the screen width is way too small, so you have to look at the technical reference manual to see the fault’s meaning.

Closed by  funman
2010-03-09 16:20
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407


torne commented on 2009-06-09 09:22

Just recording what I said about this on IRC yesterday:

1) This will need to be #ifdef’ed to only apply to ARM cores which have an MMU or MPU. ARM7TDMI (portalplayer) does not, and other targets may not either. The presence of CP15 is not technically sufficient as it’s allowed for CP15 to be implemented even if the core does not have the FSR/FAR registers.
2) The FSR could be printed for prefetch aborts as well as data aborts, as it’s valid and possibly useful. On ARMv6 and later, there is a separate FSR for prefetch aborts, though, which should be printed instead.

Here is the list of ARMv4 / ARMv5 CPUs we have:

DSC25 = ? (archos av300 = abandoned, not even any code in svn)
AT91SAM9260 = ? (lyreproto1, abandoned)
TCC77x = ? (used in abandoned ports for m200, c100, logikdax, and iaudio7)

PNX0101 = not supported
PP = not supported

TCC780x = supported
DM320 = supported
S3C2440 = supported
S5L870x = supported
AS3525/AS3525v2 = supported

Here is the list of ARM cpus we use:

arm922tdmi (as3525)
arm926-ejs (as3525v2, at91sam9260, dm320, tcc780x)
arm7tdmi (PP, pnx0101, dsc25)
arm946-es (tcc77x)
arm940tdmi (s5l870x) – 8702 has an arm926-ejs /!\
arm920t (s3c2440)

- V6 -
arm1136jfs (imx31l)
arm1176jzs (PP6100 -sansa view, abandoned-)

synced, add armv6 code, and only enable for CPU != ARM7TDMI


Available keyboard shortcuts


Task Details

Task Editing