Author Topic: [SOLVED] JLlink, Quartus, LimeMini SDR: SDR not working after reflashing  (Read 1077 times)

0 Members and 1 Guest are viewing this topic.

Offline gvzTopic starter

  • Contributor
  • Posts: 11
  • Country: 00
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-Mini
https://github.com/myriadrf/LimeSDR-Mini_GW

Since 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
Code: [Select]
#
# 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
Code: [Select]
#!/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 Output
Code: [Select]
Info: *******************************************************************
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...

Code: [Select]
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.
« Last Edit: June 28, 2022, 01:29:40 pm by gvz »
 

Offline gvzTopic starter

  • Contributor
  • Posts: 11
  • Country: 00
Re: JLlink, Quartus, LimeMini SDR: SDR not working after reflashing
« Reply #1 on: June 28, 2022, 01:29:23 pm »
SOLVED: I was converting the .sof file, the correct one is the .pof !
 

Offline BrianHG

  • Super Contributor
  • ***
  • Posts: 7638
  • Country: ca
The .sof is for temporary programs the FPGA static ram.  Cut the power, and the program disappears.  Used during development.

The .pof places the program into the permanent boot-prom.
 
The following users thanked this post: gvz


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf