diff options
Diffstat (limited to 'qemu/roms/u-boot/doc/README.mxsimage')
-rw-r--r-- | qemu/roms/u-boot/doc/README.mxsimage | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/qemu/roms/u-boot/doc/README.mxsimage b/qemu/roms/u-boot/doc/README.mxsimage deleted file mode 100644 index 0d31cba1f..000000000 --- a/qemu/roms/u-boot/doc/README.mxsimage +++ /dev/null @@ -1,165 +0,0 @@ -Freescale i.MX233/i.MX28 SB image generator via mkimage -======================================================= - -This tool allows user to produce SB BootStream encrypted with a zero key. -Such a BootStream is then bootable on i.MX23/i.MX28. - -Usage -- producing image: -========================= -The mxsimage tool is targeted to be a simple replacement for the elftosb2 . -To generate an image, write an image configuration file and run: - - mkimage -A arm -O u-boot -T mxsimage -n <path to configuration file> \ - <output bootstream file> - -The output bootstream file is usually using the .sb file extension. Note -that the example configuration files for producing bootable BootStream with -the U-Boot bootloader can be found under arch/arm/boot/cpu/arm926ejs/mxs/ -directory. See the following files: - - mxsimage.mx23.cfg -- This is an example configuration for i.MX23 - mxsimage.mx28.cfg -- This is an example configuration for i.MX28 - -Each configuration file uses very simple instruction semantics and a few -additional rules have to be followed so that a useful image can be produced. -These semantics and rules will be outlined now. - -- Each line of the configuration file contains exactly one instruction. -- Every numeric value must be encoded in hexadecimal and in format 0xabcdef12 . -- The configuration file is a concatenation of blocks called "sections" and - optionally "DCD blocks" (see below). - - Each "section" is started by the "SECTION" instruction. - - The "SECTION" instruction has the following semantics: - - SECTION u32_section_number [BOOTABLE] - - u32_section_number :: User-selected ID of the section - - BOOTABLE :: Sets the section as bootable - - - A bootable section is one from which the BootROM starts executing - subsequent instructions or code. Exactly one section must be selected - as bootable, usually the one containing the instructions and data to - load the bootloader. - - - A "SECTION" must be immediatelly followed by a "TAG" instruction. - - The "TAG" instruction has the following semantics: - - TAG [LAST] - - LAST :: Flag denoting the last section in the file - - - After a "TAG" unstruction, any of the following instructions may follow - in any order and any quantity: - - NOOP - - This instruction does nothing - - LOAD u32_address string_filename - - Instructs the BootROM to load file pointed by "string_filename" onto - address "u32_address". - - LOAD IVT u32_address u32_IVT_entry_point - - Crafts and loads IVT onto address "u32_address" with the entry point - of u32_IVT_entry_point. - - i.MX28-specific instruction! - - LOAD DCD u32_address u32_DCD_block_ID - - Loads the DCD block with ID "u32_DCD_block_ID" onto address - "u32_address" and executes the contents of this DCD block - - i.MX28-specific instruction! - - FILL u32_address u32_pattern u32_length - - Starts to write memory from addres "u32_address" with a pattern - specified by "u32_pattern". Writes exactly "u32_length" bytes of the - pattern. - - JUMP [HAB] u32_address [u32_r0_arg] - - Jumps onto memory address specified by "u32_address" by setting this - address in PT. The BootROM will pass the "u32_r0_arg" value in ARM - register "r0" to the executed code if this option is specified. - Otherwise, ARM register "r0" will default to value 0x00000000. The - optional "HAB" flag is i.MX28-specific flag turning on the HAB boot. - - CALL [HAB] u32_address [u32_r0_arg] - - See JUMP instruction above, as the operation is exactly the same with - one difference. The CALL instruction does allow returning into the - BootROM from the executed code. U-Boot makes use of this in it's SPL - code. - - MODE string_mode - - Restart the CPU and start booting from device specified by the - "string_mode" argument. The "string_mode" differs for each CPU - and can be: - i.MX23, string_mode = USB/I2C/SPI1_FLASH/SPI2_FLASH/NAND_BCH - JTAG/SPI3_EEPROM/SD_SSP0/SD_SSP1 - i.MX28, string_mode = USB/I2C/SPI2_FLASH/SPI3_FLASH/NAND_BCH - JTAG/SPI2_EEPROM/SD_SSP0/SD_SSP1 - - - An optional "DCD" blocks can be added at the begining of the configuration - file. Note that the DCD is only supported on i.MX28. - - The DCD blocks must be inserted before the first "section" in the - configuration file. - - The DCD block has the following semantics: - - DCD u32_DCD_block_ID - - u32_DCD_block_ID :: The ID number of the DCD block, must match - the ID number used by "LOAD DCD" instruction. - - - The DCD block must be followed by one of the following instructions. All - of the instructions operate either on 1, 2 or 4 bytes. This is selected by - the 'n' suffix of the instruction: - - WRITE.n u32_address u32_value - - Write the "u32_value" to the "u32_address" address. - - ORR.n u32_address u32_value - - Read the "u32_address", perform a bitwise-OR with the "u32_value" and - write the result back to "u32_address". - - ANDC.n u32_address u32_value - - Read the "u32_address", perform a bitwise-AND with the complement of - "u32_value" and write the result back to "u32_address". - - EQZ.n u32_address u32_count - - Read the "u32_address" at most "u32_count" times and test if the value - read is zero. If it is, break the loop earlier. - - NEZ.n u32_address u32_count - - Read the "u32_address" at most "u32_count" times and test if the value - read is non-zero. If it is, break the loop earlier. - - EQ.n u32_address u32_mask - - Read the "u32_address" in a loop and test if the result masked with - "u32_mask" equals the "u32_mask". If the values are equal, break the - reading loop. - - NEQ.n u32_address u32_mask - - Read the "u32_address" in a loop and test if the result masked with - "u32_mask" does not equal the "u32_mask". If the values are not equal, - break the reading loop. - - NOOP - - This instruction does nothing. - -- If the verbose output from the BootROM is enabled, the BootROM will produce a - letter on the Debug UART for each instruction it started processing. Here is a - mapping between the above instructions and the BootROM verbose output: - - H -- SB Image header loaded - T -- TAG instruction - N -- NOOP instruction - L -- LOAD instruction - F -- FILL instruction - J -- JUMP instruction - C -- CALL instruction - M -- MODE instruction - -Usage -- verifying image: -========================= - -The mxsimage can also verify and dump contents of an image. Use the following -syntax to verify and dump contents of an image: - - mkimage -l <input bootstream file> - -This will output all the information from the SB image header and all the -instructions contained in the SB image. It will also check if the various -checksums in the SB image are correct. |