Looking for MP floating point signature: paging_init().

Tigran Aivazian (tigran@sco.COM)
Thu, 16 Jul 1998 13:31:23 +0100 (BST)


Hello,

Is there any reason (e.g. some weird non-MP-spec MP vendors) why
paging_init() calls smp_scan_config() in a slightly unconventional manner?
I.e. MP specs say that MP fp signature is to be found by looking in this
order:

1. First 1K of BIOS data: EBDA -> EBDA + 0x400 bytes
2. Top 1k of base memory: 639 * 0x400 -> 639 * 0x400 + 0x400 (or 511
instead of 639 if only 512K total)
3. BIOS ROM 64K: 0xF0000 -> 0xF0000 + 0x10000

and Linux (2.1.108, see arch/i386/mm/init.c/paging_init()) does it in this
order:

1. Bottom 1K: 0x0 -> 0x0 + 0x400
2. Top 1K: 639 * 0x400 -> 639 * 0x400 + 0x400
3. BIOS 64K: 0xF0000 -> 0xF0000 + 0x10000
4. First 4K of EBDA: EBDA -> EBDA + 0x1000

Now, the questions are:
a) why do we look at bottom of basemem at all if it's not in the specs?
b) why do we not look at 511K+1K (are there still assumptions
elsewhere that base=640K as the comment says?)
c) why do we look at the 4K of EBDA if the specs say that only the first
1K would suffice?
d) why don't we look in EBDA first to comply with the specs? I mean if we
find _MP_ elsewhere which happens to be garbage and the real thing is in
EBDA then we can't even blame Intel... because the specs say differently.

Regards,
------ -------- --------- -------- -- - -- ---- --
Tigran A. Aivazian | http://www.sco.com
Escalations Research Group | tel: +44-(0)1923-813796
Santa Cruz Operation Ltd | Email: tigran@sco.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html