# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1173091974 0
# Node ID 939d2b7d4a12acea391c75324d189fa8858ffc9c
# Parent aae662fdf53ec1f143316406bad19dc48433d39f
xen: Make dom0 domain builder behaviour match that of domU.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
xen/arch/x86/domain_build.c | 4 +---
xen/include/public/xen.h | 18 ++++++++----------
2 files changed, 9 insertions(+), 13 deletions(-)
diff -r aae662fdf53e -r 939d2b7d4a12 xen/arch/x86/domain_build.c
--- a/xen/arch/x86/domain_build.c Mon Mar 05 10:37:01 2007 +0000
+++ b/xen/arch/x86/domain_build.c Mon Mar 05 10:52:54 2007 +0000
@@ -374,9 +374,6 @@ int construct_dom0(struct domain *d,
if ( parms.f_required[0] /* Huh? -- kraxel */ )
panic("Domain 0 requires an unsupported hypervisor feature.\n");
- /* Align load address to 4MB boundary. */
- v_start = parms.virt_base & ~((1UL<<22)-1);
-
/*
* Why do we need this? The number of page-table frames depends on the
* size of the bootstrap address space. But the size of the address space
@@ -384,6 +381,7 @@ int construct_dom0(struct domain *d,
* read-only). We have a pair of simultaneous equations in two unknowns,
* which we solve by exhaustive search.
*/
+ v_start = parms.virt_base;
vkern_start = parms.virt_kstart;
vkern_end = parms.virt_kend;
vinitrd_start = round_pgup(vkern_end);
diff -r aae662fdf53e -r 939d2b7d4a12 xen/include/public/xen.h
--- a/xen/include/public/xen.h Mon Mar 05 10:37:01 2007 +0000
+++ b/xen/include/public/xen.h Mon Mar 05 10:52:54 2007 +0000
@@ -473,26 +473,24 @@ typedef struct shared_info shared_info_t
#endif
/*
- * Start-of-day memory layout for the initial domain (DOM0):
+ * Start-of-day memory layout:
* 1. The domain is started within contiguous virtual-memory region.
- * 2. The contiguous region begins and ends on an aligned 4MB boundary.
- * 3. The region start corresponds to the load address of the OS image.
- * If the load address is not 4MB aligned then the address is rounded down.
- * 4. This the order of bootstrap elements in the initial virtual region:
+ * 2. The contiguous region ends on an aligned 4MB boundary.
+ * 3. This the order of bootstrap elements in the initial virtual region:
* a. relocated kernel image
* b. initial ram disk [mod_start, mod_len]
* c. list of allocated page frames [mfn_list, nr_pages]
* d. start_info_t structure [register ESI (x86)]
* e. bootstrap page tables [pt_base, CR3 (x86)]
* f. bootstrap stack [register ESP (x86)]
- * 5. Bootstrap elements are packed together, but each is 4kB-aligned.
- * 6. The initial ram disk may be omitted.
- * 7. The list of page frames forms a contiguous 'pseudo-physical' memory
+ * 4. Bootstrap elements are packed together, but each is 4kB-aligned.
+ * 5. The initial ram disk may be omitted.
+ * 6. The list of page frames forms a contiguous 'pseudo-physical' memory
* layout for the domain. In particular, the bootstrap virtual-memory
* region is a 1:1 mapping to the first section of the pseudo-physical map.
- * 8. All bootstrap elements are mapped read-writable for the guest OS. The
+ * 7. All bootstrap elements are mapped read-writable for the guest OS. The
* only exception is the bootstrap page table, which is mapped read-only.
- * 9. There is guaranteed to be at least 512kB padding after the final
+ * 8. There is guaranteed to be at least 512kB padding after the final
* bootstrap element. If necessary, the bootstrap virtual region is
* extended by an extra 4MB to ensure this.
*/
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|