I’m trying to get the EIM interface working on a Colibri-iMX6ULL 512MB IT but I got a bit confused about what to do. I build the Kernel and enabled the Freescale EIM Driver and looked at the device tree imx6ull-colibri-eval-v3.dtsi.
My question is: how can I configure the device tree correctly so that I can use the EIM interface. I want to communicate to a FPGA with 6 adresses and 8 data SRAM. Do I need to add this to the device tree:
Currently I was able to enable the EIM driver and confirmed it was on. (I have not changed any iomux settings in the device tree) However when I tried read an address with devmem2, I received an error:
root@colibri-imx6ull:~# devmem2 0x08000000
/dev/mem opened.
Memory mapped at address 0x76f47000.
Bus error
I’m not sure how I can recheck my permission, but since I’m the root I suppose I have those. Also while I was building the Kernel Configuration, I checked if CONFIG_DEVMEM was enabled and CONFIG_STRICT_DEVMEM was disabled, which it was. This means I should be able to write to those addresses right?
This is my BSP version output: Linux colibri-imx6ull-06998482 5.4.154-39314-g45da8a2ce789-dirty #1 SMP Mon Nov 15 17:37:05 CET 2021 armv7l armv7l armv7l GNU/Linux
I had read this post, but I think the EIM interface, for me, is simply not working yet. But when I look for the weim driver it says it is working…
I read something about a the EIM slow clock, which has to be enabled, but I’m not sure how or what that means. Chapter 21.3 in IMX6ULL Reference Manual.
I was able to finally get some response from the EIM interface. I allocated the wrong physical address for the EIM interface to use. I had it mixed up with the iMX6’s memory map.
iMX6ULL EIM Memory map starts at 0x50000000 and the iMX6 EIM memory map starts at 0x08000000. When I changed this, it all seemed to work fine. (while at the same time disabling all conflicting iomuxc pins and configuring the weim driver in the device tree)
root@colibri-imx6ull-06998482:~# memtester -p 0x50000000 16K 1
memtester version 4.3.0 (32-bit)
Copyright (C) 2001-2012 Charles Cazabon.
Licensed under the GNU General Public License version 2 (only).
pagesize is 4096
pagesizemask is 0xfffff000
want 0MB (16384 bytes)
Loop 1/1:
Stuck Address : testing 0FAILURE: possible bad address line at physical address 0x50000000.
Skipping to next test...
Random Value : ok
Compare XOR : ok
Compare SUB : ok
Compare MUL : ok
Compare DIV : ok
Compare OR : ok
Compare AND : ok
Sequential Increment: ok
Solid Bits : ok
Block Sequential : ok
Checkerboard : ok
Bit Spread : ok
Bit Flip : ok
Walking Ones : ok
Walking Zeroes : ok
Done.
root@colibri-imx6ull-06998482:~# devmem2 0x50000000
/dev/mem opened.
Memory mapped at address 0x76f95000.
Read at address 0x50000000 (0x76f95000): 0x00000000