Running a Mainline Kernel on an i.MX28 EVK Board

Showing results for 
Search instead for 
Did you mean: 

Running a Mainline Kernel on an i.MX28 EVK Board

Running a Mainline Kernel on an i.MX28 EVK Board

The latest i.MX28 BSP provided by Freescale (10.12) is based on a 2.6.35 kernel.

If you want to use the latest and greatest kernel version from, follow the steps below.

1. Get the mainline kernel:

git clone git:// is only done once)

git checkout -b yourlocalbranch origin/master

2. Export the toolchain

PATH=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/:$PATH export PATH export CROSS_COMPILE=arm-none-linux-gnueabi- export ARCH=arm

3. Build the kernel

make mxs_defconfig

make uImage

sudo cp arch/arm/boot/uImage /tftpboot

(In this example /tftpboot is the directory used to send files via TFTP)

4. Kernel command line:

On U-boot change the following parameter of the kernel command line:




5. On LTIB

You can still use LTIB to provide the root file system.

./ltib -c

Target System Configuration

Options ---->


[] boot up with tty and login

If this option is selected the serial port will fail to open as it still uses ttyAM0 instead of ttyAMA0.

6. Boot the kernel via TFTP and mount the rootfs via NFS.

Labels (1)

Hi, Jodi

In my system, the file system is NAND based ubifs which takes quite long time to boot up. The FAST MAP of new ubi may shorten the booting time. As the first step to move to new platform, I try to make uImage, but fail on:

  CC      drivers/video/mxsfb.o

drivers/video/mxsfb.c: In function 'mxsfb_init_fbinfo_dt':

drivers/video/mxsfb.c:780: warning: passing argument 1 of 'videomode_from_timing' from incompatible pointer type

include/video/videomode.h:43: note: expected 'const struct display_timing *' but argument is of type 'struct display_timings *'

drivers/video/mxsfb.c:780: error: too many arguments to function 'videomode_from_timing'

drivers/video/mxsfb.c:780: error: void value not ignored as it ought to be

drivers/video/mxsfb.c:787: error: 'struct videomode' has no member named 'data_flags'

drivers/video/mxsfb.c:789: error: 'struct videomode' has no member named 'data_flags'

make[2]: *** [drivers/video/mxsfb.o] Error 1

make[1]: *** [drivers/video] Error 2

make: *** [drivers] Error 2

Are there any patch required? Please let me know how to fix the issue if possible, thanks!


Cheng Shi

Which kernel version is this? Please make sure you are using the latest one from the stable branch.

Thanks for your quick reply. :-)

I can not tell the version, as I just follow the instruction to git clone git:// Tonight I download linux-3.9.7 from, and build with the instruction, ir works. By the way, LRADC is not implemented yet in current version of mainline kernel, isn't it?


Cheng Shi

LRADC driver is supported: drivers/staging/iio/adc/mxs-lradc.c

We can use touchscreen with this driver.

Thanks Fabio.

As I understand, a new version of uboot is required to pass device tree info (DTB) to kernel. With Linux-2.6.35, uboot-2009 is the bootloader used in my design. Please let me know the version of uboot which supports both imx28EVK and dtb, thanks.


Cheng Shi

It's been there for a while, but mainline UBoot 2013.04 is a safe bet.

You might want to use linux-stable tree and a proper linux-3.9.y tag.

Thanks Marek. I will try Linux-3.9.7 with Uboot 2013.04 later

Hi, Jodi and Marek

I have made that Linux-3.9.7 running on my imx28 based board. The UBI driver with FASTMAP option reduces the boot from over 30s to less than 10s which is satisfied my requirement. But I can not find the implementation of USB OTG driver. Is it required to get some patch? Please let me know how to get the USB OTG driver if available. Thanks!


Cheng Shi

USB otg patches will reach mainline in 3.12-rc1.

If you want to use it now, you could use linux-next and give it a try as USB OTG is functional on mx28 in linux-next currently.

Hi FabioEstevam and others.

I'm seeing that mainline kernel is now default for i.MX23 in Yocto:

meta-fsl-arm - Layer containing Freescale ARM hardware support metadata

but not for i.MX28 (at least not for the i.MX28EVK).

Freescale Community BSP Release Notes 1.5 documentation

Does that mean that there are some i.MX28 features that are not mainlined yet? Is there a list somewhere of the current status (3.12 / 3.13rc)?



In my case, Linux-3.9.7 is used. No limit is found until now.

Cheng Shi


From: DiegoFSL

Sent: Wednesday, November 13, 2013 5:16 PM

To: Cheng Shi

Subject: Re: - Running a Mainline Kernel on an i.MX28 EVK Board

Running a Mainline Kernel on an i.MX28 EVK Board

new comment by DiegoFSL View all comments on this document


You can take a look at arch/arm/boot/dts/imx28.dtsi and arch/arm/boot/dts/imx28-evk.dts to get an idea of what support is available in the current mainline kernel.

It is in good shapw now. Let us know if you find any missing feature that you need.


Fabio Estevam

Thank you for your reply.


Version history
Revision #:
1 of 1
Last update:
‎08-08-2012 01:56 PM
Updated by: