blob: aa2b634f34eb60cc9f8958a2670f8674c1f4517a [file] [log] [blame]
U-Boot for QSD8x50 SURF
=========================
This document describes how to install u-boot on QSD8x50 SURF
(both 256mb and 512mb).
-------------------------
Compiling U-Boot
-------------------------
This version requires ld >= v2.18 (from binutils) and is known to work
with gcc 4.2.3
$ make QSD8x50_surf_config
$ make
This should yield u-boot.bin file. This is to be wrapped with an appropriate
header so that it can replace the apps bootloader (appsboot.mbn).
-------------------------
U-Boot Configuration
-------------------------
U-Boot can be customised by modifying the preprocessor definitions in
include/configs/QSD8x50_surf.h
CONFIG_SILENT_CONSOLE
All console output is supressed when defined.
CONFIG_BOOTDELAY
A value of "n" will set the autoboot countdown to n seconds on startup
CONFIG_BOOTARGS "<string>"
This sets the kernel commandline to <string>
This can also be set at runtime by
QSD8x50_surf>setenv bootargs <string>
CONFIG_BOOTCOMMAND "<string>"
This the command executed automatically after the autoboot delay runs out.
This will be bypassed if the autoboot is interrupted by the user.
SDC_INSTANCE
Setting this to n will use slot n of the SD card. Valid values are 1-4.
CONFIG_LCDC_CONSOLE
Defining this causes the stdin to be usbkbd and stdout, stderr to be lcdc.
If undefined the console uses serial for stdin, stdout and stderr.
The serial port is setup to be 115200bps, 8 data bits, no parity, 1 stop bit
and no flow control.
-------------------------
Memory Configuration
-------------------------
The following will set the DRAM configuration of U-Boot
CONFIG_NEW_MEM_MAP
If defined the new memory map addresses are used.
The base is 0x24000000 and there two banks initialised.
Note:
U-boot currently supports only 2 DRAM banks.
Using more than 2 banks require change to dram_init() function.
The memory addresses and sizes can be set by changing the following parameters
PHYS_SDRAM_1
PHYS_SDRAM_1_SIZE
and the following, if applicable (for example not present when using old memory map)
PHYS_SDRAM_2
PHYS_SDRAM_2_SIZE
Each bank is passed individually to the kernel as a separate ATAG_MEM.
Hint: "ramconfig" command can be used to override the defaults set above.
-------------------------
New Commands
-------------------------
gettime
Dumps the time elapsed since timer start. Useful for measuring performance.
ramconfig
Sets the DRAM bank sizes and base address
Dumps the current configuration if no parameters are passed
-------------------------
Booting from NAND
-------------------------
A kernel image with mkimage header or multi-file image should be flashed to the
APPS partition of the NAND (apps.mbn).
To boot from NAND, use the following command:
nboot <load_addr> 0 0
The offset of 0 is relative to the start of the APPS partition.
-------------------------
Bitmap support.
-------------------------
QSD8x50 LCDC driver currently support displaying 24 bpp 800x480 size bitmaps.
For eg: If the bitmap is on the sd card in slot 1 (depends on SDC_INSTANCE)
it can be displayed as follows
QSD8x50_surf> mmcinit
QSD8x50_surf> ext2load mmc 0 <load_addr> <filename>
QSD8x50_surf> bmp display <load_addr>
This sequence when performed through CONFIG_BOOTCOMMAND
can serve as a splash screen.
-------------------------
Features
-------------------------
- Load images from SD card
- Load images from TFTP
- Load images from NAND
- Load images from USB storage
- Console on LCDC
- USB keyboard support
- Warm Boot support
-------------------------
Files modified
-------------------------
./MAKEALL
./Makefile
./common/cmd_ext2.c
./common/console.c
./common/cmd_nand.c
./common/Makefile
./common/lcd.c
./include/lcd.h
./include/asm-arm/u-boot-arm.h
./drivers/mtd/nand/nand_base.c
./drivers/mtd/nand/nand_util.c
./drivers/usb_ehci_core.c
./drivers\usb\Makefile
./fs/ext2/ext2fs.c
./fs/fat/fat.c
./lib_arm/board.c
./lib_arm/bootm.c
-------------------------
Files added
-------------------------
./board/QSD8x50_surf/Makefile
./board/QSD8x50_surf/QSD8x50_surf.c
./board/QSD8x50_surf/config.mk
./board/QSD8x50_surf/lcdc.c
./board/QSD8x50_surf/memory_map.c
./board/QSD8x50_surf/memtypes.h
./board/QSD8x50_surf/platform.S
./board/QSD8x50_surf/u-boot.lds
./cpu/armv7Scorpion/interrupts.c
./cpu/armv7Scorpion/Makefile
./cpu/armv7Scorpion/cache.S
./cpu/armv7Scorpion/config.mk
./cpu/armv7Scorpion/stack_heap.c
./cpu/armv7Scorpion/start.S
./cpu/armv7Scorpion/QSD8x50/Makefile
./cpu/armv7Scorpion/QSD8x50/adm.c
./cpu/armv7Scorpion/QSD8x50/cache_mmu.c
./cpu/armv7Scorpion/QSD8x50/ehci.c
./cpu/armv7Scorpion/QSD8x50/mmc.c
./cpu/armv7Scorpion/QSD8x50/nand_qc.c
./cpu/armv7Scorpion/QSD8x50/serial_qc.c
./cpu/armv7Scorpion/QSD8x50/timer.c
./include/arch-QSD8x50/QSD8x50_reg.h
./include/arch-QSD8x50/adm.h
./include/arch-QSD8x50/mmc.h
./include/arch-QSD8x50/smem.h
./include/asm-armv7Scorpion/arm_mrcmcr.h
./include/asm-armv7Scorpion/armv7Scorpion.h
./include/asm-armv7Scorpion/mmu.h
./include/configs/QSD8x50_surf.h
./common/cmd_gettime.c
./common/cmd_ramconfig.c
./drivers/usb/usb_ehci_qc.c