Bradley Morgan, le sam. 04 juil. 2026 15:11:53 +0100, a ecrit:
> On July 4, 2026 4:58:52 AM GMT+01:00, Damien Zammit <[email protected]>
> wrote:
> >Bump the version of gnumach xen, and also fix 64b booting.
> >---
> > i386/xen/xen_boothdr.S |  6 +++---
> > x86_64/xen_boothdr.S   | 11 ++++++-----
> > 2 files changed, 9 insertions(+), 8 deletions(-)
> >
> >diff --git a/i386/xen/xen_boothdr.S b/i386/xen/xen_boothdr.S
> >index 4704c66f..6cc9e3d9 100644
> >--- a/i386/xen/xen_boothdr.S
> >+++ b/i386/xen/xen_boothdr.S
> >@@ -20,7 +20,7 @@
> > 
> > .section __xen_guest
> >     .ascii  "GUEST_OS=GNU Mach"
> >-    .ascii  ",GUEST_VERSION=1.3"
> >+    .ascii  ",GUEST_VERSION=1.8"
> >     .ascii  ",XEN_VER=xen-3.0"
> >     .ascii  ",VIRT_BASE=0xC0000000"
> >     .ascii  ",ELF_PADDR_OFFSET=0xC0000000"
> >@@ -61,12 +61,12 @@
> > .popsection                         ;
> > 
> >     ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS,              .asciz, "GNU Mach")
> >-    ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION,         .asciz, "1.3")
> >+    ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION,         .asciz, "1.8")
> >     ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION,           .asciz, "xen-3.0")
> >     ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE,             .long,  _START)
> >     ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET,          .long,  _START)
> >     ELFNOTE(Xen, XEN_ELFNOTE_ENTRY,                 .long,  start)
> >-    ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE,        .long,  hypcalls)
> >+    ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE,        .long,  0x2)
> 
> Why? This could break boot if xen tries to write stubs to 0x2..

Yes, I'm completely surprised by this.

The XEN_ELFNOTE_HYPERCALL_PAGE macro happens to be 2, but that's just a
convention. We are really supposed to tell the hypervisor which page we
use for hypercall.

> > #if PAE
> >     ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE,              .asciz, 
> > "yes[extended-cr3]")
> > #else
> >diff --git a/x86_64/xen_boothdr.S b/x86_64/xen_boothdr.S
> >index da40a5c0..0924aa20 100644
> >--- a/x86_64/xen_boothdr.S
> >+++ b/x86_64/xen_boothdr.S
> >@@ -20,11 +20,12 @@
> > 
> > .section __xen_guest
> >     .ascii  "GUEST_OS=GNU Mach"
> >-    .ascii  ",GUEST_VERSION=1.3"
> >+    .ascii  ",GUEST_VERSION=1.8"
> >     .ascii  ",XEN_VER=xen-3.0"
> >-    .ascii  ",VIRT_BASE=0x40000000"
> >-    .ascii  ",ELF_PADDR_OFFSET=0x40000000"
> >+    .ascii  ",VIRT_BASE=0xffffffff80000000"
> >+    .ascii  ",ELF_PADDR_OFFSET=0xffffffff80000000"
> >     .ascii  ",HYPERCALL_PAGE=0x2"
> >+    .ascii  ",ENTRY=0xffffffff80000000"
> >     .ascii  ",LOADER=generic"
> > #ifndef     MACH_PSEUDO_PHYS
> >     .ascii  ",FEATURES=!auto_translated_physmap"
> >@@ -51,12 +52,12 @@
> > .popsection                         ;
> > 
> >     ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS,              .asciz, "GNU Mach")
> >-    ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION,         .asciz, "1.3")
> >+    ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION,         .asciz, "1.8")
> >     ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION,           .asciz, "xen-3.0")
> >     ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE,             .quad,  _START)
> >     ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET,          .quad,  _START)
> >     ELFNOTE(Xen, XEN_ELFNOTE_ENTRY,                 .quad,  start)
> >-    ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE,        .quad,  hypcalls)
> >+    ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE,        .quad,  0x2)
> >     ELFNOTE(Xen, XEN_ELFNOTE_LOADER,                .asciz, "generic")
> >     ELFNOTE(Xen, XEN_ELFNOTE_FEATURES,              .asciz, ""
> > #ifndef MACH_PSEUDO_PHYS
> >
> 
> Thanks!
> 

Reply via email to