Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: EFI boot failing on new machine [SOLVED + PATCH]



Patch attached - with this, NetBSD boots off the USB stick. I've also
fixed multiboot64 which was broken in a similar way, but is untested.

Assuming this looks good, can we get this commited and pulled up to the
10.x branch?

-- 
Paul Ripke
"Great minds discuss ideas, average minds discuss events, small minds
 discuss people."
-- Disputed: Often attributed to Eleanor Roosevelt. 1948.
diff --git a/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c b/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
index feb51595eda2..b34505461bc4 100644
--- a/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
+++ b/sys/arch/i386/stand/efiboot/bootx64/efibootx64.c
@@ -30,14 +30,14 @@
 
 #include <sys/bootblock.h>
 
-void startprog64_start(physaddr_t, physaddr_t, physaddr_t, u_long,
+extern void startprog64_start(physaddr_t, physaddr_t, physaddr_t, u_long,
     void *, physaddr_t);
-extern void (*startprog64)(physaddr_t, physaddr_t, physaddr_t, u_long,
+void (*startprog64)(physaddr_t, physaddr_t, physaddr_t, u_long,
     void *, physaddr_t);
 extern u_int startprog64_size;
 
-void multiboot64_start(physaddr_t, physaddr_t, uint32_t);
-extern void (*multiboot64)(physaddr_t, physaddr_t, uint32_t);
+extern void multiboot64_start(physaddr_t, physaddr_t, uint32_t);
+void (*multiboot64)(physaddr_t, physaddr_t, uint32_t);
 extern u_int multiboot64_size;
 
 void
diff --git a/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S b/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S
index 96757aeccc03..cb040d27b86a 100644
--- a/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S
+++ b/sys/arch/i386/stand/efiboot/bootx64/multiboot64.S
@@ -6,10 +6,6 @@
 #define DATA_SEGMENT    0x10
 
 	.align	16
-	.globl _C_LABEL(multiboot64)
-_C_LABEL(multiboot64):
-	.quad 0
-
 	.globl _C_LABEL(multiboot64_size)
 _C_LABEL(multiboot64_size):
 	.long multiboot64_end - _C_LABEL(multiboot64_start)
diff --git a/sys/arch/i386/stand/efiboot/bootx64/startprog64.S b/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
index 050e3068a243..0c2643a7254d 100644
--- a/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
+++ b/sys/arch/i386/stand/efiboot/bootx64/startprog64.S
@@ -66,10 +66,6 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #define	DATA_SEGMENT	0x10
 
 	.align	16
-	.globl _C_LABEL(startprog64)
-_C_LABEL(startprog64):
-	.quad 0
-
 	.globl _C_LABEL(startprog64_size)
 _C_LABEL(startprog64_size):
 	.long startprog64_end - _C_LABEL(startprog64_start)


Home | Main Index | Thread Index | Old Index