How to use EIM on IMX7D Colibri

hi experts

i am in designing custom board with Colibri imx7d SOM
on a custom board , i need to access memory-mapped device,
so i tested on colibri evalution board ,

i added below device code

&weim {
pinctrl-names = “default”;
pinctrl-0 = <&pinctrl_weim_nor_1 &pinctrl_weim_cs0_1>;
#address-cells = <2>;
#size-cells = <1>;
ranges = <0 0 0x28000000 0x08000000>;
status = “okay”;

myDev@0,0 {
	compatible = "myDev" ;   //  just for testing... i use this one without a  device driver 
	reg = <0 0 0x08000000>;
	#address-cells = <1>;
	#size-cells = <1>;
	bank-width = <2>;
	fsl,weim-cs-timing = <0x00610081 0x00000001 0x1c022000
			0x0000c000 0x1404a38e 0x00000000>;
};

};

after booting .
i use devem and check CS0 signal on a board ( X10 pin 37 ) with oscilloscope
but CS0 does not move ,

the kernel info is

board : Colibri imx7d 512MB
carrier board : colibri evaluation board 3.2V
kernel : 5.4.1

any advice or hint

thank you sincerely

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


:handshake:

To use the External Interface Module (EIM) on the Colibri i.MX7D, you need to ensure that the device tree configuration and the pin multiplexing are correctly set up. Here are a few steps and checks you can perform:

  1. Device Tree Configuration:

    • Ensure that the weim node is correctly defined in your device tree. Your provided configuration looks mostly correct, but double-check the pinctrl settings and the timing parameters.
    • Verify that the pinctrl_weim_nor_1 and pinctrl_weim_cs0_1 pinctrl settings are correctly defined elsewhere in your device tree.
  2. Pin Multiplexing:

    • Ensure that the pins used for the EIM interface are correctly configured for their alternate functions. This includes the CS0 pin and any other necessary control and data pins.
  3. Kernel Configuration:

    • Ensure that the EIM driver is enabled in your kernel configuration. You can check this by looking for the CONFIG_MTD_NAND_EIM option in your kernel config file.
  4. Testing with devmem2:

    • After booting, use the devmem2 tool to read/write to the memory-mapped address space defined in your device tree. For example:
      devmem2 0x28000000 w
      
    • Monitor the CS0 pin with an oscilloscope while performing the read/write operations to see if there is any activity.
  5. Check Kernel Logs:

    • Look at the kernel logs (dmesg) for any messages related to the EIM interface. This can provide clues if there are any issues with the initialization or configuration.
  6. Timing Parameters:

    • The fsl,weim-cs-timing parameters are crucial for the correct operation of the EIM interface. Ensure that these values are appropriate for your specific memory-mapped device.

If after these checks the CS0 signal still does not move, there might be an issue with the pin configuration or the timing parameters. Double-check the pin multiplexing settings and ensure that all necessary pins are correctly configured for the EIM function.

Best regards,
Toradex AI Assistant