FTDI を Xilinx Platform Cable で使えるようにする

AMD / Xilinx Platform Cable で XSCD や XSDB を使うには JTAG が使えないといません。最近は FTDI でこれが作れるようになっています。

ftdi_program というツールが Vivado / Vitis についてくるので、これで FTDI につながっている EEPROM をプログラムすることが可能です。

詳しくは UG908 Vivado Design Suite User Guide: Programming and Debugging を確認してください。 2022.1 以降の版には「Programming FTDI Devices for Vivado Hardware Manager Support」という章があります。

Linux ユーザーは、 ftdi_program を使う前に、デバイスドライバーを unbind する必要があります。 unbind しないとデバイスが見つからないと怒られます。

❯ program_ftdi -read

****** program_ftdi v2024.2
  **** Build date : Sep 20 2024-09:46:40
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
    ** Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.


INFO: Detected 0 devices
ERROR: Must detect atleast 1 device in order to read the eeprom. 

[ERROR] failed reading

Unbind の方法はネットに詳しいので、ここではコマンドだけ載せておきます。

❯ ls /sys/bus/usb/drivers/ftdi_sio
1-2.4:1.0  1-2.4:1.1  1-2.4:1.2  1-2.4:1.3  module  bind  uevent  unbind

❯ ls /sys/bus/usb/drivers/ftdi_sio -l
lrwxrwxrwx    - root root 2025-08-06 10:01 1-2.4:1.0 -> ../../../../devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:08.0/0000:2a:00.1/usb1/1-2/1-2.4/1-2.4:1.0
lrwxrwxrwx    - root root 2025-08-06 10:01 1-2.4:1.1 -> ../../../../devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:08.0/0000:2a:00.1/usb1/1-2/1-2.4/1-2.4:1.1
lrwxrwxrwx    - root root 2025-08-06 10:01 1-2.4:1.2 -> ../../../../devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:08.0/0000:2a:00.1/usb1/1-2/1-2.4/1-2.4:1.2
lrwxrwxrwx    - root root 2025-08-06 10:01 1-2.4:1.3 -> ../../../../devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:08.0/0000:2a:00.1/usb1/1-2/1-2.4/1-2.4:1.3
lrwxrwxrwx    - root root 2025-08-06 10:01 module -> ../../../../module/usbserial
.-w------- 4.1k root root 2025-08-06 10:01 bind
.-w------- 4.1k root root 2025-08-06 10:01 uevent
.-w------- 4.1k root root 2025-08-06 10:01 unbind

❯ echo -n 1-2.4:1.0 | sudo tee /sys/bus/usb/drivers/ftdi_sio/unbind

以下に、 program_ftdi のHELP を載せておきます。

❯ program_ftdi -h   

****** program_ftdi v2024.2
  **** Build date : Sep 20 2024-09:46:40
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
    ** Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.


Short Description:
Write/Read to FTDI EEPROM for Xilinx JTAG Tools support

Syntax:
program_ftdi {-write -ftdi=<ftdi_part> -serial=<serial_number> [options] | 
              -write -filein=<cfg_filein> |
              -read  [-fileout=<cfg_fileout>] |
              -erase} [-help] 

options: 
Name            Description 
------------------------------------------------------------------------------------------------------
-f, -fdti                        Specify the ftdi device to be programmed <FT232H | FT2232H | FT4232H> 
-s, -serial                      Serial number to be written into the EEPROM
[-v, --vendor]                   Vendor information
[-b, --board]                    Name of the board/product being programmed
[-d, -desc, -description]        A short description of the board
-fi, -filein                     Input file with all fields to be written
[-fo, -fileout]                  File to which the FDI EEPROM should be read back
[-lh, -longhelp]                 Get long help description for program_ftdi util     

Examples:
program_ftdi -write -ftdi FT2232H -serial 0ABC01 -vendor "my vendor co" -board "my board" -desc "my product desc" 
program_ftdi -write -filein <path_to_config_file>
program_ftdi -read
program_ftdi -read -fileout <path_to_config_file>
program_ftdi -erase