start to add ecp5 support,current donet support jlink
Use FT2232H base jtag,and VexRiscv's openocd to support dbg.
This commit is contained in:
		
							parent
							
								
									2c4658ddb9
								
							
						
					
					
						commit
						e26d5260de
					
				| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
gen
 | 
					gen/
 | 
				
			||||||
| 
						 | 
					@ -3,36 +3,36 @@ LOCATE COMP "io_mainClk" SITE "P3";
 | 
				
			||||||
IOBUF PORT "io_mainClk" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "io_mainClk" IO_TYPE=LVCMOS33;
 | 
				
			||||||
FREQUENCY PORT "io_mainClk" 25 MHZ;
 | 
					FREQUENCY PORT "io_mainClk" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "io_asyncReset" SITE "N2";
 | 
					
 | 
				
			||||||
 | 
					LOCATE COMP "io_asyncReset" SITE "D20";
 | 
				
			||||||
IOBUF PORT "io_asyncReset" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "io_asyncReset" IO_TYPE=LVCMOS33;
 | 
				
			||||||
FREQUENCY PORT "io_asyncReset" 25 MHZ;
 | 
					FREQUENCY PORT "io_asyncReset" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "rst" SITE "N3";
 | 
					LOCATE COMP "rst" SITE "B19";
 | 
				
			||||||
IOBUF PORT "rst" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "rst" IO_TYPE=LVCMOS33;
 | 
				
			||||||
FREQUENCY PORT "rst" 25 MHZ;
 | 
					FREQUENCY PORT "rst" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "io_jtag_tck" SITE "T2";
 | 
					 | 
				
			||||||
IOBUF PORT "io_jtag_tck" IO_TYPE=LVCMOS33;
 | 
					 | 
				
			||||||
FREQUENCY PORT "io_jtag_tck" 25 MHZ;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "io_jtag_tms" SITE "T3";
 | 
					 | 
				
			||||||
IOBUF PORT "io_jtag_tms" IO_TYPE=LVCMOS33;
 | 
					 | 
				
			||||||
FREQUENCY PORT "io_jtag_tms" 25 MHZ;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "io_jtag_tdi" SITE "N4";
 | 
					LOCATE COMP "io_jtag_tdi" SITE "E1";
 | 
				
			||||||
IOBUF PORT "io_jtag_tdi" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "io_jtag_tdi" IO_TYPE=LVCMOS33;
 | 
				
			||||||
FREQUENCY PORT "io_jtag_tdi" 25 MHZ;
 | 
					FREQUENCY PORT "io_jtag_tdi" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "jtag_trst_n" SITE "M3";
 | 
					LOCATE COMP "io_jtag_tdo" SITE "E4";
 | 
				
			||||||
IOBUF PORT "jtag_trst_n" IO_TYPE=LVCMOS33;
 | 
					 | 
				
			||||||
FREQUENCY PORT "jtag_trst_n" 25 MHZ;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LOCATE COMP "io_jtag_tdo" SITE "M4";
 | 
					 | 
				
			||||||
IOBUF PORT "io_jtag_tdo" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "io_jtag_tdo" IO_TYPE=LVCMOS33;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "io_uart_rxd" SITE "P4";
 | 
					LOCATE COMP "io_jtag_tck" SITE "F3";
 | 
				
			||||||
 | 
					IOBUF PORT "io_jtag_tck" IO_TYPE=LVCMOS33;
 | 
				
			||||||
 | 
					FREQUENCY PORT "io_jtag_tck" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LOCATE COMP "io_jtag_tms" SITE "H3";
 | 
				
			||||||
 | 
					IOBUF PORT "io_jtag_tms" IO_TYPE=LVCMOS33;
 | 
				
			||||||
 | 
					FREQUENCY PORT "io_jtag_tms" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					LOCATE COMP "io_uart_rxd" SITE "J5";
 | 
				
			||||||
IOBUF PORT "io_uart_rxd" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "io_uart_rxd" IO_TYPE=LVCMOS33;
 | 
				
			||||||
FREQUENCY PORT "io_uart_rxd" 25 MHZ;
 | 
					FREQUENCY PORT "io_uart_rxd" 25 MHZ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCATE COMP "io_uart_txd" SITE "N3";
 | 
					LOCATE COMP "io_uart_txd" SITE "U16";
 | 
				
			||||||
IOBUF PORT "io_uart_txd" IO_TYPE=LVCMOS33;
 | 
					IOBUF PORT "io_uart_txd" IO_TYPE=LVCMOS33;
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					TARGET=soc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					all: clean ${TARGET}.svf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(TARGET).cfg: 
 | 
				
			||||||
 | 
						./synth.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$(TARGET).bit: $(TARGET).cfg
 | 
				
			||||||
 | 
						ecppack --svf gen/${TARGET}.svf gen/$< gen/$@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					${TARGET}.svf : ${TARGET}.bit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					prog: ${TARGET}.svf
 | 
				
			||||||
 | 
						./dapprog gen/${TARGET}.svf 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean:
 | 
				
			||||||
 | 
						rm -rf gen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					openocd:
 | 
				
			||||||
 | 
						openocd -f jlink.cfg -c "set MURAX_CPU0_YAML cpu0.yaml" -f murax.cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gdb:
 | 
				
			||||||
 | 
						/opt/riscv/bin/riscv64-unknown-elf-gdb -x gdbinit ./hello_world.elf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.PHONY: prog clean
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Buspirate with OpenOCD support
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# http://dangerousprototypes.com/bus-pirate-manual/
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# http://www.fabienm.eu/flf/15-ecp5-board-kit/
 | 
				
			||||||
 | 
					# https://github.com/Martoni/blp/tree/master/platforms/colorlight
 | 
				
			||||||
 | 
					# https://github.com/HarmonInstruments/JTAG_SWD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface cmsis-dap
 | 
				
			||||||
 | 
					transport select jtag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					adapter_khz 10000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#jtag newtap ecp5 tap -irlen 8 -expected-id 0x41111043
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#LFE5U-25F 0x41111043
 | 
				
			||||||
 | 
					#LFE5U-45F 0x41112043
 | 
				
			||||||
 | 
					jtag newtap ecp5 tap -irlen 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#init
 | 
				
			||||||
 | 
					#scan_chain
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#svf -tap ecp5.tap -quiet -progress blink.svf
 | 
				
			||||||
 | 
					#exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# this depends on the cable, you are safe with this option
 | 
				
			||||||
 | 
					#reset_config srst_only
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					debug: !!vexriscv.DebugReport {hardwareBreakpointCount: 0}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,54 @@
 | 
				
			||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ ${#1} -eq 0 ]; then
 | 
				
			||||||
 | 
					    echo "usage: dapprog xxx.bit or xxx.svf"
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CURRENT_DIR=$(cd $(dirname $0); pwd)
 | 
				
			||||||
 | 
					CONFIG=${CURRENT_DIR}/cmsisdap.cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$1" == "--probe" ] || [ "$1" == "-p" ]; then
 | 
				
			||||||
 | 
					    #probe add -d4 for detail log
 | 
				
			||||||
 | 
					    sudo openocd -f ${CONFIG} -c \
 | 
				
			||||||
 | 
					    "   init;
 | 
				
			||||||
 | 
					        scan_chain;
 | 
				
			||||||
 | 
					        exit;
 | 
				
			||||||
 | 
					    "
 | 
				
			||||||
 | 
					    exit $?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    # program 
 | 
				
			||||||
 | 
					    IMAGE_FILE=$1
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    EXT="${IMAGE_FILE##*.}"
 | 
				
			||||||
 | 
					    echo EXT: $EXT
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    #flash write_image erase xxx.hex;
 | 
				
			||||||
 | 
					    #flash write_image erase xxx.bin 0x08000000;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if [ "${EXT}" == "svf" ]; then
 | 
				
			||||||
 | 
					        TARGET="$IMAGE_FILE"
 | 
				
			||||||
 | 
					    elif [ "${EXT}" == "bit" ]; then
 | 
				
			||||||
 | 
					        NAME="${IMAGE_FILE%%.bit}"
 | 
				
			||||||
 | 
					        #/home/pi/oss/ulx3s/tools/ujprog/ujprog -j SRAM  ${IMAGE_FILE} > ${NAME}_sram.svf
 | 
				
			||||||
 | 
					        ${CURRENT_DIR}/ujprog.bit2svf -j FLASH ${IMAGE_FILE} > ${NAME}_flash.svf
 | 
				
			||||||
 | 
					        TARGET="${NAME}_flash.svf"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo "illegal suffix [$EXT]"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    echo "TARGET: ${TARGET}"
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    sudo openocd -f ${CONFIG} -c \
 | 
				
			||||||
 | 
					    "   init;
 | 
				
			||||||
 | 
					        scan_chain;
 | 
				
			||||||
 | 
					        svf -tap ecp5.tap -quiet -progress ${TARGET};
 | 
				
			||||||
 | 
					        exit;
 | 
				
			||||||
 | 
					    "
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    exit $?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					target extended-remote :3333
 | 
				
			||||||
 | 
					set remotetimeout 2000
 | 
				
			||||||
 | 
					monitor reset halt
 | 
				
			||||||
 | 
					load
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# SEGGER J-Link
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# http://www.segger.com/jlink.html
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					adapter driver jlink
 | 
				
			||||||
 | 
					adapter speed 500
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# The serial number can be used to select a specific device in case more than
 | 
				
			||||||
 | 
					# one is connected to the host.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Example: Select J-Link with serial number 123456789
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# adapter serial 123456789
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					transport select jtag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set  _ENDIAN little
 | 
				
			||||||
 | 
					set _TAP_TYPE 1234
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if { [info exists CPUTAPID] } {
 | 
				
			||||||
 | 
					   set _CPUTAPID $CPUTAPID
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
					  # set useful default
 | 
				
			||||||
 | 
					   set _CPUTAPID 0x10001fff 
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# adapter speed 800
 | 
				
			||||||
 | 
					# adapter srst delay 260
 | 
				
			||||||
 | 
					# jtag_ntrst_delay 250
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set _CHIPNAME fpga_spinal
 | 
				
			||||||
 | 
					jtag newtap $_CHIPNAME bridge -expected-id $_CPUTAPID -irlen 4 -ircapture 0x1 -irmask 0xF 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					target create $_CHIPNAME.cpu0 vexriscv -endian $_ENDIAN -chain-position $_CHIPNAME.bridge -coreid 0 -dbgbase 0xF00F0000
 | 
				
			||||||
 | 
					vexriscv readWaitCycles 12
 | 
				
			||||||
 | 
					vexriscv cpuConfigFile $MURAX_CPU0_YAML
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					poll_period 50
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					init
 | 
				
			||||||
 | 
					#echo "Halting processor"
 | 
				
			||||||
 | 
					soft_reset_halt
 | 
				
			||||||
 | 
					sleep 1000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										67147
									
								
								VexRiscv/fpga/soc.cfg
								
								
								
								
							
							
						
						
									
										67147
									
								
								VexRiscv/fpga/soc.cfg
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
					@ -46,4 +46,4 @@ rm -rf gen/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
yosys -v2 -l gen/synth.log gen/synth.ys
 | 
					yosys -v2 -l gen/synth.log gen/synth.ys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nextpnr-ecp5 --25k --package CABGA381 --speed 6 --textcfg soc.cfg --lpf soc.lpf --freq 100  --json gen/soc.json
 | 
					nextpnr-ecp5 --25k --package CABGA381 --speed 6 --textcfg gen/soc.cfg --lpf Colorlight_i5_v6.0-extboard.lpf --freq 100  --json gen/soc.json
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue