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 kernel.org, follow the steps below.
1. Get the mainline kernel:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git(this 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
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.
Target System Configuration
 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.
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:
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: *** [drivers/video/mxsfb.o] Error 1
make: *** [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!
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git. Tonight I download linux-3.9.7 from kernel.org, and build with the instruction, ir works. By the way, LRADC is not implemented yet in current version of mainline kernel, isn't it?
LRADC driver is supported: drivers/staging/iio/adc/mxs-lradc.c
We can use touchscreen with this driver.
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.
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!
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.
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.
Thank you for your reply.