This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/DRA752: should we use EMIF device driver?

Part Number: DRA752

Tool/software: Linux

Should the DRA752 kernel use the Linux emif device driver?

I notice that my settings are not building the EMIF device driver although the "TDA2x SoC for ADAS Silicon Revision 1.1 (Rev. Z)" mentions the EMIF controller.    I tried turning on 

CONFIG_TI_EMIF=m

and adding the appropriate snippet to the device-tree:

&ocp {
emif1: emif@4c000000 {
compatible = "ti,emif-4d5";
ti,hwmods = "emif1";
ti,no-idle-on-init;
phy-type = <2>; /* DDR PHY type: Intelli PHY */
reg = <0x4c000000 0x400>;
interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
hw-caps-read-idle-ctrl;
hw-caps-ll-interface;
hw-caps-temp-alert;
};

emif2: emif@4d000000 {
compatible = "ti,emif-4d5";
ti,hwmods = "emif2";
ti,no-idle-on-init;
phy-type = <2>; /* DDR PHY type: Intelli PHY */
reg = <0x4d000000 0x400>;
interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
hw-caps-read-idle-ctrl;
hw-caps-ll-interface;
hw-caps-temp-alert;
};
};

When the driver tries to load at boot, I see errors about missing hwmods:

~$ dmesg | grep -i emif
[ 0.388626] platform 4c000000.emif: Cannot lookup hwmod 'emif1'
[ 0.388987] platform 4d000000.emif: Cannot lookup hwmod 'emif2'
[ 5.279418] emif_probe: error getting device data

These hwmods should be available, as they are provided in the statically compiled omap_hwmod_54xx_data.c.

Is the idea of trying to use this driver wrong?   If not, please present any suggestions about how to correctly configure it.

Thanks,

Alison Chaiken

alison@peloton-tech.com

  • Hi Alison,

    In DRA75x EVM the EMIF is used to connect the DDR and the DRA7xx SoC.
    The EMIF initialization and ddr configurations are done only once in u-boot (MLO part of the u-boot) and that's it. The kernel uses the configurations done in u-boot & DOES NOT reconfigure the EMIF or DDR.

    Best Regards,
    Yordan