readme for XIP on Murax improved
This commit is contained in:
parent
b866dcb07f
commit
bfb0b54f9b
|
@ -9,6 +9,11 @@ This board can be purchased for ~$USD 49 directly from Lattice and is supported
|
||||||
by the IceStorm
|
by the IceStorm
|
||||||
[`iceprog`](https://github.com/cliffordwolf/icestorm/tree/master/iceprog) tool.
|
[`iceprog`](https://github.com/cliffordwolf/icestorm/tree/master/iceprog) tool.
|
||||||
|
|
||||||
|
# Bootloader operations
|
||||||
|
|
||||||
|
A bootloader is implemented in a ROM within the FPGA bitfile. It configure the SPI and attempt to read the first word in 'XIP' area of the flash (0xE0040000 in CPU address space, 0x40000 in flash). If this first word is the magic word
|
||||||
|
then the bootloader jump at 0xE0040000.
|
||||||
|
The magic word is 0x12340fb7, which is the value for the instruction "li x31, 0x12340000" or "lui t6,0x12340".
|
||||||
|
|
||||||
# Using the example
|
# Using the example
|
||||||
|
|
||||||
|
@ -94,9 +99,7 @@ Bye.
|
||||||
WARNING: having this output does NOT guarantee you actually programmed anything in the FPGA!
|
WARNING: having this output does NOT guarantee you actually programmed anything in the FPGA!
|
||||||
|
|
||||||
After programming nothing visual will happen, except the LEDs being off.
|
After programming nothing visual will happen, except the LEDs being off.
|
||||||
The bootloader is waiting for a valid content in the flash. "valid content" is
|
The bootloader is waiting for a valid content in the flash (see Bootloader operations).
|
||||||
identified by a magic word at 0xE0040000: it shall be 0x12340fb7, which is the
|
|
||||||
value for the instruction "li x31, 0x12340000".
|
|
||||||
|
|
||||||
## Programming flash image
|
## Programming flash image
|
||||||
|
|
||||||
|
@ -179,7 +182,7 @@ Connection closed by foreign host.
|
||||||
From now the device runs the code from flash, LEDs shall display a dot moving from D9 to D2.
|
From now the device runs the code from flash, LEDs shall display a dot moving from D9 to D2.
|
||||||
|
|
||||||
### Loading flash using GDB / eclipse
|
### Loading flash using GDB / eclipse
|
||||||
- ```
|
```
|
||||||
src/openocd -f tcl/interface/ftdi/ft2232h_breakout.cfg -c "set MURAX_CPU0_YAML ../VexRiscv/cpu0.yaml" -f tcl/target/murax_xip.cfg
|
src/openocd -f tcl/interface/ftdi/ft2232h_breakout.cfg -c "set MURAX_CPU0_YAML ../VexRiscv/cpu0.yaml" -f tcl/target/murax_xip.cfg
|
||||||
```
|
```
|
||||||
- Make sure J7 is connected.
|
- Make sure J7 is connected.
|
||||||
|
@ -191,12 +194,12 @@ From there code loading, step, break points works as usual (including software b
|
||||||
|
|
||||||
- Stop any OpenOCD connection
|
- Stop any OpenOCD connection
|
||||||
- Remove J7, then:
|
- Remove J7, then:
|
||||||
- ```
|
```
|
||||||
make clean prog
|
make clean prog
|
||||||
```
|
```
|
||||||
- Remember to check a single FTDI device is listed in the output. If not:
|
- Remember to check a single FTDI device is listed in the output. If not:
|
||||||
- Disconnect the other devices
|
- Disconnect the other devices
|
||||||
- ```
|
```
|
||||||
make prog
|
make prog
|
||||||
```
|
```
|
||||||
- Connect J7, flash software shall start executing.
|
- Connect J7, flash software shall start executing.
|
||||||
|
|
Loading…
Reference in New Issue