I am using this (Armadeus APF51 / Freescale i.MX51: A kit for reverse engineering the EIM bus) as a starting point for working with the EIM module. While this post is for the imx51, I have ported over the kernel module to use with the mx6q. After insmod the module (which should initiate a bus transfer), I get the following:
CS2GCR1=00010080, CS2GCR2=00001000
CS2RCR1=00000000, CS2RCR2=00000000
CS2WCR1=00000000, CS2WCR2=00000000
WEIM Config register WCR=00000020
WEIM IP Access register WIAR=00000010
<processor gets stuck here>
It seems writing to the above registers has no impact, since the values read are always the same as above. According the Imx6 reference manual, these are R/W registers. I have also used the devregs utility from here (devregs - tool to display and modify a device's registers at runtime) to double check that I am indeed writing and reading from the correct registers, but still I always read the same values no matter what I wrote. After ioremap call and the call to read from the EIM bus, the processor gets stuck and I cannot recover and must reboot. Am I missing a step? My goal is to just do a burst transfer and observe it on the scope.
Thanks
已解决! 转到解答。