VOGONS


LBA48 PCI Option ROM?

Topic actions

First post, by megatog615

User metadata
Rank Member
Rank
Member

I have a board with a BIOS rom that doesn't have enough space left to store the patches introduced by biospatcher, so I can't break the 8GB HDD limit. All I need is to get LBA48 going and I'll be happy. I have another option: an ethernet card with a EEPROM socket. I've managed to get Plop Boot Manager written to an EEPROM and had it booted on the target system, so I know PCI ROMs can work. Unfortunately PBM doesn't autodetect drives.

What I'm looking for is a minimalistic PCI option ROM that can fit in a 64K EEPROM that hooks into INT19h like the PBM ROM does, ignores the BIOS drive settings, and detects all IDE drives with 48-bit LBA. It's somewhat funny to me that XTIDE can do this(and more) but only as an ISA ROM. Unfortunately XTIDE has its own caveats; it would destroy IDE performance if I used it.

One experiment I tried was writing the BIOS ROM from a Promise 133 PCI card to the EEPROM, but the ROM didn't even run when I started the machine.

Anyone have any ideas?

Reply 1 of 14, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

Despite the name, xtide built for AT class systems is probably what you want.

https://xtideuniversalbios.org/

I see that you mentioned it, but assert it will degrade perf-- how exactly?

The AT mode bios supports 32bit PCI controllers in 32bit mode, per the documentation.

Reply 2 of 14, by douglar

User metadata
Rank l33t
Rank
l33t
wierd_w wrote on 2025-08-20, 11:46:

Despite the name, xtide built for AT class systems is probably what you want.

I agree. The XUB steps are:

  1. Download the prebuilt rom images
  2. Open the 386l rom image in the rom config tool
  3. Enable 32bit access & save the rom
  4. burn it to a 27c128 or 27c256
  5. put it on a network card or a dedicated rom holder
  6. don't forget to verify that ROM shadowing is enabled for the range where XUB is stored

And maybe you will have a performance hit using XUB in DOS, but probably not. The BIOS on many (most?) motherboards with integrated PCI ide controllers still run their IDE devices in legacy transfer modes in DOS for compatibility reasons. So just because you have a ATA-100 controller on your motherboard doesn't mean you are seeing 80MB/s transfers in DOS without a special driver. So 5MB/s transfers in DOS when using your motherboard BIOS is not uncommon.

Reply 3 of 14, by megatog615

User metadata
Rank Member
Rank
Member
wierd_w wrote on 2025-08-20, 11:46:
Despite the name, xtide built for AT class systems is probably what you want. […]
Show full quote

Despite the name, xtide built for AT class systems is probably what you want.

https://xtideuniversalbios.org/

I see that you mentioned it, but assert it will degrade perf-- how exactly?

The AT mode bios supports 32bit PCI controllers in 32bit mode, per the documentation.

Per the documentation:

32-bit VLB/PCI IDE
For those 32-bit controllers that do not require software support (PIO mode is set with jumpers). Can be used with all 32-bit controllers but PIO mode is 0 just like on 16-bit controllers. Requires MODULE_ADVANCED_ATA.

XTIDE in 32-bit mode sets PIO mode to 0. I want to run more than just DOS and this IDE controller can do up to PIO-4.

Reply 4 of 14, by kingcake

User metadata
Rank Oldbie
Rank
Oldbie
wierd_w wrote on 2025-08-20, 11:46:
Despite the name, xtide built for AT class systems is probably what you want. […]
Show full quote

Despite the name, xtide built for AT class systems is probably what you want.

https://xtideuniversalbios.org/

I see that you mentioned it, but assert it will degrade perf-- how exactly?

The AT mode bios supports 32bit PCI controllers in 32bit mode, per the documentation.

You need to put it on an ISA card. ISA option roms and PCI options roms are different. You can't stick one in the other. OP is asking for PCI.

Reply 6 of 14, by megatog615

User metadata
Rank Member
Rank
Member
darry wrote on 2025-08-20, 19:26:

I have tried adding XTIDE to the system BIOS rom but there is just not enough room left. The BIOS takes up about 80K and Teknor added a whole bunch of code in their own special ROM that is essential to this board working correctly. At least, that is my assumption. I tried lots of different versions of CBROM so I could try inserting the XTIDE ROM and /D shows that Teknor added a ROM typed as "Other" and can't be extracted at all(unknown method '55', whatever that means).

I may try loading XTIDE from an ISA ROM on an expansion card as a last resort.

Here's the BIOS ROM I'm trying to modify.

Reply 7 of 14, by kingcake

User metadata
Rank Oldbie
Rank
Oldbie
megatog615 wrote on 2025-08-20, 21:43:
I have tried adding XTIDE to the system BIOS rom but there is just not enough room left. The BIOS takes up about 80K and Teknor […]
Show full quote
darry wrote on 2025-08-20, 19:26:

I have tried adding XTIDE to the system BIOS rom but there is just not enough room left. The BIOS takes up about 80K and Teknor added a whole bunch of code in their own special ROM that is essential to this board working correctly. At least, that is my assumption. I tried lots of different versions of CBROM so I could try inserting the XTIDE ROM and /D shows that Teknor added a ROM typed as "Other" and can't be extracted at all(unknown method '55', whatever that means).

I may try loading XTIDE from an ISA ROM on an expansion card as a last resort.

Here's the BIOS ROM I'm trying to modify.

XT-IDE will not work as a PCI OpRom. ISA card or modding your bios are only options. It's easy to mod Award bioses for LBA. There's probably a PXE rom image you can delete out of your bios.

Reply 8 of 14, by megatog615

User metadata
Rank Member
Rank
Member
kingcake wrote on Yesterday, 02:03:
megatog615 wrote on 2025-08-20, 21:43:
I have tried adding XTIDE to the system BIOS rom but there is just not enough room left. The BIOS takes up about 80K and Teknor […]
Show full quote
darry wrote on 2025-08-20, 19:26:

I have tried adding XTIDE to the system BIOS rom but there is just not enough room left. The BIOS takes up about 80K and Teknor added a whole bunch of code in their own special ROM that is essential to this board working correctly. At least, that is my assumption. I tried lots of different versions of CBROM so I could try inserting the XTIDE ROM and /D shows that Teknor added a ROM typed as "Other" and can't be extracted at all(unknown method '55', whatever that means).

I may try loading XTIDE from an ISA ROM on an expansion card as a last resort.

Here's the BIOS ROM I'm trying to modify.

XT-IDE will not work as a PCI OpRom. ISA card or modding your bios are only options. It's easy to mod Award bioses for LBA. There's probably a PXE rom image you can delete out of your bios.

This is from when I was trying to use CBROM.

The attachment IMG_20250820_174422.jpg is no longer available

Reply 9 of 14, by myne

User metadata
Rank Oldbie
Rank
Oldbie

Looks like there are 2 possible bioses.
Might be worth checking if a 512k, or 1mb chip will fit.

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic

Reply 10 of 14, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie

Try using a few different versions of cbrom. The one in your screenshot does not seem to show the correct size of the compressed code and the "Remain compress code space".
Moreover 936_29.doc says that bios includes SCSI bios inside:

T936 BIOS Version 2.90
Tue Jun 03 09:05:26 2003

- Including VGA BIOS VAK_BDA.BFP

- Including SCSI BIOS SAB_AAA.BIN

This BIOS corrects:

- Memory timing corrections
- Modification to set correct state of Shadow at DC00-DFFF

I can't see scsi bios module on your screenshot (probably due to incorrect cbrom version).
If your motherboard does not have a SCSI chip, you should be able to release its module in the BIOS to reclaim space.

Scamp: 286@20 /4M /CL-GD5422 /CMI8330
Aries: 486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
Triton: K6-2@400 /64M /Trio64V2DX+3dfx /ES1370
Seattle: P!!!750 /256M /MX440 /Vibra16s+SBLive!
Panther Point: 3470s /8G /GTX750Ti /HDA

Reply 11 of 14, by megatog615

User metadata
Rank Member
Rank
Member

I have used about ten versions of CBROM and they all either show the second 'other' rom with garbled text or they dont show it at all. What I would prefer to have done is get the system bios out to fix the 8GB problem(and the subsequent 32GB problems) then reconstruct the bios rom file.

Oh, and the SCSI rom is necessary because this board has SCSI support that I plan to explore someday.

Reply 12 of 14, by kingcake

User metadata
Rank Oldbie
Rank
Oldbie
megatog615 wrote on Yesterday, 16:59:

I have used about ten versions of CBROM and they all either show the second 'other' rom with garbled text or they dont show it at all. What I would prefer to have done is get the system bios out to fix the 8GB problem(and the subsequent 32GB problems) then reconstruct the bios rom file.

Oh, and the SCSI rom is necessary because this board has SCSI support that I plan to explore someday.

Just flash the bios back if/when you decide to use SCSI. It takes a minute.

Reply 13 of 14, by Chkcpu

User metadata
Rank Oldbie
Rank
Oldbie

Hi megatog615,

I’ve looked at the Teknor TEK936 v2.9 BIOS, and here are some observations.

This SBC uses an Am29F002BT 256KB flashchip, so I expected to find a 256KB BIOS. However, when I looked into the 936_29.BIN BIOS file with my hexeditor, I don’t see the usual layout of a 256KB Award BIOS.
Instead, the 128KB upper half of this 936_29.BIN file contains a compressed 128KB Award BIOS, and the 128KB lower half contains two uncompressed option ROMs. One of these ROMs is the VGA BIOS, and the other looks like a VT100 ROM for control via a serial port.

So the 256KB flashchip contents is a combination of several independent BIOSes/ROMs. Makes sense on an SBC with integrated VGA chip.
As the locations of various compressed modules in an Award 256KB BIOS is quite different from an 128KB BIOS, CBROM got thoroughly confused when you fed it this 256KB combined BIOS file! 😉

I’ve extracted the upper half of the 936_29.BIN file and stored it as 936_29uh.BIN.

The attachment 936_29uh.zip is no longer available

When I check the contents of this 128KB BIOS with CBROM, I get this output:

The attachment T936_2.9 BIOS 128KB upper half.png is no longer available

The BIOS has only two compressed components, the main System BIOS image “936_290.BIN” and the NCR SCSI BIOS “SAB_AAA.BIN”.
This leaves 7.25KB of remaining compressed code space. This is probably not enough for the BIOS Patcher tool to house its patches.

The 128KB lower half of the flashchip contents however, has plenty of room.
This part with the VGA and VT100 ROMs can again be seen as to 64KB halves. First there is the VGA ROM of 40KB, which places its start address at C000:0000h. The remaining 24KB of this 64KB section is unused.
The VT100 ROM comes next and its start address is therefore D000:0000h. This ROM is only 16KB, so the remaining 48KB of this 64KB part is unused. The upper 32KB of this free space, with start address D800:0000h, would be ideal for XUB! Just leave it uncompressed and use a hexeditor to place it at file offset 18000h of the 936_29.BIN file. Be carefull not to overwrite the start of the compressed Award BIOS at file offset 20000h.

That being said, how large is the drive you want to attach to this SBC?
You speak of adding LBA48, but would LBA28 work as well? I ask this because the BIOS already supports LBA28 for an IDE limit of 128GiB/137GB. Presently there still is a 32GB limit bug, but that can be patched.
So I didn’t find any 8GB limit.

I can help with patching the 32GB and both 64BG limit bugs, if the BIOS Patcher tool gives issues with this BIOS. Let me know what you think.

Cheers, Jan

CPU Identification utility
The Unofficial K6-2+ / K6-III+ page

Reply 14 of 14, by megatog615

User metadata
Rank Member
Rank
Member
Chkcpu wrote on Today, 18:20:
That being said, how large is the drive you want to attach to this SBC? You speak of adding LBA48, but would LBA28 work as well? […]
Show full quote

That being said, how large is the drive you want to attach to this SBC?
You speak of adding LBA48, but would LBA28 work as well? I ask this because the BIOS already supports LBA28 for an IDE limit of 128GiB/137GB. Presently there still is a 32GB limit bug, but that can be patched.
So I didn’t find any 8GB limit.

I can help with patching the 32GB and both 64BG limit bugs, if the BIOS Patcher tool gives issues with this BIOS. Let me know what you think.

Cheers, Jan

Thanks for taking a look at this for me. You've discovered quite a bit of information here.
Ideally I would want the 32GB and 64GB limit bugs fixed. I would prefer LBA48 for virtually unlimited sized disks but LBA28 is more than enough I suppose. Essentially I would like the system to handle whatever drive I throw at it. Sub-32GB drives don't feel like enough for Windows 98 if I were to put a bunch of games on it.

I guess I was mistaken when I thought it had an 8GB limit; I did try a 16GB SD card and the BIOS did recognize that, but some real HDDs over 32GB (128GB SATA SSD and 160GB SATA HDD with an adapter) either were autodetected as 8GB(128GB SSD) or hung the system(160GB HDD). I assume the latter is due to LBA28.

Another minor annoyance of this BIOS is that the VGA ROM starts in 'combined' mode, with VGA tuned for LCD output and DSUB output at the same time which results in a strangely crushed image during the POST screen and BIOS setup. It is mitigated by the Teknor option ROM that starts right after the POST(Ctrl-V opens a menu which allows you to change this setting as well as toggle the SCSI ROM and serial control, which is probably what that VT100 ROM is for) by setting the VGA output to 'CRT' mode. A really minor annoyance solved by Teknor's own option ROM late in the boot process. There is another thread documenting one user's effort to change the defaults here.

Also, is there a way to speed up the RAM count?

By the way, do you have a Ko-fi or something? I feel as though I should tip you for helping out. A lot of this is above my understanding(for now).