[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] xen-kernel and EDD
2011/8/18 Keir Fraser <keir.xen@xxxxxxxxx>:
> The BIOS message might indicate that the hypervisor has corrupted BIOS
> memory. Maybe this wouldn't happen with a newer version of Xen; the RHEL-
> 5 version is old.
> -- Keir
in our system, there are two main devices , P410i(smart array card) and FC card.
your guess is reasonable.
another possibility is
My guess is the HBA option ROM is stepping on something the p410i
option ROM sets up:
P410i option ROM runs and sets up EBDA area
HBA option ROM runs and trashes EBDA area the p410i firmware setup
System tries to boot from the p410i, and the first thing the FW does
is check the EBDA area, and sends this message if it is messed up.
if we unplug FC(HBA) card , this issue can't happen again . so I feel
that the most possibility is FC firmware destroied P410i card's EBDA
let's discuss your guess now.
I know for BIOS ,it exists 640K limitation ,especially for realmode.
1,EBDA is always immediately below 0xA0000 in memory：
Note: the EBDA is a variable-sized memory area (on different BIOSes).
If it exists, it is always immediately below 0xA0000 in memory. It is
absolutely guaranteed to be less than 128 KiB in size. It is often 1
KiB. The biggest ones ever actually seen are 8 KiB. You can determine
the size of the EBDA by using BIOS function INT 12h, or (often) by
examining the word at 0x40E in the BDA (see below). Both of those
methods will tell you the location of the bottom of the EBDA.
so in my system , my EBDA area should be 95400 ~ a0000 ,about 43KBytes.
from xen.gz (hypervisor) code , trampoline.S , we know
#define BOOT_TRAMPOLINE 0x90000
#define bootsym_phys(sym) \
(((unsigned long)&(sym)-(unsigned long)&trampoline_start)+BOOT_TRAMPOLINE)
0x95400 - 0x90000 = 0x5400 = 21KBytes.
21Kbytes is enough for gen.gz running(hypervisor) ?
if hypervisor will run more area , maybe it will overlap EBDA area .
so who can tell me xen.gz 's end address ? or max long ?
from RHEL5.7xen kernel, xen.gz loading address is 1M,but
Xen-devel mailing list