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.
Hi everyone,
as I asked on http://stackoverflow.com/questions/25907502/armv8-foundation-model-switches-and-leds, I am trying to write
a value to the "switches" and "leds" register of the Foundation Model, to get some feedback (I've got some UART issues to debug).
All attemps to write to these registers are failing, even just after boot at EL3 in 64 bits mode.
I recently discovered that I got a synchronous exception classified as External.
ESR_EL3 is 0x96000250 (Exception class 0x250, Data Abort, IL is 32 bits and ISS explains that a external abort on write has occured).
ARM's user manual for the model specifies that these registers are R/W registers. Did I miss something to be able to modify them by software ?
Best,
Vincent
Hi Vincent,
The exception occurs because the peripheral (in that case the LED and switches registers) requires aligned accesses.
I am not sure why that is (I can see where it is aborting the access in our model but I don't think it's correct), I will investigate a little bit more and let you know.
Regards,
Simon
After doing some digging, I have found that the SysReg components in the foundation model is intended to allow only word (32 bits) writes, and only aligned reads (but they can be byte-only) this should be documented more clearly, sorry about that.
Hi Simon,
thank you for the complementary information !