booting Freescale kernel on Embest imx6 marsboard

cancel
Showing results for 
Search instead for 
Did you mean: 

booting Freescale kernel on Embest imx6 marsboard

3,479 Views
benhewson
Contributor I

I have an imx6 marsboard by Embest - imx6 dual core cpu

This board comes with quite an old kernel (3.0.15) and and equally old uboot.

I have a new version of uboot now booting  (problems with ethernet ) based on the Wandboard and Boundry Nitrogen6x code with modifications for the Marsboard.

This will boot the old kernel.

I have checked out the freescale kernel from git and I am trying the 3.10.17 beta branch. I have added a fairly bare dts file for the Marsboard hopefully enabling the uart.

Going by the quad core imx6 boards, this is pulling in imx6q.dtsi & imx6qdl.dtsi. The kernel is built using the imx_v7_defconfig.

uboot is loading the kernel at 0x12000000 and the dtb file at 0x18000000 (this is what the Wandboard does).

I get a serial console message of "Starting kernel" and then everything appears to die.

I am not sure now, if it is because of the load addresses used, or a configuration problem with the kernel.

Has anyone else managed to get a more current version of the kernel running on the Marsboard, or have an suggestions I could try.

thanks

Ben

Labels (2)
Tags (1)
0 Kudos
12 Replies

152 Views
janhieber
Contributor I

Hi,

I have got some kernel versions running and an up to date uboot.

But I don't have HDMI sound. Have you made any progress with this?

Best regards

Jan Hieber

0 Kudos

152 Views
frankba
Contributor III

Hi Jan,

checkout my BSP FrankBau/meta-marsboard-bsp · GitHub with kernel 3.10.53. The latest commit on master has working hdmi sound.

Frank

0 Kudos

152 Views
janhieber
Contributor I

Hi,

thanks. In the meantime I found it but forgot to post it here.

0 Kudos

152 Views
bradriensche
Contributor I

Hi Ben,

Are you still working with this board?  I started working with it, and got stuck in the same places you did.  I also disabled my eMMC, but was able to get it working again by doing a complete power cycle.  When you run this kernel, it enables a sneak path for power to come through the USB port.  You have to unplug the USB port to do a complete power cycle.

Brad

0 Kudos

152 Views
neeveehariharan
Contributor I

Please find here with the MarsBoard software support in U-Boot 2013.04. Please find here with git repository for your reference.

https://gitorious.org/u-boot-2013-04-port-on-imx6-marsboard/u-boot-2013-04-port-on-imx6-marsboard.gi...

This contains u-boot 2013.04 source code with mars board support, linux 3.10.17 kernel configuration, buildroot configuration with systemd functionality.

0 Kudos

152 Views
robrau
Contributor I

Hello Hariharan,

I took a look at the files you posted and I'm wondering if you had to do anything special to get the eMMC working on the marsboard. The kernel and dts file don't look much different from what I am using, but the Kernel always fails to initialize the eMMC on boot. I was hoping you might have some insight.

-Rob

0 Kudos

152 Views
neeveehariharan
Contributor I

Hello Rob,

Hardware interface between the eMMC & IMX6 processor uses 4 Bit data interface. But both IMX6 & eMMC flash used in MarsBoard supports 8 bit data eMMC bus interface.

Both get negotiated to operate over 8 bit bus, but only 4 data lines ( bits ) of eMMC used to interface. It makes that eMMC failed to initialize on boot. I am working on patch for this & update you in weeks time.

0 Kudos

152 Views
emmanuelpoitier
Contributor I

Hello Hariharan,

I am also confronted against the same issue on my MarS Board, and I was wondering if you have been able to fix it and if you could commit any changes you may have done. Thanks a lot in advance.

Best regards,

Emmanuel Poitier

0 Kudos

152 Views
frankba
Contributor III

Hi all,

head rev. 46b7b2e8025770fb29f7810c2d7d15a6650b9643 of mainline u-boot at git://git.denx.de/u-boot.git

can access MarS Board eMMC:

=> ver
U-Boot 2014.10-00471-g46b7b2e (Nov 04 2014 - 23:15:11)
arm-poky-linux-gnueabi-gcc (GCC) 4.8.2 
GNU ld (GNU Binutils) 2.24 
=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
=> mmc info
Device: FSL_SDH
Manufacturer ID: 88 
OEM: 103
Name: NCard
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.41
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
=> ext2ls mmc 1:7
...

Kind regards,

Frank

0 Kudos

152 Views
sebbru
Contributor I

I'm sorry I'm new to this community and imx6...

are there any new on dts for mars moard?

thanks

seb

0 Kudos

152 Views
benhewson
Contributor I

Hi Sebastiano,

I have managed finally to spend some time on this.

Using the latest Freescale Yocto (3.10.17) and from reading the documentation included in the fsl-L3.10.17_1.0.0_iMX6qdls_Bundle.tar.gz download I have managed to finally get my Marsboard booting, with some issues still.

For some reason my on board eMMC is not working.  I tried to update it originally using the Freescale MFG tool but it kept failing, so I am not sure if I have damaged it in some way or I am missing some configuration options.

I have the LVDS display from Embest and although uboot (latest from git) can initialise it and put a logo on it, I am not getting anything from Linux, but it could be a dts issue.

I am also trying out the Wayland/Weston build, which could also be the problem. May just be missing some backlight control, need to check the scehemtics.

The dts I am using is far from complete and probably has bits in it that are not needed.

my imx6q-marsboard.dts file contains the following.

/dts-v1/;

#include "imx6q.dtsi"

/ {

 

  model = "Marsboard i.MX6 Dual Board";

  compatible = "embest,imx6q-marsboard", "fsl,imx6q";

  aliases {

  mxcfb0 = &mxcfb1;

  mxcfb1 = &mxcfb2;

  mxcfb2 = &mxcfb3;

  mxcfb3 = &mxcfb4;

  };

  memory {

  reg = <0x10000000 0x40000000>;

  };

  mxcfb1: fb@0 {

  compatible = "fsl,mxc_sdc_fb";

  disp_dev = "ldb";

  interface_pix_fmt = "RGB666";

  mode_str ="LDB-XGA";

  default_bpp = <16>;

  int_clk = <0>;

  late_init = <0>;

  status = "disabled";

  };

  mxcfb2: fb@1 {

  compatible = "fsl,mxc_sdc_fb";

  disp_dev = "hdmi";

  interface_pix_fmt = "RGB24";

  mode_str ="1920x1080M@60";

  default_bpp = <24>;

  int_clk = <0>;

  late_init = <0>;

  status = "disabled";

  };

  mxcfb3: fb@2 {

  compatible = "fsl,mxc_sdc_fb";

  disp_dev = "lcd";

  interface_pix_fmt = "RGB565";

  mode_str ="CLAA-WVGA";

  default_bpp = <16>;

  int_clk = <0>;

  late_init = <0>;

  status = "disabled";

  };

  mxcfb4: fb@3 {

  compatible = "fsl,mxc_sdc_fb";

  disp_dev = "ldb";

  interface_pix_fmt = "RGB666";

  mode_str ="LDB-XGA";

  default_bpp = <16>;

  int_clk = <0>;

  late_init = <0>;

  status = "disabled";

  };

  v4l2_cap_0 {

  compatible = "fsl,imx6q-v4l2-capture";

  ipu_id = <0>;

  csi_id = <0>;

  mclk_source = <0>;

  status = "disabled";

  };

  v4l2_cap_1 {

  compatible = "fsl,imx6q-v4l2-capture";

  ipu_id = <0>;

  csi_id = <1>;

  mclk_source = <0>;

  status = "disabled";

  };

  v4l2_out {

  compatible = "fsl,mxc_v4l2_output";

  status = "disabled";

  };

};

&iomuxc {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_hog>;

  hog {

       pinctrl_hog: hoggrp {

  fsl,pins = < /* RIoT board */

  MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x80000000 /* SD2 WP */

  MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x80000000 /* SD2 CD */

  >;

       };

  };

};

&cpu0 {

  arm-supply = <&reg_arm>;

  soc-supply = <&reg_soc>;

  pu-supply = <&reg_pu>; /* use pu_dummy if VDDSOC share with VDDPU */

};

&gpc {

  fsl,ldo-bypass = <0>; /* use ldo-bypass, u-boot will check it and configure */

  fsl,wdog-reset = <1>; /* watchdog select of reset source */

  pu-supply = <&reg_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */

};

&gpu {

  pu-supply = <&reg_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */

};

&vpu {

  pu-supply = <&reg_pu>; /* ldo-bypass:use pu_dummy if VDDSOC share with VDDPU */

};

&fec {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_enet_1>;

  phy-mode = "rgmii";

  status = "okay";

};

&mxcfb1 {

  status = "okay";

};

&ldb {

  ipu_id = <1>;

  disp_id = <1>;

  ext_ref = <1>;

  mode = "sep1";

  sec_ipu_id = <1>;

  sec_disp_id = <0>;

  status = "okay";

};

&uart1 {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_uart1_1>;

  status = "okay";

};

&uart2 {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_uart2_1>;

  status = "okay";

};

&uart3 {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_uart3_1>;

  status = "okay";

};

&usbh1 {

  status = "okay";

};

&usdhc2 {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_usdhc2_1>;

  cd-gpios = <&gpio1 4 0>;

  wp-gpios = <&gpio1 2 0>;

  status = "okay";

};

&usdhc3 {

  pinctrl-names = "default";

  pinctrl-0 = <&pinctrl_usdhc3_2>;

  non-removable;

  status = "okay";

};

0 Kudos

152 Views
fabio_estevam
NXP Employee
NXP Employee

Hi Ben,

1. Please post the mars board support patch into the U-boot list

2. Please post the mars board dts patch to the arm-linux-kernel mailing list, so that we can review it there and provide you some suggestions. Just explain that you are not able to boot it.

With 1 and 2 we will be able to help you.

Regards,

Fabio Estevam

0 Kudos