This is a blog post that describes how to run a functional and up to date Linux kernel on the IFC6410. See my previous blog post for more details on the actual device and setup/install.
While it is possible to run Linux 3.18 on the IFC6410, it stills lacks functionality that you likely want to have. Linaro maintains a branch that is the Linux kernel with some patches on top:
So, clone it and checkout the proper branch (as of today, at least):
git clone https://git.linaro.org/landing-teams/working/qualcomm/kernel.git git checkout -t origin/integration-linux-qcomlt
Compile the kernel (if you compile from the IFC, omit the CROSS_COMPILE and INSTALL_MOD_PATH) options:
CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make qcom_defconfig CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make menuconfig CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make zImage modules qcom-apq8064-ifc6410.dtb CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm INSTALL_MOD_PATH=../modules make modules_install cat fixup.bin arch/arm/boot/zImage arch/arm/boot/dts/qcom-apq8064-ifc6410.dtb > ../zImage
Now, get the following files from Linaro to create the boot image:
wget http://releases.linaro.org/14.05/ubuntu/ifc6410/bootimg.cfg wget -O initrd.img http://releases.linaro.org/14.05/ubuntu/ifc6410/initrd.img-3.4.0-linaro-ifc6410
Modify the bootimg.cfg to something like the following:
loglevel=10 earlyprintk=serial,ttyMSM0,115200,n8 console=ttyMSM0,115200,n8 console=/dev/console root=/dev/mmcblk1p1 rootwait rw
Of course, change the root parameter (and others) as necessary.
Now you can create the boot image with the following command:
abootimg --create ifc6410-boot.img -f bootimg.cfg -k zImage -r initrd.img
If you don't have abootimg, see the previous blog post.
Do not forget to change the serial in /etc/inittab to ttyMSM0 from ttyHSL0!
As of writing, the IFC6410 will not clock at the full 1.7 Ghz frequency, but at a lower frequency, around 900 Mhz. This is because the kernel does not yet support raising the voltage (as I understood), so running it at a higher frequency currently runs the risk of undervolting.
Big thanks to all the people in #freedreno on Freenode; as well as John Peel (aka Dgby714) who provided me with these literal instructions.