element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Avnet Boards General U-boot machine ID
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 7 replies
  • Subscribers 338 subscribers
  • Views 1281 views
  • Users 0 members are here
Related

U-boot machine ID

Former Member
Former Member over 12 years ago

Currently I am testing the zedboard's zynq chip for its potential use in future products.
One of its requirements is to run Windriver Linux, this is giving quite the problems.


After creating a new linux kernel, devicetree and rootfs, I use the xilinx U-Boot to launch this new kernel.


I can launch the original linuz that came with the board using this U-Boot. With my own kernel it gets stuck after 'booting the kernel'.


Now this isnt the most uncommon error and using low-level debugging I managed to extract the following onformation:
<6>Booting Linux on physical CPU 0
<6>Initializing cgroup subsys cpuset
<6>Initializing cgroup subsys cpu
<5>Linux version 3.4.34-rt40-WR5.0.1.0_preempt-rt (gcc version 4.6.3 (Wind River Linux Sourcery CodeBench 4.6a-99) ) #1 SMP PREEMPT RT Tue May 7 10:05:01 CEST 2013
<4>CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
<4>CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
<4>
<4>Error: unrecognized/unsupported machine ID (r1 = 0x1fb56824).
<4>
<4>Available machine support:
<4>
<4>ID (hex)tNAME
<4>fffffffftXilinx Zynq Platform
<4>
<4>Please check your kernel config and/or bootloader.



after a long struggle to find out the problem, it appears that U-Boot is not giving a correct machine ID (the r1) to the kernel.


So the zedlinux does not require this check? is that some sort of config that I can set in my own kernel as well?
I checked the machine ID that the U-Boot creates/finds using dbinfo.
This machine id is identical to the r1 of the error message.


In the xilinx U-boot repository the correct machine ID can be found in mach-types.h but this does not appear to be used by the zynq config. Is this perhaps the problem? Or can I create a new U-Boot that does contain the correct ID?

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 12 years ago

    I'm having a similar error. Have you found a solution yet? I'll keep looking.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • bhfletcher
    0 bhfletcher over 12 years ago

    I'm told this is a mismatch between the kernel and u-boot. Have you tried the 14.4 version of U-boot?

    Bryan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago

    yes, i have used different versions of U-boot.
    The oob version.
    My own compiled u-boot (based on xilinx wiki guide)
    14.3 U-boot
    14.4 U-boot
    14.5 U-boot.
    The last one seems to have a problem with the SD card though. it can only load U-boot fromt he card and then does not release it for further use. I have not tried a different SD card with that version of U-boot yet.

    But the problem does not seem to be the U-boot version but rather a devicetree mis-match.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago in reply to Former Member

    Although the kernel is not functional yet, I did manage to get past this point by entering a different compatible string in the devicetree root node.

    At the point of my previous post the devicetree appears to have been ignored or something (not found any reason for this) but according to documentation found in the linux-xlnx tree the actual ID (r1) does not matter, it loads the machine information from the device tree.
    So this message seems to mean that the devicetree is not found/loaded. I could be mistaken but it seems this way.

    Instead of the xlnx,zynq-zed you can also find in the xilinx-linux devicetree, I entered xlnx,zynq-zc702 which it accepted as a compatible machine.
    This is pretty odd because I cloned a BSP for this project and the xlnx,zynq-zed is listed as a compatible machine in the kernel...

    Nontheless, I think it is worth the try for you as well, just to see if it responds. just adjust the devicetree root node compatible strign to something else the kernel should be compatible with.

    Btw, I use a uImage and boot my kernel with bootm <kernel address> - <devicetree address>
    The seccond argument is the ramdisk which is the seccond partition of the SD card. it is listed in the devicetree so it should work this way according to windriver documentation.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • linux.matthew
    0 linux.matthew over 12 years ago

    Has there been a solution for this?  I can boot off an SD card I create with the u-boot kernel image I bitbake from the meta-xilinx layer.  But if I try to bootp/bootm the kernel, it dies with the error described above

    Error: unrecognized/unsupported machine ID (r1 = 0x00000000).

    Available machine support:

    ID (hex)        NAME
    ffffffff        ARM-Versatile Express
    000008e0        ARM-Versatile Express
    00000d32        Xilinx Zynq Platform

    How can I get around this?

    Matt

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago

    Maybe this may not work for you but i'll post my solution.

    I use a uImage instead of a zImage that allows me to use the bootm command.
    (if you use Digilent linux or Xilinux you need to have the 'fixed_devtree' configuration in .config disabled. if this option is set, you start with 'go')

    you can use mkimage to convert the zImage to a uImage
    if you add "UIMAGE_LOADADDR=0x8000 uImage" to the make command.

    Besides making a uImage you need to load the uImage one a different address than the zImage because you will get more error if you do.

    instead of loading it at 0x8000, you load it 64 bytes before it at 0x79c0. so im my case (i use a NFS):

    tftp 0x79c0 uImage
    tftp 0x1000000 devicetree.dtb
    bootm 0x79c0 - 0x1000000

    this option works for me, feel free to try it yourself.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago

    I solved the problem by changing the name of the devicetree.dtb file to the expected one.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube