[LinuxBIOS] RD1 BIOS Savior [was Re: No known linux compatable BIOS programmer ?]

Jeff Carr jcarr at linuxmachines.com
Sun Aug 14 11:26:43 CEST 2005


On 08/12/2005 10:47 PM, Ken Fuchs wrote:

>>Just to verify once again, there is no known linux bios programmer?
> 
> I don't know of any, but I haven't looked beyond the Enhanced Willem
> Universal Programmer and its MS Windows program.

OK. I'll put that on my todo list of things to look for.

> The RD1 BIOS Savior is what you need to make this a safe operation.
> It adds a second flash (BIOS) device that works as a backup, once it is
> successfully programmed.  It is installed in the BIOS socket and the
> original BIOS chip is installed into it.  There is a pair of wire going
> from the RD1 BIOS Savior to a sliding switch that mounts into the
> provided slot cover.  In the ORG position, the original BIOS is active
> and in the RD1 position, the RD1's BIOS device is active.  I used one
> successfully on a Tyan S2885 system.

Yes, that's an essential tool.

> First copy the original BIOS to a file.

I'm still having problems with this. I haven't been able to convince
linux's mtd drivers to do this. I've tried many things so far to try to
save the BIOS to a file from within linux. Maybe this is also not what
people normally do.

I see the instructions in the wiki for pulling out the VIDEO BIOS.
Please tell me this is a standard in the PC world and we can just use
the video bios to init the video chip and wrap linuxbios around it. That
would be fantastic! Programming the video chips is going to be extremely
unlikely/impossible in most cases.
(linux-2.6.12.2/Documentation/power/video.txt is interesting reading)

I dumped my vgabios without a hitch:
root at jcarr:/home# dd if=/dev/mem of=vgabios.bin count=1 bs=64K skip=12
1+0 records in
1+0 records out
65536 bytes transferred in 0.012833 seconds (5106847 bytes/sec)
root at jcarr:/home# strings vgabios.bin |grep "ATI Tech"
(C) 1988-2003, ATI Technologies Inc. BK-ATI VER008.017M.097.000

I'm very surprised to have that work. Thats great though! I wonder how
that works. Can't the iomem window be expanded to show the whole bios
image then? Then it would be really really trivial to save your bios
image as a file! All you'd have to use is dd!

Anyway, I don't understand enough to know how this is being done. I
assume the BIOS is hooked up to the host bridge chip somehow. Or perhaps
it goes through ACPI somehow? I don't know how to figure out how the
kernel finds & maps the video bios. It seems to happen early on in the
boot process arch/i368/setup.c just hard codes an entry for it:

static struct resource video_rom_resource = {
        .name   = "Video ROM",
        .start  = 0xc0000,
        .end    = 0xc7fff,
        .flags  = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM
};

Man, not a lot to go on there. I guess if it was possible to just memory
map the whole BIOS someone would have done that by now.

Is there a standard place that the videobios is stored in the bios flash?

Sorry about the rambling, it's been a long day of experiements. I got
annoyed about the changing location and size of the video bios so I made
the attached perl script to pull it out.
Jeff
BTW: strings vgabios.bin on my machine showed "pbd47ev.sab" which seemed
suspiciously like a DOS filename. google revealed SAB as a standard ASIC
file format. Makes me wonder what kind of software ATI uses to do their
ASIC designs.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: save_vgabios.pl
Type: application/x-perl
Size: 448 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20050814/b9d627f8/attachment.pl>


More information about the coreboot mailing list