U-Boot FAQ

How does U-Boot auto-detect the connected PDA on my board ?

A: U-Boot uses a specific GPIO pin to read a memory from the connected PDA. More information can be found on this page.

How can I add another Device Tree overlay to my base Device Tree blob at runtime ?

A: U-boot allows the user to load a Device Tree Overlay and apply it on the base Device Tree Blob just before booting Linux, thus making it transparent for Linux (Linux will see just one Device Tree Blob like it expects). For more information, visit this page.

My U-boot detects some screens but not mine. What can I do ?

A: U-boot detects all PDAs that have the EEPROM properly pre-programmed. The U-boot environment loads a specific overlay for Linux for 4 possible screen types. Your screen might be detected, but the required overlay for Linux may not be loaded. There is a difference between detecting a screen and loading an overlay for a specific screen type. U-boot in our release comes with a pre-written U-boot environment script that loads the corresponding Device Tree Overlay for specific types of screens. You are free to manually override this behavior, add your own custom behavior, or force U-boot to do something else at boot time. For more information about the default environment and how to tweak it from U-boot prompt, visit this page.

Which screens can be connected to my board? Does U-boot detect them all ?

A: For information about which screens you can connect, check this page. For information about what screens can U-boot detect, check this question.

I have a connected screen, but U-boot detects it wrong. Can I force U-boot to load another screen configuration?

A: Yes. Check this page on how to force U-boot to load another screen type.

My screen is black, although it's a right screen, it is supposed to be detected. What can I do?

A:
  • Check the hardware: ribbon cables, check that your board supports the 1Wire EEPROM connection. This page explains this mechanism.
  • Check if the display is really detected: When U-boot boots, it should print "PDA TMXXXX detected" , according to which screen you have connected. If it does not print, then you either have a faulty hardware setup, or, you have an unknown screen.
  • If you have an old variant of TM5000 screen, the EEPROM is not properly programmed. You need to force U-boot to load the TM5000 configuration. See this page on how to do that.
  • If your screen is unknown, but is a correct hardware setup, then, U-boot will read the screen information and set an environment variable. Stop the U-boot autoboot and at the prompt issue 'printenv' . Look at the 'pda' variable. Debug further from there, if you need to load a specific Device Tree overlay for your screen. You can find information about how to tweak your U-boot environment script to cope with different situations here.
  • If everything is fine in U-boot, then the Linux Kernel is to blame !

What is a FIT image and how does this work with U-boot?

A: A FIT image is like an archive, a collection of more images that can be used in the boot process, wrapped in a single file. It can contain Kernel images, Device tree Blobs, etc. More information is available here.

I have a working setup with a specific PDA. I want to connect another PDA. Do I need to reflash my board or change any configuration ?

A: No. U-boot will automatically detect your new connected PDA and load the specific configuration, all is already present on your board. You do not need to change anything. Remove your PDA, connect the new PDA and replug your board !

How do I use U-Boot to store binaries in FLASH ?

A: One U-Boot available on the board, you can use it to flash binaries on storage media. The following examples can be used for Linux kernel, root filesystem or whatever you binary you want on your FLASH storage media :

JFFS2 in NAND FLASH

Following commands documentation is available in the u-boot doc/README.nand documentation file.

    1. erase the whole NAND FLASH

U-Boot> nand erase

NAND erase: device 0 whole chip
Skipping bad block at  0x000c0000
Skipping bad block at  0x009c0000
Erasing at 0xffe0000 -- 100% complete.
OK

    2. download the JFFS2 filesystem from TFTP to the board RAM (address 0x21400000(1))

U-Boot> tftp 0x21400000 x11-image-demo-at91sam9263ek.jffs2
TFTP from server 10.159.240.137; our IP address is 10.159.245.170
Filename 'nferre/x11-image-demo-at91sam9263ek.jffs2'.
Load address: 0x21400000
Loading: T #################################################################
         #######################################################T ##########
         #################################################################
         [..]
        #########################
done
Bytes transferred = 26083328 (18e0000 hex)
    Pencil remember the number of Bytes transferred just indicated above. It will be useful for the nand write.jffs2 command.

    3. write the filesystem from RAM@0x21400000(2) to NAND FLASH at offset 0x400000 (Linux /dev/mtdblock1). Note the last parameter : it is the number of Bytes transferred indicated in the previous command.

U-Boot> nand write.jffs2 0x21400000 0x400000 0x18e0000

NAND write: device 0 offset 0, size 26083328 ...
Bad block at 0xc0000 in erase block from 0xc0000 will be skipped
Bad block at 0x9c0000 in erase block from 0x9c0000 will be skipped
Writing data at 0x195f800 -- 100% complete.
OK

Pointing hand Note that bad blocks just shown above are normal behavior of a NAND FLASH : they are skipped and the filesystem will not mind, it is designed to manage them.

Good, now you have a fresh JFFS2 filesystem you can boot on.

JFFS2 in NOR FLASH

Use U-Boot to write JFFS2 in NOR FLASH => use of the cp.b command applicable for DataFlash and any binary file. Reference for the cp command

How do I access U-Boot environment while Linux is running ?

A: U-Boot provides little command line tool to access environment from Linux. It is located in U-Boot source code tree : tools/env directory. You will certainly have to tailor your MTD partitioning to identify the U-Boot environment in one MTD partition.
Have a look at the U-Boot README documentation for fw_env.

I get a strange error when booting a FIT image Node name contains @ in 'kernel@1' image node

A: Please check this page

Notes

1 , 2 : Warning, important for at91sam9g45 family: use proper location for RAM: 0x70000000 instead of 0x20000000


r15 - 18 Jun 2024 - 08:46:54 - NicolasFerre
 
Linux & Open Source for AT91 Microchip Microprocessors

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.

Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.

Microchip® and others, are registered trademarks or trademarks of Microchip Technology Inc. and its subsidiaries. This site is powered by the TWiki collaboration platform

Arm® and others are registered trademarks or trademarks of Arm Limited (or its affiliates). Other terms and product names may be trademarks of others.

Ideas, requests, contributions ? Connect to LinksToCommunities page.

Syndicate this siteRSS ATOM