Re: BIOS flash mapping
- From: Mark Larson <mark_l512@xxxxxxxxx>
- Date: 30 Apr 2007 09:30:27 -0700
On Apr 27, 4:07 am, Alfie Noakes <AlfieNoa...@xxxxxxxxxxxxxxxx> wrote:
In the past I've done lots of embedded flash programming at work, so
decided to have a muck about with the flash BIOS in an old Pentium II
I've got.
The flash is a 1 Mbit (128k x 8) device and I can see a hunk of it in
memory at segment F000, but I can't find the other 64K (it's not at
E000), which means I can't get the flash ident commands to work
because I don't know the device base address.
I've tried hunting for the BIOS sig of the missing missing 64k
(0x55AA) at 64k intervals from 1Meg right up to the top of the address
space at 4G but with no joy. I've tried this using unreal mode under
DOS and also booting straight into a little bare bones protected mode
shell I wrote but still can't find the bugger.
And yes - I have enabled the A20 line.
The last BIOS team I worked on was for a 286 many years ago so I'm
probably missing something that's been introduced for later processors
but no amount of Googling has given me a clue.
So....... any clues?
Regards,
Alfie.
I have been a BIOS programmer for 13 years. two points
1) make sure you really are getting valid data above 1MB ( a20)
2) The BIOS is "shadowed". That means PARTS of it get copied from the
(4GB - 1mbit) - 4GB. 1mbit / 8 = 256MB. Obviously 256 MBs can't fit
in Fblock and E block ( total 128KB). There is a bunch of code that
gets run from that range before it copies down the "runtime" portions
of the BIOS. If your A20 is working it is simple to grab the entire
flash image. You simply copy from 4GB - 1MBIT to 4GB, and save it to
a file.
Mark
.
- References:
- BIOS flash mapping
- From: Alfie Noakes
- BIOS flash mapping
- Prev by Date: Re: cvs and sourceforge
- Next by Date: Re: HIV, AIDS, SARS. A Direct consequence of habitat destruction?
- Previous by thread: Re: BIOS flash mapping
- Next by thread: RFC: RIP relative adresses
- Index(es):
Relevant Pages
|