I have downloaded the IMX8 processor reference manual in order to access some of the GPIO registers in a device driver.
The document I used was this one:
https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf
According to the above, the GPIO registers are in the region of 0x5D080000, however attempting to access them causes GPFs.
I consulted a manual for the IMX7 where the registers are in the region of 0x30200000 and they appear to work.
The CPU is on a SOM made by Compulab; the cl-som-imx8
The cpuinfo on the target displays 4 processors:
# cat /proc/cpuinfo
processor : 0
BogoMIPS : 16.66
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Are there variations amongst the IMX8 family or is there a different reference manual available?
Wow. I am astonished and dismayed.
It may be a third party board, but it is using your CPU (iMX8MM)
Perhaps you could take a leaf from the TI forum where they would answer questions on their products irrespective of how they are deployed.
Hi Jason,
So sorry that my reply make you dismayed. Here I mean the software and board information you can contact the third company, because the hardware and software are design by them they will give more effective and fast reply. I see your above information, one image is work well, another not, so the hardware is OK. About the chip questions you can contact us.
Have an nice day
Best Regards
Rita
I am also experiencing difficulty accessing the I2C registers (0x30A20000 etc). I use the same mechanism as I do for accessing the GPIO and IOMUX registers, and they all work
e.g:
define I2C3_CR 0x30A40008
static void __iomem *vpIMX8_I2C3_CR;
vpIMX8_I2C3_CR = devm_ioremap(thisDev, I2C3_CR, sizeof(u16));
readVal = ioread16 (vpIMX8_I2C3_CR); //system hangs here......
Is there anything I am doing wrong here?