===== x86_32.S 1.26 vs ? (writable without lock!) ===== --- 1.26/xen/arch/x86/boot/x86_32.S 2004-07-14 11:36:28 -06:00 +++ ?/x86_32.S 2004-11-22 07:21:52 -07:00 @@ -79,7 +79,7 @@ __start: /* Set up CR4, except global flag which Intel requires should be */ /* left until after paging is enabled (IA32 Manual Vol. 3, Sec. 2.5) */ mov mmu_cr4_features-__PAGE_OFFSET,%ecx - and $0x7f,%cl # CR4.PGE (global enable) + and $0xf,%cl # CR4.PGE (global enable) mov %ecx,%cr4 cmp $(SECONDARY_CPU_FLAG),%ebx @@ -100,19 +100,31 @@ __start: xor %eax,%eax rep stosb - /* Initialize low and high mappings of all memory with 4MB pages */ + /* Initialize low and high mappings of all memory */ + /* build Page Table with 4kb pages */ mov $idle_pg_table-__PAGE_OFFSET,%edi - mov $0x1e3,%eax /* PRESENT+RW+A+D+4MB+GLOBAL */ -1: mov %eax,__PAGE_OFFSET>>20(%edi) /* high mapping */ + //mov $0x3800000, %edi + mov $0x23,%eax /* PRESENT+RW+A */ +1: mov %eax,__PAGE_OFFSET>>10(%edi) /* high mapping */ stosl /* low mapping */ - add $(1<