Eriks-MacBook-Pro:icy99 perik$ sudo openFPGALoader --board ulx3s ti994a_ulx3s.bit
unable to open ftdi device: -5 (unable to claim usb device. Make sure the default FTDI driver is not in use)
Error: Failed to claim cable
~/code/mygithub> sudo kextstat | grep -i ftdi
222 0 0xffffff7f83aa5000 0x3000 0x3000 com.apple.driver.AppleUSBFTDI (6.0.0) E35C349C-8115-37BA-B4C9-8034D1ED8B8B <221 63 23 6 5 3 1>
~/code/mygithub> fujprog blink/blink_12f.bit
ULX2S / ULX3S JTAG programmer v4.6 (git 720e92b built Oct 7 2020 10:53:42)
Copyright (C) Marko Zec, EMARD, gojimmypi, kost and contributors
no root permissions, not handling kexts
Using USB cable: ULX3S FPGA 12K v3.0.8
Programming: 100%
Completed in 8.32 seconds.
From memory, I think Apple included native FTDI drivers from High Sierra (10.13 - maybe even Sierra 10.12) onwards and in my old private ujprog builds I had the kext lines commented out.
Probably if you had the FTDI written drivers installed before that, the automatic upgrades grandfathered them in. There is a lot of outdated information on MacOS and FTDI on the web. Maybe it makes sense to have a few lines about this in a Getting Started page for fujprog
195 0 0xffffff7f85521000 0x7000 0x7000 com.FTDI.driver.FTDIUSBSerialDriver (2.4.4)
it will not work
Yes it does. No root needed. Interestingly
sudo kextstat | grep -i ftdi
returns nothing, but things work. Thank you so much @kost
That is probably related to what @sxpert said earlier. In Catalina, kernel extensions (kext) are being phased out and replaced by system extensions (essentially user mode drivers). It seems that the Apple FTDI driver has already become a system extension in 10.15.7, and hence kextstat does not list it. Probably the best thing to do is to uninstall the old FTDI kext on Catalina systems where it is still grandfathered.
@josephtang3_gitlab Which softcore are you asking about?
https://twitter.com/RadionaOrg/status/1313054364815314944?s=20
fujprog
on Catalina, and why ujprog
was working for @Speccery This code in fujprog should have unloaded the unwanted kext: