Hello,
I am trying reprogram the LimeMini SDR v1.2 starting from the factory Quartus project design (github link below)
https://limemicro.com/products/boards/limesdr-mini/https://wiki.myriadrf.org/LimeSDR-Minihttps://github.com/myriadrf/LimeSDR-Mini_GWSince I don't have an Altera USB Blaster, but just a JLink (EDU), I tried to reprogram the device using it first converting the sof file to svf, and then programming the latter using the JLink JTAG using OpenOCD.
The scripts I use are the following:
OpenOCD JLing config file#
# SEGGER J-Link
#
# [url]http://www.segger.com/jlink.html[/url]
#
interface jlink
adapter_khz 6000
transport select jtag
# 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
#
# jlink serial 123456789
Script for JTAG programming#!/bin/sh
quartus_cpf \
--convert \
--frequency=6000kHz \
--voltage=1.8V \
--operation=p \
../LimeSDR-Mini_bitstreams/LimeSDR-Mini_lms7_trx_HW_1.2.sof \
LimeSDR-Mini_lms7_trx_HW_1.2.svf
openocd \
-f /usr/share/openocd/scripts/interface/jlink.cfg \
-c init \
-c 'svf LimeSDR-Mini_lms7_trx_HW_1.2.svf' \
-c exit
Script OutputInfo: *******************************************************************
Info: Running Quartus Prime Convert_programming_file
Info: Version 20.1.1 Build 720 11/11/2020 SJ Lite Edition
Info: Copyright (C) 2020 Intel Corporation. All rights reserved.
Info: Your use of Intel Corporation's design tools, logic functions
Info: and other software and tools, and any partner logic
Info: functions, and any output files from any of the foregoing
Info: (including device programming or simulation files), and any
Info: associated documentation or information are expressly subject
Info: to the terms and conditions of the Intel Program License
Info: Subscription Agreement, the Intel Quartus Prime License Agreement,
Info: the Intel FPGA IP License Agreement, or other applicable license
Info: agreement, including, without limitation, that your use is for
Info: the sole purpose of programming logic devices manufactured by
Info: Intel and sold by Intel or its authorized distributors. Please
Info: refer to the applicable agreement for further details, at
Info: [url]https://fpgasoftware.intel.com/eula.[/url]
Info: Processing started: Tue Jun 28 14:44:39 2022
Info: Command: quartus_cpf --convert --frequency=6000kHz --voltage=1.8V --operation=p output_files/LimeSDR-Mini_lms7_trx.sof output_files/LimeSDR-Mini_lms7_trx.svf
Info: Quartus Prime Convert_programming_file was successful. 0 errors, 0 warnings
Info: Peak virtual memory: 314 megabytes
Info: Processing ended: Tue Jun 28 14:44:39 2022
Info: Elapsed time: 00:00:00
Info: Total CPU time (on all processors): 00:00:00
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
[url]http://openocd.org/doc/doxygen/bugs.html[/url]
adapter speed: 6000 kHz
jtag
Info : No device selected, using first device.
Info : J-Link ARM V8 compiled Nov 28 2014 13:44:46
Info : Hardware version: 8.00
Info : VTarget = 1.792 V
Info : clock speed 6000 kHz
Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0x031830dd (mfg: 0x06e (Altera), part: 0x3183, ver: 0x0)
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -irlen 2 -expected-id 0x031830dd"
Error: IR capture error at bit 2, saw 0x3FFFFFFFFFFFFD55 not 0x...3
Warn : Bypassing JTAG setup events due to errors
Warn : gdb services need one or more targets defined
svf processing file: "output_files/LimeSDR-Mini_lms7_trx.svf"
FREQUENCY 6.00E+06 HZ;
adapter speed: 6000 kHz
TRST ABSENT;
ENDDR IDLE;
ENDIR IRPAUSE;
STATE IDLE;
SIR 10 TDI (2CC);
RUNTEST IDLE 2100003 TCK ENDSTATE IDLE;
SIR 10 TDI (203);
RUNTEST 33 TCK;
SDR 23 TDI (480008);
SIR 10 TDI (205);
RUNTEST 33 TCK;
SDR 32 TDI (00000000) TDO (1E000000) MASK (FF800000);
SIR 10 TDI (203);
RUNTEST 33 TCK;
SDR 23 TDI (000000);
SIR 10 TDI (3F2);
RUNTEST 2100003 TCK;
SIR 10 TDI (307);
RUNTEST 33 TCK;
SDR 1 TDI (0) TDO (1) MASK (1);
SIR 10 TDI (203);
RUNTEST 33 TCK;
SDR 23 TDI (180000);
SIR 10 TDI (3F4);
RUNTEST 33 TCK;
SDR 32 TDI (6C48A50F);
RUNTEST 1920 TCK;
SIR 10 TDI (307);
RUNTEST 33 TCK;
SDR 1 TDI (0) TDO (1) MASK (1);
SIR 10 TDI (203);
RUNTEST 33 TCK;
SDR 23 TDI (1C0000);
SIR 10 TDI (3F4);
RUNTEST 33 TCK;
SDR 32 TDI (FFF7FFFF);
RUNTEST 1920 TCK;
SIR 10 TDI (307);
RUNTEST 33 TCK;
SDR 1 TDI (0) TDO (1) MASK (1);
SIR 10 TDI (203);
RUNTEST 33 TCK;
SDR 23 TDI (440000);
SIR 10 TDI (3F4);
RUNTEST 33 TCK;
SDR 32 TDI (6C48A50F);
RUNTEST 1920 TCK;
SIR 10 TDI (307);
RUNTEST 33 TCK;
SDR 1 TDI (0) TDO (1) MASK (1);
SIR 10 TDI (203);
RUNTEST 33 TCK;
SDR 23 TDI (540000);
SIR 10 TDI (3F4);
RUNTEST 33 TCK;
SDR 32 TDI (6C48A50F);
RUNTEST 1920 TCK;
SIR 10 TDI (307);
RUNTEST 33 TCK;
SDR 1 TDI (0) TDO (1) MASK (1);
SIR 10 TDI (201);
RUNTEST 2100003 TCK;
SIR 10 TDI (002);
RUNTEST 600000 TCK;
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
SIR 10 TDI (004);
RUNTEST 30 TCK;
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000);
SIR 10 TDI (003);
RUNTEST 24576 TCK;
RUNTEST 512 TCK;
SIR 10 TDI (3FF);
RUNTEST 6000 TCK;
STATE IDLE;
Time used: 0m4s710ms
svf file programmed successfully for 75 commands with 0 errors
Unfortunately, after reprogramming the device, it doesn't work as before. The onboard FT601 device is correctly detected from Linux, but GNU Radio can't communicate with the SDR...
LimeSuite Source (RX) info
##################
Connecting to device
##################
LimeSuite version: 20.10.0-g1480bfea
gr-limesdr version: 2.2.7
##################
Device list:
Nr.:0 device:LimeSDR Mini, media=USB 3.0, module=FT601, addr=24607:1027, serial=1D53D24B74B187
##################
INFO: device_handler::open_device(): no serial number. Using first device in the list.
Use "LimeUtil --find" in terminal to find prefered device serial.
TransferPacket: Read failed (ret=0)
TransferPacket: Read failed (ret=0)
TransferPacket: Read failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
Using device: UNKNOWN(1D53D24B74B187) GW: 0.0 FW: 0
##################
INFO: device_handler::enable_channels(): TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
TransferPacket: Write failed (ret=0)
....
>>> Done (return code -11)
Nothing strange has been done, I just assembled a 20 pin to 6 pins JTAG adapter (JLink to SDR FPGA JTAG connector), and trying to reprogram the factory bitstream design...
This is the first time I use OpenOCD with JLink..
What could be wrong in my setup ?
Many thanks in advance for any suggestion.
g.