Lines Matching +full:exynos5250 +full:- +full:dp +full:- +full:video +full:- +full:phy
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
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):
950 Define this to use GE link update with gigabit PHY.
951 Define this if FTGMAC100 is connected to gigabit PHY.
952 If your system has 10/100 PHY only, it might not occur
953 wrong behavior. Because PHY usually return timeout or
959 Support for Renesas on-chip Ethernet controller
965 Define the ETH PHY's address
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:
1097 the generic ULPI layer. The generic layer accesses the ULPI PHY
1103 If your ULPI phy needs a different reference clock than the
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:
1184 Enable the Freescale DIU video driver. Reference boards for
1196 The DIU driver will look for the 'video-mode' environment
1198 boot. See the documentation file doc/README.video for a
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:
1364 Some PHY like Intel LXT971A need extra delay after
1366 For such PHY, set this option to the usec delay
1371 Some PHY like Intel LXT971A need extra delay after
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:
2328 when using a graphics controller has separate video
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:
2987 MII address of the PHY to check for the Ethernet link state.
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
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
4770 ... eventually: LCD or video framebuffer
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
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