| 1 |
2 |
ayersg |
XUM Bootloader version 1.01 Readme
|
| 2 |
|
|
----------------------------------
|
| 3 |
|
|
|
| 4 |
|
|
Contents:
|
| 5 |
|
|
---------
|
| 6 |
|
|
|
| 7 |
|
|
README - This file
|
| 8 |
|
|
|
| 9 |
|
|
programmer/ - A C# Windows application for interfacing with a XUM device
|
| 10 |
|
|
win32_installer/ - A binary installer
|
| 11 |
|
|
win32_source/ - Visual Studio 2010 source project
|
| 12 |
|
|
|
| 13 |
|
|
|
| 14 |
|
|
Programmer Description:
|
| 15 |
|
|
-----------------------
|
| 16 |
|
|
|
| 17 |
|
|
Implements programming software to interface with a XUM device over the
|
| 18 |
|
|
XUM boot protocol. This specific implementation is based on C# for a
|
| 19 |
|
|
Windows 32-bit environment. Sorry.
|
| 20 |
|
|
|
| 21 |
|
|
The Verilog hardware files are not included here because this version
|
| 22 |
|
|
is released with the full XUM hardware files.
|
| 23 |
|
|
|
| 24 |
|
|
|
| 25 |
|
|
XUM Boot Protocol Description:
|
| 26 |
|
|
------------------------------
|
| 27 |
|
|
|
| 28 |
|
|
1. Programmer sends 'XUM' ASCII bytes.
|
| 29 |
|
|
2. Programmer sends a number indicating how many 32-bit data words it
|
| 30 |
|
|
has to send, minus 1. (For example, if it has one 32-bit data word,
|
| 31 |
|
|
this number will be 0.) The size of this number is 18 bits.
|
| 32 |
|
|
This means the minimum transmission size is 1 word (32 bits), and
|
| 33 |
|
|
the maximum transmission size is 262144 words (exactly 1MB).
|
| 34 |
|
|
This 18-bit number is sent in three bytes from high-order bits to
|
| 35 |
|
|
low-order bits, and the six most significant bits of the first
|
| 36 |
|
|
byte must be 0.
|
| 37 |
|
|
3. The FPGA sends back the third size byte from the programmer, allowing
|
| 38 |
|
|
the programmer to determine if the FPGA is listening and conforming
|
| 39 |
|
|
to the XUM boot protocol.
|
| 40 |
|
|
4. The programmer sends another 18-bit number indicating the starting
|
| 41 |
|
|
offset in memory where the data should be placed. Normally this will
|
| 42 |
|
|
be 0. This number is also sent in three bytes, and the six most
|
| 43 |
|
|
significant bits of the first byte are ignored.
|
| 44 |
|
|
5. The programmer sends the data. A copy of each byte that it sends will
|
| 45 |
|
|
be sent back to the programmer from the FPGA, allowing the programmer
|
| 46 |
|
|
to determine if all the data was transmitted successfully.
|
| 47 |
|
|
|
| 48 |
|
|
|