Lines Matching +full:srom +full:- +full:page +full:- +full:mode

2 # (C) Copyright 2000 - 2013
5 # SPDX-License-Identifier: GPL-2.0+
11 This directory contains the source code for U-Boot, a boot loader for
17 The development of U-Boot is closely related to Linux: some parts of
39 scattered throughout the U-Boot source identifying the people or
43 actual U-Boot source tree; however, it can be created dynamically
53 U-Boot, you should send a message to the U-Boot mailing list at
54 <u-boot@lists.denx.de>. There is also an archive of previous traffic
55 on the mailing list - please search the archive before asking FAQ's.
56 Please see http://lists.denx.de/pipermail/u-boot and
57 http://dir.gmane.org/gmane.comp.boot-loaders.u-boot
63 The U-Boot source code is maintained in the Git repository at
64 git://www.denx.de/git/u-boot.git ; you can browse it online at
65 http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary
67 The "snapshot" links on this page allow you to download tarballs of
69 available for FTP download from the ftp://ftp.denx.de/pub/u-boot/
72 Pre-built (and tested) images are available from
73 ftp://ftp.denx.de/pub/u-boot/images/
79 - start from 8xxrom sources
80 - create PPCBoot project (http://sourceforge.net/projects/ppcboot)
81 - clean up code
82 - make it easier to add custom boards
83 - make it possible to add other [PowerPC] CPUs
84 - extend functions, especially:
86 * S-Record download
89 - create ARMBoot project (http://sourceforge.net/projects/armboot)
90 - add other CPU families (starting with ARM)
91 - create U-Boot project (http://sourceforge.net/projects/u-boot)
92 - current project page: see http://www.denx.de/wiki/U-Boot
98 The "official" name of this project is "Das U-Boot". The spelling
99 "U-Boot" shall be used in all written text (documentation, comments
102 This is the README file for the U-Boot project.
104 File names etc. shall be based on the string "u-boot". Examples:
106 include/asm-ppc/u-boot.h
108 #include <asm/u-boot.h>
128 U-Boot v2009.11 - Release November 2009
129 U-Boot v2009.11.1 - Release 1 in version November 2009 stable tree
130 U-Boot v2010.09-rc1 - Release candidate 1 for September 2010 release
146 /sandbox Files generic to HW-independent "sandbox"
151 /cmd U-Boot commands functions
157 /dts Contains Makefile for building internal U-Boot fdt.
167 /tools Tools to build S-Record or U-Boot images, etc.
188 U-Boot has added the Kbuild infrastructure used by the Linux kernel,
194 ---------------------------------------------------
196 For all supported boards there are ready-to-use default
201 cd u-boot
209 --------------------
211 U-Boot can be built natively to run on a Linux host using the 'sandbox'
212 board. This allows feature development which is not board- or architecture-
214 run some of U-Boot's tests.
220 --------------------------
222 This is the intended start-up flow for boards. This should apply for both
223 SPL and U-Boot proper (i.e. they both follow the same rules).
233 Execution typically starts with an architecture-specific (and possibly
234 CPU-specific) start.S file, such as:
236 - arch/arm/cpu/armv7/start.S
237 - arch/powerpc/cpu/mpc83xx/start.S
238 - arch/mips/cpu/start.S
244 - purpose: essential init to permit execution to reach board_init_f()
245 - no global_data or BSS
246 - there is no stack (ARMv7 may have one but it will soon be removed)
247 - must not set up SDRAM or use console
248 - must only do the bare minimum to allow execution to continue to
250 - this is almost never needed
251 - return normally from this function
254 - purpose: set up the machine ready for running board_init_r():
256 - global_data is available
257 - stack is in SRAM
258 - BSS is not available, so you cannot use global/static variables,
261 Non-SPL-specific notes:
262 - dram_init() is called to set up DRAM. If already done in SPL this
265 SPL-specific notes:
266 - you can override the entire board_init_f() function with your own
268 - preloader_console_init() can be called here in extremis
269 - should set up SDRAM, and anything needed to make the UART work
270 - these is no need to clear BSS, it will be done by crt0.S
271 - must return normally from this function (don't call board_init_r()
276 CONFIG_SPL_STACK_R_ADDR. For non-SPL, U-Boot is relocated to run at the top of
280 - purpose: main execution, common code
281 - global_data is available
282 - SDRAM is available
283 - BSS is available, all static/global variables can be used
284 - execution eventually continues to main_loop()
286 Non-SPL-specific notes:
287 - U-Boot is relocated to the top of memory and is now running from
290 SPL-specific notes:
291 - stack is optionally in SDRAM, if CONFIG_SPL_STACK_R is defined and
293 - preloader_console_init() can be called here - typically this is
296 - loads U-Boot or (in falcon mode) Linux
301 ----------------------
313 build a config tool - later.
318 - CPU Type: Define exactly one, e.g. CONFIG_MPC85XX.
320 - Board Type: Define exactly one, e.g. CONFIG_MPC8540ADS.
322 - Marvell Family Member
323 CONFIG_SYS_MVFS - define it if you want to enable
327 - 85xx CPU Options:
330 Specifies that the core is a 64-bit PowerPC implementation (implements
394 Single Source Clock is clocking mode present in some of FSL SoC's.
395 In this mode, a single differential clock is used to supply
400 time of U-Boot entry and is required to be re-initialized.
406 - Generic CPU options:
418 Freescale DDR memory-mapped register base.
437 Freescale DDR3 controller for ARM-based SoCs.
478 It adds PBI(pre-boot instructions) commands in u-boot build image.
484 concatenated with u-boot binary.
498 DDR controller interleaving on 256-byte. This is a special
499 interleaving mode, handled by Dickens for Freescale layerscape
509 Defines the SoC has DP-DDR used for DPAA.
517 - MIPS CPU options:
526 Cache operation mode for the MIPS CPU.
545 Enable compilation of tools/xway-swap-bytes needed for Lantiq
546 XWAY SoCs for booting from NOR flash. The U-Boot image needs to
549 - ARM options:
563 - Tegra SoC options:
566 Support executing U-Boot in non-secure (NS) mode. Certain
567 impossible actions will be skipped if the CPU is in NS mode,
570 - Linux Kernel Interface:
573 U-Boot stores all clock information in Hz
577 "clocks_in_mhz" can be defined so that U-Boot
597 * New libfdt-based support
601 OF_TBCLK - The timebase frequency.
602 OF_STDOUT_PATH - The path to the console device
621 U-Boot can detect if an IDE device is present or not.
622 If not, and this new config option is activated, U-Boot
638 - vxWorks boot parameters:
648 - Cache Configuration:
649 CONFIG_SYS_ICACHE_OFF - Do not enable instruction cache in U-Boot
650 CONFIG_SYS_DCACHE_OFF - Do not enable data cache in U-Boot
651 CONFIG_SYS_L2CACHE_OFF- Do not enable L2 cache in U-Boot
653 - Cache Configuration for ARM:
654 CONFIG_SYS_L2_PL310 - Enable support for ARM PL310 L2 cache
656 CONFIG_SYS_PL310_BASE - Physical base address of PL310
659 - Serial Ports:
684 - Console Baudrate:
685 CONFIG_BAUDRATE - in bps
689 - Autoboot Command:
702 - Bootcount:
718 - Pre-Boot Commands:
724 countdown and/or running the auto-boot command resp.
725 entering interactive mode.
734 - Serial Download Echo Mode:
743 - Kgdb Serial Baudrate: (if CONFIG_CMD_KGDB is defined)
748 - Removal of commands
751 will not be available, and when U-Boot wants to execute the
752 boot command (on start-up) it will call board_run_command()
756 - Regular expression support:
758 If this variable is defined, U-Boot is linked against
763 - Device tree:
765 If this variable is defined, U-Boot will use a device tree
769 tree is available in the global data as gd->fdt_blob.
771 U-Boot needs to get its device tree from somewhere. This can
775 If this variable is defined, U-Boot will embed a device tree
777 board directory and called <soc>-<board>.dts. The binary file
779 the global data structure as gd->fdt_blob.
782 If this variable is defined, U-Boot will build a device tree
783 binary. It will be called u-boot.dtb. Architecture-specific
784 code will locate it at run-time. Generally this works by:
786 cat u-boot.bin u-boot.dtb >image.bin
788 and in fact, U-Boot does this for you, creating a file called
789 u-boot-dtb.bin which is useful in the common case. You can
794 If this variable is defined, U-Boot will use the device tree
799 - Watchdog:
817 - U-Boot Version:
820 named "ver" is created by U-Boot showing the U-Boot
825 - Real-Time Clock:
831 CONFIG_RTC_PCF8563 - use Philips PCF8563 RTC
832 CONFIG_RTC_MC13XXX - use MC13783 or MC13892 RTC
833 CONFIG_RTC_MC146818 - use MC146818 RTC
834 CONFIG_RTC_DS1307 - use Maxim, Inc. DS1307 RTC
835 CONFIG_RTC_DS1337 - use Maxim, Inc. DS1337 RTC
836 CONFIG_RTC_DS1338 - use Maxim, Inc. DS1338 RTC
837 CONFIG_RTC_DS1339 - use Maxim, Inc. DS1339 RTC
838 CONFIG_RTC_DS164x - use Dallas DS164x RTC
839 CONFIG_RTC_ISL1208 - use Intersil ISL1208 RTC
840 CONFIG_RTC_MAX6900 - use Maxim, Inc. MAX6900 RTC
841 CONFIG_RTC_DS1337_NOOSC - Turn off the OSC output for DS1337
842 CONFIG_SYS_RV3029_TCR - enable trickle charger on
848 - GPIO Support:
849 CONFIG_PCA953X - use NXP's PCA953X series I2C GPIO
852 chip-ngpio pairs that tell the PCA953X driver the number of
858 - I/O tracing:
859 When CONFIG_IO_TRACE is selected, U-Boot intercepts all I/O
880 - Timestamp Support:
887 - Partition Labels (disklabels) Supported:
895 least one non-MTD partition type as well.
897 - IDE Reset method:
898 CONFIG_IDE_RESET_ROUTINE - this is defined in several
901 CONFIG_IDE_RESET - is this is defined, IDE Reset will
906 - ATAPI Support:
911 - LBA48 Support
923 - SCSI Support:
933 - NETWORK Support (PCI):
962 - NETWORK Support (other):
1031 Support for Renesas on-chip Ethernet controller
1042 - PWM Support:
1046 - TPM Support:
1089 - USB Support:
1098 (TEAC FD-05PUB).
1106 - USB Device:
1141 If you have a USB-IF assigned VendorID then you may wish to
1145 CONFIG_USBD_VENDORID and CONFIG_USBD_PRODUCTID, then U-Boot
1150 - CONFIG_USBD_MANUFACTURER "my company"
1154 - CONFIG_USBD_PRODUCT_NAME "acme usb device"
1160 - CONFIG_USBD_VENDORID 0xFFFF
1165 - CONFIG_USBD_PRODUCTID 0xFFFF
1167 - ULPI Layer Support:
1179 - MMC Support:
1188 Support for Renesas on-chip MMCIF controller
1203 - USB Device Firmware Update (DFU) class support:
1215 Note: DFU spec refer to non-volatile memory usage, but
1216 allow usages beyond the scope of spec - here RAM usage,
1242 - Android Bootloader support:
1251 devices can boot in normal mode, recovery mode or bootloader
1252 mode. The normal mode is the most common boot mode, but
1253 recovery mode is often used to perform factory reset and OTA
1254 (over-the-air) updates in the legacy updater. Also it is
1263 - USB Device Android Fastboot support:
1269 fastboot mode for the platform's USB device. Fastboot is a USB
1272 See doc/README.android-fastboot for more information.
1286 the downloaded image to a non-volatile storage device. Define
1291 regarding the non-volatile storage device. Define this to
1297 Table. (Additionally, this downloaded image is post-processed
1310 - Journaling Flash filesystem support:
1318 - Keyboard Support:
1325 defined in your board-specific files. This option is deprecated
1329 - Video support:
1343 The DIU driver will look for the 'video-mode' environment
1348 - LCD Support: CONFIG_LCD
1360 NEC NL6448AC33-18. Active, color, single scan.
1364 NEC NL6448BC20-08. 6.5", 640x480.
1369 NEC NL6448BC33-54. 10.4", 640x480.
1389 Optrex CBL50840-2 NF-FW 99 22 M5
1391 Hitachi LMG6912RPFC-00T
1399 Normally the LCD is page-aligned (typically 4KB). If this is
1403 a per-section basis.
1409 mode or even if it's mounted landscape but rotated by 180degree,
1417 fbcon=rotate:<n> linux-kernel commandline):
1428 Support drawing of RLE8-compressed bitmaps on the LCD.
1435 - Splash Screen Support: CONFIG_SPLASH_SCREEN
1444 loaded very quickly after power-on.
1448 If this option is set, then U-Boot will prevent the environment
1450 (see doc/README.displaying-bmps).
1473 setenv splashpos -10,m
1475 at x = dspWidth - bmpWidth - 9
1477 - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
1483 - Run length encoded BMP image (RLE8) support: CONFIG_VIDEO_BMP_RLE8
1485 If this option is set, 8-bit RLE compressed BMP images
1489 - Compression support:
1504 - MII/PHY support:
1525 - IP address:
1533 - Server IP address:
1545 - Gateway IP address:
1553 - Subnet mask:
1562 - Multicast TFTP Mode:
1566 rfc-2090; for example to work with atftp. Lets lots of targets
1571 - BOOTP Recovery Mode:
1592 BOOTP packets are uniquely identified using a 32-bit ID. The
1594 U-Boot will use this to determine if it is the destination of
1600 time is too long, U-Boot will retransmit requests. In order
1602 retransmissions, U-Boot's BOOTP client keeps a small cache of
1605 requests. Increasing this will allow U-Boot to accept offers
1608 - DHCP Advanced Options:
1626 CONFIG_BOOTP_SERVERIP - TFTP server will be the serverip
1629 CONFIG_BOOTP_MAY_FAIL - If the DHCP server is not found
1632 to Link-local IP address configuration if the DHCP server
1635 CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS
1644 CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable
1665 - Link-local IP address negotiation:
1666 Negotiate with other link-local clients on the local network
1671 See doc/README.link-local for more information.
1673 - MAC address from environment variables
1677 Fix-up device tree with MAC addresses fetched sequentially from
1679 non-usable ethernet node of device-tree are either not present
1682 - CDP Options:
1724 - Status LED: CONFIG_LED_STATUS
1728 fast while running U-Boot code, stop blinking as
1733 feature in U-Boot.
1741 to include the gpio_led driver in the U-Boot binary.
1750 - I2C Support: CONFIG_SYS_I2C
1753 i2c commands at the u-boot command line (as long as you set
1760 - drivers/i2c/soft_i2c.c:
1761 - activate first bus with CONFIG_SYS_I2C_SOFT define
1764 - activate second bus with I2C_SOFT_DECLARATIONS2 define
1767 - activate third bus with I2C_SOFT_DECLARATIONS3 define
1770 - activate fourth bus with I2C_SOFT_DECLARATIONS4 define
1774 - drivers/i2c/fsl_i2c.c:
1775 - activate i2c driver with CONFIG_SYS_I2C_FSL
1780 - If your board supports a second fsl i2c bus, define
1786 - drivers/i2c/tegra_i2c.c:
1787 - activate this driver with CONFIG_SYS_I2C_TEGRA
1788 - This driver adds 4 i2c buses with a fix speed from
1791 - drivers/i2c/ppc4xx_i2c.c
1792 - activate this driver with CONFIG_SYS_I2C_PPC4XX
1793 - CONFIG_SYS_I2C_PPC4XX_CH0 activate hardware channel 0
1794 - CONFIG_SYS_I2C_PPC4XX_CH1 activate hardware channel 1
1796 - drivers/i2c/i2c_mxc.c
1797 - activate this driver with CONFIG_SYS_I2C_MXC
1798 - enable bus 1 with CONFIG_SYS_I2C_MXC_I2C1
1799 - enable bus 2 with CONFIG_SYS_I2C_MXC_I2C2
1800 - enable bus 3 with CONFIG_SYS_I2C_MXC_I2C3
1801 - enable bus 4 with CONFIG_SYS_I2C_MXC_I2C4
1802 - define speed for bus 1 with CONFIG_SYS_MXC_I2C1_SPEED
1803 - define slave for bus 1 with CONFIG_SYS_MXC_I2C1_SLAVE
1804 - define speed for bus 2 with CONFIG_SYS_MXC_I2C2_SPEED
1805 - define slave for bus 2 with CONFIG_SYS_MXC_I2C2_SLAVE
1806 - define speed for bus 3 with CONFIG_SYS_MXC_I2C3_SPEED
1807 - define slave for bus 3 with CONFIG_SYS_MXC_I2C3_SLAVE
1808 - define speed for bus 4 with CONFIG_SYS_MXC_I2C4_SPEED
1809 - define slave for bus 4 with CONFIG_SYS_MXC_I2C4_SLAVE
1813 - drivers/i2c/rcar_i2c.c:
1814 - activate this driver with CONFIG_SYS_I2C_RCAR
1815 - This driver adds 4 i2c buses
1817 - CONFIG_SYS_RCAR_I2C0_BASE for setting the register channel 0
1818 - CONFIG_SYS_RCAR_I2C0_SPEED for for the speed channel 0
1819 - CONFIG_SYS_RCAR_I2C1_BASE for setting the register channel 1
1820 - CONFIG_SYS_RCAR_I2C1_SPEED for for the speed channel 1
1821 - CONFIG_SYS_RCAR_I2C2_BASE for setting the register channel 2
1822 - CONFIG_SYS_RCAR_I2C2_SPEED for for the speed channel 2
1823 - CONFIG_SYS_RCAR_I2C3_BASE for setting the register channel 3
1824 - CONFIG_SYS_RCAR_I2C3_SPEED for for the speed channel 3
1825 - CONFIF_SYS_RCAR_I2C_NUM_CONTROLLERS for number of i2c buses
1827 - drivers/i2c/sh_i2c.c:
1828 - activate this driver with CONFIG_SYS_I2C_SH
1829 - This driver adds from 2 to 5 i2c buses
1831 - CONFIG_SYS_I2C_SH_BASE0 for setting the register channel 0
1832 - CONFIG_SYS_I2C_SH_SPEED0 for for the speed channel 0
1833 - CONFIG_SYS_I2C_SH_BASE1 for setting the register channel 1
1834 - CONFIG_SYS_I2C_SH_SPEED1 for for the speed channel 1
1835 - CONFIG_SYS_I2C_SH_BASE2 for setting the register channel 2
1836 - CONFIG_SYS_I2C_SH_SPEED2 for for the speed channel 2
1837 - CONFIG_SYS_I2C_SH_BASE3 for setting the register channel 3
1838 - CONFIG_SYS_I2C_SH_SPEED3 for for the speed channel 3
1839 - CONFIG_SYS_I2C_SH_BASE4 for setting the register channel 4
1840 - CONFIG_SYS_I2C_SH_SPEED4 for for the speed channel 4
1841 - CONFIG_SYS_I2C_SH_NUM_CONTROLLERS for number of i2c buses
1843 - drivers/i2c/omap24xx_i2c.c
1844 - activate this driver with CONFIG_SYS_I2C_OMAP24XX
1845 - CONFIG_SYS_OMAP24_I2C_SPEED speed channel 0
1846 - CONFIG_SYS_OMAP24_I2C_SLAVE slave addr channel 0
1847 - CONFIG_SYS_OMAP24_I2C_SPEED1 speed channel 1
1848 - CONFIG_SYS_OMAP24_I2C_SLAVE1 slave addr channel 1
1849 - CONFIG_SYS_OMAP24_I2C_SPEED2 speed channel 2
1850 - CONFIG_SYS_OMAP24_I2C_SLAVE2 slave addr channel 2
1851 - CONFIG_SYS_OMAP24_I2C_SPEED3 speed channel 3
1852 - CONFIG_SYS_OMAP24_I2C_SLAVE3 slave addr channel 3
1853 - CONFIG_SYS_OMAP24_I2C_SPEED4 speed channel 4
1854 - CONFIG_SYS_OMAP24_I2C_SLAVE4 slave addr channel 4
1856 - drivers/i2c/zynq_i2c.c
1857 - activate this driver with CONFIG_SYS_I2C_ZYNQ
1858 - set CONFIG_SYS_I2C_ZYNQ_SPEED for speed setting
1859 - set CONFIG_SYS_I2C_ZYNQ_SLAVE for slave addr
1861 - drivers/i2c/s3c24x0_i2c.c:
1862 - activate this driver with CONFIG_SYS_I2C_S3C24X0
1863 - This driver adds i2c buses (11 for Exynos5250, Exynos5420
1867 - drivers/i2c/ihs_i2c.c
1868 - activate this driver with CONFIG_SYS_I2C_IHS
1869 - CONFIG_SYS_I2C_IHS_CH0 activate hardware channel 0
1870 - CONFIG_SYS_I2C_IHS_SPEED_0 speed channel 0
1871 - CONFIG_SYS_I2C_IHS_SLAVE_0 slave addr channel 0
1872 - CONFIG_SYS_I2C_IHS_CH1 activate hardware channel 1
1873 - CONFIG_SYS_I2C_IHS_SPEED_1 speed channel 1
1874 - CONFIG_SYS_I2C_IHS_SLAVE_1 slave addr channel 1
1875 - CONFIG_SYS_I2C_IHS_CH2 activate hardware channel 2
1876 - CONFIG_SYS_I2C_IHS_SPEED_2 speed channel 2
1877 - CONFIG_SYS_I2C_IHS_SLAVE_2 slave addr channel 2
1878 - CONFIG_SYS_I2C_IHS_CH3 activate hardware channel 3
1879 - CONFIG_SYS_I2C_IHS_SPEED_3 speed channel 3
1880 - CONFIG_SYS_I2C_IHS_SLAVE_3 slave addr channel 3
1881 - activate dual channel with CONFIG_SYS_I2C_IHS_DUAL
1882 - CONFIG_SYS_I2C_IHS_SPEED_0_1 speed channel 0_1
1883 - CONFIG_SYS_I2C_IHS_SLAVE_0_1 slave addr channel 0_1
1884 - CONFIG_SYS_I2C_IHS_SPEED_1_1 speed channel 1_1
1885 - CONFIG_SYS_I2C_IHS_SLAVE_1_1 slave addr channel 1_1
1886 - CONFIG_SYS_I2C_IHS_SPEED_2_1 speed channel 2_1
1887 - CONFIG_SYS_I2C_IHS_SLAVE_2_1 slave addr channel 2_1
1888 - CONFIG_SYS_I2C_IHS_SPEED_3_1 speed channel 3_1
1889 - CONFIG_SYS_I2C_IHS_SLAVE_3_1 slave addr channel 3_1
1936 - Legacy I2C Support:
1946 eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
1954 eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |= PB_SDA)
1958 The code necessary to make the I2C data line tri-stated
1962 eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
1969 eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
1977 if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
1978 else immr->im_cpm.cp_pbdat &= ~PB_SDA
1986 if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
1987 else immr->im_cpm.cp_pbdat &= ~PB_SCL
2003 have GPIO-based defaults assigned to them as appropriate.
2024 Note that bus numbering is zero-based.
2030 is set, specify a list of bus-device pairs. Otherwise, specify
2047 If not defined, then U-Boot assumes that SPD is on I2C bus 0.
2052 If not defined, then U-Boot assumes that RTC is on I2C bus 0.
2060 of doing a stop-start sequence will be used. Most I2C
2064 - SPI Support: CONFIG_SPI
2072 Enables a software (bit-bang) SPI driver rather than
2082 Enables a hardware SPI driver for general-purpose reads
2084 must define a list of chip-select function pointers.
2097 - FPGA Support: CONFIG_FPGA
2132 Allow Control-C to interrupt FPGA configuration
2143 Maximum time to wait for the INIT_B line to de-assert
2144 after PROB_B has been de-asserted during a Virtex II
2150 Maximum time to wait for BUSY to de-assert during
2158 - Configuration Management:
2161 Some SoCs need special image types (e.g. U-Boot binary
2169 If defined, this string will be added to the U-Boot
2172 - Vendor Parameter Protection:
2174 U-Boot considers the values of the environment
2179 the user. Once set, these variables are read-only,
2193 read-only.]
2200 - Protected RAM:
2205 by U-Boot. Define CONFIG_PRAM to hold the number of
2225 this memory test is non-destructive. So far, the
2227 "pRAM-clean":
2233 - Access to physical memory region (> 4GB)
2235 normally accessible to U-Boot - e.g. some architectures
2236 support access to more than 4GB of memory on 32-bit
2241 - Error Recovery:
2260 - Command Interpreter:
2292 - Command Line Editing and History:
2298 - Command Line PS1/PS2 support:
2302 at run-time. Only static string is supported so far.
2306 - Default Environment:
2322 U-Boot code. This is NOT an official, exported
2335 U-Boot build configuration to the default environment.
2340 - CONFIG_SYS_ARCH
2341 - CONFIG_SYS_CPU
2342 - CONFIG_SYS_BOARD
2343 - CONFIG_SYS_VENDOR
2344 - CONFIG_SYS_SOC
2349 run-time determined information about the hardware to the
2355 initialised so that it is available to U-Boot. This inhibits
2357 explicitly loaded later by U-Boot code. With CONFIG_OF_CONTROL
2359 /config/load-environment.
2361 - TFTP Fixed UDP Port:
2366 If tftpsrcp isn't defined, the normal pseudo-random port
2374 blindly start the TFTP transfer using the pre-configured
2381 - bootcount support:
2407 - Show boot progress:
2410 Defining this option allows to add some board-
2411 specific code (calling a user-provided function
2422 -1 common/cmd_bootm.c Image header has bad magic number
2424 -2 common/cmd_bootm.c Image header has bad checksum
2426 -3 common/cmd_bootm.c Image data has bad checksum
2428 -4 common/cmd_bootm.c Image is for unsupported architecture
2430 -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi)
2432 -6 common/cmd_bootm.c gunzip uncompression error
2433 -7 common/cmd_bootm.c Unimplemented compression type
2436 -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX)
2439 -10 common/image.c Ramdisk header has bad magic number
2440 -11 common/image.c Ramdisk header has bad checksum
2442 -12 common/image.c Ramdisk data has bad checksum
2445 -13 common/image.c Wrong Image Type (not PPC Linux ramdisk)
2451 -30 arch/powerpc/lib/board.c Fatal error, hang the system
2452 -31 post/post.c POST test failed, detected by post_output_backlog()
2453 -32 post/post.c POST test failed, detected by post_run_single()
2456 -35 common/cmd_doc.c Bad usage of "doc" command
2458 -36 common/cmd_doc.c No boot device
2460 -37 common/cmd_doc.c Unknown Chip ID on boot device
2462 -38 common/cmd_doc.c Read Error on boot device
2464 -39 common/cmd_doc.c Image header has bad magic number
2466 -40 common/cmd_doc.c Error reading Image from DOC device
2469 -42 common/cmd_ide.c Bad usage of "ide" command
2471 -43 common/cmd_ide.c No boot device
2473 -44 common/cmd_ide.c Device not available
2475 -45 common/cmd_ide.c wrong partition selected
2477 -46 common/cmd_ide.c Unknown partition table
2479 -47 common/cmd_ide.c Invalid partition type
2481 -48 common/cmd_ide.c Error reading Image Header on boot device
2483 -49 common/cmd_ide.c Image header has bad magic number
2485 -50 common/cmd_ide.c Image header has bad checksum
2487 -51 common/cmd_ide.c Error reading Image from IDE device
2490 -53 common/cmd_nand.c Bad usage of "nand" command
2492 -54 common/cmd_nand.c No boot device
2494 -55 common/cmd_nand.c Unknown Chip ID on boot device
2496 -56 common/cmd_nand.c Error reading Image Header on boot device
2498 -57 common/cmd_nand.c Image header has bad magic number
2500 -58 common/cmd_nand.c Error reading Image from NAND device
2503 -60 common/env_common.c Environment has a bad CRC, using default
2506 -64 net/eth.c no Ethernet found.
2509 -80 common/cmd_net.c usage wrong
2511 -81 common/cmd_net.c some error in net_loop() occurred
2513 -82 common/cmd_net.c size == 0 (File with size 0 loaded)
2516 -83 common/cmd_net.c some error in automatic boot or "source" command
2523 -100 common/cmd_bootm.c Kernel FIT Image has incorrect format
2525 -101 common/cmd_bootm.c Can't get configuration for kernel subimage
2527 -103 common/cmd_bootm.c Can't get kernel subimage node offset
2530 -104 common/cmd_bootm.c Kernel subimage hash verification failed
2532 -105 common/cmd_bootm.c Kernel subimage is for unsupported architecture
2534 -106 common/cmd_bootm.c Kernel subimage has wrong type
2536 -107 common/cmd_bootm.c Can't get kernel subimage data/size
2538 -108 common/cmd_bootm.c Wrong image type (not legacy, FIT)
2539 -109 common/cmd_bootm.c Can't get kernel subimage type
2540 -110 common/cmd_bootm.c Can't get kernel subimage comp
2541 -111 common/cmd_bootm.c Can't get kernel subimage os
2542 -112 common/cmd_bootm.c Can't get kernel subimage load address
2543 -113 common/cmd_bootm.c Image uncompress/copy overwrite error
2546 -120 common/image.c Ramdisk FIT image has incorrect format
2549 -122 common/image.c Can't get configuration for ramdisk subimage
2551 -124 common/image.c Can't get ramdisk subimage node offset
2553 -125 common/image.c Ramdisk subimage hash verification failed
2555 -126 common/image.c Ramdisk subimage for unsupported architecture
2557 -127 common/image.c Can't get ramdisk subimage data/size
2560 -129 common/image.c Got ramdisk load address
2562 -130 common/cmd_doc.c Incorrect FIT image format
2565 -140 common/cmd_ide.c Incorrect FIT image format
2568 -150 common/cmd_nand.c Incorrect FIT image format
2571 - legacy image format:
2573 enables the legacy image format support in U-Boot.
2584 - Standalone program support:
2592 - Frame Buffer Address:
2598 memory. U-Boot will then place the frame buffer at
2606 - Automatic software updates via TFTP server
2611 These options enable and control the auto-update feature;
2614 - MTD Support (mtdparts command, UBI support)
2623 other flashes which have eraseblock life-cycle 100000 or more.
2625 life-cycle less than 10000, the threshold should be lessened (e.g.,
2639 then can be calculated as "1024 * (1 - MinNVB / MaxNVB)",
2658 The on-flash fastmap contains all information needed to attach
2663 that fastmap-enabled images are still usable with UBI implementations
2676 - UBIFS support
2682 - SPL framework
2748 supports MMC, NAND and YMODEM loading of U-Boot and NAND
2763 Partition on the MMC to load U-Boot from when the MMC is being
2764 used in raw mode
2768 used in raw mode (for Falcon mode)
2773 parameters from when MMC is being used in raw mode
2774 (for falcon mode)
2777 Partition on the MMC to load U-Boot from when the MMC is being
2778 used in fs mode
2781 Filename to read to load U-Boot when reading from filesystem
2785 from filesystem (for Falcon mode)
2789 when reading from filesystem (for Falcon mode)
2795 loading the first page rather than the full 4K).
2823 Support to boot only raw u-boot.bin images. Use this only
2836 to read U-Boot
2842 Location in NAND to read U-Boot from
2845 Location in memory to load U-Boot to
2869 use an arch-specific makefile fragment instead, for
2875 option to re-enable it. This will affect the output of the
2878 - TPL framework
2889 - Interrupt support (PPC):
2904 ------------------------------
2906 During Initialization u-boot calls a number of board specific functions
2913 - CONFIG_BOARD_EARLY_INIT_F: Call board_early_init_f()
2914 - CONFIG_BOARD_EARLY_INIT_R: Call board_early_init_r()
2915 - CONFIG_BOARD_LATE_INIT: Call board_late_init()
2916 - CONFIG_BOARD_POSTCLK_INIT: Call board_postclk_init()
2919 -----------------------
2921 - CONFIG_SYS_SUPPORT_64BIT_DATA: Defined automatically if compiled as 64-bit.
2922 Optionally it can be defined to support 64-bit memory commands.
2924 - CONFIG_SYS_LONGHELP: Defined when you want long help messages included;
2927 - CONFIG_SYS_HELP_CMD_WIDTH: Defined when you want to override the default
2930 - CONFIG_SYS_PROMPT: This is what U-Boot prints on the console to
2933 - CONFIG_SYS_CBSIZE: Buffer size for input from the Console
2935 - CONFIG_SYS_PBSIZE: Buffer size for Console output
2937 - CONFIG_SYS_MAXARGS: max. Number of arguments accepted for monitor commands
2939 - CONFIG_SYS_BARGSIZE: Buffer size for Boot Arguments which are passed to
2943 - CONFIG_SYS_BAUDRATE_TABLE:
2946 - CONFIG_SYS_MEMTEST_START, CONFIG_SYS_MEMTEST_END:
2950 - CONFIG_SYS_ALT_MEMTEST:
2953 - CONFIG_SYS_MEMTEST_SCRATCH:
2957 - CONFIG_SYS_MEM_RESERVE_SECURE
2962 gd->arch.secure_ram is used to track the location. In systems
2966 - CONFIG_SYS_MEM_TOP_HIDE:
2969 (end) of RAM and won't get "touched" at all by U-Boot. By
2970 fixing up gd->ram_size the Linux kernel should gets passed
2982 the Linux page size (normally 4k). If this is not the case,
2984 non page size aligned address and this could cause major
2987 - CONFIG_SYS_LOADS_BAUD_CHANGE:
2990 - CONFIG_SYS_SDRAM_BASE:
2993 - CONFIG_SYS_FLASH_BASE:
2996 - CONFIG_SYS_MONITOR_BASE:
2999 (CONFIG_SYS_TEXT_BASE) used when linking) - same as
3002 - CONFIG_SYS_MONITOR_LEN:
3005 embedded within the U-Boot image, or in a separate
3008 - CONFIG_SYS_MALLOC_LEN:
3011 - CONFIG_SYS_MALLOC_F_LEN
3022 U-Boot relocates itself.
3024 - CONFIG_SYS_MALLOC_SIMPLE
3029 - CONFIG_SYS_NONCACHED_MEMORY:
3030 Size of non-cached memory area. This area of memory will be
3036 are not a multiple of the cache-line size, *and* padding
3039 size of each region is not cache-aligned), then a flush of
3041 written to another region in the same cache-line. This can
3043 buffers are typically smaller than the CPU cache-line (e.g.
3046 Non-cached memory is only supported on 32-bit ARM at present.
3048 - CONFIG_SYS_BOOTM_LEN:
3054 - CONFIG_SYS_BOOTMAPSZ:
3059 environment variable is defined and non-zero. In such case
3066 - CONFIG_SYS_BOOT_RAMDISK_HIGH:
3071 - CONFIG_SYS_BOOT_GET_CMDLINE:
3075 - CONFIG_SYS_BOOT_GET_KBD:
3079 - CONFIG_SYS_MAX_FLASH_BANKS:
3082 - CONFIG_SYS_MAX_FLASH_SECT:
3085 - CONFIG_SYS_FLASH_ERASE_TOUT:
3088 - CONFIG_SYS_FLASH_WRITE_TOUT:
3091 - CONFIG_SYS_FLASH_LOCK_TOUT
3094 - CONFIG_SYS_FLASH_UNLOCK_TOUT
3097 - CONFIG_SYS_FLASH_PROTECTION
3099 instead of U-Boot software protection.
3101 - CONFIG_SYS_DIRECT_FLASH_TFTP:
3108 The two-step approach is usually more reliable, since
3114 - CONFIG_SYS_FLASH_CFI:
3118 - CONFIG_FLASH_CFI_DRIVER
3122 - CONFIG_FLASH_CFI_MTD
3127 - CONFIG_SYS_FLASH_USE_BUFFER_WRITE
3130 - CONFIG_FLASH_SPANSION_S29WS_N
3131 s29ws-n MirrorBit flash has non-standard addresses for buffered
3134 - CONFIG_SYS_FLASH_QUIET_TEST
3140 - CONFIG_FLASH_SHOW_PROGRESS
3145 - CONFIG_FLASH_VERIFY
3154 - CONFIG_SYS_RX_ETH_BUFFER:
3162 - CONFIG_ENV_MAX_ENTRIES
3170 - CONFIG_ENV_FLAGS_LIST_DEFAULT
3171 - CONFIG_ENV_FLAGS_LIST_STATIC
3185 s - String (default)
3186 d - Decimal
3187 x - Hexadecimal
3188 b - Boolean ([1yYtT|0nNfF])
3189 i - IP address
3190 m - MAC address
3193 a - Any (default)
3194 r - Read-only
3195 o - Write-once
3196 c - Change-default
3198 - CONFIG_ENV_FLAGS_LIST_DEFAULT
3202 - CONFIG_ENV_FLAGS_LIST_STATIC
3213 - CONFIG_ENV_ACCESS_IGNORE_FORCE
3214 If defined, don't allow the -f switch to env set override variable
3217 - CONFIG_USE_STDINT
3220 building U-Boot to enable this.
3226 - CONFIG_BUILD_ENVCRC:
3229 may easily extract it and embed it in final U-Boot images.
3232 in U-Boot initialization (when we try to get the setting of for the
3234 U-Boot will hang.
3246 - CONFIG_NAND_ENV_DST
3252 Please note that the environment is read-only until the monitor
3259 with the compiled-in default environment - *silently*!!! [This is
3261 "baudrate" setting for the console - if we have a bad CRC, we don't
3268 - CONFIG_SYS_FAULT_ECHO_LINK_DOWN:
3274 - CONFIG_SYS_FAULT_MII_ADDR:
3277 - CONFIG_NS16550_MIN_FUNCTIONS:
3284 - CONFIG_DISPLAY_BOARDINFO
3285 Display information about the board that U-Boot is running on
3286 when U-Boot starts up. The board function checkboard() is called
3289 - CONFIG_DISPLAY_BOARDINFO_LATE
3294 - CONFIG_BOARD_SIZE_LIMIT:
3295 Maximum size of the U-Boot image. When defined, the
3300 ---------------------------------------------------
3302 - CONFIG_SYS_CACHELINE_SIZE:
3305 - CONFIG_SYS_CCSRBAR_DEFAULT:
3306 Default (power-on reset) physical address of CCSR on Freescale
3309 - CONFIG_SYS_CCSRBAR:
3310 Virtual address of CCSR. On a 32-bit build, this is typically
3313 - CONFIG_SYS_CCSRBAR_PHYS:
3318 is typically relocated on 36-bit builds. It is recommended
3324 - CONFIG_SYS_CCSRBAR_PHYS_HIGH:
3325 Bits 33-36 of CONFIG_SYS_CCSRBAR_PHYS. This value is typically
3326 either 0 (32-bit build) or 0xF (36-bit build). This macro is
3330 - CONFIG_SYS_CCSRBAR_PHYS_LOW:
3331 Lower 32-bits of CONFIG_SYS_CCSRBAR_PHYS. This macro is
3335 - CONFIG_SYS_CCSR_DO_NOT_RELOCATE:
3339 - Floppy Disk Support:
3362 source code. It is used to make hardware-dependent
3365 - CONFIG_IDE_AHB:
3369 IDE devices through IDE-AHB controller, some additional
3370 registers accessing to these kind of IDE-AHB controller
3373 - CONFIG_SYS_IMMR: Physical address of the Internal Memory.
3375 doing! (11-4) [MPC8xx systems only]
3377 - CONFIG_SYS_INIT_RAM_ADDR:
3387 U-Boot uses the following memory types:
3388 - MPC8xx: IMMR (internal memory of the CPU)
3390 - CONFIG_SYS_GBL_DATA_OFFSET:
3396 (sometimes written as (CONFIG_SYS_INIT_RAM_SIZE -
3404 CONFIG_SYS_INIT_RAM_ADDR is basically arbitrary - it must
3408 - CONFIG_SYS_SCCR: System Clock and reset Control Register (15-27)
3410 - CONFIG_SYS_OR_TIMING_SDRAM:
3413 - CONFIG_SYS_MAMR_PTA:
3416 - FLASH_BASE0_PRELIM, FLASH_BASE1_PRELIM, CONFIG_SYS_REMAP_OR_AM,
3422 - SDRAM_BASE2_PRELIM, SDRAM_BASE3_PRELIM, SDRAM_MAX_SIZE,
3427 - CONFIG_PCI_ENUM_ONLY
3431 a second time. Useful for platforms that are pre-booted
3434 - CONFIG_PCI_INDIRECT_BRIDGE:
3437 - CONFIG_SYS_SRIO:
3440 - CONFIG_SRIO1:
3443 - CONFIG_SRIO2:
3446 - CONFIG_SRIO_PCIE_BOOT_MASTER
3449 - CONFIG_SYS_SRIOn_MEM_VIRT:
3452 - CONFIG_SYS_SRIOn_MEM_PHYS:
3455 - CONFIG_SYS_SRIOn_MEM_SIZE:
3458 - CONFIG_SYS_NAND_BUSWIDTH_16BIT
3463 - drivers/mtd/nand/raw/ndfc.c
3464 - drivers/mtd/nand/raw/mxc_nand.c
3466 - CONFIG_SYS_NDFC_EBC0_CFG
3470 - CONFIG_SPD_EEPROM
3477 - CONFIG_SYS_SPD_BUS_NUM
3482 - CONFIG_SYS_DDR_RAW_TIMING
3485 parameters are extracted from datasheet and hard-coded into
3488 - CONFIG_FSL_DDR_INTERACTIVE
3489 Enable interactive DDR debugging. See doc/README.fsl-ddr.
3491 - CONFIG_FSL_DDR_SYNC_REFRESH
3494 - CONFIG_FSL_DDR_BIST
3495 Enable built-in memory test for Freescale DDR controllers.
3497 - CONFIG_SYS_83XX_DDR_USES_CS0
3501 - CONFIG_RMII
3502 Enable RMII mode for all FECs.
3504 have one FEC in standard MII mode and another in RMII mode.
3506 - CONFIG_CRC32_VERIFY
3510 => crc32 -v <address> <count> <crc32>
3516 - CONFIG_LOOPW
3520 - CONFIG_MX_CYCLIC
3534 - CONFIG_SKIP_LOWLEVEL_INIT
3537 controller) are omitted and/or U-Boot does not
3541 exception is when U-Boot is loaded (to RAM) by some
3545 - CONFIG_SKIP_LOWLEVEL_INIT_ONLY
3546 [ARM926EJ-S only] This allows just the call to lowlevel_init()
3550 - CONFIG_SPL_BUILD
3552 that is executed before the actual U-Boot. E.g. when
3555 - CONFIG_TPL_BUILD
3557 that is executed after the SPL and before the actual U-Boot.
3560 - CONFIG_SYS_MPC85XX_NO_RESETVEC
3565 - CONFIG_ARCH_MAP_SYSMEM
3566 Generally U-Boot (and in particular the md command) uses
3568 U-Boot address as virtual addresses that need to be translated
3574 - CONFIG_X86_RESET_VECTOR
3576 needed when U-Boot is running from Coreboot.
3578 - CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC:
3581 - CONFIG_SYS_NAND_NO_SUBPAGE_WRITE
3587 -----------------------------------
3591 This firmware often needs to be loaded during U-Boot booting, so macros
3595 - CONFIG_SYS_FMAN_FW_ADDR
3600 - CONFIG_SYS_QE_FW_ADDR
3605 - CONFIG_SYS_QE_FMAN_FW_LENGTH
3611 - CONFIG_SYS_QE_FMAN_FW_IN_NOR
3616 - CONFIG_SYS_QE_FMAN_FW_IN_NAND
3620 - CONFIG_SYS_QE_FMAN_FW_IN_MMC
3624 - CONFIG_SYS_QE_FMAN_FW_IN_REMOTE
3627 can be mapped from slave TLB->slave LAW->slave SRIO or PCIE outbound
3628 window->master inbound window->master LAW->the ucode address in
3632 ---------------------------------------------------------
3635 This firmware often needs to be loaded during U-Boot booting, so macros
3639 - CONFIG_FSL_MC_ENET
3643 -------------------------------------------
3645 "Debug Server firmware" and triggering SP boot-rom.
3646 This firmware often needs to be loaded during U-Boot booting.
3648 - CONFIG_SYS_MC_RSV_MEM_ALIGN
3652 -------------------
3654 In order to achieve reproducible builds, timestamps used in the U-Boot build
3659 option for U-Boot or an environment variable in U-Boot.
3666 Building U-Boot has been tested in several native build environments
3671 which is extensively used to build and test U-Boot.
3679 $ CROSS_COMPILE=ppc_4xx-
3687 $ make HOSTCC=i586-mingw32msvc-gcc HOSTSTRIP=i586-mingw32msvc-strip tools
3692 U-Boot is intended to be simple to build. After installing the
3693 sources you must configure U-Boot for one specific board type. This
3698 where "NAME_defconfig" is the name of one of the existing configu-
3708 - will configure for a plain TQM823L, i. e. no LCD support
3711 - will configure for a TQM823L with U-Boot console on LCD
3716 Finally, type "make all", and you should get some working U-Boot
3719 - "u-boot.bin" is a raw binary image
3720 - "u-boot" is an image in ELF binary format
3721 - "u-boot.srec" is in Motorola S-Record format
3725 this behavior and build U-Boot to some external directory:
3750 to port U-Boot to your hardware platform. To do this, follow these
3758 3. If you're porting U-Boot to a new CPU, then also create a new
3761 5. Type "make", and you should get a working "u-boot.srec" file
3767 Testing of U-Boot Modifications, Ports to New Hardware, etc.:
3770 If you have modified U-Boot sources (for instance added a new board
3774 official or latest in the git repository) version of U-Boot sources.
3776 But before you submit such a patch, please verify that your modifi-
3780 configure and build U-Boot for ALL supported system. Be warned, this
3781 will take a while. Please see the buildman README, or run 'buildman -H'
3785 See also "U-Boot Porting Guide" below.
3788 Monitor Commands - Overview:
3791 go - start application at address 'addr'
3792 run - run commands in an environment variable
3793 bootm - boot application image from memory
3794 bootp - boot image via network using BootP/TFTP protocol
3795 bootz - boot zImage from memory
3796 tftpboot- boot image via network using TFTP protocol
3799 tftpput - upload a file via network using TFTP protocol
3800 rarpboot- boot image via network using RARP/TFTP protocol
3801 diskboot- boot from IDE devicebootd - boot default, i.e., run 'bootcmd'
3802 loads - load S-Record file over serial line
3803 loadb - load binary file over serial line (kermit mode)
3804 md - memory display
3805 mm - memory modify (auto-incrementing)
3806 nm - memory modify (constant address)
3807 mw - memory write (fill)
3808 cp - memory copy
3809 cmp - memory compare
3810 crc32 - checksum calculation
3811 i2c - I2C sub-system
3812 sspi - SPI utility commands
3813 base - print or set address offset
3814 printenv- print environment variables
3815 setenv - set environment variables
3816 saveenv - save environment variables to persistent storage
3817 protect - enable or disable FLASH write protection
3818 erase - erase FLASH memory
3819 flinfo - print FLASH memory information
3820 nand - NAND memory operations (see doc/README.nand)
3821 bdinfo - print Board Info structure
3822 iminfo - print header information for application image
3823 coninfo - print console devices and informations
3824 ide - IDE sub-system
3825 loop - infinite loop on address range
3826 loopw - infinite write loop on address range
3827 mtest - simple RAM test
3828 icache - enable or disable instruction cache
3829 dcache - enable or disable data cache
3830 reset - Perform RESET of the CPU
3831 echo - echo args to console
3832 version - print monitor version
3833 help - print online help
3834 ? - alias for 'help'
3837 Monitor Commands - Detailed Description:
3848 U-Boot supports user configuration using Environment Variables which
3855 working with an in-memory copy. In case the Flash area containing the
3862 baudrate - see CONFIG_BAUDRATE
3864 bootdelay - see CONFIG_BOOTDELAY
3866 bootcmd - see CONFIG_BOOTCOMMAND
3868 bootargs - Boot arguments when booting an RTOS image
3870 bootfile - Name of the image to load with TFTP
3872 bootm_low - Memory range available for image processing in the bootm
3878 kernel -- see the description of CONFIG_SYS_BOOTMAPSZ and
3881 bootm_mapsize - Size of the initial memory mapping for the Linux kernel.
3889 bootm_size - Memory range available for image processing in the bootm
3895 updatefile - Location of the software update file on a TFTP server, used
3899 autoload - if set to "no" (any string beginning with 'n'),
3904 autostart - if set to "yes", an image loaded using the "bootp",
3915 fdt_high - if set this restricts the maximum address that the
3928 sufficient padding on the end of it for u-boot to
3932 fdtcontroladdr- if set this is the address of the control flattened
3933 device tree used by U-Boot when CONFIG_OF_CONTROL is
3936 i2cfast - (PPC405GP|PPC405EP only)
3938 mode (400kHZ). This environment variable is used in
3942 initrd_high - restrict positioning of initrd images:
3951 address to use (U-Boot will still check that it
3952 does not overwrite the U-Boot stack and data).
3959 12 MB as well - this can be done with
3964 indication to U-Boot that all addresses are legal
3966 memory. In this case U-Boot will NOT COPY the
3971 ipaddr - IP address; needed for tftpboot command
3973 loadaddr - Default load address for commands like "bootp",
3976 loads_echo - see CONFIG_LOADS_ECHO
3978 serverip - TFTP server IP address; needed for tftpboot command
3980 bootretry - see CONFIG_BOOT_RETRY_TIME
3982 bootdelaykey - see CONFIG_AUTOBOOT_DELAY_STR
3984 bootstopkey - see CONFIG_AUTOBOOT_STOP_STR
3986 ethprime - controls which interface is used first.
3988 ethact - controls which interface is currently active.
3996 ethrotate - When set to "no" U-Boot does not go through all
4000 netretry - When set to "no" each network operation will
4008 npe_ucode - set load address for the NPE microcode
4010 silent_linux - If set then Linux will be told to boot silently, by
4013 unset, then it will be made silent if the U-Boot console
4016 tftpsrcp - If this is set, the value is used for TFTP's
4019 tftpdstp - If this is set, the value is used for TFTP's UDP
4022 tftpblocksize - Block size to use for TFTP transfers; if not set,
4025 tftptimeout - Retransmission timeout for TFTP packets (in milli-
4033 tftptimeoutcountmax - maximum count of TFTP timeouts (no
4041 vlan - When set to a value < 4095 the traffic over
4045 bootpretryperiod - Period during which BOOTP/DHCP sends retries.
4059 *Note* - these variables don't have to be defined for all boards, some
4064 ----- --------- ----------- --------------
4065 u-boot u-boot u-boot_addr_r u-boot_addr
4074 bootfile - see above
4075 dnsip - IP address of your Domain Name Server
4076 dnsip2 - IP address of your secondary Domain Name Server
4077 gatewayip - IP address of the Gateway (Router) to use
4078 hostname - Target hostname
4079 ipaddr - see above
4080 netmask - Subnet Mask
4081 rootpath - Pathname of the root filesystem on the NFS server
4082 serverip - see above
4087 serial# - contains hardware identification information such
4089 ethaddr - Ethernet address
4092 the board). U-Boot refuses to delete or overwrite these variables
4098 ver - Contains the U-Boot version string as printed
4104 only effect after the next boot (yes, that's just like Windoze :-).
4108 ---------------------------------------------
4110 For some environment variables, the behavior of u-boot needs to change
4144 There are two different command line parsers available with U-Boot:
4148 --------------------------------
4150 - supports environment variables (through setenv / saveenv commands)
4151 - several commands on one line, separated by ';'
4152 - variable substitution using "... ${name} ..." syntax
4153 - special characters ('$', ';') can be escaped by prefixing with '\',
4156 - You can also escape text by enclosing in single apostrophes, for example:
4160 -----------
4162 - similar to Bourne shell, with control structures like
4165 - supports environment ("global") variables (through setenv / saveenv
4171 --------------
4186 Some boards come with redundant Ethernet interfaces; U-Boot supports
4195 in SROM), this is used as default address if there is NO correspon-
4199 o If the SROM has a valid MAC address, and there is no address in the
4200 environment, the SROM's address is used.
4202 o If there is no valid address in the SROM, and a definition in the
4206 o If both the SROM and the environment contain a MAC address, and
4209 o If both the SROM and the environment contain a MAC address, and the
4213 o If neither SROM nor the environment contain a MAC address, an error
4215 a random, locally-assigned MAC is used.
4226 U-Boot is capable of booting (and performing other auxiliary operations on)
4230 -----------------------
4232 Flexible and powerful format based on Flattened Image Tree -- FIT (similar
4239 -----------------
4267 Although U-Boot should support any OS or standalone application
4269 U-Boot.
4271 U-Boot includes many features that so far have been part of some
4277 - the same features can be used for other OS or standalone
4281 - it becomes much easier to port new Linux kernel versions because
4282 lots of low-level, hardware dependent stuff are done by U-Boot
4284 - the same Linux kernel image can now be used with different "initrd"
4288 change a file in your "initrd"). Also, a field-upgrade of the
4295 Porting Linux to U-Boot based systems:
4296 ---------------------------------------
4298 U-Boot cannot save you from doing all the necessary modifications to
4301 Linux :-).
4306 include/asm-ppc/tqm8xx.h) includes the same definition of the Board
4307 Information structure as we define in include/asm-<arch>/u-boot.h,
4309 as your U-Boot configuration in CONFIG_SYS_IMMR.
4311 Note that U-Boot now has a driver model, a unified model for drivers.
4314 doc/driver-model.
4318 -----------------------------
4320 No specific requirements for U-Boot. Make sure you have some root
4325 -----------------------
4327 With U-Boot, "normal" build targets like "zImage" or "bzImage" are
4330 U-Boot. Most older kernels also have support for a "pImage" target,
4343 CRC32 checksum etc. for use with U-Boot. This is what we are doing:
4349 ${CROSS_COMPILE}-objcopy -O binary \
4350 -R .note -R .comment \
4351 -S vmlinux linux.bin
4355 gzip -9 linux.bin
4357 * package compressed binary image for U-Boot:
4359 mkimage -A ppc -O linux -T kernel -C gzip \
4360 -a 0 -e 0 -n "Linux Kernel Image" \
4361 -d linux.bin.gz uImage
4365 with U-Boot, either separated from the Linux kernel image, or
4374 In the first form (with "-l" option) mkimage lists the information
4375 contained in the header of an existing U-Boot image; this includes
4378 tools/mkimage -l image
4379 -l ==> list image header information
4381 The second form (with "-d" option) is used to build a U-Boot image
4384 tools/mkimage -A arch -O os -T type -C comp -a addr -e ep \
4385 -n name -d data_file image
4386 -A ==> set architecture to 'arch'
4387 -O ==> set operating system to 'os'
4388 -T ==> set image type to 'type'
4389 -C ==> set compression type 'comp'
4390 -a ==> set load address to 'addr' (hex)
4391 -e ==> set entry point to 'ep' (hex)
4392 -n ==> set image name to 'name'
4393 -d ==> use image data from 'datafile'
4399 - 2.2.x kernels have the entry point at 0x0000000C,
4400 - 2.3.x and later kernels have the entry point at 0x00000000.
4402 So a typical call to build a U-Boot image would read:
4404 -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
4405 > -A ppc -O linux -T kernel -C gzip -a 0 -e 0 \
4406 > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz \
4417 -> tools/mkimage -l examples/uImage.TQM850L
4430 -> gunzip /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux.gz
4431 -> tools/mkimage -n '2.4.4 kernel for TQM850L' \
4432 > -A ppc -O linux -T kernel -C none -a 0 -e 0 \
4433 > -d /opt/elsk/ppc_8xx/usr/src/linux-2.4.4/arch/powerpc/coffboot/vmlinux \
4434 > examples/uImage.TQM850L-uncompressed
4443 Similar you can build U-Boot images from a 'ramdisk.image.gz' file
4446 -> tools/mkimage -n 'Simple Ramdisk Image' \
4447 > -A ppc -O linux -T ramdisk -C gzip \
4448 > -d /LinuxPPC/images/SIMPLE-ramdisk.image.gz examples/simple-initrd
4456 The "dumpimage" is a tool to disassemble images built by mkimage. Its "-i"
4457 option performs the converse operation of the mkimage's second form (the "-d"
4461 tools/dumpimage -i image -T type -p position data_file
4462 -i ==> extract from the 'image' a specific 'data_file'
4463 -T ==> set image type to 'type'
4464 -p ==> 'position' (starting at 0) of the 'data_file' inside the 'image'
4468 -------------------------
4470 To downloading a U-Boot image over the serial (console) interface,
4471 you must convert the image to S-Record format:
4473 objcopy -I binary -O srec examples/image examples/image.srec
4475 The 'objcopy' does not understand the information in the U-Boot
4476 image header, so the resulting S-Record file will be relative to
4490 ## Ready for S-Record download ...
4516 -----------
4599 -----------
4601 First, U-Boot must be compiled with the appropriate defines. See the section
4632 => bootm $loadaddr - $oftaddr
4634 Image Name: Linux-2.6.17-dirty
4647 More About U-Boot Image Types:
4648 ------------------------------
4650 U-Boot supports the following image types:
4653 provided by U-Boot; it is expected that (if they behave
4654 well) you can continue to work in U-Boot after return from
4659 drivers, set up the MMU, etc. - this means, that you cannot
4660 expect to re-enter U-Boot except by resetting the CPU.
4664 "Multi-File Images" contain several images, typically an OS
4671 "Multi-File Images" start with a list of image sizes, each
4679 U-Boot or FPGA images) which usually will be programmed to
4683 U-Boot's command interpreter; this feature is especially
4684 useful when you configure U-Boot to use a real shell (hush)
4688 -------------------------
4703 One of the features of U-Boot is that you can dynamically load and
4705 U-Boot like console I/O functions or interrupt services.
4710 -------------------
4713 application; it is automatically compiled when you build U-Boot.
4718 ## Ready for S-Record download ...
4742 handler with the U-Boot code, can be found in 'examples/timer.c'.
4748 ? - print current values og the CPM Timer registers
4749 b - enable interrupts and start timer
4750 e - stop timer and disable interrupts
4751 q - quit application
4754 ## Ready for S-Record download ...
4794 Unix, I recommend to use C-Kermit for general purpose use (and
4796 use "cu" for S-Record download ("loads" command). See
4804 Name Program Name U/D FullScr IO-Red. Multi
4805 X kermit /usr/bin/kermit -i -l %l -s Y U Y N N
4806 Y kermit /usr/bin/kermit -i -l %l -r N D Y N N
4812 Starting at version 0.9.2, U-Boot supports NetBSD both as host
4813 (build U-Boot) and target system (boots NetBSD/mpc8xx).
4816 NetBSD/i386 with the cross-powerpc-netbsd-1.3 package (you will also
4818 Note that the cross-powerpc package does not install include files;
4819 attempting to build U-Boot will fail because <machine/ansi.h> is
4822 # cd /usr/pkg/cross/powerpc-netbsd/include
4824 # ln -s powerpc machine
4829 and U-Boot include files.
4832 stage-2 loader which in turn loads and then invokes the kernel
4834 tree (probably in sys/arc/mpc8xx/stand/u-boot_stage2/); in the
4835 meantime, see ftp://ftp.denx.de/pub/u-boot/ppcboot_stage2.tar.gz
4843 inner workings of U-Boot and make it easier to port it to custom
4848 ---------------------------
4850 The implementation of U-Boot is complicated by the fact that U-Boot
4857 models provide on-chip memory (like the IMMR area on MPC8xx and
4859 locked as (mis-) used as memory, etc.
4862 U-Boot mailing list:
4864 Subject: RE: [U-Boot-Users] RE: More On Memory Bank x (nothingness)?
4866 Date: Mon, 10 Feb 2003 16:43:46 -0500 (22:43 MET)
4876 operation in the architecture and processor-specific manuals.
4888 you will find in any recent u-boot distribution in
4896 -Chris Hallinan
4902 * Initialized global data (data segment) is read-only. Do not attempt
4906 as zero data - BSS segment) at all - this is undefined, initiali-
4914 turned out that the implementation of U-Boot can be greatly
4929 R3-R4: parameter passing and return values
4930 R5-R10: parameter passing
4935 (U-Boot also uses R12 as internal GOT pointer. r12
4939 ==> U-Boot will use R2 to hold a pointer to the global data
4944 smaller code - although the code savings are not that big (on
4945 average for all boards 752 bytes for the whole U-Boot image,
4951 R1-R3: function argument word
4960 ==> U-Boot will use R9 to hold a pointer to the global data
4967 ==> U-Boot will use gp to hold a pointer to the global data
4969 Note: on Nios II, we give "-G0" option to gcc and don't use gp
4974 R0-R1: argument/return
4975 R2-R5: argument
4984 ==> U-Boot will use R10 to hold a pointer to the global data
4986 NOTE: DECLARE_GLOBAL_DATA_PTR must be used with file-global scope,
4990 ------------------
4992 U-Boot runs in system state and uses physical addresses, i.e. the
5000 U-Boot is installed in the first 128 kB of the first Flash bank (on
5003 to the upper end of DRAM. Immediately below the U-Boot code some
5030 ... eventually: pRAM (Protected RAM - unchanged by reset)
5035 ----------------------
5037 In the reset configuration, U-Boot starts at the reset entry point
5040 To be able to re-map memory U-Boot then jumps to its link address.
5044 cache. After that, U-Boot initializes the CPU core, the caches and
5072 U-Boot Porting Guide:
5073 ----------------------
5075 [Based on messages by Jerry Van Baren in the U-Boot-Users mailing
5084 alarm(PROJECT_DEADLINE - toSec (3 * WEEK));
5087 Pay consultant to port U-Boot;
5091 Download latest U-Boot source;
5093 Subscribe to u-boot mailing list;
5096 email("Hi, I am new to U-Boot, how do I get started?");
5103 /* find . -name "*.[chS]" | xargs grep -i <keyword> */
5112 cp -a board/<similar> board/<myboard>
5130 Send patch file to the U-Boot email list;
5147 -----------------
5149 All contributions to U-Boot should conform to the Linux kernel
5151 https://www.kernel.org/doc/html/latest/process/coding-style.html, and the
5159 Please note that U-Boot is implemented in C (and to some small parts in
5164 - remove any trailing white space
5165 - use TAB characters for indentation and vertical alignment, not spaces
5166 - make sure NOT to use DOS '\r\n' line feeds
5167 - do not add more than 2 consecutive empty lines to source files
5168 - do not add trailing empty lines to source files
5175 -------------------
5177 Since the number of patches for U-Boot is growing, we need to
5181 Please see http://www.denx.de/wiki/U-Boot/Patches for details.
5183 Patches shall be sent to the u-boot mailing list <u-boot@lists.denx.de>;
5184 see https://lists.denx.de/listinfo/u-boot
5202 maintainer e-mail address to the boards.cfg file, too.
5209 "git format-patch". If you then use "git send-email" to send it to
5210 the U-Boot mailing list, you will avoid most of the common problems
5213 If you cannot use git, use "diff -purN OLD NEW". If your version of
5218 directory of the U-Boot source tree (i. e. please make sure that
5240 returned with a request to re-formatting / split it.
5243 add to the memory footprint of the code ;-) Small is beautiful!
5250 u-boot mailing list. Bigger patches will be moderated. If they are