DENX U-BOOT AND LINUX GUIDE PDF
This is the DENX U-Boot and Linux Guide to Embedded PowerPC, ARM and MIPS Systems. The document describes how to configure, build. This manual is excerpted from the Denx UBOOT manual as . when booting a Linux kernel,’arg’ can be the address of an initrd image. Digi may make improvements and/or changes in this manual or in the product(s) and/or the program(s) Features of U-Boot. DULG/Manual. Features of . This command works only for Linux kernel images.
|Country:||United Arab Emirates|
|Published (Last):||8 December 2010|
|PDF File Size:||3.7 Mb|
|ePub File Size:||9.79 Mb|
|Price:||Free* [*Free Regsitration Required]|
This is a collection of questions which came up repeatedly.
Give me more feedback and I will add more stuff here. If it is present in your environment, you can delete it as follows:. It is the existence of the variable that will be checked. You can set the “locally administered” bit to make your own MAC address no guarantee of uniqueness, but pretty good odds if you don’t do something dumb.
If the target is connected directly to the host PC i. I’m guessing your board is half duplex but your switch is full typical of a switch. The switch sends traffic to your board while your board is transmitting This doesn’t happen nearly as much with a direct link to your PC since then you have a dedicated link without much asynchronous traffic.
If the poll isn’t happening or has a bug, you have problems like described above. When I use tftp, there are some problems. My terminal always displays “Loading: The whole information as follows:. On a machine not the TFTP server nor your development board use tftp to read the target file. If this doesn’t work, fix your TFTP server configuration and make sure it is running.
It usually works best to run ethereal on your TFTP server if you run it on a different machine and you use an ethernet switch, the third machine likely won’t see the tftp packets. There are two different command line parsers available with U-Boot: Here are a few examples for the use of the advanced capabilities of the hush shell in U-Boot environment variables or scripts:.
When you are porting U-Boot to new hardware, or implementing extensions, you might run into situations where U-Boot crashes and prints a register dump and a stack trace, for example like this:. To find out what happened, you can try to decode the stack backtrace the list of addresses printed after the “Call backtrace: The backtrace tool can be used for this purpose. However, there is a little problem: Now we use the backtrace script with the System. You may find yourself in a situation where the Linux kernel crashes or hangs without any output on the console.
This whole operation is based on the assumption that your boot loader does not overwrite the RAM contents – U-Boot will take care not to destroy such valuable information. For the PowerPC architecture, the Linux kernel uses the following registers:.
A function can use r0 and r3 – r12 without saving and restoring them. This has the big advantage of minimal memory footprint, but of course it comes with a couple of disadvantages, too:.
To enable the “direct IDE support” you have to select the following Linux kernel configuration options:. If you start with a new drive, you have to start by creating a new partition table.
For PowerPC systems, there are two commonly used options:. We start printing the help menu, re-initializing the partition table and then printing the new, empty partition table so that we know the block numbers when we want to create new partitions:. At first we create two small partitions that will be used to store a Linux boot image; a compressed Linux kernel is typically around To be able to select between two kernel images for instance when we want to do a field upgrade of the Linux kernel we create a second boot partition of exactly the same size:.
To make our changes permanent we must write the new partition table to the disk, before we quit the pdisk program:. You will prefer this format if you want to exchange your “disk” media with any PC type host system. The fdisk command is used to create MS-DOS type partition tables; to create the same partitioning scheme as above you would use the following commands:.
Instead of defining a static partition map as described in section Memory Technology Devices you can define the partitions for your flash memory at boot time using command line arguments. With this option enabled, the kernel will recognize a command line argument mtdparts and decode it as follows:. If a system has a real-time clock RTC this is often used only to initialize the system time when the system boots.
From then, the system time is running independently. The RTC will probably only be used again at shutdown to save the current system time. Such a configuration is used in many workstation configurations. It is useful if time is not really critical, or if the system time is synchronized against some external reference clock like when using the Network Time Protocol NTP to access time servers on the network. But some systems provide a high-accuracy real-time clock RTC while the system clocks are not as accurate, and sometimes permanent access to the net is not possible or wanted.
Mastering Embedded Linux Programming by Chris Simmonds
Then make sure to start the NTP daemon on your target by adding it to the corresponding init scripts and restart it if it is already running. The “address” of the RTC You may need to check with your ntpd implementation if the example above does anr work as expected. This document describes how to setup and use XIP in the kernel and the cramfs filesystem. A patch to add XIP support to your kernel can be found at the bottom of this page.
The virtual address usually points to the end of the kernel virtual address of the system memory. The physical and virtual dens must be aligned relative to an 8 MB boundary:.
The default configuration parameters shown above are for a system with 16MB of DRAM and the XIP kernel image located at the physical address 0x in flash memory. If you do not already have a reasonable sized disk directory tree you will need to make one. Before you build your cramfs image you must mark the binary files to be executed in place later on with the “t” permission:.
For building against older versions of the MTD headers meaning before v2. These tools work exactly like the U-Boot commands printenv resp. Here is an example configuration file:.
In case that the available memory is not sufficient, i. Usually one would create a blank file, mkswap it and simply do u-oot swapon swapfile. Doing this on a filesystem mounted over NFS, i. With one level of indirection we can trick the kernel into doing it anyway.
U-Boot Usage – Texas Instruments Wiki
First we create a filesystem image ext2 will do on the NFS filesystem and mount it with the aid of the loopback device. Then we create a blank swapfile inside of this filesystem and turn on swapping:. Because the ELDK right now has no device nodes for the loopback driver we create them along the way. It goes without saying that the loop driver liux to be included in the kernel andd. It is not always necessary to rebuild a SELF based ramdisk image if you want to modify or to extend it.
Especially during development it is often eaiser to unpack it, modify it, and re-pack it again.
Manual < DULG < DENX
To do so, you have to understand the internal structure of the uRamdisk resp. To modify the contents you have to extract, uncompress and mount the ramdisk image. This can be done as follows:. If you are done, you can re-pack the ramdisk into a U-Boot image:. Instead of re-packing into a U-boot ramdisk image you can of course also just extract the contents of the SELF image and re-use it as base of a known to be working root filesystem.
Remember that Linux by default supports only ramdisks up to a size of 4 MB. A nice “Application Note: The convention for register usage and C linkage commonly used on desktop PowerPC machines. Similar, but not identical to the EABI. Includes binding specific ppc registers to certain fixed purposes, even though there may be no technical reason to enforce such binding, simplifying the process of linking together two separate sets of object code.
A bank of memory flash or RAM consists of all linnux memory chips on your system that are controlled by the same chip select signal. For example, a system might consist of one flash chip with a 8 bit bus interface, which is attached to u-boog CS0 chip select signal, 2 flash chips with a 16 bit bus interface, which are attached to the CS1 chip select signal, and 2 SDRAM chips with a 16 bit bus interface, which are attached to the CS2 chip select signal.
An on-chip debug interface supported by a special hardware port on some processors. It allows to take full control over dfnx CPU with minimal external hardware, in many cases eliminationg the need for expensive tools like In-Circuit-Emulators. A network protocol which can be used to inquire a server about information for the intended system configuration like IP address, host name, netmask, name server, routing, name of a boot image, address of NFS server, etc.
CFI is a standard for flash chips that allows to create device independend drivers for such chips. Cramfs is designed to be a simple, small, and compressed file system for ROM based embedded systems. CVS is a version control system; guidf can be used to record the history of files, so that it is for instance possible to retrieve specific versions of a source tree.
A form a data transfer directly between memory and a peripheral or between memory and memory, without normal program intervention. A package which contains everything you need to get startet with an Embedded Linux project on your hardware:. The full license text can be found yuide http: The licenses under which the Linux kernel and much of the utility and library code necessary to build a complete system may be copied, distributed and modified. Each portion of the software is copyright by its respected copyright holder, and you must comply with the terms of the license in order to legally copy and hence use senx.
One significant requirement is that you freely redistribute any modifications you make; if you can’t cope with this, embedded Linux isn’t for you. The computer system which is used for u-biot development. For instance it is used to run the tools of the ELDK to build software packages. A general purpose DMA engine with relatively limited throughput provided by the microcoded CPM linx, for use with external peripherals or memory-to-memory transfers.
JFFS developed by Axis Communicartion AB, Sweden is a log-based filesystem on top of the MTD layer; it promises to keep your filesystem and data in a consistent state even in cases of sudden lniux or system crashes. That’s why it is especially useful for embedded devices where a regular shutdown procedure cannot always be guaranteed.
CPU component which maps guive and user-space virtual addresses to physical addresses, and is an integral part of Linux kernel operation.
The MTD functions in Linux support memory devices like flash or Disk-On-Chip in a device-independend way so that the higher software layers like filesystem code need no knowledge about the actual hardware properties.