Hi everyone,
we are currently trying to get our Mistral DM814x working.
We are using the "AV BIOS SDK" which basically comprises:
SYS/BIOS 6.33
NDK 2.21
NSP 1.0.0.1 for DM814x
BIOSPSP 3.10.6.0
and a bunch of other (non relevant) stuff.
The NSP contains a demo application cfgdemo which should be a showcase for the usage of the NDK.
Somewhere deep in the NSP drivers (csl_emac.c -> EMAC_open) there is a call that modifies the EMACs SoftReset register (reading , or'ing and writing):
CSL_FINS(CPSW3G_REGS->SOFT_RESET, CPSW3G_SOFT_RESET_SOFT_RESET, CSL_CPSW3G_SOFT_RESET_SOFT_RESET_RESET);
That call seems to do tree things:
1. Reading the current value from register 0x4A10011C (EMAC SoftReset)
2. Manipulating that value in R12 to the value 0x00000001
3. Writing that value back to 0x4A10011C
And step 1 is causing a dataAbort:
Exception occurred in ThreadType_Task.
Task handle: 0x800ec694.
Task stack base: 0x8007ecc0.
Task stack size: 0x2000.
R0 = 0x4a10011c R8 = 0xffffffff
R1 = 0x800e3fb8 R9 = 0x800744c4
R2 = 0x00000000 R10 = 0x00000000
R3 = 0x8009428c R11 = 0x8009f7e0
R4 = 0x80072d84 R12 = 0x4a10011c
R5 = 0x80072d94 SP(R13) = 0x80080b90
R6 = 0x8009f71c LR(R14) = 0x80094480
R7 = 0x8009f570 PC(R15) = 0x8008c7c8
PSR = 0x6000019f
ti.sysbios.family.arm.exc.Exception: line 176: E_dataAbort: pc = 0x8008c7c8, lr = 0x80094480.
xdc.runtime.Error.raise: terminating execution
The MMU Data Fault Status Register states: 0x1008 (precise external abort, nontranslation).
Any ideas?
Thanks and greetings,
Thomas.