From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A42F03A545F for ; Fri, 31 Jul 2026 12:19:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785500367; cv=none; b=ejxy2v54n8LYOjjCxsy1ia6pMOciJWeAWI6NydEDJtG+avQTBKKIq9osivb2aPrd1ojmaLz5Joulm/kTX36Qd2r4Ls3x05gqG+KaJe0O6CveVoY2yOo+6A7FpQODxT+3ncLm/7h9T0VKQMKGlK0N5BQPALRHTh20K0Hg/fnKaGM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785500367; c=relaxed/simple; bh=bnhNzO3Xy8mHR74f90xbWQJw1wFb5MM+YbuZQoS3mcw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=B1hdtDXDzu7xeZmoCvX0GdZywB08bCg7SF+WMnx0VLviNiZaB15AqoBODd6fK3CEVIvMn3+l3xx9a5X6BKiLof34/cQA4HzsnS4hfnNa8hJD727XJLGneVoEO4YiKfNa59TpaiFT7KreUthhscd1wlTqKh3PQkQH7Pb8TKMK2uQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=0x0f.com; spf=pass smtp.mailfrom=0x0f.com; dkim=pass (1024-bit key) header.d=0x0f.com header.i=@0x0f.com header.b=Dn7giSnF; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=0x0f.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0x0f.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=0x0f.com header.i=@0x0f.com header.b="Dn7giSnF" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-381216921aaso861269a91.1 for ; Fri, 31 Jul 2026 05:19:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=0x0f.com; s=google; t=1785500364; x=1786105164; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=hRCEkgyL5maguOe88SdUQWVzbN/lQncmrY8r9dbt88k=; b=Dn7giSnFmIKEd1VNEBCiA4tlz7hncM8DsgvDVZ6aJovIz2wBKWTDmj5sCe4FeChWoG UrlEgZ9F93/2s6Cp72/foARs5F7PD9HClUxndReV0xpfiJoR0WB+t3dmlsJiU+o/AfNI GPIQxvwgloovNHFqIP7UEzN33CzAR3WEqlFfA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785500364; x=1786105164; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=hRCEkgyL5maguOe88SdUQWVzbN/lQncmrY8r9dbt88k=; b=VGhwBSfl9xHomm8WHTjHKXTGOTQbpX/VZ7CgbqgN7OXw55R9VY6M0EEYhs1LCixpWQ 7r1iLFcvzRrN0YzgGjPCC5Equm7bzk0DF/32DiGcZU4CYfNqmgXUhRQOoQNXuIXgViCN WiFFULzKfDPAE/HOJi0NWZoQ5RwkJVaqguNSowNXxEzPvU5uFdw13Iqg3KYnjwEJ6DnJ EuqY3B2ijO16FsA38o+KVLNPqc4n9nYhH5DGlL6iWpi9Zo6d6kw8xZ94QBftcD1+iI8l L8qtsCa2tKZryagt94BL3H8Jq7lca5qL8YNqJZSeoF+7Dowsaru94a4WtMb1GnlE3JGU WEXQ== X-Forwarded-Encrypted: i=1; AHgh+RpU+eYCivtBn6NDmsz/uFQyiYVOUCnsxRAyM7DmlvSbd7ylzzRUVBAY9Am1w1V4HCQwR6Q9JHGJ4/GYEWM=@vger.kernel.org X-Gm-Message-State: AOJu0YzETlwWx6jWp8P0HdBuCjjjqz6NjWBEmAuXRNRlXdqr2zlZsRXV 4JFWZGViHA/hIWF5NV1uGGC8Jou6riH6x+VpB6RdHPuQRuM3CpwQfs7kf/YWageYM5o= X-Gm-Gg: AR+sD120iIWyOtiCy4qtd01yMgim9gCKl1pflif8CSTnKvkk0vvtTr+wxMSF2pXovcZ 3we2xXi6Nv3kZK+ceDUbDrOT7UskVbFTAoc2SvJ0s+3vUSBlBcc32ldzlpDbunsm4K4bVEPQKw4 rcUfqHpQiRrChvvptb9s2KfuSxRq0LzQOMm/UZN0k8HgBXYNme5i4go2x7XXDUQqLtwOey2fJmu wFuJekNsFgZhlkYhPBOT4i5Z1kwly4pnv4Yjm3APamwbyNGe6q9n7WwB45g8w/0AZ0goNQo/Jfv ZBHJLFWgAlkP9sFTeAvIYGJsJGVu0lvH0YVkr+vdX9ZNG6EErqtYus/T4gIc/tVqXHrlIcZmrYQ dSdXyknKc1z33jA412yOCzoRPC3CkWFD8FU43+/RruErjCdGLbahbeLEldZcxkwWRnPDCdcSV71 5izis0blVZ16/dJJQa5lRZ2IRgEthQDHdEYfoJehNqizIq1r9iTgk= X-Received: by 2002:a17:90b:5290:b0:38d:c0f9:30be with SMTP id 98e67ed59e1d1-38fb1429190mr1671305a91.38.1785500363814; Fri, 31 Jul 2026 05:19:23 -0700 (PDT) Received: from shiro ([2400:4162:2428:2ffe:77cc:841c:1fc1:22d4]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-38fb2b8c5c5sm321981a91.4.2026.07.31.05.19.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jul 2026 05:19:23 -0700 (PDT) From: Daniel Palmer To: deller@gmx.de Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Daniel Palmer Subject: [PATCH v2 0/5] fbdev: tdfxfb: Make "unbooted" cards work Date: Fri, 31 Jul 2026 21:19:09 +0900 Message-ID: <20260731121915.3362232-1-daniel@0x0f.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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