		Tensilica 'xtfpga' Evaluation Boards
		====================================

Tensilica's 'xtfpga' evaluation boards are actually a set of different
boards that share configurations. The following is a list of supported
hardware by this board type:

- XT-AV60  / LX60
- XT-AV110 / LX110
- XT-AV200 / LX200
- ML605
- KC705

All boards provide the following common configurations:

- An Xtensa or Diamond processor core.
- An on-chip-debug (OCD) JTAG interface.
- A 16550 compatible UART and serial port.
- An OpenCores Wishbone 10/100-base-T ethernet interface.
- A 32 char two line LCD display. (except for the LX200)

LX60/LX110/LX200:

- Virtex-4 (XC4VLX60 / XCV4LX200) / Virtext-5 (XC5VLX110)
- 128MB / 64MB (LX60) memory
- 16MB / 4MB (LX60) Linear Flash

ML605

- Virtex-6 (XC6VLX240T)
- 512MB DDR3 memory
- 16MB Linear BPI Flash

KC705 (Xilinx)

- Kintex-7 XC7K325T FPGA
- 1GB DDR3 memory
- 128MB Linear BPI Flash


Setting up the Board
--------------------

The serial port defaults to 115200 baud, no parity and 1 stop bit.
A terminal emulator must be set accordingly to see the U-Boot prompt.


Board Configurations LX60/LX110/LX200/ML605/KC705
-------------------------------------------------

The LX60/LX110/LX200/ML605 contain an 8-way DIP switch that controls
the boot mapping and selects from a range of default ethernet MAC
addresses.

Boot Mapping (DIP switch 8):

    DIP switch 8 maps the system ROM address space (in which the
    reset vector resides) to either SRAM (off, 0, down) or Flash
    (on, 1, up).  This mapping is implemented in the FPGA bitstream
    and cannot be disabled by software, therefore DIP switch 8 is no
    available for application use. Note DIP switch 7 is reserved by
    Tensilica for future possible hardware use.

    Mapping to SRAM allows U-Boot to be debugged with an OCD/JTAG
    tool such as the Xtensa OCD Daemon connected via a suppored probe.
    See the tools documentation for supported probes and how to
    connect them.  Be aware that the board has only 128 KB of SRAM,
    therefore U-Boot must fit within this space to debug an image
    intended for the Flash.  This issues is discussed in a separate
    section toward the end.

    Mapping to flash allows U-Boot to start on reset, provided it
    has been programmed into the first two 64 KB sectors of the Flash.

    The Flash is always mapped at a device (memory mapped I/O) address
    (the address is board specific and is expressed as CFG_FLASH_BASE).
    The device address is used by U-Boot to program the flash, and may
    be used to specify an application to run or U-Boot image to boot.

Default MAC Address (DIP switches 1-6):

    When the board is first powered on, or after the environment has
    been reinitialized, the ethernet MAC address receives a default
    value whose least significant 6 bits come from DIP switches 1-6.
    The default is 00:50:C2:13:6F:xx where xx ranges from 0..3F
    according to the DIP switches, where "on"==1 and "off"==0, and
    switch 1 is the least-significant bit.

    After initial startup, the MAC address is stored in the U-Boot
    environment variable 'ethaddr'. The user may change this to any
    other address with the "setenv" comamnd. After the environment
    has been saved to Flash by the "saveenv" command, this will be
    used and the DIP switches no longer consulted. DIP swithes 1-6
    may then be used for application purposes.

The KC705 board contains 4-way DIP switch, way 1 is the boot mapping
switch and ways 2-4 control the low three bits of the MAC address.


Limitation of SDRAM Size for OCD Debugging on the LX60
------------------------------------------------------

The XT-AV60 board has only 128 KB of SDRAM that can be mapped
to the system ROM address space for debugging a ROM image under
OCD/JTAG. This limits the useful size of U-Boot to 128 KB (0x20000)
or the first 2 sectors of the flash.

This can pose a problem if all the sources are compiled with -O0
for debugging. The code size is then too large, in which case it
would be necessary to temporarily alter the linker script to place
the load addresses (LMA) in the RAM (VMA) so that OCD loads U-Boot
directly there and does not unpack. In practice this is not really
necessary as long as only a limited set of sources need to be
debugged, because the image can still fit into the 128 KB SRAM.

The recommended procedure for debugging is to first build U-Boot
with the default optimization level (-Os), and then touch and
rebuild incrementally with -O0 so that only the touched sources
are recompiled with -O0. To build with -O0, pass it in the KCFLAGS
variable to make.

Because this problem is easy to fall into and difficult to debug
if one doesn't expect it, the linker script provides a link-time
check and fatal error message if the image size exceeds 128 KB.

