Mainstream U-Boot and Linux kernel on the IGEPv2
From IGEP - ISEE Wiki
This Wiki page has been created using input from Enric and Javier. I did contact them via their blog and ISEE forum and they provided me the information required to write this wiki.
Note:This is tested on an IGEPv2 RC6, other board versions might not work.
1) U-BOOT
Follow the instructions given at: http://labs.isee.biz/index.php/U-Boot_Mainline_Series. Please make sure to select the proper configuration.
Here is my uEnv.txt:
loadaddr=0x82000000 fdtaddr=0x81600000 kernel_file=zImage fdtfile=omap3-igep0020.dtb bootdir=/boot mmcdev=0 mmcpart=1 bootargs='console=ttyO2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60 omapdss.def_disp=dvi' loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${kernel_file} loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/${fdtfile} mmcroot=/dev/mmcblk0p2 rw rootwait mmcrootfstype=ext4 rootwait fixrtc mmcargs=setenv bootargs ${bootargs} mpurate=800 root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs} uenvcmd=run loadzimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
Note that the MPU rate is set to 800 i.s.o. 1000, There seems to be an issue with 1Ghz according to Enric:
AFAIK, 1GHz is not supported by mainline because requires the Adaptive Body Bias(ABB) LDO driver and is not merged yet. So the maximum safe speed for now is 800MHz.
2) Kernel
I am working with kernel 3.15.rc3. You need to modify omap2plus_defconfig first otherwise DVI output and USB won't work. The following settings must be applied (thanks to Enric):
CONFIG_DMA_SHARED_BUFFER=y CONFIG_MTD_NAND_BCH=y CONFIG_MTD_NAND_ECC_BCH=y CONFIG_MTD_NAND_OMAP_BCH=y CONFIG_I2C_ALGOBIT=m CONFIG_MFD_OMAP_USB_HOST=y CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y CONFIG_DRM_I2C_NXP_TDA998X=m CONFIG_DRM_OMAP=m CONFIG_DRM_OMAP_NUM_CRTCS=1 CONFIG_DRM_TILCDC=m CONFIG_HDMI=y CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y CONFIG_FB_SYS_FOPS=m CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_USB_OTG=y CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_EHCI_HCD_OMAP=m CONFIG_USB_MUSB_HDRC=m CONFIG_USB_MUSB_DUAL_ROLE=y CONFIG_USB_MUSB_OMAP2PLUS=m CONFIG_USB_MUSB_DSPS=m CONFIG_USB_MUSB_AM335X_CHILD=m CONFIG_MUSB_PIO_ONLY=y CONFIG_AM335X_CONTROL_USB=m CONFIG_AM335X_PHY_USB=m CONFIG_TWL4030_USB=m CONFIG_BCH=y CONFIG_ARM_ERRATA_430973=y
Then build the kernel using:
make ARCH=arm omap2plus_defconfig make ARCH=arm CROSS_COMPILE=[your cross compiler] zImage modules dtbs make ARCH=arm CROSS_COMPILE=[your cross compiler] INSTALL_MOD_PATH=[path to your target rootfs] modules_install
3) Rootfs
I used https://rcn-ee.net/deb/minfs/wheezy/debian-7.4-minimal-armel-2014-04-01.tar.xz as my root file system.
Now you can use both 'armel' as 'armhf' rootfs. That has been tested with kernel 3.17 with https://rcn-ee.net/deb/minfs/trusty/ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz root file system.
A big thankyou goes to: eballetbo, martinezjavier and ebutera for their efforts on u-boot and the kernel. A warm round of applause goes to Mr Robert Nelson for providing these nice file system images