Booting 3.10.9 or 3.5.7 on Sabre SDB

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Booting 3.10.9 or 3.5.7 on Sabre SDB

Jump to solution
1,318 Views
AlexHarford
Contributor II

I have successfully been booting a custom built 3.0.35 on my Sabre SDB for a while now, but I would like to go to a newer kernel.

I built the 3.5.7 and 3.10.9 tree but have not been able to get them to boot. Loading them via U-Boot results in no console output. I don't have any JTAG tools so I can't see what is going on.

Has anyone successfully done this? Is there a more recent tree than 'imx_3.10.9_1.0.0_alpha'?

Labels (3)
0 Kudos
1 Solution
950 Views
sinanakman
Senior Contributor III

Hi Alex, with mainline I am referring to Linus tree.

I suggest you just clone the latest mainline (Linus tree) and set the def config with something like :

make imx_v6_v7_defconfig

I further modified the config file with menuconfig to make sure it only generates the image for the board I am interested in (there is no harm generating multi-image, it just takes longer).

While building the image you will have to provide the load address, e.g :

make -j 4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=10008000 uImage

Also you will have to generate the device tree for your board, e.g :

make -j 4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- imx6q-sabresd.dtb

When you are in the u-boot command line you can then boot your kernel with something like :

tftp 0x10800000 uImage.sabre.v3; tftp 0x12000000 imx6.ramdisk; tftp 0x13000000 imx6q-sabresd.dtb; bootm 0x10800000 0x12000000 0x13000000

I am also using the mainline u-boot (not FSL's u-boot) so if you like you can compile and use that too. You will also have to provide the root file system. But I think you already have one from FSL files, this should work fine.

Hope this helps

Sinan Akman

View solution in original post

0 Kudos
7 Replies
950 Views
AlexHarford
Contributor II

Sinan,

I am using the U-Boot v2013.10 tag, and building like this:

  $ cd u-boot

  $ export CROSS_COMPILE=/path/to/my/crosstool-

  $ make mx6qsabresd_config

  $ make


When you refer to the recent mainline Linux kernel, are you referring to the Freescale git tree, or to Linus' tree? I would greatly appreciate if you could attach a working .config.

0 Kudos
951 Views
sinanakman
Senior Contributor III

Hi Alex, with mainline I am referring to Linus tree.

I suggest you just clone the latest mainline (Linus tree) and set the def config with something like :

make imx_v6_v7_defconfig

I further modified the config file with menuconfig to make sure it only generates the image for the board I am interested in (there is no harm generating multi-image, it just takes longer).

While building the image you will have to provide the load address, e.g :

make -j 4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=10008000 uImage

Also you will have to generate the device tree for your board, e.g :

make -j 4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- imx6q-sabresd.dtb

When you are in the u-boot command line you can then boot your kernel with something like :

tftp 0x10800000 uImage.sabre.v3; tftp 0x12000000 imx6.ramdisk; tftp 0x13000000 imx6q-sabresd.dtb; bootm 0x10800000 0x12000000 0x13000000

I am also using the mainline u-boot (not FSL's u-boot) so if you like you can compile and use that too. You will also have to provide the root file system. But I think you already have one from FSL files, this should work fine.

Hope this helps

Sinan Akman

0 Kudos
950 Views
AlexHarford
Contributor II

Aha, thank you! It looks like I had an incorrect LOADADDR, both the Freescale 3.10.9 (which I need for the PCIe driver) and the mainline 3.12.0 release are working now!

0 Kudos
950 Views
niklasmolin
Senior Contributor I

Hi Alex.

Where did you change the LOADADDR?

I might have the same problem when I'm trying to load the 3.10.9 kernel version (using Sabre SD board)

All I get is:

mmc1 is current device

reading boot.scr

** Unable to read file boot.scr **

reading uImage

5092288 bytes read in 255 ms (19 MiB/s)

Booting from mmc ...

reading imx6q-sabresd.dtb

** Unable to read file imx6q-sabresd.dtb **

## Booting kernel from Legacy Image at 12000000 ...

   Image Name:   Linux-3.10.9-1.0.0_alpha+gdbf364

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    5092224 Bytes = 4.9 MiB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... OK

   Loading Kernel Image ... OK

Starting kernel ...

Thanks,

Niklas

0 Kudos
950 Views
sinanakman
Senior Contributor III

Hi Niklas, take a look at my reply above. You can use :

make -j 4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=10008000 uImage

to define the LOADADDR.

Hope this helps

Sinan Akman

0 Kudos
950 Views
sinanakman
Senior Contributor III

Sounds good. There are actually pcie patches for the mainline :

http://article.gmane.org/gmane.comp.boot-loaders.u-boot/145532/match=patch+v10+add+dmmalloc+module+d...

Perhaps you can give this a try.

Thanks

Sinan Akman

0 Kudos
950 Views
sinanakman
Senior Contributor III

Hi Alex, I am running a recent mainline Linux on sabre sd and booting it with latest mainline u-boot. If you just clone the tip of the tree and build with sabresd config you should be able to run the latest mainline Linux kernel. If you run into problems let me know, I can then send you the config etc I had used.

Hope this helps

Sinan Akman

0 Kudos