BuildReports disagree2 publishers3 min readPublished
A Voodoo 3 driver stops assuming the firmware already ran its video BIOS
The tdfxfb change merged for Linux 7.3 trades one dependency for another: nothing has to execute the option ROM any more, but the driver now has to understand its layout.
The Engineer · Build desk
What happened
- FBDEV subsystem updates were submitted and merged for the Linux 7.3 kernel.
- The tdfxfb framebuffer driver can now initialize a Voodoo 3 itself instead of assuming system firmware already ran the card's video BIOS.
- Daniel Palmer hit the problem with a Voodoo 3 in an Amiga 4000 behind a PCI bridge: Linux saw the card, the monitor reported no signal.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- capability Machines whose firmware will not execute an old option ROM, including non-x86 hosts and boxes where another card is primary, can now get a console out of this hardware at all.
- constraint The dependency on firmware running the ROM is gone, but the dependency on the ROM's layout is new, and it does not generalise across a vendor's own product line.
- contradiction Phoronix credits the merge with Voodoo 3, 4 and 5 support while Tom's Hardware says 4 and 5 were dropped, so owners of VSA-100 cards get two different answers about whether their card boots.
- precedent The payoff is capped at fbdev, which sets the ceiling for anyone hoping this leads to a maintained DRM/KMS driver for the same silicon.
There are two ways for a driver to depend on a video BIOS. One is to let something else run it as code, which is what x86 firmware does at boot and what tdfxfb has relied on since it was written [10]. The other is to read it as data and do the register writes yourself. Daniel Palmer's patch does the second: it pulls configuration values out of the card's own ROM and brings the VGA core up from inside Linux [5].
That swap moves the failure mode rather than removing it. Instead of needing a platform whose firmware will execute a 1990s option ROM, you need a ROM whose layout the driver has been taught. The bill arrived immediately. VSA-100-based Voodoo 4 and 5 cards were in the original scope and came out of the series because their BIOS layouts are different [17]. Same vendor, same era, same driver, and the parsing work does not transfer.
This is where the two write-ups part company. Phoronix reports that TDFXFB can now initialize Voodoo 3, 4 and 5 cards without a PC BIOS [7]; Tom's Hardware reports that the 4 and 5 support was pulled from the current patch series [17]. Of the three families named, the merged manual initialization path covers one [16]. Anyone with a VSA-100 card and a non-x86 host should assume the smaller number.
Judged as a graphics feature, the result is thin. On an x86-64 box, loading the driver gets you a framebuffer device, usually /dev/fb0, good enough to host the virtual console [11], on an interface that DRM/KMS superseded long ago and that carries no Mesa, no modern OpenGL and no acceleration [12]. The value is not in the card. It is in the class of machine where nothing will ever POST that card: Palmer's own trigger was a Voodoo 3 in an Amiga 4000 behind a PCI bridge, detected by Linux and outputting nothing [4]. His patch description generalises it to non-x86 systems, setups where another card is primary, and firmware too new to run the old video BIOS [3]. Those are three different ways of saying the same thing, which is that x86 POST behaviour was an unstated part of the driver's contract for two decades.
The framebuffer work is also the boring half. Palmer has a separate path that exposes the Voodoo's register space to userspace through a /dev/tdfx3d misc device, with a small library called smoltdfx and an OpenGL 1.x implementation called smolminigl on top, which he says renders on real hardware without X, Mesa or Glide [13]. Phoronix notes the merged patches were tested against those 3D patches, which are not yet merged [9]. Palmer says Claude helped build a QEMU model of the card in the first place, to debug why the Amiga would not bring it up [8].
The other half of the same pull request is the tell about where this kind of work lives now: ATAFB gained 8-bit chunky, RGB565 and ARGB888 depths plus support for the SuperVidel SuperBlitter, a co-processor upgrade sold for the Atari Falcon [14][15]. fbdev is legacy, and it is also the only place hardware with no DRM driver can be made to display anything.
What to watch
- Whether VSA-100 initialization returns once someone maps the Voodoo 4/5 BIOS layout, and who does that work.
- Whether the /dev/tdfx3d register-mmap interface is merged as-is, reworked, or rejected in favour of a DRM driver.
- Whether other fbdev drivers adopt the parse-the-ROM approach to bring-up on platforms that never POST the card.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence68
- Adoption22
- Hype gap+24
- Incentives
- Insufficient
- Confidence66
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
The frame-buffer device (FBDEV) subsystem updates were submitted and merged for the Linux 7.3 kernel.
- [2]
The kernel's existing tdfxfb framebuffer driver is being updated so it can initialize a Voodoo 3 itself rather than relying on the system firmware to have already run the card's video BIOS.
- [3]
The patch description specifically calls out non-x86 computers, systems where another graphics card is primary, and newer BIOSes that cannot run the old video BIOS.
- [4]
Developer Daniel Palmer was using a Voodoo 3 in an Amiga 4000 equipped with a PCI bridge when the problem appeared: Linux could detect the card, but it was completely uninitialized, leaving him with "no signal detected".
- [5]
The new code uses configuration information from the card's own video BIOS to perform the initialization from Linux instead, allowing the driver to bring the VGA core up and establish a working display without depending on the system firmware.
- [6]
The code has been tested on both a modern x86-64 system and an Amiga 4000 with a Mediator PCI bridge.
- [7]
Phoronix reports that the TDFXFB driver now has the ability to initialize Voodoo 3 / 4 / 5 graphics cards without PC-BIOS.
- [8]
Palmer is developing the 3D work alongside a QEMU emulation of the Voodoo 3, and the developer says Claude helped build the emulator in the first place to debug the issue of getting the card working on his Amiga.
- [9]
Phoronix reports the merged patches have been tested with some yet-to-be-merged patches for supporting 3D rendering, and that all functionality appears to be working.
- [10]
tdfxfb historically assumed the Voodoo card had already been initialized by the PC's firmware, a reasonable assumption on a conventional x86 PC when the driver was written, because the firmware would execute the card's video BIOS during boot, configure the hardware, and hand Linux something already capable of displaying an image.
- [11]
On a modern-ish x86-64 PC with a Voodoo 3 installed, loading tdfxfb yields a working Linux framebuffer device, typically exposed as /dev/fb0, with the Voodoo driving a display that can host the Linux virtual console.
- [12]
Linux fbdev is a legacy graphics interface long superseded by DRM/KMS, and loading tdfxfb does not provide a Mesa stack, modern OpenGL, Wayland acceleration, or 3D functionality.
- [13]
Palmer is working on a separate 3D path that exposes the Voodoo's register space to userspace through a new /dev/tdfx3d misc device whose mmap() interface lets software program the card's 3D hardware, with a small userspace library called smoltdfx and an OpenGL 1.x implementation called smolminigl on top; he says he has tested it on real Voodoo 3 hardware and that it renders through the card's registers without X, Mesa or Glide.
- [14]
The same FBDEV pull request enhances Atari support in the ATAFB driver with additional video bit depths (8-bit chunky, 16-bit RGB565, ARGB888) and support for SuperVidel's SuperBlitter.
- [15]
The SuperVidel SuperBlitter was a hardware co-processor upgrade for Atari Falcon computers, for faster screen drawing and pixel operations.
- [16]
Of the three Voodoo families Phoronix names as gaining PC-BIOS-free initialization, the merged manual initialization path covers one.
- [17]
The new manual initialization code is aimed specifically at the Voodoo 3; Palmer had initially noted support for the VSA-100-based Voodoo 4 and 5 cards, but their BIOS layouts are different, so that support was removed from the current patch series.
Sources
2 independent publishers whose own reporting we read for this story.
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
Entities
- Linux fbdev subsystemFollow
- 3dfx Voodoo 3Follow
- ClaudeFollow
- Amiga 4000 with Mediator PCI bridgeFollow
- SuperVidel SuperBlitterFollow
- smolminiglFollow
- smoltdfxFollow
- ATAFB driverFollow
- Daniel PalmerFollow
- Linux kernelFollow
- Tom's HardwareFollow
- QEMUFollow
- PhoronixFollow
- tdfxfbFollow
- 3dfx Voodoo 4 / 5 (VSA-100)Follow