Skip to content

Please make clear of the file data format of flash dumping output #579

@wuwbobo2021

Description

@wuwbobo2021

It's just trying to read back the fuse data from an XC95144XL chip.

The --file-size parameter is probably unused in Xilinx::dumpFlash for XC95_FAMILY, but the command-line utility forces me to set it, so I entered some random value, and the actual output size is always 12,960 B.

openFPGALoader --cable jlink_base --freq 1000 --fpga-part xc95144xl --dump-flash dump.jed -v --file-size 1048576

Output:

empty
1366:0101 (bus 1, device 31)
b9ff7bbf
 0 EMU_CAP_RESERVED
 1 EMU_CAP_GET_HW_VERSION
 2 EMU_CAP_WRITE_DCC
 3 EMU_CAP_ADAPTIVE_CLOCKING
 4 EMU_CAP_READ_CONFIG
 5 EMU_CAP_WRITE_CONFIG
 7 EMU_CAP_WRITE_MEM
 8 EMU_CAP_READ_MEM
 9 EMU_CAP_SPEED_INFO
11 EMU_CAP_GET_MAX_BLOCK_SIZE
12 EMU_CAP_GET_HW_INFO
13 EMU_CAP_SET_KS_POWER
14 EMU_CAP_RESET_STOP_TIMED
16 EMU_CAP_MEASURE_RTCK_REACT
17 EMU_CAP_SELECT_IF
18 EMU_CAP_RW_MEM_ARM79
19 EMU_CAP_GET_COUNTERS
20 EMU_CAP_READ_DCC
21 EMU_CAP_GET_CPU_CAPS
22 EMU_CAP_EXEC_CPU_CMD
23 EMU_CAP_SWO
24 EMU_CAP_WRITE_DCC_EX
27 EMU_CAP_REGISTER
28 EMU_CAP_INDICATORS
29 EMU_CAP_TEST_NET_SPEED
31 Reserved
device type: J-Link major: 9 minor: 70 revision: 0
found 1 devices
index 0:
        idcode 0x9608093
        manufacturer xilinx
        family xc9500xl
        model  xc95144xl
        irlength 8
File type : jed
Read Flash: [==================================================] 100.00%
Done                                                                                                
Open dump file DONE
Read flash DONE

The output file is really not a .jed (JESD3-C) format file, but it equals the dump.bin file read by openFPGALoader when it prompted File type : bin. It's just kidding. Checking the source code, I realized that it is impossible to get a real .jed format output. It is just some raw data, probably similar to some data parsed by JedParser, but I'm not sure.

Also, I couldn't get some stable dump output even with an extremely slow JTAG clock rate. There's a TODO: verify mark in xilinx.cpp, does this mean that function flow_read() used in both verification and dumping process is currently problematic?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions