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

Programming ARMv8 memory mapped registers

How can ARMv8 memory mapped registers ( ex : EDITCTRL ) be programmed in assembly ?

Parents
  • No this is not an SoC  location , it is  a register defined as part of  ARMv8 architecture and resides within the core .

    The ARMv8 manual gives it's offset  as  0xF00 , but I don't know what it's address would be or if I can access it

    using LDR / STR  or need a special  intruction like  MCR / MRC / MSR / MRS  etc ...

Reply
  • No this is not an SoC  location , it is  a register defined as part of  ARMv8 architecture and resides within the core .

    The ARMv8 manual gives it's offset  as  0xF00 , but I don't know what it's address would be or if I can access it

    using LDR / STR  or need a special  intruction like  MCR / MRC / MSR / MRS  etc ...

Children
  • That's not quite correct.

    The architecture defines a number of memory mapped registers.  It also defines their offsets from a base address.  What is SoC dependent is what the base address is.

    If you specifically want to access the memory mapped registers from software you will use regular memory access instructions (LDR/STR).  But you will need to know where in the SoC's memory map those registers are.

  • Hello ravinder,

    you have misunderstanding.

    The ARMv8 specs only define offset address. They don't define the base address.

    The base address is SoC specific.

    The memory mapped registers are accessible by LDR/STR instructions.

    However, to do do, it is needed the processor is in the debug mode.

    In usual case, you would not access those registers.

    Best regards,

    Yasuhiko Koumoto.

  • Yasuhiko  , Martin ,

    Thanks for clearing this up for me .

    Yes I understand now that it depends upon the memory map of the SoC and  the accesses are steered to these debug registers via the SoC decoding logic / interconnect  to the  debug  port ( APB   )  of the  cluster , where it is further decoded based on the register offsets and ROM tables .

    Regards,

    -Ravinder