[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] Re: xen-kernel and EDD
- To: Keir Fraser <keir@xxxxxxx>
- From: Lin-Bao Zhang <2004.zhang@xxxxxxxxx>
- Date: Mon, 22 Aug 2011 11:45:21 +0800
- Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
- Delivery-date: Sun, 21 Aug 2011 20:45:55 -0700
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=nUNVeRWWAcZQlBYX6WkTPjh0SrXi37MGvcFwBhUqNvI=; b=RsgHMiLub/82Czgwoi2QvClIhx4WSNIkb1bgh7WkudH0rqZmVMvGJO3s99j4iL/STO O9w3KNuMw8NsBqoAwMMIoqvASxskGFGNgd/B/N8MF9R1VTt1CE8PU2YvG4QlUiMQd2U4 rFBbcO6w9spsk3L/y+1qFURLM7093wystsNQY=
- List-id: Xen developer discussion <xen-devel.lists.xensource.com>
I have replied to another subject "about __XEN_VIRT_START and
0x100000" ,because key discussing has moved there .
however, I sent a copy here , because ,here is the original discussion
about "EBDA corrupted". sorry for my 2 emails .
> Stacks grow downwards/backwards in memory. The early_stack definition is
> immediately *before* the early_stack label.
>
>> b) what is function of ” mov $bootsym_phys(early_stack),%esp" ?
>> is this related with trampoline relocation ?
>
> The trampoline stack (early_stack) is now allocated within the trampoline
> code/data area, rather than being hard-coded at an address (e.g., 0x98000).
>
a) the Stack ,how to grow downwards ?
if device changed/added,the stack will grows much ?
what device or function code will use this stack ?
what time does this stack grow ?
Can this stack overwrite other things when grow downwards ? in
xen-4.1.0 , this stack top equals to trampoline_end ,will it overwrite
trampoline_code ?
I think maybe impossible ,because trampoline code has been moved to
BOOT_TRAMPOLINE .
why do I have such question ,please see my b)
b)
it seems that the core problem is the "early_stack" , in my case ,
Stack top is overlap P410i EBDA area when stack grows downwards,so
system can't boot again.
but But there is another question puzzled :
If 0x98000 value is wrong , we will think in any case , system will be
corrupted ,but if we disable or unplug FC card , system will boot
normally.
Very mystery.
Following is my guess:
I guess : 0x95400 ~ <------ 0x98000 (stack top) ~ 0xa0000
0x95400 … P410i_EBDA_start ….. P410i_EBDA_end …. 0x98000
We know stacks grow downwards/backwards in memory , so I guess P410i
EBDA area should be located in sub-area in 0x95400 ~0x98000.
I feel the stack size will change as device number.
Maybe ,if we plug FC card , the stack should be more larger ,
occasionally reach P410i EBDA area. If unplug FC card , the stack
will be so small that it can’t reach P410i EBDA . who knows , maybe
only P410i firmware guys and FC card firmware guys , because only they
know their EBDA area range.
I will consult our firmware guys to verify my idea.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel