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'?
Solved! Go to Solution.
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
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.
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
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!
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
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
Sounds good. There are actually pcie patches for the mainline :
Perhaps you can give this a try.
Thanks
Sinan Akman
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