Comment by sph
4 hours ago
Given how many idiotic ideas are ‘patched’ or worked around in software, it’s probably pretty easy. Especially in the world of modern GPUs when only a handful of people at the factory are able to write drivers for it.
Hardware vendors lost the plot in the Winmodem era.
Winmodems are a very sensible idea. You know software-defined radio? They are that, but for modems. Expandable to support any current or future protocol, at the cost of CPU time. Why do we like SDRs but hate SDMs? That's an irrational position.
The actual problem with winmodems was them breaking the established software/hardware boundary, and the Linux community not having the resources to follow suit.
Nothing stops someone from taking the free Windows Vivado and making it run on Linux, or taking a Winmodem driver and making it run on Linux, or writing a from-scratch software implementation of a 56k modem that can run on any sound card plugged into a phone line (which is what a Winmodem is), or reverse engineering the bitstream format for these FPGAs and writing a compiler from scratch (or even just the device-dependent backend - the frontend and middle-end can be developed in a more normal way and can be shared with other toolchains). But nobody actually stepped up and did it, which I think is proof that the free software community is a lot weaker than it thinks it is.
You could even do it right now, if you wanted to. You're not, and I'm sure there are good reasons for that. Extrapolate it across all developers, and it's unfortunate that it seems none of them have enough reason to do it. On the flip side, if anyone reading this does suddenly decide they have enough reason to do it... (Incentive: FPGAs are fun to play with!)
> Nothing stops someone from taking the free Windows Vivado and making it run on Linux
The EULA and the fact that the linux versior runs faster & has fewer bugs.
> just the device-dependent backend would be a major improvement and the frontend and optimizer could be shared with other toolchains
That's yosys and it's used by smaller commercial vendors.
> or reverse engineering then bitstream format for these FPGAs
Getting the timing is the hard part (+ good routing afterwards). The bitstream format has AFAIK mostly been reversed. 7 series has mediocre support , but US, US+ and Versal doesn't (probably because they're too expensive for personal usage).
This. If AMD / Xilinx would publish the documentation what you would need to use their chips, probably very few would use Vivado or ISE.
It's a practical position. The era of Winmodems was a long time ago, and the hardware was terrible compared to what we have now. Today, SDR is a fun thing anybody can pick up as a hobby. If it doesn't work, I have three other ways of accessing the Internet. If your winmodem didn't work, you didn't have a smartphone or a tablet to connect to ChatGPT (well, Altavista at the time) with and look for help. Then, when they did work, they were really bad because the single core CPUs of the day didn't have multiple cores to have the CPU cycles to run the software end of the modem and do anything else at the time. Which meant if you were running a game (Tuxracer, perhaps? Linmodem support wasn't broad, but it existed) at the same time, you lost. That tends to cause people to not like the product.