Lines Matching +full:exported +full:- +full:sram

1 # SPDX-License-Identifier: GPL-2.0+
3 # (C) Copyright 2000 - 2013
9 This directory contains the source code for U-Boot, a boot loader for
15 The development of U-Boot is closely related to Linux: some parts of
37 scattered throughout the U-Boot source identifying the people or
41 actual U-Boot source tree; however, it can be created dynamically
51 U-Boot, you should send a message to the U-Boot mailing list at
52 <u-boot@lists.denx.de>. There is also an archive of previous traffic
53 on the mailing list - please search the archive before asking FAQ's.
54 Please see http://lists.denx.de/pipermail/u-boot and
55 http://dir.gmane.org/gmane.comp.boot-loaders.u-boot
61 The U-Boot source code is maintained in the Git repository at
62 git://www.denx.de/git/u-boot.git ; you can browse it online at
63 http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary
67 available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
70 Pre-built (and tested) images are available from
71 ftp://ftp.denx.de/pub/u-boot/images/
77 - start from 8xxrom sources
78 - create PPCBoot project (http://sourceforge.net/projects/ppcboot)
79 - clean up code
80 - make it easier to add custom boards
81 - make it possible to add other [PowerPC] CPUs
82 - extend functions, especially:
84 * S-Record download
87 - create ARMBoot project (http://sourceforge.net/projects/armboot)
88 - add other CPU families (starting with ARM)
89 - create U-Boot project (http://sourceforge.net/projects/u-boot)
90 - current project page: see http://www.denx.de/wiki/U-Boot
96 The "official" name of this project is "Das U-Boot". The spelling
97 "U-Boot" shall be used in all written text (documentation, comments
100 This is the README file for the U-Boot project.
102 File names etc. shall be based on the string "u-boot". Examples:
104 include/asm-ppc/u-boot.h
106 #include <asm/u-boot.h>
126 U-Boot v2009.11 - Release November 2009
127 U-Boot v2009.11.1 - Release 1 in version November 2009 stable tree
128 U-Boot v2010.09-rc1 - Release candidate 1 for September 2010 release
144 /riscv Files generic to RISC-V architecture
145 /sandbox Files generic to HW-independent "sandbox"
150 /cmd U-Boot commands functions
156 /dts Contains Makefile for building internal U-Boot fdt.
166 /tools Tools to build S-Record or U-Boot images, etc.
187 U-Boot has added the Kbuild infrastructure used by the Linux kernel,
193 ---------------------------------------------------
195 For all supported boards there are ready-to-use default
200 cd u-boot
208 --------------------
210 U-Boot can be built natively to run on a Linux host using the 'sandbox'
211 board. This allows feature development which is not board- or architecture-
213 run some of U-Boot's tests.
219 --------------------------
221 This is the intended start-up flow for boards. This should apply for both
222 SPL and U-Boot proper (i.e. they both follow the same rules).
232 Execution typically starts with an architecture-specific (and possibly
233 CPU-specific) start.S file, such as:
235 - arch/arm/cpu/armv7/start.S
236 - arch/powerpc/cpu/mpc83xx/start.S
237 - arch/mips/cpu/start.S
243 - purpose: essential init to permit execution to reach board_init_f()
244 - no global_data or BSS
245 - there is no stack (ARMv7 may have one but it will soon be removed)
246 - must not set up SDRAM or use console
247 - must only do the bare minimum to allow execution to continue to
249 - this is almost never needed
250 - return normally from this function
253 - purpose: set up the machine ready for running board_init_r():
255 - global_data is available
256 - stack is in SRAM
257 - BSS is not available, so you cannot use global/static variables,
260 Non-SPL-specific notes:
261 - dram_init() is called to set up DRAM. If already done in SPL this
264 SPL-specific notes:
265 - you can override the entire board_init_f() function with your own
267 - preloader_console_init() can be called here in extremis
268 - should set up SDRAM, and anything needed to make the UART work
269 - these is no need to clear BSS, it will be done by crt0.S
270 - must return normally from this function (don't call board_init_r()
275 CONFIG_SPL_STACK_R_ADDR. For non-SPL, U-Boot is relocated to run at the top of
279 - purpose: main execution, common code
280 - global_data is available
281 - SDRAM is available
282 - BSS is available, all static/global variables can be used
283 - execution eventually continues to main_loop()
285 Non-SPL-specific notes:
286 - U-Boot is relocated to the top of memory and is now running from
289 SPL-specific notes:
290 - stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
292 - preloader_console_init() can be called here - typically this is
295 - loads U-Boot or (in falcon mode) Linux
300 ----------------------
312 build a config tool - later.
314 - ARM Platform Bus Type(CCI):
316 provides full cache coherency between two clusters of multi-core
322 CCN-400
326 Defined for SoC that has cache coherent interconnect CCN-504
330 - CPU Type: Define exactly one, e.g. CONFIG_MPC85XX.
332 - Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS.
334 - 85xx CPU Options:
337 Specifies that the core is a 64-bit PowerPC implementation (implements
406 This CONFIG is defined when the CPC is configured as SRAM at the
407 time of U-Boot entry and is required to be re-initialized.
413 - Generic CPU options:
425 Freescale DDR memory-mapped register base.
444 Freescale DDR3 controller for ARM-based SoCs.
485 It adds PBI(pre-boot instructions) commands in u-boot build image.
491 concatenated with u-boot binary.
505 DDR controller interleaving on 256-byte. This is a special
516 Defines the SoC has DP-DDR used for DPAA.
524 - MIPS CPU options:
533 Enable compilation of tools/xway-swap-bytes needed for Lantiq
534 XWAY SoCs for booting from NOR flash. The U-Boot image needs to
537 - ARM options:
551 - Tegra SoC options:
554 Support executing U-Boot in non-secure (NS) mode. Certain
558 - Linux Kernel Interface:
561 U-Boot stores all clock information in Hz
565 "clocks_in_mhz" can be defined so that U-Boot
585 * New libfdt-based support
589 OF_TBCLK - The timebase frequency.
590 OF_STDOUT_PATH - The path to the console device
609 U-Boot can detect if an IDE device is present or not.
610 If not, and this new config option is activated, U-Boot
626 - vxWorks boot parameters:
636 - Cache Configuration:
637 CONFIG_SYS_L2CACHE_OFF- Do not enable L2 cache in U-Boot
639 - Cache Configuration for ARM:
640 CONFIG_SYS_L2_PL310 - Enable support for ARM PL310 L2 cache
642 CONFIG_SYS_PL310_BASE - Physical base address of PL310
645 - Serial Ports:
670 - Console Baudrate:
671 CONFIG_BAUDRATE - in bps
675 - Autoboot Command:
688 - Serial Download Echo Mode:
697 - Kgdb Serial Baudrate: (if CONFIG_CMD_KGDB is defined)
702 - Removal of commands
705 will not be available, and when U-Boot wants to execute the
706 boot command (on start-up) it will call board_run_command()
710 - Regular expression support:
712 If this variable is defined, U-Boot is linked against
717 - Device tree:
719 If this variable is defined, U-Boot will use a device tree
723 tree is available in the global data as gd->fdt_blob.
725 U-Boot needs to get its device tree from somewhere. This can
729 If this variable is defined, U-Boot will embed a device tree
731 board directory and called <soc>-<board>.dts. The binary file
733 the global data structure as gd->fdt_blob.
736 If this variable is defined, U-Boot will build a device tree
737 binary. It will be called u-boot.dtb. Architecture-specific
738 code will locate it at run-time. Generally this works by:
740 cat u-boot.bin u-boot.dtb >image.bin
742 and in fact, U-Boot does this for you, creating a file called
743 u-boot-dtb.bin which is useful in the common case. You can
748 If this variable is defined, U-Boot will use the device tree
753 - Watchdog:
771 - Real-Time Clock:
777 CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC
778 CONFIG_RTC_MC13XXX - use MC13783 or MC13892 RTC
779 CONFIG_RTC_MC146818 - use MC146818 RTC
780 CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC
781 CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC
782 CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC
783 CONFIG_RTC_DS1339 - use Maxim, Inc. DS1339 RTC
784 CONFIG_RTC_DS164x - use Dallas DS164x RTC
785 CONFIG_RTC_ISL1208 - use Intersil ISL1208 RTC
786 CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC
787 CONFIG_RTC_DS1337_NOOSC - Turn off the OSC output for DS1337
788 CONFIG_SYS_RV3029_TCR - enable trickle charger on
794 - GPIO Support:
795 CONFIG_PCA953X - use NXP's PCA953X series I2C GPIO
798 chip-ngpio pairs that tell the PCA953X driver the number of
804 - I/O tracing:
805 When CONFIG_IO_TRACE is selected, U-Boot intercepts all I/O
826 - Timestamp Support:
833 - Partition Labels (disklabels) Supported:
841 least one non-MTD partition type as well.
843 - IDE Reset method:
844 CONFIG_IDE_RESET_ROUTINE - this is defined in several
847 CONFIG_IDE_RESET - is this is defined, IDE Reset will
852 - ATAPI Support:
857 - LBA48 Support
869 - SCSI Support:
879 - NETWORK Support (PCI):
908 - NETWORK Support (other):
959 Support for Renesas on-chip Ethernet controller
970 - PWM Support:
974 - TPM Support:
1017 - USB Support:
1026 (TEAC FD-05PUB).
1034 - USB Device:
1069 If you have a USB-IF assigned VendorID then you may wish to
1073 CONFIG_USBD_VENDORID and CONFIG_USBD_PRODUCTID, then U-Boot
1078 - CONFIG_USBD_MANUFACTURER "my company"
1082 - CONFIG_USBD_PRODUCT_NAME "acme usb device"
1088 - CONFIG_USBD_VENDORID 0xFFFF
1093 - CONFIG_USBD_PRODUCTID 0xFFFF
1095 - ULPI Layer Support:
1107 - MMC Support:
1116 Support for Renesas on-chip MMCIF controller
1127 - USB Device Firmware Update (DFU) class support:
1136 Note: DFU spec refer to non-volatile memory usage, but
1137 allow usages beyond the scope of spec - here RAM usage,
1163 - Journaling Flash filesystem support:
1171 - Keyboard Support:
1178 defined in your board-specific files. This option is deprecated
1182 - Video support:
1196 The DIU driver will look for the 'video-mode' environment
1201 - LCD Support: CONFIG_LCD
1213 NEC NL6448AC33-18. Active, color, single scan.
1217 NEC NL6448BC20-08. 6.5", 640x480.
1222 NEC NL6448BC33-54. 10.4", 640x480.
1242 Optrex CBL50840-2 NF-FW 99 22 M5
1244 Hitachi LMG6912RPFC-00T
1252 Normally the LCD is page-aligned (typically 4KB). If this is
1256 a per-section basis.
1270 fbcon=rotate:<n> linux-kernel commandline):
1281 Support drawing of RLE8-compressed bitmaps on the LCD.
1288 - Splash Screen Support: CONFIG_SPLASH_SCREEN
1297 loaded very quickly after power-on.
1301 If this option is set, then U-Boot will prevent the environment
1303 (see doc/README.displaying-bmps).
1326 setenv splashpos -10,m
1328 at x = dspWidth - bmpWidth - 9
1330 - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
1336 - Run length encoded BMP image (RLE8) support: CONFIG_VIDEO_BMP_RLE8
1338 If this option is set, 8-bit RLE compressed BMP images
1342 - Compression support:
1357 - MII/PHY support:
1374 - IP address:
1382 - Server IP address:
1394 - Gateway IP address:
1402 - Subnet mask:
1411 - BOOTP Recovery Mode:
1432 BOOTP packets are uniquely identified using a 32-bit ID. The
1434 U-Boot will use this to determine if it is the destination of
1440 time is too long, U-Boot will retransmit requests. In order
1442 retransmissions, U-Boot's BOOTP client keeps a small cache of
1445 requests. Increasing this will allow U-Boot to accept offers
1448 - DHCP Advanced Options:
1460 CONFIG_BOOTP_SERVERIP - TFTP server will be the serverip
1463 CONFIG_BOOTP_MAY_FAIL - If the DHCP server is not found
1466 to Link-local IP address configuration if the DHCP server
1469 CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable
1490 - Link-local IP address negotiation:
1491 Negotiate with other link-local clients on the local network
1496 See doc/README.link-local for more information.
1498 - MAC address from environment variables
1502 Fix-up device tree with MAC addresses fetched sequentially from
1504 non-usable ethernet node of device-tree are either not present
1507 - CDP Options:
1549 - Status LED: CONFIG_LED_STATUS
1553 fast while running U-Boot code, stop blinking as
1558 feature in U-Boot.
1566 to include the gpio_led driver in the U-Boot binary.
1575 - I2C Support: CONFIG_SYS_I2C
1578 i2c commands at the u-boot command line (as long as you set
1585 - drivers/i2c/soft_i2c.c:
1586 - activate first bus with CONFIG_SYS_I2C_SOFT define
1589 - activate second bus with I2C_SOFT_DECLARATIONS2 define
1592 - activate third bus with I2C_SOFT_DECLARATIONS3 define
1595 - activate fourth bus with I2C_SOFT_DECLARATIONS4 define
1599 - drivers/i2c/fsl_i2c.c:
1600 - activate i2c driver with CONFIG_SYS_I2C_FSL
1605 - If your board supports a second fsl i2c bus, define
1611 - drivers/i2c/tegra_i2c.c:
1612 - activate this driver with CONFIG_SYS_I2C_TEGRA
1613 - This driver adds 4 i2c buses with a fix speed from
1616 - drivers/i2c/ppc4xx_i2c.c
1617 - activate this driver with CONFIG_SYS_I2C_PPC4XX
1618 - CONFIG_SYS_I2C_PPC4XX_CH0 activate hardware channel 0
1619 - CONFIG_SYS_I2C_PPC4XX_CH1 activate hardware channel 1
1621 - drivers/i2c/i2c_mxc.c
1622 - activate this driver with CONFIG_SYS_I2C_MXC
1623 - enable bus 1 with CONFIG_SYS_I2C_MXC_I2C1
1624 - enable bus 2 with CONFIG_SYS_I2C_MXC_I2C2
1625 - enable bus 3 with CONFIG_SYS_I2C_MXC_I2C3
1626 - enable bus 4 with CONFIG_SYS_I2C_MXC_I2C4
1627 - define speed for bus 1 with CONFIG_SYS_MXC_I2C1_SPEED
1628 - define slave for bus 1 with CONFIG_SYS_MXC_I2C1_SLAVE
1629 - define speed for bus 2 with CONFIG_SYS_MXC_I2C2_SPEED
1630 - define slave for bus 2 with CONFIG_SYS_MXC_I2C2_SLAVE
1631 - define speed for bus 3 with CONFIG_SYS_MXC_I2C3_SPEED
1632 - define slave for bus 3 with CONFIG_SYS_MXC_I2C3_SLAVE
1633 - define speed for bus 4 with CONFIG_SYS_MXC_I2C4_SPEED
1634 - define slave for bus 4 with CONFIG_SYS_MXC_I2C4_SLAVE
1638 - drivers/i2c/rcar_i2c.c:
1639 - activate this driver with CONFIG_SYS_I2C_RCAR
1640 - This driver adds 4 i2c buses
1642 - CONFIG_SYS_RCAR_I2C0_BASE for setting the register channel 0
1643 - CONFIG_SYS_RCAR_I2C0_SPEED for for the speed channel 0
1644 - CONFIG_SYS_RCAR_I2C1_BASE for setting the register channel 1
1645 - CONFIG_SYS_RCAR_I2C1_SPEED for for the speed channel 1
1646 - CONFIG_SYS_RCAR_I2C2_BASE for setting the register channel 2
1647 - CONFIG_SYS_RCAR_I2C2_SPEED for for the speed channel 2
1648 - CONFIG_SYS_RCAR_I2C3_BASE for setting the register channel 3
1649 - CONFIG_SYS_RCAR_I2C3_SPEED for for the speed channel 3
1650 - CONFIF_SYS_RCAR_I2C_NUM_CONTROLLERS for number of i2c buses
1652 - drivers/i2c/sh_i2c.c:
1653 - activate this driver with CONFIG_SYS_I2C_SH
1654 - This driver adds from 2 to 5 i2c buses
1656 - CONFIG_SYS_I2C_SH_BASE0 for setting the register channel 0
1657 - CONFIG_SYS_I2C_SH_SPEED0 for for the speed channel 0
1658 - CONFIG_SYS_I2C_SH_BASE1 for setting the register channel 1
1659 - CONFIG_SYS_I2C_SH_SPEED1 for for the speed channel 1
1660 - CONFIG_SYS_I2C_SH_BASE2 for setting the register channel 2
1661 - CONFIG_SYS_I2C_SH_SPEED2 for for the speed channel 2
1662 - CONFIG_SYS_I2C_SH_BASE3 for setting the register channel 3
1663 - CONFIG_SYS_I2C_SH_SPEED3 for for the speed channel 3
1664 - CONFIG_SYS_I2C_SH_BASE4 for setting the register channel 4
1665 - CONFIG_SYS_I2C_SH_SPEED4 for for the speed channel 4
1666 - CONFIG_SYS_I2C_SH_NUM_CONTROLLERS for number of i2c buses
1668 - drivers/i2c/omap24xx_i2c.c
1669 - activate this driver with CONFIG_SYS_I2C_OMAP24XX
1670 - CONFIG_SYS_OMAP24_I2C_SPEED speed channel 0
1671 - CONFIG_SYS_OMAP24_I2C_SLAVE slave addr channel 0
1672 - CONFIG_SYS_OMAP24_I2C_SPEED1 speed channel 1
1673 - CONFIG_SYS_OMAP24_I2C_SLAVE1 slave addr channel 1
1674 - CONFIG_SYS_OMAP24_I2C_SPEED2 speed channel 2
1675 - CONFIG_SYS_OMAP24_I2C_SLAVE2 slave addr channel 2
1676 - CONFIG_SYS_OMAP24_I2C_SPEED3 speed channel 3
1677 - CONFIG_SYS_OMAP24_I2C_SLAVE3 slave addr channel 3
1678 - CONFIG_SYS_OMAP24_I2C_SPEED4 speed channel 4
1679 - CONFIG_SYS_OMAP24_I2C_SLAVE4 slave addr channel 4
1681 - drivers/i2c/s3c24x0_i2c.c:
1682 - activate this driver with CONFIG_SYS_I2C_S3C24X0
1683 - This driver adds i2c buses (11 for Exynos5250, Exynos5420
1687 - drivers/i2c/ihs_i2c.c
1688 - activate this driver with CONFIG_SYS_I2C_IHS
1689 - CONFIG_SYS_I2C_IHS_CH0 activate hardware channel 0
1690 - CONFIG_SYS_I2C_IHS_SPEED_0 speed channel 0
1691 - CONFIG_SYS_I2C_IHS_SLAVE_0 slave addr channel 0
1692 - CONFIG_SYS_I2C_IHS_CH1 activate hardware channel 1
1693 - CONFIG_SYS_I2C_IHS_SPEED_1 speed channel 1
1694 - CONFIG_SYS_I2C_IHS_SLAVE_1 slave addr channel 1
1695 - CONFIG_SYS_I2C_IHS_CH2 activate hardware channel 2
1696 - CONFIG_SYS_I2C_IHS_SPEED_2 speed channel 2
1697 - CONFIG_SYS_I2C_IHS_SLAVE_2 slave addr channel 2
1698 - CONFIG_SYS_I2C_IHS_CH3 activate hardware channel 3
1699 - CONFIG_SYS_I2C_IHS_SPEED_3 speed channel 3
1700 - CONFIG_SYS_I2C_IHS_SLAVE_3 slave addr channel 3
1701 - activate dual channel with CONFIG_SYS_I2C_IHS_DUAL
1702 - CONFIG_SYS_I2C_IHS_SPEED_0_1 speed channel 0_1
1703 - CONFIG_SYS_I2C_IHS_SLAVE_0_1 slave addr channel 0_1
1704 - CONFIG_SYS_I2C_IHS_SPEED_1_1 speed channel 1_1
1705 - CONFIG_SYS_I2C_IHS_SLAVE_1_1 slave addr channel 1_1
1706 - CONFIG_SYS_I2C_IHS_SPEED_2_1 speed channel 2_1
1707 - CONFIG_SYS_I2C_IHS_SLAVE_2_1 slave addr channel 2_1
1708 - CONFIG_SYS_I2C_IHS_SPEED_3_1 speed channel 3_1
1709 - CONFIG_SYS_I2C_IHS_SLAVE_3_1 slave addr channel 3_1
1756 - Legacy I2C Support:
1766 eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
1774 eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
1778 The code necessary to make the I2C data line tri-stated
1782 eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
1789 eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
1797 if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
1798 else immr->im_cpm.cp_pbdat &= ~PB_SDA
1806 if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
1807 else immr->im_cpm.cp_pbdat &= ~PB_SCL
1823 have GPIO-based defaults assigned to them as appropriate.
1844 Note that bus numbering is zero-based.
1850 is set, specify a list of bus-device pairs. Otherwise, specify
1867 If not defined, then U-Boot assumes that SPD is on I2C bus 0.
1872 If not defined, then U-Boot assumes that RTC is on I2C bus 0.
1880 of doing a stop-start sequence will be used. Most I2C
1884 - SPI Support: CONFIG_SPI
1892 Enables a software (bit-bang) SPI driver rather than
1904 - FPGA Support: CONFIG_FPGA
1939 Allow Control-C to interrupt FPGA configuration
1950 Maximum time to wait for the INIT_B line to de-assert
1951 after PROB_B has been de-asserted during a Virtex II
1957 Maximum time to wait for BUSY to de-assert during
1965 - Configuration Management:
1969 If defined, this string will be added to the U-Boot
1972 - Vendor Parameter Protection:
1974 U-Boot considers the values of the environment
1979 the user. Once set, these variables are read-only,
1993 read-only.]
2000 - Protected RAM:
2005 by U-Boot. Define CONFIG_PRAM to hold the number of
2025 this memory test is non-destructive. So far, the
2027 "pRAM-clean":
2033 - Access to physical memory region (> 4GB)
2035 normally accessible to U-Boot - e.g. some architectures
2036 support access to more than 4GB of memory on 32-bit
2041 - Error Recovery:
2060 - Command Interpreter:
2088 - Command Line Editing and History:
2092 at run-time. Only static string is supported so far.
2096 - Default Environment:
2112 U-Boot code. This is NOT an official, exported
2125 initialised so that it is available to U-Boot. This inhibits
2127 explicitly loaded later by U-Boot code. With CONFIG_OF_CONTROL
2129 /config/load-environment.
2131 - TFTP Fixed UDP Port:
2136 If tftpsrcp isn't defined, the normal pseudo-random port
2144 blindly start the TFTP transfer using the pre-configured
2151 - Show boot progress:
2154 Defining this option allows to add some board-
2155 specific code (calling a user-provided function
2166 -1 common/cmd_bootm.c Image header has bad magic number
2168 -2 common/cmd_bootm.c Image header has bad checksum
2170 -3 common/cmd_bootm.c Image data has bad checksum
2172 -4 common/cmd_bootm.c Image is for unsupported architecture
2174 -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
2176 -6 common/cmd_bootm.c gunzip uncompression error
2177 -7 common/cmd_bootm.c Unimplemented compression type
2180 -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
2183 -10 common/image.c Ramdisk header has bad magic number
2184 -11 common/image.c Ramdisk header has bad checksum
2186 -12 common/image.c Ramdisk data has bad checksum
2189 -13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
2195 -30 arch/powerpc/lib/board.c Fatal error, hang the system
2196 -31 post/post.c POST test failed, detected by post_output_backlog()
2197 -32 post/post.c POST test failed, detected by post_run_single()
2200 -35 common/cmd_doc.c Bad usage of "doc" command
2202 -36 common/cmd_doc.c No boot device
2204 -37 common/cmd_doc.c Unknown Chip ID on boot device
2206 -38 common/cmd_doc.c Read Error on boot device
2208 -39 common/cmd_doc.c Image header has bad magic number
2210 -40 common/cmd_doc.c Error reading Image from DOC device
2213 -42 common/cmd_ide.c Bad usage of "ide" command
2215 -43 common/cmd_ide.c No boot device
2217 -44 common/cmd_ide.c Device not available
2219 -45 common/cmd_ide.c wrong partition selected
2221 -46 common/cmd_ide.c Unknown partition table
2223 -47 common/cmd_ide.c Invalid partition type
2225 -48 common/cmd_ide.c Error reading Image Header on boot device
2227 -49 common/cmd_ide.c Image header has bad magic number
2229 -50 common/cmd_ide.c Image header has bad checksum
2231 -51 common/cmd_ide.c Error reading Image from IDE device
2234 -53 common/cmd_nand.c Bad usage of "nand" command
2236 -54 common/cmd_nand.c No boot device
2238 -55 common/cmd_nand.c Unknown Chip ID on boot device
2240 -56 common/cmd_nand.c Error reading Image Header on boot device
2242 -57 common/cmd_nand.c Image header has bad magic number
2244 -58 common/cmd_nand.c Error reading Image from NAND device
2247 -60 common/env_common.c Environment has a bad CRC, using default
2250 -64 net/eth.c no Ethernet found.
2253 -80 common/cmd_net.c usage wrong
2255 -81 common/cmd_net.c some error in net_loop() occurred
2257 -82 common/cmd_net.c size == 0 (File with size 0 loaded)
2260 -83 common/cmd_net.c some error in automatic boot or "source" command
2267 -100 common/cmd_bootm.c Kernel FIT Image has incorrect format
2269 -101 common/cmd_bootm.c Can't get configuration for kernel subimage
2271 -103 common/cmd_bootm.c Can't get kernel subimage node offset
2274 -104 common/cmd_bootm.c Kernel subimage hash verification failed
2276 -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
2278 -106 common/cmd_bootm.c Kernel subimage has wrong type
2280 -107 common/cmd_bootm.c Can't get kernel subimage data/size
2282 -108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
2283 -109 common/cmd_bootm.c Can't get kernel subimage type
2284 -110 common/cmd_bootm.c Can't get kernel subimage comp
2285 -111 common/cmd_bootm.c Can't get kernel subimage os
2286 -112 common/cmd_bootm.c Can't get kernel subimage load address
2287 -113 common/cmd_bootm.c Image uncompress/copy overwrite error
2290 -120 common/image.c Ramdisk FIT image has incorrect format
2293 -122 common/image.c Can't get configuration for ramdisk subimage
2295 -124 common/image.c Can't get ramdisk subimage node offset
2297 -125 common/image.c Ramdisk subimage hash verification failed
2299 -126 common/image.c Ramdisk subimage for unsupported architecture
2301 -127 common/image.c Can't get ramdisk subimage data/size
2304 -129 common/image.c Got ramdisk load address
2306 -130 common/cmd_doc.c Incorrect FIT image format
2309 -140 common/cmd_ide.c Incorrect FIT image format
2312 -150 common/cmd_nand.c Incorrect FIT image format
2315 - Standalone program support:
2323 - Frame Buffer Address:
2329 memory. U-Boot will then place the frame buffer at
2337 - Automatic software updates via TFTP server
2342 These options enable and control the auto-update feature;
2345 - MTD Support (mtdparts command, UBI support)
2354 other flashes which have eraseblock life-cycle 100000 or more.
2356 life-cycle less than 10000, the threshold should be lessened (e.g.,
2370 then can be calculated as "1024 * (1 - MinNVB / MaxNVB)",
2389 The on-flash fastmap contains all information needed to attach
2394 that fastmap-enabled images are still usable with UBI implementations
2407 - SPL framework
2483 Partition on the MMC to load U-Boot from when the MMC is being
2497 Partition on the MMC to load U-Boot from when the MMC is being
2501 Filename to read to load U-Boot when reading from filesystem
2543 Support to boot only raw u-boot.bin images. Use this only
2556 to read U-Boot
2562 Location in NAND to read U-Boot from
2565 Location in memory to load U-Boot to
2589 use an arch-specific makefile fragment instead, for
2595 option to re-enable it. This will affect the output of the
2598 - TPL framework
2609 - Interrupt support (PPC):
2624 ------------------------------
2626 During Initialization u-boot calls a number of board specific functions
2633 - CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
2634 - CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
2635 - CONFIG_BOARD_LATE_INIT: Call board_late_init()
2636 - CONFIG_BOARD_POSTCLK_INIT: Call board_postclk_init()
2639 -----------------------
2641 - CONFIG_SYS_SUPPORT_64BIT_DATA: Defined automatically if compiled as 64-bit.
2642 Optionally it can be defined to support 64-bit memory commands.
2644 - CONFIG_SYS_LONGHELP: Defined when you want long help messages included;
2647 - CONFIG_SYS_HELP_CMD_WIDTH: Defined when you want to override the default
2650 - CONFIG_SYS_PROMPT: This is what U-Boot prints on the console to
2653 - CONFIG_SYS_CBSIZE: Buffer size for input from the Console
2655 - CONFIG_SYS_PBSIZE: Buffer size for Console output
2657 - CONFIG_SYS_MAXARGS: max. Number of arguments accepted for monitor commands
2659 - CONFIG_SYS_BARGSIZE: Buffer size for Boot Arguments which are passed to
2663 - CONFIG_SYS_BAUDRATE_TABLE:
2666 - CONFIG_SYS_MEMTEST_START, CONFIG_SYS_MEMTEST_END:
2670 - CONFIG_SYS_MEMTEST_SCRATCH:
2674 - CONFIG_SYS_MEM_RESERVE_SECURE
2679 gd->arch.secure_ram is used to track the location. In systems
2683 - CONFIG_SYS_MEM_TOP_HIDE:
2686 (end) of RAM and won't get "touched" at all by U-Boot. By
2687 fixing up gd->ram_size the Linux kernel should gets passed
2704 - CONFIG_SYS_LOADS_BAUD_CHANGE:
2707 - CONFIG_SYS_SDRAM_BASE:
2710 - CONFIG_SYS_FLASH_BASE:
2713 - CONFIG_SYS_MONITOR_BASE:
2716 (CONFIG_SYS_TEXT_BASE) used when linking) - same as
2719 - CONFIG_SYS_MONITOR_LEN:
2722 embedded within the U-Boot image, or in a separate
2725 - CONFIG_SYS_MALLOC_LEN:
2728 - CONFIG_SYS_MALLOC_F_LEN
2739 U-Boot relocates itself.
2741 - CONFIG_SYS_MALLOC_SIMPLE
2746 - CONFIG_SYS_NONCACHED_MEMORY:
2747 Size of non-cached memory area. This area of memory will be
2753 are not a multiple of the cache-line size, *and* padding
2756 size of each region is not cache-aligned), then a flush of
2758 written to another region in the same cache-line. This can
2760 buffers are typically smaller than the CPU cache-line (e.g.
2763 Non-cached memory is only supported on 32-bit ARM at present.
2765 - CONFIG_SYS_BOOTM_LEN:
2771 - CONFIG_SYS_BOOTMAPSZ:
2776 environment variable is defined and non-zero. In such case
2783 - CONFIG_SYS_BOOT_RAMDISK_HIGH:
2788 - CONFIG_SYS_BOOT_GET_CMDLINE:
2792 - CONFIG_SYS_BOOT_GET_KBD:
2796 - CONFIG_SYS_MAX_FLASH_BANKS:
2799 - CONFIG_SYS_MAX_FLASH_SECT:
2802 - CONFIG_SYS_FLASH_ERASE_TOUT:
2805 - CONFIG_SYS_FLASH_WRITE_TOUT:
2808 - CONFIG_SYS_FLASH_LOCK_TOUT
2811 - CONFIG_SYS_FLASH_UNLOCK_TOUT
2814 - CONFIG_SYS_FLASH_PROTECTION
2816 instead of U-Boot software protection.
2818 - CONFIG_SYS_DIRECT_FLASH_TFTP:
2825 The two-step approach is usually more reliable, since
2831 - CONFIG_SYS_FLASH_CFI:
2835 - CONFIG_FLASH_CFI_DRIVER
2839 - CONFIG_FLASH_CFI_MTD
2844 - CONFIG_SYS_FLASH_USE_BUFFER_WRITE
2847 - CONFIG_FLASH_SPANSION_S29WS_N
2848 s29ws-n MirrorBit flash has non-standard addresses for buffered
2851 - CONFIG_SYS_FLASH_QUIET_TEST
2857 - CONFIG_FLASH_SHOW_PROGRESS
2862 - CONFIG_FLASH_VERIFY
2871 - CONFIG_SYS_RX_ETH_BUFFER:
2879 - CONFIG_ENV_MAX_ENTRIES
2887 - CONFIG_ENV_FLAGS_LIST_DEFAULT
2888 - CONFIG_ENV_FLAGS_LIST_STATIC
2902 s - String (default)
2903 d - Decimal
2904 x - Hexadecimal
2905 b - Boolean ([1yYtT|0nNfF])
2906 i - IP address
2907 m - MAC address
2910 a - Any (default)
2911 r - Read-only
2912 o - Write-once
2913 c - Change-default
2915 - CONFIG_ENV_FLAGS_LIST_DEFAULT
2919 - CONFIG_ENV_FLAGS_LIST_STATIC
2930 - CONFIG_ENV_ACCESS_IGNORE_FORCE
2931 If defined, don't allow the -f switch to env set override variable
2938 - CONFIG_BUILD_ENVCRC:
2941 may easily extract it and embed it in final U-Boot images.
2944 in U-Boot initialization (when we try to get the setting of for the
2946 U-Boot will hang.
2958 - CONFIG_NAND_ENV_DST
2964 Please note that the environment is read-only until the monitor
2971 with the compiled-in default environment - *silently*!!! [This is
2973 "baudrate" setting for the console - if we have a bad CRC, we don't
2980 - CONFIG_SYS_FAULT_ECHO_LINK_DOWN:
2986 - CONFIG_SYS_FAULT_MII_ADDR:
2989 - CONFIG_NS16550_MIN_FUNCTIONS:
2996 - CONFIG_DISPLAY_BOARDINFO
2997 Display information about the board that U-Boot is running on
2998 when U-Boot starts up. The board function checkboard() is called
3001 - CONFIG_DISPLAY_BOARDINFO_LATE
3006 - CONFIG_BOARD_SIZE_LIMIT:
3007 Maximum size of the U-Boot image. When defined, the
3012 ---------------------------------------------------
3014 - CONFIG_SYS_CACHELINE_SIZE:
3017 - CONFIG_SYS_CCSRBAR_DEFAULT:
3018 Default (power-on reset) physical address of CCSR on Freescale
3021 - CONFIG_SYS_CCSRBAR:
3022 Virtual address of CCSR. On a 32-bit build, this is typically
3025 - CONFIG_SYS_CCSRBAR_PHYS:
3030 is typically relocated on 36-bit builds. It is recommended
3036 - CONFIG_SYS_CCSRBAR_PHYS_HIGH:
3037 Bits 33-36 of CONFIG_SYS_CCSRBAR_PHYS. This value is typically
3038 either 0 (32-bit build) or 0xF (36-bit build). This macro is
3042 - CONFIG_SYS_CCSRBAR_PHYS_LOW:
3043 Lower 32-bits of CONFIG_SYS_CCSRBAR_PHYS. This macro is
3047 - CONFIG_SYS_CCSR_DO_NOT_RELOCATE:
3051 - Floppy Disk Support:
3074 source code. It is used to make hardware-dependent
3077 - CONFIG_IDE_AHB:
3081 IDE devices through IDE-AHB controller, some additional
3082 registers accessing to these kind of IDE-AHB controller
3085 - CONFIG_SYS_IMMR: Physical address of the Internal Memory.
3087 doing! (11-4) [MPC8xx systems only]
3089 - CONFIG_SYS_INIT_RAM_ADDR:
3099 U-Boot uses the following memory types:
3100 - MPC8xx: IMMR (internal memory of the CPU)
3102 - CONFIG_SYS_GBL_DATA_OFFSET:
3108 (sometimes written as (CONFIG_SYS_INIT_RAM_SIZE -
3116 CONFIG_SYS_INIT_RAM_ADDR is basically arbitrary - it must
3120 - CONFIG_SYS_SCCR: System Clock and reset Control Register (15-27)
3122 - CONFIG_SYS_OR_TIMING_SDRAM:
3125 - CONFIG_SYS_MAMR_PTA:
3128 - FLASH_BASE0_PRELIM, FLASH_BASE1_PRELIM, CONFIG_SYS_REMAP_OR_AM,
3134 - SDRAM_BASE2_PRELIM, SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE,
3139 - CONFIG_PCI_ENUM_ONLY
3143 a second time. Useful for platforms that are pre-booted
3146 - CONFIG_PCI_INDIRECT_BRIDGE:
3149 - CONFIG_SYS_SRIO:
3152 - CONFIG_SRIO1:
3155 - CONFIG_SRIO2:
3158 - CONFIG_SRIO_PCIE_BOOT_MASTER
3161 - CONFIG_SYS_SRIOn_MEM_VIRT:
3164 - CONFIG_SYS_SRIOn_MEM_PHYS:
3167 - CONFIG_SYS_SRIOn_MEM_SIZE:
3170 - CONFIG_SYS_NAND_BUSWIDTH_16BIT
3175 - drivers/mtd/nand/raw/ndfc.c
3176 - drivers/mtd/nand/raw/mxc_nand.c
3178 - CONFIG_SYS_NDFC_EBC0_CFG
3182 - CONFIG_SPD_EEPROM
3189 - CONFIG_SYS_SPD_BUS_NUM
3194 - CONFIG_SYS_DDR_RAW_TIMING
3197 parameters are extracted from datasheet and hard-coded into
3200 - CONFIG_FSL_DDR_INTERACTIVE
3201 Enable interactive DDR debugging. See doc/README.fsl-ddr.
3203 - CONFIG_FSL_DDR_SYNC_REFRESH
3206 - CONFIG_FSL_DDR_BIST
3207 Enable built-in memory test for Freescale DDR controllers.
3209 - CONFIG_SYS_83XX_DDR_USES_CS0
3213 - CONFIG_RMII
3218 - CONFIG_CRC32_VERIFY
3222 => crc32 -v <address> <count> <crc32>
3228 - CONFIG_LOOPW
3232 - CONFIG_MX_CYCLIC
3246 - CONFIG_SKIP_LOWLEVEL_INIT
3247 [ARM, NDS32, MIPS, RISC-V only] If this variable is defined, then certain
3249 controller) are omitted and/or U-Boot does not
3253 exception is when U-Boot is loaded (to RAM) by some
3257 - CONFIG_SKIP_LOWLEVEL_INIT_ONLY
3258 [ARM926EJ-S only] This allows just the call to lowlevel_init()
3262 - CONFIG_SPL_BUILD
3264 that is executed before the actual U-Boot. E.g. when
3267 - CONFIG_TPL_BUILD
3269 that is executed after the SPL and before the actual U-Boot.
3272 - CONFIG_SYS_MPC85XX_NO_RESETVEC
3277 - CONFIG_ARCH_MAP_SYSMEM
3278 Generally U-Boot (and in particular the md command) uses
3280 U-Boot address as virtual addresses that need to be translated
3286 - CONFIG_X86_RESET_VECTOR
3288 needed when U-Boot is running from Coreboot.
3290 - CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
3296 -----------------------------------
3300 This firmware often needs to be loaded during U-Boot booting, so macros
3304 - CONFIG_SYS_FMAN_FW_ADDR
3309 - CONFIG_SYS_QE_FW_ADDR
3314 - CONFIG_SYS_QE_FMAN_FW_LENGTH
3320 - CONFIG_SYS_QE_FMAN_FW_IN_NOR
3325 - CONFIG_SYS_QE_FMAN_FW_IN_NAND
3329 - CONFIG_SYS_QE_FMAN_FW_IN_MMC
3333 - CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
3336 can be mapped from slave TLB->slave LAW->slave SRIO or PCIE outbound
3337 window->master inbound window->master LAW->the ucode address in
3341 ---------------------------------------------------------
3344 This firmware often needs to be loaded during U-Boot booting, so macros
3348 - CONFIG_FSL_MC_ENET
3352 -------------------------------------------
3354 "Debug Server firmware" and triggering SP boot-rom.
3355 This firmware often needs to be loaded during U-Boot booting.
3357 - CONFIG_SYS_MC_RSV_MEM_ALIGN
3361 -------------------
3363 In order to achieve reproducible builds, timestamps used in the U-Boot build
3368 option for U-Boot or an environment variable in U-Boot.
3375 Building U-Boot has been tested in several native build environments
3380 which is extensively used to build and test U-Boot.
3388 $ CROSS_COMPILE=ppc_4xx-
3396 $ make HOSTCC=i586-mingw32msvc-gcc HOSTSTRIP=i586-mingw32msvc-strip tools
3401 U-Boot is intended to be simple to build. After installing the
3402 sources you must configure U-Boot for one specific board type. This
3407 where "NAME_defconfig" is the name of one of the existing configu-
3417 - will configure for a plain TQM823L, i. e. no LCD support
3420 - will configure for a TQM823L with U-Boot console on LCD
3425 Finally, type "make all", and you should get some working U-Boot
3428 - "u-boot.bin" is a raw binary image
3429 - "u-boot" is an image in ELF binary format
3430 - "u-boot.srec" is in Motorola S-Record format
3434 this behavior and build U-Boot to some external directory:
3456 make KCFLAGS=-Werror
3464 to port U-Boot to your hardware platform. To do this, follow these
3472 3. If you're porting U-Boot to a new CPU, then also create a new
3475 5. Type "make", and you should get a working "u-boot.srec" file
3481 Testing of U-Boot Modifications, Ports to New Hardware, etc.:
3484 If you have modified U-Boot sources (for instance added a new board
3488 official or latest in the git repository) version of U-Boot sources.
3490 But before you submit such a patch, please verify that your modifi-
3494 configure and build U-Boot for ALL supported system. Be warned, this
3495 will take a while. Please see the buildman README, or run 'buildman -H'
3499 See also "U-Boot Porting Guide" below.
3502 Monitor Commands - Overview:
3505 go - start application at address 'addr'
3506 run - run commands in an environment variable
3507 bootm - boot application image from memory
3508 bootp - boot image via network using BootP/TFTP protocol
3509 bootz - boot zImage from memory
3510 tftpboot- boot image via network using TFTP protocol
3513 tftpput - upload a file via network using TFTP protocol
3514 rarpboot- boot image via network using RARP/TFTP protocol
3515 diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd'
3516 loads - load S-Record file over serial line
3517 loadb - load binary file over serial line (kermit mode)
3518 md - memory display
3519 mm - memory modify (auto-incrementing)
3520 nm - memory modify (constant address)
3521 mw - memory write (fill)
3522 cp - memory copy
3523 cmp - memory compare
3524 crc32 - checksum calculation
3525 i2c - I2C sub-system
3526 sspi - SPI utility commands
3527 base - print or set address offset
3528 printenv- print environment variables
3529 setenv - set environment variables
3530 saveenv - save environment variables to persistent storage
3531 protect - enable or disable FLASH write protection
3532 erase - erase FLASH memory
3533 flinfo - print FLASH memory information
3534 nand - NAND memory operations (see doc/README.nand)
3535 bdinfo - print Board Info structure
3536 iminfo - print header information for application image
3537 coninfo - print console devices and informations
3538 ide - IDE sub-system
3539 loop - infinite loop on address range
3540 loopw - infinite write loop on address range
3541 mtest - simple RAM test
3542 icache - enable or disable instruction cache
3543 dcache - enable or disable data cache
3544 reset - Perform RESET of the CPU
3545 echo - echo args to console
3546 version - print monitor version
3547 help - print online help
3548 ? - alias for 'help'
3551 Monitor Commands - Detailed Description:
3562 U-Boot supports user configuration using Environment Variables which
3569 working with an in-memory copy. In case the Flash area containing the
3576 baudrate - see CONFIG_BAUDRATE
3578 bootdelay - see CONFIG_BOOTDELAY
3580 bootcmd - see CONFIG_BOOTCOMMAND
3582 bootargs - Boot arguments when booting an RTOS image
3584 bootfile - Name of the image to load with TFTP
3586 bootm_low - Memory range available for image processing in the bootm
3592 kernel -- see the description of CONFIG_SYS_BOOTMAPSZ and
3595 bootm_mapsize - Size of the initial memory mapping for the Linux kernel.
3603 bootm_size - Memory range available for image processing in the bootm
3609 updatefile - Location of the software update file on a TFTP server, used
3613 autoload - if set to "no" (any string beginning with 'n'),
3618 autostart - if set to "yes", an image loaded using the "bootp",
3629 fdt_high - if set this restricts the maximum address that the
3642 sufficient padding on the end of it for u-boot to
3646 fdtcontroladdr- if set this is the address of the control flattened
3647 device tree used by U-Boot when CONFIG_OF_CONTROL is
3650 i2cfast - (PPC405GP|PPC405EP only)
3656 initrd_high - restrict positioning of initrd images:
3665 address to use (U-Boot will still check that it
3666 does not overwrite the U-Boot stack and data).
3673 12 MB as well - this can be done with
3678 indication to U-Boot that all addresses are legal
3680 memory. In this case U-Boot will NOT COPY the
3685 ipaddr - IP address; needed for tftpboot command
3687 loadaddr - Default load address for commands like "bootp",
3690 loads_echo - see CONFIG_LOADS_ECHO
3692 serverip - TFTP server IP address; needed for tftpboot command
3694 bootretry - see CONFIG_BOOT_RETRY_TIME
3696 bootdelaykey - see CONFIG_AUTOBOOT_DELAY_STR
3698 bootstopkey - see CONFIG_AUTOBOOT_STOP_STR
3700 ethprime - controls which interface is used first.
3702 ethact - controls which interface is currently active.
3710 ethrotate - When set to "no" U-Boot does not go through all
3714 netretry - When set to "no" each network operation will
3722 npe_ucode - set load address for the NPE microcode
3724 silent_linux - If set then Linux will be told to boot silently, by
3727 unset, then it will be made silent if the U-Boot console
3730 tftpsrcp - If this is set, the value is used for TFTP's
3733 tftpdstp - If this is set, the value is used for TFTP's UDP
3736 tftpblocksize - Block size to use for TFTP transfers; if not set,
3739 tftptimeout - Retransmission timeout for TFTP packets (in milli-
3747 tftptimeoutcountmax - maximum count of TFTP timeouts (no
3755 vlan - When set to a value < 4095 the traffic over
3759 bootpretryperiod - Period during which BOOTP/DHCP sends retries.
3773 *Note* - these variables don't have to be defined for all boards, some
3778 ----- --------- ----------- --------------
3779 u-boot u-boot u-boot_addr_r u-boot_addr
3788 bootfile - see above
3789 dnsip - IP address of your Domain Name Server
3790 dnsip2 - IP address of your secondary Domain Name Server
3791 gatewayip - IP address of the Gateway (Router) to use
3792 hostname - Target hostname
3793 ipaddr - see above
3794 netmask - Subnet Mask
3795 rootpath - Pathname of the root filesystem on the NFS server
3796 serverip - see above
3801 serial# - contains hardware identification information such
3803 ethaddr - Ethernet address
3806 the board). U-Boot refuses to delete or overwrite these variables
3812 ver - Contains the U-Boot version string as printed
3818 only effect after the next boot (yes, that's just like Windoze :-).
3822 ---------------------------------------------
3824 For some environment variables, the behavior of u-boot needs to change
3858 * name - changed environment variable
3859 * value - new value of the environment variable
3860 * op - operation (create, overwrite, or delete)
3861 * flags - attributes of the environment variable change, see flags H_* in
3869 There are two different command line parsers available with U-Boot:
3873 --------------------------------
3875 - supports environment variables (through setenv / saveenv commands)
3876 - several commands on one line, separated by ';'
3877 - variable substitution using "... ${name} ..." syntax
3878 - special characters ('$', ';') can be escaped by prefixing with '\',
3881 - You can also escape text by enclosing in single apostrophes, for example:
3885 -----------
3887 - similar to Bourne shell, with control structures like
3890 - supports environment ("global") variables (through setenv / saveenv
3896 --------------
3911 Some boards come with redundant Ethernet interfaces; U-Boot supports
3920 in SROM), this is used as default address if there is NO correspon-
3940 a random, locally-assigned MAC is used.
3951 U-Boot is capable of booting (and performing other auxiliary operations on)
3955 -----------------------
3957 Flexible and powerful format based on Flattened Image Tree -- FIT (similar
3964 -----------------
3992 Although U-Boot should support any OS or standalone application
3994 U-Boot.
3996 U-Boot includes many features that so far have been part of some
4002 - the same features can be used for other OS or standalone
4006 - it becomes much easier to port new Linux kernel versions because
4007 lots of low-level, hardware dependent stuff are done by U-Boot
4009 - the same Linux kernel image can now be used with different "initrd"
4013 change a file in your "initrd"). Also, a field-upgrade of the
4020 Porting Linux to U-Boot based systems:
4021 ---------------------------------------
4023 U-Boot cannot save you from doing all the necessary modifications to
4026 Linux :-).
4031 include/asm-ppc/tqm8xx.h) includes the same definition of the Board
4032 Information structure as we define in include/asm-<arch>/u-boot.h,
4034 as your U-Boot configuration in CONFIG_SYS_IMMR.
4036 Note that U-Boot now has a driver model, a unified model for drivers.
4039 doc/driver-model.
4043 -----------------------------
4045 No specific requirements for U-Boot. Make sure you have some root
4050 -----------------------
4052 With U-Boot, "normal" build targets like "zImage" or "bzImage" are
4055 U-Boot. Most older kernels also have support for a "pImage" target,
4068 CRC32 checksum etc. for use with U-Boot. This is what we are doing:
4074 ${CROSS_COMPILE}-objcopy -O binary \
4075 -R .note -R .comment \
4076 -S vmlinux linux.bin
4080 gzip -9 linux.bin
4082 * package compressed binary image for U-Boot:
4084 mkimage -A ppc -O linux -T kernel -C gzip \
4085 -a 0 -e 0 -n "Linux Kernel Image" \
4086 -d linux.bin.gz uImage
4090 with U-Boot, either separated from the Linux kernel image, or
4099 In the first form (with "-l" option) mkimage lists the information
4100 contained in the header of an existing U-Boot image; this includes
4103 tools/mkimage -l image
4104 -l ==> list image header information
4106 The second form (with "-d" option) is used to build a U-Boot image
4109 tools/mkimage -A arch -O os -T type -C comp -a addr -e ep \
4110 -n name -d data_file image
4111 -A ==> set architecture to 'arch'
4112 -O ==> set operating system to 'os'
4113 -T ==> set image type to 'type'
4114 -C ==> set compression type 'comp'
4115 -a ==> set load address to 'addr' (hex)
4116 -e ==> set entry point to 'ep' (hex)
4117 -n ==> set image name to 'name'
4118 -d ==> use image data from 'datafile'
4124 - 2.2.x kernels have the entry point at 0x0000000C,
4125 - 2.3.x and later kernels have the entry point at 0x00000000.
4127 So a typical call to build a U-Boot image would read:
4129 -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
4130 > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \
4131 > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz \
4142 -> tools/mkimage -l examples/uImage.TQM850L
4155 -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz
4156 -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
4157 > -A ppc -O linux -T kernel -C none -a 0 -e 0 \
4158 > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux \
4159 > examples/uImage.TQM850L-uncompressed
4168 Similar you can build U-Boot images from a 'ramdisk.image.gz' file
4171 -> tools/mkimage -n 'Simple Ramdisk Image' \
4172 > -A ppc -O linux -T ramdisk -C gzip \
4173 > -d /LinuxPPC/images/SIMPLE-ramdisk.image.gz examples/simple-initrd
4181 The "dumpimage" is a tool to disassemble images built by mkimage. Its "-i"
4182 option performs the converse operation of the mkimage's second form (the "-d"
4186 tools/dumpimage -i image -T type -p position data_file
4187 -i ==> extract from the 'image' a specific 'data_file'
4188 -T ==> set image type to 'type'
4189 -p ==> 'position' (starting at 0) of the 'data_file' inside the 'image'
4193 -------------------------
4195 To downloading a U-Boot image over the serial (console) interface,
4196 you must convert the image to S-Record format:
4198 objcopy -I binary -O srec examples/image examples/image.srec
4200 The 'objcopy' does not understand the information in the U-Boot
4201 image header, so the resulting S-Record file will be relative to
4215 ## Ready for S-Record download ...
4241 -----------
4324 -----------
4326 First, U-Boot must be compiled with the appropriate defines. See the section
4357 => bootm $loadaddr - $oftaddr
4359 Image Name: Linux-2.6.17-dirty
4372 More About U-Boot Image Types:
4373 ------------------------------
4375 U-Boot supports the following image types:
4378 provided by U-Boot; it is expected that (if they behave
4379 well) you can continue to work in U-Boot after return from
4384 drivers, set up the MMU, etc. - this means, that you cannot
4385 expect to re-enter U-Boot except by resetting the CPU.
4389 "Multi-File Images" contain several images, typically an OS
4396 "Multi-File Images" start with a list of image sizes, each
4404 U-Boot or FPGA images) which usually will be programmed to
4408 U-Boot's command interpreter; this feature is especially
4409 useful when you configure U-Boot to use a real shell (hush)
4413 -------------------------
4428 One of the features of U-Boot is that you can dynamically load and
4430 U-Boot like console I/O functions or interrupt services.
4435 -------------------
4438 application; it is automatically compiled when you build U-Boot.
4443 ## Ready for S-Record download ...
4467 handler with the U-Boot code, can be found in 'examples/timer.c'.
4473 ? - print current values og the CPM Timer registers
4474 b - enable interrupts and start timer
4475 e - stop timer and disable interrupts
4476 q - quit application
4479 ## Ready for S-Record download ...
4519 Unix, I recommend to use C-Kermit for general purpose use (and
4521 use "cu" for S-Record download ("loads" command). See
4529 Name Program Name U/D FullScr IO-Red. Multi
4530 X kermit /usr/bin/kermit -i -l %l -s Y U Y N N
4531 Y kermit /usr/bin/kermit -i -l %l -r N D Y N N
4537 Starting at version 0.9.2, U-Boot supports NetBSD both as host
4538 (build U-Boot) and target system (boots NetBSD/mpc8xx).
4541 NetBSD/i386 with the cross-powerpc-netbsd-1.3 package (you will also
4543 Note that the cross-powerpc package does not install include files;
4544 attempting to build U-Boot will fail because <machine/ansi.h> is
4547 # cd /usr/pkg/cross/powerpc-netbsd/include
4549 # ln -s powerpc machine
4554 and U-Boot include files.
4557 stage-2 loader which in turn loads and then invokes the kernel
4559 tree (probably in sys/arc/mpc8xx/stand/u-boot_stage2/); in the
4560 meantime, see ftp://ftp.denx.de/pub/u-boot/ppcboot_stage2.tar.gz
4568 inner workings of U-Boot and make it easier to port it to custom
4573 ---------------------------
4575 The implementation of U-Boot is complicated by the fact that U-Boot
4582 models provide on-chip memory (like the IMMR area on MPC8xx and
4584 locked as (mis-) used as memory, etc.
4587 U-Boot mailing list:
4589 Subject: RE: [U-Boot-Users] RE: More On Memory Bank x (nothingness)?
4591 Date: Mon, 10 Feb 2003 16:43:46 -0500 (22:43 MET)
4601 operation in the architecture and processor-specific manuals.
4613 you will find in any recent u-boot distribution in
4621 -Chris Hallinan
4627 * Initialized global data (data segment) is read-only. Do not attempt
4631 as zero data - BSS segment) at all - this is undefined, initiali-
4639 turned out that the implementation of U-Boot can be greatly
4654 R3-R4: parameter passing and return values
4655 R5-R10: parameter passing
4660 (U-Boot also uses R12 as internal GOT pointer. r12
4664 ==> U-Boot will use R2 to hold a pointer to the global data
4669 smaller code - although the code savings are not that big (on
4670 average for all boards 752 bytes for the whole U-Boot image,
4676 R1-R3: function argument word
4685 ==> U-Boot will use R9 to hold a pointer to the global data
4692 ==> U-Boot will use gp to hold a pointer to the global data
4694 Note: on Nios II, we give "-G0" option to gcc and don't use gp
4699 R0-R1: argument/return
4700 R2-R5: argument
4709 ==> U-Boot will use R10 to hold a pointer to the global data
4711 NOTE: DECLARE_GLOBAL_DATA_PTR must be used with file-global scope,
4714 On RISC-V, the following registers are used:
4716 x0: hard-wired zero (zero)
4723 x10-x11: arguments/return values (a0-1)
4724 x12-x17: arguments (a2-7)
4725 x28-31: temporaries (t3-6)
4728 ==> U-Boot will use gp to hold a pointer to the global data
4731 ------------------
4733 U-Boot runs in system state and uses physical addresses, i.e. the
4738 memory type (Flash, SDRAM, SRAM), even when it consists of several
4741 U-Boot is installed in the first 128 kB of the first Flash bank (on
4744 to the upper end of DRAM. Immediately below the U-Boot code some
4771 ... eventually: pRAM (Protected RAM - unchanged by reset)
4776 ----------------------
4778 In the reset configuration, U-Boot starts at the reset entry point
4781 To be able to re-map memory U-Boot then jumps to its link address.
4785 cache. After that, U-Boot initializes the CPU core, the caches and
4791 on 0x40000000 and 0x60000000, SRAM on 0x80000000). Then UPM A is
4813 U-Boot Porting Guide:
4814 ----------------------
4816 [Based on messages by Jerry Van Baren in the U-Boot-Users mailing
4825 alarm(PROJECT_DEADLINE - toSec (3 * WEEK));
4828 Pay consultant to port U-Boot;
4832 Download latest U-Boot source;
4834 Subscribe to u-boot mailing list;
4837 email("Hi, I am new to U-Boot, how do I get started?");
4844 /* find . -name "*.[chS]" | xargs grep -i <keyword> */
4853 cp -a board/<similar> board/<myboard>
4871 Send patch file to the U-Boot email list;
4888 -----------------
4890 All contributions to U-Boot should conform to the Linux kernel
4892 https://www.kernel.org/doc/html/latest/process/coding-style.html, and the
4900 Please note that U-Boot is implemented in C (and to some small parts in
4905 - remove any trailing white space
4906 - use TAB characters for indentation and vertical alignment, not spaces
4907 - make sure NOT to use DOS '\r\n' line feeds
4908 - do not add more than 2 consecutive empty lines to source files
4909 - do not add trailing empty lines to source files
4916 -------------------
4918 Since the number of patches for U-Boot is growing, we need to
4922 Please see http://www.denx.de/wiki/U-Boot/Patches for details.
4924 Patches shall be sent to the u-boot mailing list <u-boot@lists.denx.de>;
4925 see https://lists.denx.de/listinfo/u-boot
4943 maintainer e-mail address to the boards.cfg file, too.
4950 "git format-patch". If you then use "git send-email" to send it to
4951 the U-Boot mailing list, you will avoid most of the common problems
4954 If you cannot use git, use "diff -purN OLD NEW". If your version of
4959 directory of the U-Boot source tree (i. e. please make sure that
4981 returned with a request to re-formatting / split it.
4984 add to the memory footprint of the code ;-) Small is beautiful!
4991 u-boot mailing list. Bigger patches will be moderated. If they are