Kernel 3.10 and machine ID for sabrelite

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

Kernel 3.10 and machine ID for sabrelite

Jump to solution
5,427 Views
EinarMar
Contributor IV

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

Labels (2)
1 Solution
1,519 Views
fabio_estevam
NXP Employee
NXP Employee

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

View solution in original post

10 Replies
1,519 Views
Selea
Senior Contributor I

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

0 Kudos
1,519 Views
fabio_estevam
NXP Employee
NXP Employee

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

1,519 Views
EinarMar
Contributor IV

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

0 Kudos
1,519 Views
fabio_estevam
NXP Employee
NXP Employee

Hi Einar,

Glad to know you got it booting.

Please mark it as 'correct answer' so that we can close it.

Regards,

Fabio Estevam

0 Kudos
1,519 Views
fabio_estevam
NXP Employee
NXP Employee

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

0 Kudos
1,519 Views
EinarMar
Contributor IV

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

0 Kudos
1,520 Views
fabio_estevam
NXP Employee
NXP Employee

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

1,519 Views
EinarMar
Contributor IV

Hi Fabio and thank you for response.

The address is a copy/paste error :smileysilly:

0 Kudos
1,519 Views
EinarMar
Contributor IV

Thank you both Eric and Fabio for your help I will give this a go.

Regards

Einar

0 Kudos
1,519 Views
EricNelson
Senior Contributor II

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:

    u-boot-imx6/board/boundary/nitrogen6x/6x_bootscript.txt at production · boundarydevices/u-boot-imx6 ...