Hi there
I have been using kernel 3.0.35_4.0.0 without any problem but after upgrading to 3.10.17_1.0.0_beta the kernel refuses to stop because of invalid machine ID.
The startup is like:
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000eb9).
Available machine support:
ID (hex) NAME
ffffffff Generic DT based system
ffffffff Freescale i.MX6 Quad/DualLite (Device Tree)
ffffffff Freescale i.MX6 SoloLite (Device Tree)
Please check your kernel config and/or bootloader.
Is this missing ? or am I missing some config option for this ?
regards
Einar
Solved! Go to Solution.
Hi Einar,
First, make sure your U-boot is a recent one, such as 2013.04 from FSL BSP. The old 2009.08 does not allow device tree booting.
You can check the values for loading the dtb and uImage in
uboot-imx.git - Freescale i.MX u-boot Tree
loadaddr = 0x12000000
fdt_addr = 0x18000000
bootm ${loadaddr} - ${fdt_addr}
You could simply use the default scripts and the dtb and uImage will be loaded to the correct place into RAM and then it will boot.
Also, in your bootm example you passed the same address twice.
Regards,
Fabio Estevam
Now using yocto I added the freesclae-release-bsp so I can compile the 3.10.17, also for sabrelite. (adding PREFERRED_VERSION and PREFERREd PROVIDER to local.conf).
But when i configure MACHINE=imx6qsabrelite then i try to bit bake any image. I try to compile several packets (e.g uboot) but when it try tp compile uboot i have an error:
soc.c: In function 'v7_outer_cache_enable':
| soc.c:527:24: error: 'CONFIG_SYS_PL310_BASE' undeclared (first use in this function)
| (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
| ^
| soc.c:527:24: note: each undeclared identifier is reported only once for each function it appears in
| soc.c: In function 'v7_outer_cache_disable':
| soc.c:535:24: error: 'CONFIG_SYS_PL310_BASE' undeclared (first use in this function)
| (struct pl310_regs *)CONFIG_SYS_PL310_BASE;
| ^
| make[1]: *** [soc.o] Error 1
but when i bitbake the same but with MACHINE = imx6qsabresd it compiles with no error... something wrong on some CONFIGDEFINES I think... Any ideas?
Thanks
Omar
Omar,
It would be better to start a new thread for this new topic or maybe post this question to meta-fsl-arm mailing list.
Regards,
Fabio Estevam
Hi
I was able to run the kernel with those addresses, i.e.:
loadaddr = 0x12000000
fdt_addr = 0x18000000
I will just stick to those for now. Thanks again for your help.
regards
Einar
Hi Einar,
Glad to know you got it booting.
Please mark it as 'correct answer' so that we can close it.
Regards,
Fabio Estevam
Make sure you are also loading the dtb file into RAM and then in your U-boot script you need to do: bootm 0x18000000 - 0x1200000
Regards,
Fabio Estevam
Hi Fabio and thanks for the answer
I must admit I forgot to add in by bootm command to load the device tree.
After doing so It always fails with:
ERROR: image is not a fdt - must RESET the board to recover.
FDT creation failed! hanging...### ERROR ### Please RESET the board ###
The .dtb file was created during kernel build which is executed like:
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make uImage modules dtbs LOADADDR=10008000 -j4
In Uboot I do these commands to start the kernel:
#> ext2load mmc 1:1 10800000 /uImage
#> ext2load mmc 1:1 10700000 /board.dtb
#> bootm 10700000 - 10700000
Any suggestions on what I'm doing wrong here ?
regards
Einar
Hi Einar,
First, make sure your U-boot is a recent one, such as 2013.04 from FSL BSP. The old 2009.08 does not allow device tree booting.
You can check the values for loading the dtb and uImage in
uboot-imx.git - Freescale i.MX u-boot Tree
loadaddr = 0x12000000
fdt_addr = 0x18000000
bootm ${loadaddr} - ${fdt_addr}
You could simply use the default scripts and the dtb and uImage will be loaded to the correct place into RAM and then it will boot.
Also, in your bootm example you passed the same address twice.
Regards,
Fabio Estevam
Hi Fabio and thank you for response.
The address is a copy/paste error :smileysilly:
Thank you both Eric and Fabio for your help I will give this a go.
Regards
Einar
Hi Einar, and thanks Fabio,
There are some additional notes here:
http://boundarydevices.com/mx6-linux-kernel-3-10-17-beta/
A boot script which loads the DTB is here: