Chris Zankel | 7e270ec | 2016-08-10 18:36:48 +0300 | [diff] [blame] | 1 | Tensilica 'xtfpga' Evaluation Boards |
| 2 | ==================================== |
| 3 | |
| 4 | Tensilica's 'xtfpga' evaluation boards are actually a set of different |
| 5 | boards that share configurations. The following is a list of supported |
| 6 | hardware by this board type: |
| 7 | |
| 8 | - XT-AV60 / LX60 |
| 9 | - XT-AV110 / LX110 |
| 10 | - XT-AV200 / LX200 |
| 11 | - ML605 |
| 12 | - KC705 |
| 13 | |
| 14 | All boards provide the following common configurations: |
| 15 | |
| 16 | - An Xtensa or Diamond processor core. |
| 17 | - An on-chip-debug (OCD) JTAG interface. |
| 18 | - A 16550 compatible UART and serial port. |
| 19 | - An OpenCores Wishbone 10/100-base-T ethernet interface. |
| 20 | - A 32 char two line LCD display. (except for the LX200) |
| 21 | |
| 22 | LX60/LX110/LX200: |
| 23 | |
| 24 | - Virtex-4 (XC4VLX60 / XCV4LX200) / Virtext-5 (XC5VLX110) |
| 25 | - 128MB / 64MB (LX60) memory |
| 26 | - 16MB / 4MB (LX60) Linear Flash |
| 27 | |
| 28 | ML605 |
| 29 | |
| 30 | - Virtex-6 (XC6VLX240T) |
| 31 | - 512MB DDR3 memory |
| 32 | - 16MB Linear BPI Flash |
| 33 | |
| 34 | KC705 (Xilinx) |
| 35 | |
| 36 | - Kintex-7 XC7K325T FPGA |
| 37 | - 1GB DDR3 memory |
| 38 | - 128MB Linear BPI Flash |
| 39 | |
| 40 | |
| 41 | Setting up the Board |
| 42 | -------------------- |
| 43 | |
| 44 | The serial port defaults to 115200 baud, no parity and 1 stop bit. |
| 45 | A terminal emulator must be set accordingly to see the U-Boot prompt. |
| 46 | |
| 47 | |
| 48 | Board Configurations LX60/LX110/LX200/ML605/KC705 |
| 49 | ------------------------------------------------- |
| 50 | |
| 51 | The LX60/LX110/LX200/ML605 contain an 8-way DIP switch that controls |
| 52 | the boot mapping and selects from a range of default ethernet MAC |
| 53 | addresses. |
| 54 | |
| 55 | Boot Mapping (DIP switch 8): |
| 56 | |
| 57 | DIP switch 8 maps the system ROM address space (in which the |
| 58 | reset vector resides) to either SRAM (off, 0, down) or Flash |
| 59 | (on, 1, up). This mapping is implemented in the FPGA bitstream |
| 60 | and cannot be disabled by software, therefore DIP switch 8 is no |
| 61 | available for application use. Note DIP switch 7 is reserved by |
| 62 | Tensilica for future possible hardware use. |
| 63 | |
| 64 | Mapping to SRAM allows U-Boot to be debugged with an OCD/JTAG |
| 65 | tool such as the Xtensa OCD Daemon connected via a suppored probe. |
| 66 | See the tools documentation for supported probes and how to |
| 67 | connect them. Be aware that the board has only 128 KB of SRAM, |
| 68 | therefore U-Boot must fit within this space to debug an image |
| 69 | intended for the Flash. This issues is discussed in a separate |
| 70 | section toward the end. |
| 71 | |
| 72 | Mapping to flash allows U-Boot to start on reset, provided it |
| 73 | has been programmed into the first two 64 KB sectors of the Flash. |
| 74 | |
| 75 | The Flash is always mapped at a device (memory mapped I/O) address |
| 76 | (the address is board specific and is expressed as CFG_FLASH_BASE). |
| 77 | The device address is used by U-Boot to program the flash, and may |
| 78 | be used to specify an application to run or U-Boot image to boot. |
| 79 | |
| 80 | Default MAC Address (DIP switches 1-6): |
| 81 | |
| 82 | When the board is first powered on, or after the environment has |
| 83 | been reinitialized, the ethernet MAC address receives a default |
| 84 | value whose least significant 6 bits come from DIP switches 1-6. |
| 85 | The default is 00:50:C2:13:6F:xx where xx ranges from 0..3F |
| 86 | according to the DIP switches, where "on"==1 and "off"==0, and |
| 87 | switch 1 is the least-significant bit. |
| 88 | |
| 89 | After initial startup, the MAC address is stored in the U-Boot |
| 90 | environment variable 'ethaddr'. The user may change this to any |
| 91 | other address with the "setenv" comamnd. After the environment |
| 92 | has been saved to Flash by the "saveenv" command, this will be |
| 93 | used and the DIP switches no longer consulted. DIP swithes 1-6 |
| 94 | may then be used for application purposes. |
| 95 | |
| 96 | The KC705 board contains 4-way DIP switch, way 1 is the boot mapping |
| 97 | switch and ways 2-4 control the low three bits of the MAC address. |
| 98 | |
| 99 | |
| 100 | Limitation of SDRAM Size for OCD Debugging on the LX60 |
| 101 | ------------------------------------------------------ |
| 102 | |
| 103 | The XT-AV60 board has only 128 KB of SDRAM that can be mapped |
| 104 | to the system ROM address space for debugging a ROM image under |
| 105 | OCD/JTAG. This limits the useful size of U-Boot to 128 KB (0x20000) |
| 106 | or the first 2 sectors of the flash. |
| 107 | |
| 108 | This can pose a problem if all the sources are compiled with -O0 |
| 109 | for debugging. The code size is then too large, in which case it |
| 110 | would be necessary to temporarily alter the linker script to place |
| 111 | the load addresses (LMA) in the RAM (VMA) so that OCD loads U-Boot |
| 112 | directly there and does not unpack. In practice this is not really |
| 113 | necessary as long as only a limited set of sources need to be |
| 114 | debugged, because the image can still fit into the 128 KB SRAM. |
| 115 | |
| 116 | The recommended procedure for debugging is to first build U-Boot |
| 117 | with the default optimization level (-Os), and then touch and |
| 118 | rebuild incrementally with -O0 so that only the touched sources |
| 119 | are recompiled with -O0. To build with -O0, pass it in the KCFLAGS |
| 120 | variable to make. |
| 121 | |
| 122 | Because this problem is easy to fall into and difficult to debug |
| 123 | if one doesn't expect it, the linker script provides a link-time |
| 124 | check and fatal error message if the image size exceeds 128 KB. |