This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Error generation on accessing Special purpose register.

I am trying to write on a register using the following command:

asm("ldr r0, =0x00");

asm("MSR ICC_SEIEN_EL1, r0") ;

and getting this error:

tmp/ccnn8Apc.s: Assembler messages:

/tmp/ccnn8Apc.s:93787: Error: selected processor does not support requested special purpose register -- `msr ICC_SEIEN_EL1,r0'

Can somebody help me in finding out the root cause of this issue.

Parents Reply Children
  • Hi Chris,

    Initially I was using MSR , but got error as explained above. But now I am using the following code:

    asm("ldr r0, =0xFF");

    asm("MCR p15,0,r0,c12,c13,0") ;

    asm("MRC p15,0,r0,c12,c13,0"); the format is as defined in the Manual for ICC_SEI register for 32 bit architecture.

    This one is not working either.

  • HI,

    Apologies, I have confused you. Martin was right in his advice earlier to use MRC/MCR when accessing these registers in AArch32. Sorry about that.

    I see that you have found the correct syntax for the MCR instruction. p15 is the coprocessor number which you were missing before. May I ask what error you are now seeing?

    Chris

  • Hi Chris,

    I have come to know that ICC_SEIEN has been removed from ARM architecture, do you know how do we control SEIs in the new architecture.