Re: When a computer start
- From: "Wolfgang Kern" <nowhere@xxxxxxxx>
- Date: Mon, 17 Dec 2007 20:38:43 +0100
Bill Leary answered:
....
When I've looked at some non-PC, but x86, based machines with an ICEFor example, on a 32 bit machine at 0xFFFFFFF0.Right. One could built a mainboard with the BIOS ROM up there :)
I've seen their (E(P))ROMs up there.
**"Assuming "PC" means "Personal Computer" in the current ..."** :)
Yes, it's reasonable for non-PC machines to have either a gated register
or a tiny ROM or even a CMOS-RAM(boot option) on top of the memory range.
I don't know IA64 nor Penryn, all others start in 16-bit RealMode
so the motherboard (chipset) remaps this 4GByte-16 to 000FFFF0h
which again is 16 bytes below, but now below the 1 MB border.
Again, on some of the non-PC but X86 machines I note above, yes, thisthe
occurred. The code there did either a "big-real" mapping and jumped to
ROM up at the top, or went into protected mode and jumped there. On everyat
PC type machine, what you describe is what I've always observed. Again,
exceptin the 64 bit versions which I've not yet had an opportunity to go
with an ICE.
At least AMD64 work (almost) the same way as 32-bit CPUs on RESET.
And that's why all BIOS-ROMs have its RESET-routine entry point
at F000:FFF0 (or FFFF:0000, or any that means the same address),
and start with a far jump to initialise CS:IP.
I once checked the memory contents below the top 4GB assuming
a mirror of the BIOS ROM, but there was nothing at all (all FFh)
even with PCI mem-mapping disabled.
Did you do this with code on the machine, or with an ICE?
I checked it right after the BIOS finished.
My old in-circuit-emulator wont work on modern CPUS anymore,
hard to imagine a 1 meter, 2 GHz ICE cable ...
And when I look at various versions of PC-BIOS startup code,
then it's obvious that it can execute without memory and stack,
but then all references rely on a valid/initialised 16-bit CS.
So there isn't much that could be done before the first far-junp.
On the machines I note above, and on the one or two PCs I used an ICE on,
I *DID* see the ROM repeated at the top of memory DURING reset, but on
the PC machines, it disappeared when the main-board was released from
reset. I guess I'd assumed that was normal, for a PC, but now you've
got me wondering.
What you see 'during reset' will never reach the CPU ;)
The interesting point would be after the raising edge of the RESET-line,
IOW: what are the contents of AD0..32(..52) when the CPU becomes active ?
btw: x86 CPUs idle for a few hundred cycles after RESET is released.
Where could you connect your ICE ?
my old workstation got a CPU-socket-link-cable.
Or are you talking about a BUS-scanner connected to a PCI-slot ?
__
wolfgang
.
- Follow-Ups:
- Re: When a computer start
- From: Bill Leary
- Re: When a computer start
- From: Terence
- Re: When a computer start
- References:
- When a computer start
- From: fratel
- Re: When a computer start
- From: Terence
- Re: When a computer start
- From: Bill Leary
- Re: When a computer start
- From: Wolfgang Kern
- Re: When a computer start
- From: Bill Leary
- When a computer start
- Prev by Date: Re: assembly language and reverse engineering
- Next by Date: Re: assembly language and reverse engineering
- Previous by thread: Re: When a computer start
- Next by thread: Re: When a computer start
- Index(es):
Relevant Pages
|
Loading