This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SYS/BIOS, OMAP-L138 experimenter kit, is PSC1 memory protected, ARM data abort exception

Other Parts Discussed in Thread: SYSBIOS

Hello,

I have just discovered strange situation. I am writing some software for UART peripheral. I am using some code from BSL for configuring UART. Before using UART I must to configure the PSC peripheral using following code:

while (CHKBIT(PSCRegister->PTSTAT, (unsigned int)PowerDomain)) {}
if (CHKBIT(PSCRegister->MDSTAT[(unsigned int)ModuleNo], PSCStateMask) == (unsigned int)NextState)
return OMAPL138PSCDriver::ErrorAlreadyInRequestedState;
CLRBIT(PSCRegister->MDCTL[(unsigned int)ModuleNo], PSCNextStateMask);
SETBIT(PSCRegister->MDCTL[(unsigned int)ModuleNo], (unsigned int)NextState);
SETBIT(PSCRegister->PTCMD, (unsigned int)PowerDomain);
while (CHKBIT(PSCRegister->PTSTAT, (unsigned int)PowerDomain)) {}
while (CHKBIT(PSCRegister->MDSTAT[(unsigned int)ModuleNo], PSCStateMask) != (unsigned int)NextState) {}
return OMAPL138PSCDriver::NoError;
Well, if I am configuring PSC0 for UART0 everything is OK and works like it should work. When I am trying to configure the PSC1 peripheral for using UART2 the emulator 
shows me that ARM raised data abort exception. Here is the LOG from console:
[ARM9_0] in handle: 0x0.
Main stack base: 0xc300c134.
Main stack size: 0x2000.
R0 = 0x00000001 R8 = 0xffffffff
R1 = 0x00000001 R9 = 0xffffffff
R2 = 0x0000000d R10 = 0xffffffff
R3 = 0x00000003 R11 = 0xffffffff
R4 = 0xfffd5160 R12 = 0x01e27000
R5 = 0xc300fa48 [ARM9_0] SP(R13) = 0xc300dff0
R6 = 0x2000005f LR(R14) = 0xc3004a40
R7 = 0xffffffff PC(R15) = 0xc3004b64
PSR = 0x600000df
ti.sysbios.family.arm.exc.Exception: line 174: E_dataAbort: pc = 0xc3004b64, lr = 0xc3004a[ARM9_0] 40.
xdc.runtime.Error.raise: terminating execution

And under the 0x3004b64 we will find following code:
while (CHKBIT(PSCRegister->PTSTAT, (unsigned int)PowerDomain)) {}
$C$DW$L$_ZN17OMAPL138PSCDriver10PSCTransitEP16PSCRegistersTypeN12PowerDomains16PowerDomainsTypeEN20PSCControlledModules24PSCControlledModulesTypeEN15PSCModuleStates19PSCModuleStatesTypeE$2$B, $C$L17:
c3004b5c: E59DC000 LDR R12, [R13]
c3004b60: E5DD0004 LDRB R0, [R13, #0x4]
c3004b64: E59CC128 LDR R12, [R12, #0x128]
c3004b68: E110000C TST R0, R12
c3004b6c: 1AFFFFFA BNE $C$L17
My question is why the memory area under address 0x01e27000 + 0x128 (PSC1 PTSTAT) is inaccessible?