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 |
|
|
|