Linux Framebuffer Layer development
 help / color / mirror / Atom feed
From: Daniel Palmer <daniel@0x0f.com>
To: deller@gmx.de
Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org, Daniel Palmer <daniel@0x0f.com>
Subject: [PATCH v2 0/5] fbdev: tdfxfb: Make "unbooted" cards work
Date: Fri, 31 Jul 2026 21:19:09 +0900	[thread overview]
Message-ID: <20260731121915.3362232-1-daniel@0x0f.com> (raw)

Currently voodoo cards that weren't booted by the video BIOS aren't
usable because the hardware is never brought up.

This means if you happen to have a proper - non-x86 - computer,
another card is the primary or you have a new BIOS that cannot
run the video BIOS tdfxfb would probe but you will be staring at
"no signal detected".

This series implements manually booting cards using the
values from the video BIOS' own table. Currently this only works
for the voodoo 3.

Debugging was partially assisted by Claude Fable 5. I could not
work out why this would not work for months so I told it to
create a voodoo 3 emulation for QEMU to compare the BIOS against
my code. That made it obvious my init sequence matched the BIOS
but the VGA core wasn't running.

This has been tested on a real voodoo 3 in an x86-64 board and
an Amiga 4000 with a mediator PCI bridge.

I have some patches to add an interface for doing 3D rendering
that are not included in this series and 3D rendering is also
working so as far as I can tell everything is good.

v2:
  - Fix up some poor 3am English mistakes in the cover letter.
  - Limit this to the voodoo 3. The BIOS layout is different
    for the 4/5 apparently.
  - Fixed the valid sashiko complaints - mainly clearing the
    framebuffer memory before fbcon might have bound, retaining
    the current behaviour if we can't get the video BIOS to get
    the config parameters.
  - Tweaked the wording of some of the commit messages.

Daniel Palmer (5):
  fbdev: tdfxfb: Add helper to read config table from BIOS
  fbdev: tdfxfb: Attempt to detect if the card wasn't booted
  fbdev: tdfxfb: Manually boot unbooted cards
  fbdev: tdfxfb: Wake the VGA core before programming the CRTC
  fbdev: tdfxfb: Program the initial video mode

 drivers/video/fbdev/tdfxfb.c | 155 +++++++++++++++++++++++++++++++++++
 1 file changed, 155 insertions(+)

-- 
2.53.0


             reply	other threads:[~2026-07-31 12:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-31 12:19 Daniel Palmer [this message]
2026-07-31 12:19 ` [PATCH v2 1/5] fbdev: tdfxfb: Add helper to read config table from BIOS Daniel Palmer
2026-07-31 12:19 ` [PATCH v2 2/5] fbdev: tdfxfb: Attempt to detect if the card wasn't booted Daniel Palmer
2026-07-31 12:19 ` [PATCH v2 3/5] fbdev: tdfxfb: Manually boot unbooted cards Daniel Palmer
2026-07-31 12:19 ` [PATCH v2 4/5] fbdev: tdfxfb: Wake the VGA core before programming the CRTC Daniel Palmer
2026-07-31 12:19 ` [PATCH v2 5/5] fbdev: tdfxfb: Program the initial video mode Daniel Palmer
2026-07-31 12:38 ` [PATCH v2 0/5] fbdev: tdfxfb: Make "unbooted" cards work Helge Deller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260731121915.3362232-1-daniel@0x0f.com \
    --to=daniel@0x0f.com \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox