]> git.sur5r.net Git - u-boot/blobdiff - doc/README.mxs
arm: lib: Import Thumb1 functions
[u-boot] / doc / README.mxs
index 5d9e72f958d5ca8c7848d04f5c55e1f2b1f0feac..4edf19faab8d70170126aa3db5cb01d82eb2f139 100644 (file)
@@ -1,4 +1,4 @@
-Booting U-boot on a MXS processor
+Booting U-Boot on a MXS processor
 =================================
 
 This document describes the MXS U-Boot port. This document mostly covers topics
 =================================
 
 This document describes the MXS U-Boot port. This document mostly covers topics
@@ -23,13 +23,30 @@ Contents
 2) Compiling U-Boot for a MXS based board
 3) Installation of U-Boot for a MXS based board to SD card
 4) Installation of U-Boot into NAND flash on a MX28 based board
 2) Compiling U-Boot for a MXS based board
 3) Installation of U-Boot for a MXS based board to SD card
 4) Installation of U-Boot into NAND flash on a MX28 based board
+5) Installation of U-Boot into SPI NOR flash on a MX28 based board
 
 1) Prerequisites
 ----------------
 
 
 1) Prerequisites
 ----------------
 
-To make a MXS based board bootable, some tools are necessary. The first one is
-the "elftosb" tool distributed by Freescale Semiconductor. The other one is the
-"mxsboot" tool found in U-Boot source tree.
+To make a MXS based board bootable, some tools are necessary. The only
+mandatory tool is the "mxsboot" tool found in U-Boot source tree. The
+tool is built automatically when compiling U-Boot for i.MX23 or i.MX28.
+
+The production of BootStream image is handled via "mkimage", which is
+also part of the U-Boot source tree. The "mkimage" requires OpenSSL
+development libraries to be installed. In case of Debian and derivates,
+this is installed by running:
+
+       $ sudo apt-get install libssl-dev
+
+NOTE: The "elftosb" tool distributed by Freescale Semiconductor is no
+      longer necessary for general use of U-Boot on i.MX23 and i.MX28.
+      The mkimage supports generation of BootStream images encrypted
+      with a zero key, which is the vast majority of use-cases. In
+      case you do need to produce image encrypted with non-zero key
+      or other special features, please use the "elftosb" tool,
+      otherwise continue to section 2). The installation procedure of
+      the "elftosb" is outlined below:
 
 Firstly, obtain the elftosb archive from the following location:
 
 
 Firstly, obtain the elftosb archive from the following location:
 
@@ -78,19 +95,19 @@ Next, configure U-Boot for a MXS based board
 
 Examples:
 
 
 Examples:
 
-1. For building U-boot for Denx M28EVK board:
+1. For building U-Boot for Denx M28EVK board:
 
        $ make m28evk_config
 
 
        $ make m28evk_config
 
-2. For building U-boot for Freescale MX28EVK board:
+2. For building U-Boot for Freescale MX28EVK board:
 
        $ make mx28evk_config
 
 
        $ make mx28evk_config
 
-3. For building U-boot for Freescale MX23EVK board:
+3. For building U-Boot for Freescale MX23EVK board:
 
        $ make mx23evk_config
 
 
        $ make mx23evk_config
 
-4. For building U-boot for Olimex MX23 Olinuxino board:
+4. For building U-Boot for Olimex MX23 Olinuxino board:
 
        $ make mx23_olinuxino_config
 
 
        $ make mx23_olinuxino_config
 
@@ -107,6 +124,18 @@ The code produces "u-boot.sb" file. This file needs to be augmented with a
 proper header to allow successful boot from SD or NAND. Adding the header is
 discussed in the following chapters.
 
 proper header to allow successful boot from SD or NAND. Adding the header is
 discussed in the following chapters.
 
+NOTE: The process that produces u-boot.sb uses the mkimage to generate the
+      BootStream. The BootStream is encrypted with zero key. In case you need
+      some special features of the BootStream and plan on using the "elftosb"
+      tool instead, the invocation to produce a compatible BootStream with the
+      one produced by mkimage is outlined below. For further details, refer to
+      the documentation bundled with the "elftosb" package.
+
+       $ elftosb -zf imx23 -c arch/arm/cpu/arm926ejs/mxs/u-boot-imx23.bd \
+               -o u-boot.sb
+       $ elftosb -zf imx28 -c arch/arm/cpu/arm926ejs/mxs/u-boot-imx28.bd \
+               -o u-boot.sb
+
 3) Installation of U-Boot for a MXS based board to SD card
 ----------------------------------------------------------
 
 3) Installation of U-Boot for a MXS based board to SD card
 ----------------------------------------------------------
 
@@ -190,7 +219,7 @@ There are two possibilities when preparing an image writable to NAND flash.
 
           This script expects a working TFTP server containing the file
           "u-boot.nand" in it's root directory. This can be changed by
 
           This script expects a working TFTP server containing the file
           "u-boot.nand" in it's root directory. This can be changed by
-          adjusting the "update_nand_full_filename" varible.
+          adjusting the "update_nand_full_filename" variable.
 
           To update the system, run the following in U-Boot prompt:
 
 
           To update the system, run the following in U-Boot prompt:
 
@@ -213,7 +242,7 @@ There are two possibilities when preparing an image writable to NAND flash.
 
           This script expects a working TFTP server containing the file
           "u-boot.sb" in it's root directory. This can be changed by
 
           This script expects a working TFTP server containing the file
           "u-boot.sb" in it's root directory. This can be changed by
-          adjusting the "update_nand_firmware_filename" varible.
+          adjusting the "update_nand_firmware_filename" variable.
 
           To update the system, run the following in U-Boot prompt:
 
 
           To update the system, run the following in U-Boot prompt:
 
@@ -234,3 +263,28 @@ There are two possibilities when preparing an image writable to NAND flash.
           In case the user needs to boot a firmware image bigger than 1Mb, the
           user has to adjust the "update_nand_firmware_maxsz" variable for the
           update scripts to work properly.
           In case the user needs to boot a firmware image bigger than 1Mb, the
           user has to adjust the "update_nand_firmware_maxsz" variable for the
           update scripts to work properly.
+
+5) Installation of U-Boot into SPI NOR flash on a MX28 based board
+------------------------------------------------------------------
+
+The u-boot.sb file can be directly written to SPI NOR from U-Boot prompt.
+
+Load u-boot.sb into RAM, this can be done in several ways and one way is to use
+tftp:
+       => tftp u-boot.sb 0x42000000
+
+Probe the SPI NOR flash:
+       => sf probe
+
+(SPI NOR should be succesfully detected in this step)
+
+Erase the blocks where U-Boot binary will be written to:
+       => sf erase 0x0 0x80000
+
+Write u-boot.sb to SPI NOR:
+       => sf write 0x42000000 0 0x80000
+
+Power off the board and set the boot mode DIP switches to boot from the SPI NOR
+according to MX28 manual section 12.2.1 (Table 12-2)
+
+Last step is to power up the board and U-Boot should start from SPI NOR.