We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
How can ARMv8 memory mapped registers ( ex : EDITCTRL ) be programmed in assembly ?
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 ...
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