This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

boot fail, unrecognized/unsupported machine ID



i build linux kernel "uImage", and boot board via TFTP, when booting the kernel, it failed, the error message is "Error: unrecognized/unsupported machine ID (r1 = 0x00000ca7).", any suggestion ?

following is the info

setenv ipaddr 10.2.1.9
TI8148_IPNC#setenv serverip 10.2.1.10
TI8148_IPNC#setenv bootcmd 'tftpboot 0x81000000 uImage; bootm 0x81000000'
TI8148_IPNC# setenv bootargs 'mem=128M console=ttyO0,115200n8 root=/dev/nfs rw rootfstype=jffs2 nfsroot=10.2.1.10:/BoardNFS ip=10.2.1.9:10.2.1.10:10.2.1.1:255.255.255.0::eth0:off'
TI8148_IPNC#boot
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 10.2.1.10; our IP address is 10.2.1.9
Filename 'uImage'.
Load address: 0x81000000
Loading: *T #################################################################
  #########################
done
Bytes transferred = 2457104 (257e10 hex)
## Booting kernel from Legacy Image at 81000000 ...
   Image Name:   Linux-2.6.37
   Created:      2011-09-01   3:17:26 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2457040 Bytes = 2.3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000ca7).
Available machine support:
ID (hex) NAME
00000bbc ti8148evm
Please check your kernel config and/or bootloader.

  • Hello,

    This is because the machine type passed by U-Boot is 0xca7 while the kernel is supporting only TI8148 EVM which has machine type as 0xbbc.

    Can you please provide following info?

    1) Which U-Boot and kernel sources are you using?

    2) Have you done any modifications/additions to U-Boot, Kernel? Particularly, did you add a new board support?

    One option to avoid this error is setting U-Boot environment 'machid' to value as expected by kernel, that is, do "setenv machid bbc" but this may not be applicable when you need to boot on a different board than TI8148 EVM.

       Hemant

  • hi, Hemant
     
    my board is TMDXIPCAM8127J3 from Appro

    1) Which U-Boot and kernel sources are you using?

    U-Boot is on flash provided by Appro, i don't know it's version,

    under uboot, i type command "version", got message "U-Boot 2010.06 (Jul 06 2011 - 10:51:44)"

    kernel source is "ezsdk_5_02_01_59" for 8148, "linux-2.6.37-psp04.01.00.05.patch1"  

    2) Have you done any modifications/additions to U-Boot, Kernel? Particularly, did you add a new board support?

    i didn't modify kernel source.

    what can i do next ?
    "machine ID" belongs to the board or belongs to the chip ?
  • Hi Huang,

    Noticed the thread and thought I'd chime in on something to look for regarding the "machid".

    We're working with TI8168 boards/kernels but I'm sure it follows the same architecture.

    If you look into your board specific setup file that the kernel uses in your EZSDK,

    [e.g.: $EZSDK/LINUX/arch/arm/mach-omap2/board-ti81[46]8.c] at the bottom you should

    see something like:

       MACHINE_START(TI8168EVM, "ti8168evm")

          /*** STUFF ***/

       MACHINE_END

    If you look for the TI8168EVM macro [TI8148EVM in your case] in the file

    $EZSDK/LINUX/arch/arm/tools/mach-types

    you should find the value that the kernel is using for the "machid". This is specified in DECIMAL.

    you'll want to convert it to HEX and specify that value when you boot up UBOOT to set the "machid"

    to this value.

     

    Hope this helps.

     

    Juan Solis.

  • Huang,

    Machine ID is used by the kernel during boot to identify which board it is running on. The machine type registered for 8148 EVM is 0xbbc which is passed by U-Boot.

    In your case, it is possible that the U-Boot was modified to pass a different machine type (0xca7) as the board is different, while the kernel only supports (or built for) 8148 EVM.

    As I mentioned, you could try setting 'machid' environment variable at U-Boot prompt to see if kernel boots but the kernel may not boot as you will be running the 8148 EVM code on a different board (e.g., on board peripheral initialization may be impacted due to difference in boards).

       Hemant

  • hi, Juan

    thanks!

    i found the code.

  • hi, Hemant

    it seems that a new machine type was added by Appro. if set 'machid' at U-Boot prompt, will the board be damaged ?

  • Huang,

    Since the new machine type was added, it is most likely that the corresponding board support was also added in the kernel. Can you check with Appro?

       Hemant