Mainstream U-Boot and Linux kernel on the IGEPv2

From IGEP - ISEE Wiki

Revision as of 13:41, 6 October 2016 by Agustí Fontquerni (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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