Hi.
Inputs 1:
- EVB with i.mx6-DL;
- Custom board with i.mx6-Solo;
- Yocto 2.0 / 2.1 / 2.2;
- galcore.ko;
insmode galcore.ko - It works perfectly ( I see /dev/galcore )
Inputs 2:
- EVB with i.mx6-DL;
- Custom board with i.mx6-Solo;
- Yocto 2.5 / 2.6 / 2.7 / 2.8 / 2.9 / 3.0 , with kernel 4.9xx / 4.14xx / 4.19xx / 5.xx
- galcore.ko;
insmode galcore.ko - does not work ( I do not see /dev/galcore )
On display:
insmod galcore.ko
galcore 130000.gpu: ignoring dependency for device, assuming no driver
I'm trying to debug the kernel with printk & I see:
In the file - KERNEL_SOURCE/drivers/base/power/domain.c
In the function - static struct generic_pm_domain *genpd_get_from_provider( struct of_phandle_args *genpdspec )
I see problem in string : if ( provider->node == genpdspec->np) .
Unfortunately I see that - provider->node !=genpdspec->np
I continue to debug i.mx6-Solo ( custom board ) & see:
provider->node->name ---> power-domain
provider->node->full_name ---> power-domain@0
genpdspec->np->name ---> power-domain
genpdspec->np->full_name ---> power-domain@1
provider->node->full_name & genpdspec->np->full_name - never matches.
After that, I debug i.mx6-DL , & see:
provider->node->name ---> power-domain
provider->node->full_name ---> power-domain@1
genpdspec->np->name ---> power-domain
genpdspec->np->full_name ---> power-domain@1
provider->node->full_name & genpdspec->np->full_name - matches. It works perfectly .
After that, I debug i.mx6-Solo ( Custom board ) , with Kernel 4.1.15 ( Yocto 2.0 / 2.1 / 2.2 )
provider->node->name ---> gpc
provider->node->full_name ---> /soc/aips-bus@02000000/gpc@020dc000
genpdspec->np->name ---> gpc
genpdspec->np->full_name ---> /soc/aips-bus@02000000/gpc@020dc000
provider->node->full_name & genpdspec->np->full_name - matches. It works perfectly .
The difference between the boards is minimal ( i.mx6-Solo & i.mx6-DL ). Please see 2 *.dtsi file.
Important :
I use 2 identical Image ( Yocto 2.5 / 2.6 / 2.7 / 2.8 / 2.9 / 3.0 ) , on EVB-i.mx6-DL - "galcore" it works perfectly , on Custom board i.mx6-Solo "galcore" - do not work..
In file imx6qdl.dtsi , I see node "gpc" , with power-domain@0 & power-domain@1 , maybe here a problem ?
gpc: gpc@20dc000 {
compatible = "fsl,imx6q-gpc";
reg = <0x020dc000 0x4000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>,
<0 90 IRQ_TYPE_LEVEL_HIGH>;
interrupt-parent = <&intc>;
clocks = <&clks IMX6QDL_CLK_IPG>;
clock-names = "ipg";
pgc {
#address-cells = <1>;
#size-cells = <0>;
power-domain@0 {
reg = <1>; /*0*/
#power-domain-cells = <0>;
};
pd_pu: power-domain@1 {
reg = <1>;
#power-domain-cells = <0>;
power-supply = <®_pu>;
clocks = <&clks IMX6QDL_CLK_GPU3D_CORE>,
<&clks IMX6QDL_CLK_GPU3D_SHADER>,
<&clks IMX6QDL_CLK_GPU2D_CORE>,
<&clks IMX6QDL_CLK_GPU2D_AXI>,
<&clks IMX6QDL_CLK_OPENVG_AXI>,
<&clks IMX6QDL_CLK_VPU_AXI>;
};
};
};
I hope to help.