Is there a linux 4.12 fork for imx 6ull.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Is there a linux 4.12 fork for imx 6ull.

1,493 Views
pankajjoshi
Contributor I

I was trying to find linux 4.12.x version for my imx6ull board. I do not see any fork for imx in freescale git or linux-imx repo in code aurora. Any pointers to the repo will be helpful.

Thanks

- Pankaj

Labels (4)
0 Kudos
7 Replies

1,178 Views
igorpadykov
NXP Employee
NXP Employee

Hi Pankaj

one can look at mainline resources:

GitHub - Freescale/linux-fslc at 4.12.x+fslc 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,178 Views
pankajjoshi
Contributor I

HI Igor,

I tried with mainline resource GitHub - Freescale/linux-fslc at 4.12.x+fslc, however i found that the source is not particular to imx. there are lot of files which are different like in /arch/arm/mach-imx/mach-imx6ul.c. I could build the linux-fslx based kernel but as expected it did not start/boot on the  board. And i couldnot find any GA release for imx 4.12.x. Can you please suggest what will be the best way to have a 4.12.x kernel version for imx6ull based soc? Actually my dependency is more from building some drivers for our wifi chipset which are particular to kernel version 4.12.x. It would be great help if you give some pointers. Does it make sense, if i port the major changes from imx GA 4.9.11 to linux-fslc 4.12.x specifically in board files and see if it works.

Thanks,

Pankaj Joshi

gusarambula

kunal.kotecha@volansystech.com

0 Kudos

1,178 Views
igorpadykov
NXP Employee
NXP Employee

Hi Pankaj

nxp does not support this particular linux version and you are right,

it make sense if you port the major changes from imx GA 4.9.11 to linux-fslc 4.12

May be useful Linux 4.9.11_1.0.0 BSP & Multimedia Codecs Documentation

Best regards
igor

0 Kudos

1,178 Views
pankajjoshi
Contributor I

When i picked 4.14.98_2.0.0_ga release and try to build it in my rocko distribution. I added it using devtools in yocto and when i build kernel i get below error and some more undefined references. I have also made all my device tree changes. This doesnt look like the issue of that

 arch/arm/mach-imx/cpuidle-imx6sl.o: In function `imx6sl_enter_wait':
| cpuidle-imx6sl.c:(.text+0x48): undefined reference to `get_bus_freq_mode'
| arch/arm/mach-imx/cpuidle-imx6sl.o: In function `imx6sl_cpuidle_init':
| cpuidle-imx6sl.c:(.init.text+0x24): undefined reference to `iram_tlb_base_addr'
| cpuidle-imx6sl.c:(.init.text+0x28): undefined reference to `iram_tlb_base_addr'
| cpuidle-imx6sl.c:(.init.text+0xc4): undefined reference to `mx6sl_lpm_wfi_end'
| cpuidle-imx6sl.c:(.init.text+0xcc): undefined reference to `mx6sl_lpm_wfi_start'
| cpuidle-imx6sl.c:(.init.text+0xd0): undefined reference to `mx6sl_lpm_wfi_end'
| cpuidle-imx6sl.c:(.init.text+0xd4): undefined reference to `mx6sl_lpm_wfi_start'
| cpuidle-imx6sl.c:(.init.text+0xd8): undefined reference to `imx6sl_low_power_idle'
| cpuidle-imx6sl.c:(.init.text+0xe0): undefined reference to `imx6sl_low_power_idle'
| arch/arm/mach-imx/cpuidle-imx6sx.o: In function `imx6sx_enter_wait':
| cpuidle-imx6sx.c:(.text+0x8): undefined reference to `get_bus_freq_mode'
| arch/arm/mach-imx/cpuidle-imx6sx.o: In function `imx6sx_cpuidle_init':
| cpuidle-imx6sx.c:(.init.text+0x0): undefined reference to `iram_tlb_phys_addr'
| cpuidle-imx6sx.c:(.init.text+0x4): undefined reference to `iram_tlb_phys_addr'
| cpuidle-imx6sx.c:(.init.text+0x15c): undefined reference to `mx6sx_lpm_wfi_start'
| cpuidle-imx6sx.c:(.init.text+0x160): undefined reference to `mx6sx_lpm_wfi_start'
| cpuidle-imx6sx.c:(.init.text+0x164): undefined reference to `imx6sx_low_power_idle'
| cpuidle-imx6sx.c:(.init.text+0x16c): undefined reference to `imx6sx_low_power_idle'
| cpuidle-imx6sx.c:(.init.text+0x238): undefined reference to `mx6sx_lpm_wfi_end'
| arch/arm/mach-imx/gpc.o: In function `imx_gpc_mf_request_on':
| gpc.c:(.text+0x730): undefined reference to `imx_gpcv2_mf_power_on'
| arch/arm/mach-imx/src.o: In function `imx_enable_cpu':
| src.c:(.text+0x180): undefined reference to `imx_gpcv2_set_core1_pdn_pup_by_software'
| arch/arm/mach-imx/hotplug.o: In function `imx_cpu_kill':
| hotplug.c:(.text+0xb0): undefined reference to `imx_gpcv2_set_core1_pdn_pup_by_software'
| arch/arm/mach-imx/mach-imx6q.o: In function `imx6q_init_machine':
| mach-imx6q.c:(.init.text+0x264): undefined reference to `imx6_enet_mac_init'
| arch/arm/mach-imx/mach-imx6q.o: In function `imx6q_map_io':
| mach-imx6q.c:(.init.text+0x5b8): undefined reference to `imx_busfreq_map_io'
| arch/arm/mach-imx/mach-imx6sl.o: In function `imx6sl_init_late':
| mach-imx6sl.c:(.init.text+0x50): undefined reference to `imx6sll_cpuidle_init'
| arch/arm/mach-imx/mach-imx6sl.o: In function `imx6sl_init_machine':
| mach-imx6sl.c:(.init.text+0x120): undefined reference to `imx6_enet_mac_init'
| arch/arm/mach-imx/mach-imx6sl.o: In function `imx6sl_map_io':
| mach-imx6sl.c:(.init.text+0x18c): undefined reference to `imx_busfreq_map_io'
| arch/arm/mach-imx/mach-imx6sx.o: In function `imx6sx_init_machine':
| mach-imx6sx.c:(.init.text+0x88): undefined reference to `imx6_enet_mac_init'
| arch/arm/mach-imx/mach-imx6sx.o: In function `imx6sx_map_io':
| mach-imx6sx.c:(.init.text+0x16c): undefined reference to `imx_busfreq_map_io'
| arch/arm/mach-imx/mach-imx6ul.o: In function `imx6ul_init_late':
| mach-imx6ul.c:(.init.text+0x1a4): undefined reference to `imx6ul_cpuidle_init'
| arch/arm/mach-imx/mach-imx6ul.o: In function `imx6ul_init_machine':
| mach-imx6ul.c:(.init.text+0x290): undefined reference to `imx6_enet_mac_init'
| arch/arm/mach-imx/mach-imx6ul.o: In function `imx6ul_map_io':
| mach-imx6ul.c:(.init.text+0x2d4): undefined reference to `imx_busfreq_map_io'
| arch/arm/mach-imx/mach-imx7d.o: In function `imx7d_init_late':
| mach-imx7d.c:(.init.text+0x0): undefined reference to `imx7d_cpuidle_init'
| arch/arm/mach-imx/mach-imx7d.o: In function `imx7d_init_machine':
| mach-imx7d.c:(.init.text+0x34): undefined reference to `imx7d_pm_init'
| mach-imx7d.c:(.init.text+0x4c): undefined reference to `imx6_enet_mac_init'
| arch/arm/mach-imx/mach-imx7d.o: In function `imx7d_init_irq':
| mach-imx7d.c:(.init.text+0x13c): undefined reference to `imx_gpcv2_check_dt'
| arch/arm/mach-imx/mach-imx7d.o: In function `imx7d_map_io':
| mach-imx7d.c:(.init.text+0x154): undefined reference to `imx7_pm_map_io'
| mach-imx7d.c:(.init.text+0x15c): undefined reference to `imx_busfreq_map_io'
| arch/arm/mach-imx/suspend-imx6.o: In function `done':
| (.text+0xa5c): undefined reference to `iram_tlb_phys_addr'
| arch/arm/mach-imx/pm-imx6.o: In function `imx6q_pm_enter':
| pm-imx6.c:(.text+0x4d4): undefined reference to `imx_mu_enable_m4_irqs_in_gic'
| pm-imx6.c:(.text+0x568): undefined reference to `imx_mu_is_m4_in_low_freq'
| pm-imx6.c:(.text+0x57c): undefined reference to `imx_mu_enable_m4_irqs_in_gic'
| arch/arm/mach-imx/pm-imx6.o: In function `imx6_dt_find_lpsram':
| pm-imx6.c:(.init.text+0x40): undefined reference to `iram_tlb_phys_addr'
| pm-imx6.c:(.init.text+0x44): undefined reference to `iram_tlb_phys_addr'
| pm-imx6.c:(.init.text+0x64): undefined reference to `iram_tlb_base_addr'
| pm-imx6.c:(.init.text+0x68): undefined reference to `iram_tlb_base_addr'
| arch/arm/mach-imx/pm-imx6.o: In function `imx6_pm_common_init':
| pm-imx6.c:(.init.text+0x104): undefined reference to `iram_tlb_phys_addr'
| pm-imx6.c:(.init.text+0x108): undefined reference to `iram_tlb_phys_addr'
| arch/arm/mach-imx/pm-imx6.o: In function `imx6_pm_map_io':
| pm-imx6.c:(.init.text+0x558): undefined reference to `iram_tlb_base_addr'
| pm-imx6.c:(.init.text+0x55c): undefined reference to `iram_tlb_base_addr'
| pm-imx6.c:(.init.text+0x584): undefined reference to `iram_tlb_phys_addr'
| pm-imx6.c:(.init.text+0x588): undefined reference to `iram_tlb_phys_addr'
| arch/arm/mach-imx/pm-imx6.o: In function `imx6sx_pm_init':
| pm-imx6.c:(.init.text+0x77c): undefined reference to `iram_tlb_phys_addr'
| pm-imx6.c:(.init.text+0x780): undefined reference to `iram_tlb_phys_addr'
| drivers/video/fbdev/mxc/mipi_dsi_samsung.o: In function `mipi_dsi_runtime_resume':
| mipi_dsi_samsung.c:(.text+0x19c): undefined reference to `request_bus_freq'
| drivers/video/fbdev/mxc/mipi_dsi_samsung.o: In function `mipi_dsi_runtime_suspend':
| mipi_dsi_samsung.c:(.text+0x200): undefined reference to `release_bus_freq'
| drivers/video/fbdev/mxc/mipi_dsi_northwest.o: In function `mipi_dsi_runtime_resume':
| mipi_dsi_northwest.c:(.text+0x28): undefined reference to `request_bus_freq'
| drivers/video/fbdev/mxc/mxc_epdc_fb.o: In function `mxc_epdc_fb_runtime_resume':
| mxc_epdc_fb.c:(.text+0x2b14): undefined reference to `request_bus_freq'
| drivers/video/fbdev/mxc/mxc_epdc_fb.o: In function `mxc_epdc_fb_runtime_suspend':
| mxc_epdc_fb.c:(.text+0x2b28): undefined reference to `release_bus_freq'
| drivers/video/fbdev/mxc/mxc_epdc_v2_fb.o: In function `mxc_epdc_fb_runtime_resume':
| mxc_epdc_v2_fb.c:(.text+0x6b4): undefined reference to `request_bus_freq'
| drivers/video/fbdev/mxc/mxc_epdc_v2_fb.o: In function `mxc_epdc_fb_runtime_suspend':
| mxc_epdc_v2_fb.c:(.text+0x6c8): undefined reference to `release_bus_freq'
| drivers/video/fbdev/mxsfb.o: In function `mxsfb_runtime_resume':
| mxsfb.c:(.text+0x184): undefined reference to `request_bus_freq'
| drivers/video/fbdev/mxsfb.o: In function `mxsfb_runtime_suspend':
| mxsfb.c:(.text+0x1c8): undefined reference to `release_bus_freq'
| drivers/clk/imx/clk-imx6sl.o: In function `imx6sl_set_wait_clk':
| clk-imx6sl.c:(.text+0x3c): undefined reference to `get_bus_freq_mode'
| drivers/tty/serial/imx.o: In function `imx_uart_dma_exit':
| imx.c:(.text+0x12f8): undefined reference to `release_bus_freq'
| drivers/tty/serial/imx.o: In function `imx_startup':
| imx.c:(.text+0x2f1c): undefined reference to `request_bus_freq'
| drivers/mtd/nand/gpmi-nand/gpmi-nand.o: In function `gpmi_runtime_suspend':
| gpmi-nand.c:(.text+0x45c): undefined reference to `release_bus_freq'
| drivers/mtd/nand/gpmi-nand/gpmi-nand.o: In function `gpmi_runtime_resume':
| gpmi-nand.c:(.text+0x4a8): undefined reference to `request_bus_freq'
| drivers/mtd/nand/gpmi-nand/gpmi-nand.o: In function `gpmi_nand_remove':
| gpmi-nand.c:(.text+0x72c): undefined reference to `release_bus_freq'
| drivers/net/ethernet/freescale/fec_main.o: In function `fec_runtime_resume':
| fec_main.c:(.text+0xb0): undefined reference to `request_bus_freq'
| drivers/net/ethernet/freescale/fec_main.o: In function `fec_runtime_suspend':
| fec_main.c:(.text+0x170): undefined reference to `release_bus_freq'
| drivers/net/ethernet/freescale/fec_main.o: In function `fec_probe':
| fec_main.c:(.text+0x354c): undefined reference to `request_bus_freq'
| drivers/usb/chipidea/ci_hdrc_imx.o: In function `imx_controller_suspend':
| ci_hdrc_imx.c:(.text+0xa0): undefined reference to `release_bus_freq'
| drivers/usb/chipidea/ci_hdrc_imx.o: In function `imx_controller_resume':
| ci_hdrc_imx.c:(.text+0x2d8): undefined reference to `request_bus_freq'
| ci_hdrc_imx.c:(.text+0x310): undefined reference to `release_bus_freq'
| drivers/usb/chipidea/ci_hdrc_imx.o: In function `ci_hdrc_imx_remove':
| ci_hdrc_imx.c:(.text+0x430): undefined reference to `release_bus_freq'
| drivers/usb/chipidea/ci_hdrc_imx.o: In function `ci_hdrc_imx_probe':
| ci_hdrc_imx.c:(.text+0x98c): undefined reference to `request_bus_freq'
| ci_hdrc_imx.c:(.text+0x9bc): undefined reference to `release_bus_freq'
| drivers/thermal/imx_thermal.o: In function `imx_thermal_remove':
| imx_thermal.c:(.text+0x4d0): undefined reference to `unregister_busfreq_notifier'
| drivers/thermal/imx_thermal.o: In function `imx_thermal_probe':
| imx_thermal.c:(.text+0xec0): undefined reference to `register_busfreq_notifier'
| drivers/cpufreq/imx6q-cpufreq.o: In function `imx6q_set_target':
| imx6q-cpufreq.c:(.text+0x2dc): undefined reference to `release_bus_freq'
| imx6q-cpufreq.c:(.text+0x2f8): undefined reference to `request_bus_freq'
| imx6q-cpufreq.c:(.text+0x504): undefined reference to `request_bus_freq'
| drivers/cpufreq/imx6q-cpufreq.o: In function `imx6q_cpufreq_init':
| imx6q-cpufreq.c:(.text+0x10b0): undefined reference to `request_bus_freq'
| drivers/mmc/host/sdhci-esdhc-imx.o: In function `sdhci_esdhc_runtime_resume':
| sdhci-esdhc-imx.c:(.text+0x4a8): undefined reference to `request_bus_freq'
| drivers/mmc/host/sdhci-esdhc-imx.o: In function `sdhci_esdhc_runtime_suspend':
| sdhci-esdhc-imx.c:(.text+0x644): undefined reference to `release_bus_freq'
| drivers/mmc/host/sdhci-esdhc-imx.o: In function `sdhci_esdhc_imx_remove':
| sdhci-esdhc-imx.c:(.text+0xfe8): undefined reference to `release_bus_freq'
| drivers/mmc/host/sdhci-esdhc-imx.o: In function `sdhci_esdhc_imx_probe':
| sdhci-esdhc-imx.c:(.text+0x1aa0): undefined reference to `request_bus_freq'
| sdhci-esdhc-imx.c:(.text+0x1b04): undefined reference to `release_bus_freq'
| drivers/mxc/vpu/mxc_vpu.o: In function `vpu_runtime_resume':
| mxc_vpu.c:(.text+0x330): undefined reference to `request_bus_freq'
| drivers/mxc/vpu/mxc_vpu.o: In function `vpu_runtime_suspend':
| mxc_vpu.c:(.text+0x344): undefined reference to `release_bus_freq'
| drivers/mxc/ipu3/ipu_common.o: In function `ipu_runtime_suspend':
| ipu_common.c:(.text+0x5674): undefined reference to `release_bus_freq'
| drivers/mxc/ipu3/ipu_common.o: In function `ipu_runtime_resume':
| ipu_common.c:(.text+0x5688): undefined reference to `request_bus_freq'
| drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.o: In function `gpu_runtime_resume':
| gc_hal_kernel_platform_imx.c:(.text+0x860): undefined reference to `request_bus_freq'
| drivers/mxc/gpu-viv/hal/os/linux/kernel/platform/freescale/gc_hal_kernel_platform_imx.o: In function `gpu_runtime_suspend':
| gc_hal_kernel_platform_imx.c:(.text+0x874): undefined reference to `release_bus_freq'
| drivers/tee/optee/call.o: In function `optee_do_call_with_arg':
| call.c:(.text+0x254): undefined reference to `request_bus_freq'
| call.c:(.text+0x2ac): undefined reference to `release_bus_freq'
| sound/soc/fsl/fsl_sai.o: In function `fsl_sai_runtime_resume':
| fsl_sai.c:(.text+0x118): undefined reference to `request_bus_freq'
| sound/soc/fsl/fsl_sai.o: In function `fsl_sai_runtime_suspend':
| fsl_sai.c:(.text+0x260): undefined reference to `release_bus_freq'
| sound/soc/fsl/fsl_ssi.o: In function `fsl_ssi_runtime_resume':
| fsl_ssi.c:(.text+0x30c): undefined reference to `request_bus_freq'
| sound/soc/fsl/fsl_ssi.o: In function `fsl_ssi_runtime_suspend':
| fsl_ssi.c:(.text+0x320): undefined reference to `release_bus_freq'
| sound/soc/fsl/fsl_spdif.o: In function `fsl_spdif_runtime_resume':
| fsl_spdif.c:(.text+0x774): undefined reference to `request_bus_freq'
| sound/soc/fsl/fsl_spdif.o: In function `fsl_spdif_runtime_suspend':
| fsl_spdif.c:(.text+0x9d0): undefined reference to `release_bus_freq'

kunal.kotecha@volansystech.com

0 Kudos

1,178 Views
pankajjoshi
Contributor I

Able to compile now, was mistake at my end while patching the Makefile for my platform changes.

0 Kudos

1,178 Views
pankajjoshi
Contributor I

Thanks Igor,

I may sound lame. Just curious to know, the difference between IMX GA release and a normal release. I do not see a GA release for 4.12.x kernel as shown in imx6ull documentation. It's directly going from 4.9.x to 4.14.x. I also see the mainline resource which you pointed, it has the 4.12.8 which is almost same as linux-yocto. I have to move to 4.12.x kernel for some of the driver built for the version. What do you suggest where shall i take the kernel from (I have imx6ull board) and i also have all the patches for my machine and device tree. I want to have all the optimization done by NXP for imx6ull in kernel 4.12.x version. Shall i use latest 4.12.14 as in linux-imx in CodeAurora or latest 4.12.8 in mainline resource (freescale/linux-fslc) or linux-yocto-4.12.x. My build system is Yocto. Please guide.

Regards,

Pankaj Joshi  

0 Kudos

1,178 Views
igorpadykov
NXP Employee
NXP Employee

Hi Pankaj

differencies are described on

difference between Yocto Community BSP and Freescale BSP Release 

NXP supports only own linux located on CodeAurora repository, as described in

Linux L4.14.98_2.0.0 Documentation

Best regards
igor

0 Kudos