mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-25 01:58:13 +01:00 
			
		
		
		
	Replace instances of http://www.ti.com with https://www.ti.com Signed-off-by: Nishanth Menon <nm@ti.com>
		
			
				
	
	
		
			200 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			200 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| Summary
 | |
| =======
 | |
| 
 | |
| This README is about U-Boot support for TI's ARM Cortex-A8 based OMAP3 [1]
 | |
| family of SoCs. TI's OMAP3 SoC family contains an ARM Cortex-A8. Additionally,
 | |
| some family members contain a TMS320C64x+ DSP and/or an Imagination SGX 2D/3D
 | |
| graphics processor and various other standard peripherals.
 | |
| 
 | |
| Currently the following boards are supported:
 | |
| 
 | |
| * OMAP3530 BeagleBoard [2]
 | |
| 
 | |
| * Gumstix Overo [3]
 | |
| 
 | |
| * TI EVM [4]
 | |
| 
 | |
| * OpenPandora Ltd. Pandora [5]
 | |
| 
 | |
| * TI/Logic PD Zoom MDK [6]
 | |
| 
 | |
| * TI/Logic PD Zoom 2 [7]
 | |
| 
 | |
| * CompuLab Ltd. CM-T35 [8]
 | |
| 
 | |
| Build
 | |
| =====
 | |
| 
 | |
| * BeagleBoard:
 | |
| 
 | |
| make omap3_beagle_config
 | |
| make
 | |
| 
 | |
| * Gumstix Overo:
 | |
| 
 | |
| make omap3_overo_config
 | |
| make
 | |
| 
 | |
| * TI EVM:
 | |
| 
 | |
| make omap3_evm_config
 | |
| make
 | |
| 
 | |
| * Zoom 2:
 | |
| 
 | |
| make omap3_zoom2_config
 | |
| make
 | |
| 
 | |
| * CM-T35:
 | |
| 
 | |
| make cm_t35_config
 | |
| make
 | |
| 
 | |
| 
 | |
| Custom commands
 | |
| ===============
 | |
| 
 | |
| To make U-Boot for OMAP3 support NAND device SW or HW ECC calculation, U-Boot
 | |
| for OMAP3 supports custom user command
 | |
| 
 | |
| nandecc hw/sw
 | |
| 
 | |
| To be compatible with NAND drivers using SW ECC (e.g. kernel code)
 | |
| 
 | |
| nandecc sw
 | |
| 
 | |
| enables SW ECC calculation. HW ECC enabled with
 | |
| 
 | |
| nandecc hw
 | |
| 
 | |
| is typically used to write 2nd stage bootloader (known as 'x-loader') which is
 | |
| executed by OMAP3's boot rom and therefore has to be written with HW ECC.
 | |
| 
 | |
| For all other commands see
 | |
| 
 | |
| help
 | |
| 
 | |
| Interfaces
 | |
| ==========
 | |
| 
 | |
| gpio
 | |
| ----
 | |
| 
 | |
| To set a bit :
 | |
| 
 | |
| 	if (!gpio_request(N, "")) {
 | |
| 		gpio_direction_output(N, 0);
 | |
| 		gpio_set_value(N, 1);
 | |
| 	}
 | |
| 
 | |
| To clear a bit :
 | |
| 
 | |
| 	if (!gpio_request(N, "")) {
 | |
| 		gpio_direction_output(N, 0);
 | |
| 		gpio_set_value(N, 0);
 | |
| 	}
 | |
| 
 | |
| To read a bit :
 | |
| 
 | |
| 	if (!gpio_request(N, "")) {
 | |
| 		gpio_direction_input(N);
 | |
| 		val = gpio_get_value(N);
 | |
| 		gpio_free(N);
 | |
| 	}
 | |
| 	if (val)
 | |
| 		printf("GPIO N is set\n");
 | |
| 	else
 | |
| 		printf("GPIO N is clear\n");
 | |
| 
 | |
| dma
 | |
| ---
 | |
| void omap3_dma_init(void)
 | |
| 	Init the DMA module
 | |
| int omap3_dma_get_conf_chan(uint32_t chan, struct dma4_chan *config);
 | |
| 	Read config of the channel
 | |
| int omap3_dma_conf_chan(uint32_t chan, struct dma4_chan *config);
 | |
| 	Write config to the channel
 | |
| int omap3_dma_conf_transfer(uint32_t chan, uint32_t *src, uint32_t *dst,
 | |
| 		uint32_t sze)
 | |
| 	Config source, destination and size of a transfer
 | |
| int omap3_dma_wait_for_transfer(uint32_t chan)
 | |
| 	Wait for a transfer to end - this hast to be called before a channel
 | |
| 	or the data the channel transferd are used.
 | |
| int omap3_dma_get_revision(uint32_t *minor, uint32_t *major)
 | |
| 	Read silicon Revision of the DMA module
 | |
| 
 | |
| NAND
 | |
| ====
 | |
| 
 | |
| There are some OMAP3 devices out there with NAND attached. Due to the fact that
 | |
| OMAP3 ROM code can only handle 1-bit hamming ECC for accessing first page
 | |
| (place where SPL lives) we require this setup for u-boot at least when reading
 | |
| the second progam within SPL.  A lot of newer NAND chips however require more
 | |
| than 1-bit ECC for the pages, some can live with 1-bit for the first page. To
 | |
| handle this we can switch to another ECC algorithm after reading the payload
 | |
| within SPL.
 | |
| 
 | |
| BCH8
 | |
| ----
 | |
| 
 | |
| To enable hardware assisted BCH8 (8-bit BCH [Bose, Chaudhuri, Hocquenghem]) on
 | |
| OMAP3 devices we can use the BCH library in lib/bch.c. To do so add CONFIG_BCH
 | |
| and set CONFIG_NAND_OMAP_ECCSCHEME=5 (refer README.nand) for selecting BCH8_SW.
 | |
| The NAND OOB layout is the same as in linux kernel, if the linux kernel BCH8
 | |
| implementation for OMAP3 works for you so the u-boot version should also.
 | |
| When you require the SPL to read with BCH8 there are two more configs to
 | |
| change:
 | |
| 
 | |
|  * CFG_SYS_NAND_ECCPOS (must be the same as .eccpos in
 | |
|    GPMC_NAND_HW_BCH8_ECC_LAYOUT defined in
 | |
|    arch/arm/include/asm/arch-omap3/omap_gpmc.h)
 | |
|  * CFG_SYS_NAND_ECCSIZE must be 512
 | |
|  * CFG_SYS_NAND_ECCBYTES must be 13 for this BCH8 setup
 | |
| 
 | |
| Acknowledgements
 | |
| ================
 | |
| 
 | |
| OMAP3 U-Boot is based on U-Boot tar ball [9] for BeagleBoard and EVM done by
 | |
| several TI employees.
 | |
| 
 | |
| Links
 | |
| =====
 | |
| 
 | |
| [1] OMAP3:
 | |
| 
 | |
| https://www.ti.com/omap3 (high volume) and
 | |
| https://www.ti.com/omap35x (broad market)
 | |
| 
 | |
| [2] OMAP3530 BeagleBoard:
 | |
| 
 | |
| http://beagleboard.org/
 | |
| 
 | |
| [3] Gumstix Overo:
 | |
| 
 | |
| http://www.gumstix.net/Overo/
 | |
| 
 | |
| [4] TI EVM:
 | |
| 
 | |
| http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html
 | |
| 
 | |
| [5] OpenPandora Ltd. Pandora:
 | |
| 
 | |
| http://openpandora.org/
 | |
| 
 | |
| [6] TI/Logic PD Zoom MDK:
 | |
| 
 | |
| http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit
 | |
| 
 | |
| [7] TI/Logic PD Zoom 2
 | |
| 
 | |
| http://www.logicpd.com/sites/default/files/1012659A_Zoom_OMAP34x-II_MDP_Brief.pdf
 | |
| 
 | |
| [8] CompuLab Ltd. CM-T35:
 | |
| 
 | |
| http://www.compulab.co.il/t3530/html/t3530-cm-datasheet.htm
 | |
| 
 | |
| [9] TI OMAP3 U-Boot:
 | |
| 
 | |
| http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz
 |