Merge branch 'next' of ../master
This commit is contained in:
78
doc/README.LED
Normal file
78
doc/README.LED
Normal file
@@ -0,0 +1,78 @@
|
||||
Status LED
|
||||
========================================
|
||||
|
||||
This README describes the status LED API.
|
||||
|
||||
The API is defined by the include file include/status_led.h
|
||||
|
||||
The first step is to define CONFIG_STATUS_LED in the board config file.
|
||||
|
||||
If the LED support is only for a single board, define CONFIG_BOARD_SPECIFIC_LED
|
||||
in the board config file.
|
||||
|
||||
At a minimum, these macros must be defined at
|
||||
STATUS_LED_BIT
|
||||
STATUS_LED_STATE
|
||||
STATUS_LED_PERIOD
|
||||
|
||||
If there are multiple status LED's define
|
||||
STATUS_LED_BIT<n>
|
||||
STATUS_LED_STATE<n>
|
||||
STATUS_LED_PERIOD<n>
|
||||
|
||||
Where <n> can a integer 1 through 3.
|
||||
|
||||
STATUS_LED_BIT is passed into the __led_* functions to identify which LED is
|
||||
being acted on. As such, the value choose must be unique with with respect to
|
||||
the other STATUS_LED_BIT's. Mapping the value to a physical LED is the
|
||||
reponsiblity of the __led_* function.
|
||||
|
||||
STATUS_LED_STATE is the initial state of the LED. It should be set to one of
|
||||
these values: STATUS_LED_OFF or STATUS_LED_ON.
|
||||
|
||||
STATUS_LED_PERIOD is how long is the LED blink period. This usually set to
|
||||
(CONFIG_SYS_HZ / <N>) where <N> is the frequency of the blink. Typical values
|
||||
range from 2 to 10.
|
||||
|
||||
Some other LED macros
|
||||
|
||||
STATUS_LED_BOOT is the LED to light when the board is booting. This must be a
|
||||
valid STATUS_LED_BIT value.
|
||||
|
||||
STATUS_LED_RED is the red LED. It is used signal errors. This must be a valid
|
||||
STATUS_LED_BIT value. Other similar color LED's are STATUS_LED_YELLOW and
|
||||
STATUS_LED_BLUE.
|
||||
|
||||
These board must define these functions
|
||||
|
||||
__led_init is called once to initialize the LED to STATUS_LED_STATE. One time
|
||||
start up code should be placed here.
|
||||
|
||||
__led_set is called to change the state of the LED.
|
||||
|
||||
__led_toggle is called to toggle the current state of the LED.
|
||||
|
||||
Colour LED
|
||||
========================================
|
||||
|
||||
Colour LED's are at present only used by ARM.
|
||||
|
||||
The functions names explain their purpose.
|
||||
|
||||
coloured_LED_init
|
||||
red_LED_on
|
||||
red_LED_off
|
||||
green_LED_on
|
||||
green_LED_off
|
||||
yellow_LED_on
|
||||
yellow_LED_off
|
||||
blue_LED_on
|
||||
blue_LED_off
|
||||
|
||||
These are weakly defined in lib_arm/board.c to noops. Where applicable, define
|
||||
these functions in the board specific source.
|
||||
|
||||
TBD : Describe older board dependent macros similar to what is done for
|
||||
CONFIG_TQM8xxL.
|
||||
|
||||
TBD : Describe general support via asm/status_led.h
|
||||
@@ -31,17 +31,17 @@ J42: open
|
||||
All others are factory default.
|
||||
|
||||
|
||||
I2C iprobe
|
||||
I2C probe
|
||||
=====================
|
||||
|
||||
The i2c utilities have been tested on both Rev B. and Rev C. and
|
||||
look good. The CONFIG_SYS_I2C_NOPROBES macro is defined to prevent
|
||||
probing the CDCV850 clock controller at address 0x69 (since reading
|
||||
it causes the i2c implementation to misbehave. The output of
|
||||
iprobe should look like this (assuming you are only using a single
|
||||
'i2c probe' should look like this (assuming you are only using a single
|
||||
SO-DIMM:
|
||||
|
||||
=> iprobe
|
||||
=> i2c probe
|
||||
Valid chip addresses: 50 53 54
|
||||
Excluded chip addresses: 69
|
||||
|
||||
@@ -63,13 +63,13 @@ J42 - strapped
|
||||
|
||||
This will select the default sys0 and sys1 settings (the serial
|
||||
eeproms are not used). Then power up the board and fix the serial
|
||||
eeprom using the imm command. Here are the values I currently
|
||||
eeprom using the 'i2c mm' command. Here are the values I currently
|
||||
use:
|
||||
|
||||
=> imd 50 0 10
|
||||
=> i2c md 50 0 10
|
||||
0000: bf a2 04 01 ae 94 11 00 00 00 00 00 00 00 00 00 ................
|
||||
|
||||
=> imd 54 0 10
|
||||
=> i2c md 54 0 10
|
||||
0000: 8f b3 24 01 4d 14 11 00 00 00 00 00 00 00 00 00 ..$.M...........
|
||||
|
||||
Once you have the eeproms set correctly change the
|
||||
@@ -83,8 +83,8 @@ the SPD to initialize the DDR SDRAM control registers. So if the SPD
|
||||
eeprom is corrupted, U-Boot will never get into ram. Here's how I got
|
||||
out of this situation:
|
||||
|
||||
0. First, _before_ playing with the i2c utilities, do an iprobe, then
|
||||
use imd to capture the various device contents to a file. Some day
|
||||
0. First, _before_ playing with the i2c utilities, do an 'i2c probe', then
|
||||
use 'i2c md' to capture the various device contents to a file. Some day
|
||||
you may be glad you did this ... trust me :-). Otherwise try the
|
||||
following:
|
||||
|
||||
@@ -100,12 +100,12 @@ settings without using the SPD eeprom.
|
||||
|
||||
3. Load the new U-Boot image and reboot ebony.
|
||||
|
||||
4. Repair the SPD eeprom using the imm command. Here's the eeprom
|
||||
4. Repair the SPD eeprom using the 'i2c mm' command. Here's the eeprom
|
||||
contents that work with the default SO-DIMM that comes with the
|
||||
ebony board (micron 8VDDT164AG-265A1). Note: these are probably
|
||||
_not_ the factory settings ... but they work.
|
||||
|
||||
=> imd 53 0 10 80
|
||||
=> i2c md 53 0 10 80
|
||||
0000: 80 08 07 0c 0a 01 40 00 04 75 75 00 80 08 00 01 ......@..uu.....
|
||||
0010: 0e 04 0c 01 02 20 00 a0 75 00 00 50 3c 50 2d 20 ..... ..u..P<P-
|
||||
0020: 90 90 50 50 00 00 00 00 00 41 4b 34 32 75 00 00 ..PP.....AK42u..
|
||||
|
||||
@@ -204,16 +204,10 @@ erase - erase FLASH memory
|
||||
flinfo - print FLASH memory information
|
||||
go - start application at address 'addr'
|
||||
help - print online help
|
||||
i2c - I2C sub-system
|
||||
icache - enable or disable instruction cache
|
||||
icrc32 - checksum calculation
|
||||
iloop - infinite loop on address range
|
||||
imd - i2c memory display
|
||||
iminfo - print header information for application image
|
||||
imls - list all images found in flash
|
||||
imm - i2c memory modify (auto-incrementing)
|
||||
imw - memory write (fill)
|
||||
inm - memory modify (constant address)
|
||||
iprobe - probe to discover valid I2C chip addresses
|
||||
itest - return true/false on integer compare
|
||||
loadb - load binary file over serial line (kermit mode)
|
||||
loads - load S-Record file over serial line
|
||||
|
||||
@@ -215,16 +215,10 @@ erase - erase FLASH memory
|
||||
flinfo - print FLASH memory information
|
||||
go - start application at address 'addr'
|
||||
help - print online help
|
||||
i2c - I2C sub-system
|
||||
icache - enable or disable instruction cache
|
||||
icrc32 - checksum calculation
|
||||
iloop - infinite loop on address range
|
||||
imd - i2c memory display
|
||||
iminfo - print header information for application image
|
||||
imls - list all images found in flash
|
||||
imm - i2c memory modify (auto-incrementing)
|
||||
imw - memory write (fill)
|
||||
inm - memory modify (constant address)
|
||||
iprobe - probe to discover valid I2C chip addresses
|
||||
itest - return true/false on integer compare
|
||||
loadb - load binary file over serial line (kermit mode)
|
||||
loads - load S-Record file over serial line
|
||||
|
||||
@@ -304,17 +304,11 @@ fsinfo - print information about filesystems
|
||||
fsload - load binary file from a filesystem image
|
||||
go - start application at address 'addr'
|
||||
help - print online help
|
||||
i2c - I2C sub-system
|
||||
icache - enable or disable instruction cache
|
||||
icrc32 - checksum calculation
|
||||
ide - IDE sub-system
|
||||
iloop - infinite loop on address range
|
||||
imd - i2c memory display
|
||||
iminfo - print header information for application image
|
||||
imls - list all images found in flash
|
||||
imm - i2c memory modify (auto-incrementing)
|
||||
imw - memory write (fill)
|
||||
inm - memory modify (constant address)
|
||||
iprobe - probe to discover valid I2C chip addresses
|
||||
itest - return true/false on integer compare
|
||||
loadb - load binary file over serial line (kermit mode)
|
||||
loads - load S-Record file over serial line
|
||||
|
||||
@@ -234,16 +234,10 @@ erase - erase FLASH memory
|
||||
flinfo - print FLASH memory information
|
||||
go - start application at address 'addr'
|
||||
help - print online help
|
||||
i2c - I2C sub-system
|
||||
icache - enable or disable instruction cache
|
||||
icrc32 - checksum calculation
|
||||
iloop - infinite loop on address range
|
||||
imd - i2c memory display
|
||||
iminfo - print header information for application image
|
||||
imls - list all images found in flash
|
||||
imm - i2c memory modify (auto-incrementing)
|
||||
imw - memory write (fill)
|
||||
inm - memory modify (constant address)
|
||||
iprobe - probe to discover valid I2C chip addresses
|
||||
itest - return true/false on integer compare
|
||||
loadb - load binary file over serial line (kermit mode)
|
||||
loads - load S-Record file over serial line
|
||||
|
||||
@@ -83,8 +83,8 @@ Freescale MPC832XEMDS Board
|
||||
|
||||
include/configs/MPC832XEPB.h
|
||||
|
||||
CONFIG_MPC83XX MPC83XX family for MPC8349, MPC8360 and MPC832X
|
||||
CONFIG_MPC832X MPC832X specific
|
||||
CONFIG_MPC83xx MPC83xx family for MPC8349, MPC8360 and MPC832x
|
||||
CONFIG_MPC832x MPC832x specific
|
||||
CONFIG_MPC832XEMDS MPC832XEMDS board specific
|
||||
|
||||
4. Compilation
|
||||
@@ -97,7 +97,7 @@ Freescale MPC832XEMDS Board
|
||||
make MPC832XEMDS_config
|
||||
make
|
||||
|
||||
MPC832X support PCI 33MHz and PCI 66MHz, to make u-boot support PCI:
|
||||
MPC832x support PCI 33MHz and PCI 66MHz, to make u-boot support PCI:
|
||||
|
||||
1)Make sure the DIP SW support PCI mode as described in Section 1.1.
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ Freescale MPC8349E-mITX and MPC8349E-mITX-GP Boards
|
||||
|
||||
include/configs/MPC8349ITX.h
|
||||
|
||||
CONFIG_MPC83XX MPC83xx family
|
||||
CONFIG_MPC83xx MPC83xx family
|
||||
CONFIG_MPC8349 MPC8349 specific
|
||||
CONFIG_MPC8349ITX MPC8349E-mITX
|
||||
CONFIG_MPC8349ITXGP MPC8349E-mITX-GP
|
||||
|
||||
@@ -81,7 +81,7 @@ Freescale MPC8360EMDS Board
|
||||
|
||||
include/configs/MPC8360EMDS.h
|
||||
|
||||
CONFIG_MPC83XX MPC83xx family for both MPC8349 and MPC8360
|
||||
CONFIG_MPC83xx MPC83xx family for both MPC8349 and MPC8360
|
||||
CONFIG_MPC8360 MPC8360 specific
|
||||
CONFIG_MPC8360EMDS MPC8360EMDS board specific
|
||||
|
||||
|
||||
@@ -60,8 +60,8 @@ Freescale MPC837xEMDS Board
|
||||
|
||||
include/configs/MPC837XEMDS.h
|
||||
|
||||
CONFIG_MPC83XX MPC83xx family for both MPC837x and MPC8360
|
||||
CONFIG_MPC837X MPC837x specific
|
||||
CONFIG_MPC83xx MPC83xx family for both MPC837x and MPC8360
|
||||
CONFIG_MPC837x MPC837x specific
|
||||
CONFIG_MPC837XEMDS MPC837XEMDS board specific
|
||||
|
||||
4. Compilation
|
||||
|
||||
@@ -52,8 +52,8 @@ Freescale MPC837xE-RDB Board
|
||||
|
||||
include/configs/MPC837XERDB.h
|
||||
|
||||
CONFIG_MPC83XX MPC83xx family for both MPC8349 and MPC8360
|
||||
CONFIG_MPC837X MPC837x specific
|
||||
CONFIG_MPC83xx MPC83xx family for both MPC8349 and MPC8360
|
||||
CONFIG_MPC837x MPC837x specific
|
||||
CONFIG_MPC837XERDB MPC837xE-RDB board specific
|
||||
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@ Currently the following boards are supported:
|
||||
|
||||
* TI/Logic PD Zoom MDK [6]
|
||||
|
||||
* TI/Logic PD Zoom 2 [7]
|
||||
|
||||
Toolchain
|
||||
=========
|
||||
|
||||
@@ -54,6 +56,11 @@ make
|
||||
make omap3_zoom1_config
|
||||
make
|
||||
|
||||
* Zoom 2:
|
||||
|
||||
make omap3_zoom2_config
|
||||
make
|
||||
|
||||
Custom commands
|
||||
===============
|
||||
|
||||
@@ -77,10 +84,42 @@ For all other commands see
|
||||
|
||||
help
|
||||
|
||||
Interfaces
|
||||
==========
|
||||
|
||||
gpio
|
||||
|
||||
To set a bit :
|
||||
|
||||
if (!omap_request_gpio(N)) {
|
||||
omap_set_gpio_direction(N, 0);
|
||||
omap_set_gpio_dataout(N, 1);
|
||||
}
|
||||
|
||||
To clear a bit :
|
||||
|
||||
if (!omap_request_gpio(N)) {
|
||||
omap_set_gpio_direction(N, 0);
|
||||
omap_set_gpio_dataout(N, 0);
|
||||
}
|
||||
|
||||
To read a bit :
|
||||
|
||||
if (!omap_request_gpio(N)) {
|
||||
omap_set_gpio_direction(N, 1);
|
||||
val = omap_get_gpio_datain(N);
|
||||
omap_free_gpio(N);
|
||||
}
|
||||
if (val)
|
||||
printf("GPIO N is set\n");
|
||||
else
|
||||
printf("GPIO N is clear\n");
|
||||
|
||||
|
||||
Acknowledgements
|
||||
================
|
||||
|
||||
OMAP3 U-Boot is based on U-Boot tar ball [7] for BeagleBoard and EVM done by
|
||||
OMAP3 U-Boot is based on U-Boot tar ball [8] for BeagleBoard and EVM done by
|
||||
several TI employees.
|
||||
|
||||
Links
|
||||
@@ -111,6 +150,10 @@ http://openpandora.org/
|
||||
|
||||
http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit
|
||||
|
||||
[7] TI OMAP3 U-Boot:
|
||||
[7] TI/Logic PD Zoom 2
|
||||
|
||||
http://www.logicpd.com/sites/default/files/1012659A_Zoom_OMAP34x-II_MDP_Brief.pdf
|
||||
[8] TI OMAP3 U-Boot:
|
||||
|
||||
http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ I2C
|
||||
=================
|
||||
|
||||
The i2c utilities have been tested on both Rev B. and Rev C. and
|
||||
look good. The iprobe command implementation has been updated to
|
||||
look good. The 'i2c probe' command implementation has been updated to
|
||||
allow for 'skipped' addresses. Some i2c slaves are write only and
|
||||
cause problems when a probe (read) is performed (for example the
|
||||
CDCV850 clock controller at address 0x69 on the ebony board).
|
||||
@@ -97,7 +97,7 @@ To prevent probing certain addresses you can define the
|
||||
CONFIG_SYS_I2C_NOPROBES macro in your board-specific header file. When
|
||||
defined, all specified addresses are skipped during a probe.
|
||||
The addresses that are skipped will be displayed in the output
|
||||
of the iprobe command.
|
||||
of the 'i2c probe' command.
|
||||
|
||||
For example, to prevent probing address 0x69, define the macro as
|
||||
follows:
|
||||
|
||||
@@ -23,7 +23,7 @@ strappings and the 2 EMAC HW Ethernet addresses. Be careful not to
|
||||
change the 1st page of the EEPROM! Unpopulated jumper J560 can get you
|
||||
out of trouble as it disables the strapping read from EEPROM.
|
||||
|
||||
I2C iprobe
|
||||
I2C probe
|
||||
=====================
|
||||
|
||||
The i2c utilities work and have been tested on Rev B. of the 440GX. See
|
||||
@@ -47,10 +47,10 @@ J560 - closed
|
||||
|
||||
This will select the default sys0 and sys1 settings (the serial
|
||||
eeproms are not used). Then power up the board and fix the serial
|
||||
eeprom using the imm command. Here are the values I currently
|
||||
eeprom using the 'i2c mm' command. Here are the values I currently
|
||||
use:
|
||||
|
||||
=> imd 50 0 10
|
||||
=> i2c md 50 0 10
|
||||
|
||||
0000: 85 7d 42 06 07 80 11 00 00 00 00 00 00 00 00 00 .}B.............
|
||||
|
||||
|
||||
@@ -59,18 +59,6 @@ Who: Wolfgang Denk <wd@denx.de> and board maintainers
|
||||
|
||||
---------------------------
|
||||
|
||||
What: Individual I2C commands
|
||||
When: April 2009
|
||||
Why: Per the U-Boot README, individual I2C commands such as "imd", "imm",
|
||||
"imw", etc are deprecated. The single "i2c" command which is
|
||||
currently enabled via CONFIG_I2C_CMD_TREE contains the same
|
||||
functionality as the individual I2C commands. The individual
|
||||
I2C commands should be removed as well as any references to
|
||||
CONFIG_I2C_CMD_TREE.
|
||||
Who: Peter Tyser <ptyser@xes-inc.com>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: Legacy NAND code
|
||||
When: April 2009
|
||||
Why: Legacy NAND code is deprecated. Similar functionality exists in
|
||||
|
||||
Reference in New Issue
Block a user