Commit 24ee89b9 authored by wdenk's avatar wdenk

* Fix mdelay() on TRAB - this was still the debugging version with

  seconds instead of ms.

* Patch by Robert Schwebel, 1 Nov 2002:
  XScale related cleanup (affects all ARM boards)

* Cleanup of names, warnings, and README.
parent de180e6d
======================================================================
Changes since for U-Boot 0.1.0:
======================================================================
* Fix mdelay() on TRAB - this was still the debugging version with
seconds instead of ms.
* Patch by Robert Schwebel, 1 Nov 2002:
XScale related cleanup (affects all ARM boards)
* Cleanup of names and README.
====================================================================== ======================================================================
Notes for U-Boot 1.0.0: Notes for U-Boot 0.1.0:
====================================================================== ======================================================================
This is the initial version of "Das U-Boot", the Universal Boot Loader. This is the initial version of "Das U-Boot", the Universal Boot Loader.
......
...@@ -24,13 +24,14 @@ ...@@ -24,13 +24,14 @@
Summary: Summary:
======== ========
This directory contains the source code for U-Boot, a monitor for This directory contains the source code for U-Boot, a boot loader for
Embedded PowerPC boards, which can be installed in a boot ROM and Embedded boards based on PowerPC and ARM processors, which can be
used to test the hardware or download and run application code. installed in a boot ROM and used to initialize and test the hardware
or to download and run application code.
The development of U-Boot is closely related to Linux: some parts of The development of U-Boot is closely related to Linux: some parts of
the source code originate in the Linux source tree, we still have the source code originate in the Linux source tree, we have some
some header files in common, and special provision has been made to header files in common, and special provision has been made to
support booting of Linux images. support booting of Linux images.
Some attention has been paid to make this software easily Some attention has been paid to make this software easily
...@@ -45,23 +46,20 @@ Status: ...@@ -45,23 +46,20 @@ Status:
======= =======
In general, all boards for which a configuration option exists in the In general, all boards for which a configuration option exists in the
Makefile have been tested to some extent and can be considered Makefile have been tested to some extent and can be considered
"working". In fact, many of them are used in production systems. "working". In fact, many of them are used in production systems.
In case of problems see the CHANGELOG and CREDITS files to find out In case of problems see the CHANGELOG and CREDITS files to find out
who contributed the specific port. who contributed the specific port.
Exception from this rule: the port to the Sandpoint 8240 has not been
completed yet.
Where to get help: Where to get help:
================== ==================
In case you have questions about, problems with or contributions for In case you have questions about, problems with or contributions for
U-Boot you should send a message to the U-Boot mailing list at U-Boot you should send a message to the U-Boot mailing list at
<u-boot-users@lists.sourceforge.net>. There is also an archive of <u-boot-users@lists.sourceforge.net>. There is also an archive of
previous traffic on the mailing list - please search the archive previous traffic on the mailing list - please search the archive
before asking FAQ's. Please see before asking FAQ's. Please see
http://lists.sourceforge.net/lists/listinfo/u-boot-users/ http://lists.sourceforge.net/lists/listinfo/u-boot-users/
...@@ -70,6 +68,7 @@ Where we come from: ...@@ -70,6 +68,7 @@ Where we come from:
=================== ===================
- start from 8xxrom sources - start from 8xxrom sources
- create PPCBoot project (http://sourceforge.net/projects/ppcboot)
- clean up code - clean up code
- make it easier to add custom boards - make it easier to add custom boards
- make it possible to add other [PowerPC] CPUs - make it possible to add other [PowerPC] CPUs
...@@ -78,7 +77,31 @@ Where we come from: ...@@ -78,7 +77,31 @@ Where we come from:
* S-Record download * S-Record download
* network boot * network boot
* PCMCIA / CompactFLash / ATA disk / SCSI ... boot * PCMCIA / CompactFLash / ATA disk / SCSI ... boot
- create ARMBoot project (http://sourceforge.net/projects/armboot)
- add other CPU families (starting with ARM) - add other CPU families (starting with ARM)
- create U-Boot project (http://sourceforge.net/projects/u-boot)
Names and Spelling:
===================
The "official" name of this project is "Das U-Boot". The spelling
"U-Boot" shall be used in all written text (documentation, comments
in source files etc.). Example:
This is the README file for the U-Boot project.
File names etc. shall be based on the string "u-boot". Examples:
include/asm-ppc/u-boot.h
#include <asm/u-boot.h>
Variable names, preprocessor constants etc. shall be either based on
the string "u_boot" or on "U_BOOT". Example:
U_BOOT_VERSION u_boot_logo
IH_OS_U_BOOT u_boot_hush_start
Directory Hierarchy: Directory Hierarchy:
...@@ -1675,7 +1698,7 @@ Note: for some board special configuration names may exist; check if ...@@ -1675,7 +1698,7 @@ Note: for some board special configuration names may exist; check if
Finally, type "make all", and you should get some working U-Boot Finally, type "make all", and you should get some working U-Boot
images ready for downlod to / installation on your system: images ready for downlod to / installation on your system:
- "u-boot.bin" is a raw binary image - "u-boot.bin" is a raw binary image
...@@ -2013,28 +2036,55 @@ device (initial ramdisk, NFS) for your target system. ...@@ -2013,28 +2036,55 @@ device (initial ramdisk, NFS) for your target system.
Building a Linux Image: Building a Linux Image:
----------------------- -----------------------
No specific requirements for U-Boot. There is no need to add a With U-Boot, "normal" build targets like "zImage" or "bzImage" are
"ramdisk.image.gz" file when building the kernel, even when you not used. If you use recent kernel source, a new build target
intend to run it with initial ramdisk. "uImage" will exist which automatically builds an image usable by
U-Boot. Most older kernels also have support for a "pImage" target,
which was introduced for our predecessor project PPCBoot and uses a
100% compatible format.
Example: Example:
make TQM850L_config make TQM850L_config
make oldconfig make oldconfig
make dep make dep
make zImage make uImage
The "uImage" build target uses a special tool (in 'tools/mkimage') to
encapsulate a compressed Linux kernel image with header information,
CRC32 checksum etc. for use with U-Boot. This is what we are doing:
However, we don't use the 'zImage' (= 'arch/ppc/mbxboot/zvmlinux') we * build a standard "vmlinux" kernel image (in ELF binary format):
build this way. The 'zImage' includes the old boot loader code which
we don't ned any more. Instead, we use the raw (compressed) Linux
kernel image in 'arch/ppc/coffboot/vmlinux.gz'.
There is a special tool (in 'tools/mkimage') to encapsulate this * convert the kernel into a raw binary image:
image with header information, CRC32 checksum etc. for use with
U-Boot:
In the first form (with "-l" option) mkimage lists the information ${CROSS_COMPILE}-objcopy -O binary \
contained in the header of an existing U-Boot image; this includes -R .note -R .comment \
-S vmlinux linux.bin
* compress the binary image:
gzip -9 linux.bin
* package compressed binary image for U-Boot:
mkimage -A ppc -O linux -T kernel -C gzip \
-a 0 -e 0 -n "Linux Kernel Image" \
-d linux.bin.gz uImage
The "mkimage" tool can also be used to create ramdisk images for use
with U-Boot, either separated from the Linux kernel image, or
combined into one file. "mkimage" encapsulates the images with a 64
byte header containing information about target architecture,
operating system, image type, compression method, entry points, time
stamp, CRC32 checksums, etc.
"mkimage" can be called in two ways: to verify existing images and
print the header information, or to build new images.
In the first form (with "-l" option) mkimage lists the information
contained in the header of an existing U-Boot image; this includes
checksum verification: checksum verification:
tools/mkimage -l image tools/mkimage -l image
...@@ -2058,47 +2108,47 @@ Right now, all Linux kernels use the same load address (0x00000000), ...@@ -2058,47 +2108,47 @@ Right now, all Linux kernels use the same load address (0x00000000),
but the entry point address depends on the kernel version: but the entry point address depends on the kernel version:
- 2.2.x kernels have the entry point at 0x0000000C, - 2.2.x kernels have the entry point at 0x0000000C,
- 2.3.x and 2.4.x kernels have the entry point at 0x00000000. - 2.3.x and later kernels have the entry point at 0x00000000.
So a typical call to build a U-Boot image would read: So a typical call to build a U-Boot image would read:
-> tools/mkimage -n '2.2.13 for initrd on TQM850L' \ -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
> -A ppc -O linux -T kernel -C gzip -a 00000000 -e 0000000C \ > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \
> -d /opt/mpc8xx/src/linux-2.2.13/arch/ppc/coffboot/vmlinux.gz \ > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz \
> examples/image-2.2.13-initrd > examples/uImage.TQM850L
Image Name: 2.2.13 for initrd on TQM850L Image Name: 2.4.4 kernel for TQM850L
Created: Wed Jul 19 02:34:59 2000 Created: Wed Jul 19 02:34:59 2000
Image Type: PowerPC Linux Kernel Image (gzip compressed) Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 335725 Bytes = 327.86 kB = 0.32 MB Data Size: 335725 Bytes = 327.86 kB = 0.32 MB
Load Address: 0x00000000 Load Address: 0x00000000
Entry Point: 0x0000000c Entry Point: 0x00000000
To verify the contents of the image (or check for corruption): To verify the contents of the image (or check for corruption):
-> tools/mkimage -l examples/image-2.2.13-initrd -> tools/mkimage -l examples/uImage.TQM850L
Image Name: 2.2.13 for initrd on TQM850L Image Name: 2.4.4 kernel for TQM850L
Created: Wed Jul 19 02:34:59 2000 Created: Wed Jul 19 02:34:59 2000
Image Type: PowerPC Linux Kernel Image (gzip compressed) Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 335725 Bytes = 327.86 kB = 0.32 MB Data Size: 335725 Bytes = 327.86 kB = 0.32 MB
Load Address: 0x00000000 Load Address: 0x00000000
Entry Point: 0x0000000c Entry Point: 0x00000000
NOTE: for embedded systems where boot time is critical you can trade NOTE: for embedded systems where boot time is critical you can trade
speed for memory and install an UNCOMPRESSED image instead: this speed for memory and install an UNCOMPRESSED image instead: this
needs more space in Flash, but boots much faster since it does not needs more space in Flash, but boots much faster since it does not
need to be uncompressed: need to be uncompressed:
-> gunzip /opt/mpc8xx/src/linux-2.2.13/arch/ppc/coffboot/vmlinux.gz -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux.gz
-> tools/mkimage -n '2.2.13 for initrd on TQM850L' \ -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
> -A ppc -O linux -T kernel -C none -a 00000000 -e 0000000C \ > -A ppc -O linux -T kernel -C none -a 0 -e 0 \
> -d /opt/mpc8xx/src/linux-2.2.13/arch/ppc/coffboot/vmlinux \ > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/ppc/coffboot/vmlinux \
> examples/image-2.2.13-initrd-uncompressed > examples/uImage.TQM850L-uncompressed
Image Name: 2.2.13 for initrd on TQM850L Image Name: 2.4.4 kernel for TQM850L
Created: Wed Jul 19 02:34:59 2000 Created: Wed Jul 19 02:34:59 2000
Image Type: PowerPC Linux Kernel Image (uncompressed) Image Type: PowerPC Linux Kernel Image (uncompressed)
Data Size: 792160 Bytes = 773.59 kB = 0.76 MB Data Size: 792160 Bytes = 773.59 kB = 0.76 MB
Load Address: 0x00000000 Load Address: 0x00000000
Entry Point: 0x0000000c Entry Point: 0x00000000
Similar you can build U-Boot images from a 'ramdisk.image.gz' file Similar you can build U-Boot images from a 'ramdisk.image.gz' file
......
...@@ -40,7 +40,7 @@ int board_init (void) ...@@ -40,7 +40,7 @@ int board_init (void)
/* so we do _nothing_ here */ /* so we do _nothing_ here */
/* arch number of CSB226 board */ /* arch number of CSB226 board */
gd->bd->bi_arch_number = 0; /* FIXME */ gd->bd->bi_arch_number = 216;
/* adress of boot parameters */ /* adress of boot parameters */
gd->bd->bi_boot_params = 0xa0000100; gd->bd->bi_boot_params = 0xa0000100;
......
...@@ -232,7 +232,7 @@ mem_init: ...@@ -232,7 +232,7 @@ mem_init:
ldr r4, =0x03ca4fff ldr r4, =0x03ca4fff
str r4, [r1, #MDREFR_OFFSET] /* write back MDREFR */ str r4, [r1, #MDREFR_OFFSET] /* write back MDREFR */
ldr r4, [r1, #MDREFR_OFFSET] ldr r4, [r1, #MDREFR_OFFSET]
ldr r4, =0x03ca4030 ldr r4, =0x03ca4030
str r4, [r1, #MDREFR_OFFSET] /* write back MDREFR */ str r4, [r1, #MDREFR_OFFSET] /* write back MDREFR */
...@@ -261,7 +261,7 @@ mem_init: ...@@ -261,7 +261,7 @@ mem_init:
/* Step 4a: assert MDREFR:K1RUN and MDREFR:K2RUN and configure */ /* Step 4a: assert MDREFR:K1RUN and MDREFR:K2RUN and configure */
/* MDREFR:K1DB2 and MDREFR:K2DB2 as desired. */ /* MDREFR:K1DB2 and MDREFR:K2DB2 as desired. */
orr r4, r4, #(MDREFR_K1RUN|MDREFR_K2RUN|MDREFR_K0RUN) orr r4, r4, #(MDREFR_K1RUN|MDREFR_K0RUN)
str r4, [r1, #MDREFR_OFFSET] /* write back MDREFR */ str r4, [r1, #MDREFR_OFFSET] /* write back MDREFR */
ldr r4, [r1, #MDREFR_OFFSET] ldr r4, [r1, #MDREFR_OFFSET]
...@@ -286,7 +286,7 @@ mem_init: ...@@ -286,7 +286,7 @@ mem_init:
/* Step 4d: write MDCNFG with MDCNFG:DEx deasserted (set to 0), to */ /* Step 4d: write MDCNFG with MDCNFG:DEx deasserted (set to 0), to */
/* configure but not enable each SDRAM partition pair. */ /* configure but not enable each SDRAM partition pair. */
ldr r4, [r1, #MDCNFG_OFFSET] ldr r4, =CFG_MDCNFG_VAL
bic r4, r4, #(MDCNFG_DE0|MDCNFG_DE1) bic r4, r4, #(MDCNFG_DE0|MDCNFG_DE1)
str r4, [r1, #MDCNFG_OFFSET] /* write back MDCNFG */ str r4, [r1, #MDCNFG_OFFSET] /* write back MDCNFG */
......
...@@ -42,7 +42,7 @@ extern int do_mdm_init; /* defined in common/main.c */ ...@@ -42,7 +42,7 @@ extern int do_mdm_init; /* defined in common/main.c */
* is that timers are not available yet, so we use a manually timed * is that timers are not available yet, so we use a manually timed
* loop. * loop.
*/ */
#define KBD_MDELAY 100000 /* 1000 */ #define KBD_MDELAY 1000
static void mdelay_no_timer (int msec) static void mdelay_no_timer (int msec)
{ {
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment