NetBSD-Bugs archive

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

Re: port-i386/40752: x86 bootloader panic()/exit() loop



ad%NetBSD.org@localhost said:
> >     for (;;) __asm volatile("hlt");
> 'int 0x19' isn't enough? 

int 0x18! It is almost there -- formerly, the biosboot start
code did define an "exit" entry point. This got lost when
it was split into "bootxx" and "boot".
The appended patch should fix things and even make the
code a couple of bytes smaller.
best regards
Matthias





-------------------------------------------------------------------
-------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich

Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzende des Aufsichtsrats: MinDir'in Baerbel Brumme-Bothe
Geschaeftsfuehrung: Prof. Dr. Achim Bachem (Vorsitzender),
Dr. Ulrich Krafft (stellv. Vorsitzender), Prof. Dr. Harald Bolt,
Dr. Sebastian M. Schmidt
-------------------------------------------------------------------
-------------------------------------------------------------------
#
# old_revision [47c1df0d4767cb616c1f79cf6ce07dc5ed4f0714]
#
# patch "sys/arch/i386/stand/boot/Makefile.boot"
#  from [d704724387418e1716e63943da1904f181aeb235]
#    to [0b13bad190bc7441f15db09633bae419a5f0a2e1]
# 
# patch "sys/arch/i386/stand/boot/biosboot.S"
#  from [01ce4fdd4987286ee7204ee0829b23322c104c22]
#    to [7cc60a58ac155152ebf21bf705fc97d37d2bdd54]
# 
# patch "sys/arch/i386/stand/bootxx/Makefile.bootxx"
#  from [b8395519a1fecd7a04efbb75771ecb10f2037d95]
#    to [2d797d0ad8b873ee65a397615baae191e99cf289]
# 
# patch "sys/arch/i386/stand/bootxx/bootxx.S"
#  from [ddd72d6658a6d76ef40032620ae8e86bd9193ff3]
#    to [b539f3c0c113923705fcddb9dea1eca274edc9ce]
# 
# patch "sys/arch/i386/stand/bootxx/bootxx_ustarfs/Makefile"
#  from [e1564bf8f91ef5f592532f32a87e403240921123]
#    to [16bc843fd72ba897193528b6fca738f3e87f4c6f]
#
============================================================
--- sys/arch/i386/stand/boot/Makefile.boot      
d704724387418e1716e63943da1904f181aeb235
+++ sys/arch/i386/stand/boot/Makefile.boot      
0b13bad190bc7441f15db09633bae419a5f0a2e1
@@ -9,7 +9,7 @@ VERSIONFILE?= ${.CURDIR}/../version
 NEWVERSWHAT?= "BIOS Boot"
 VERSIONFILE?= ${.CURDIR}/../version
 
-SOURCES?= biosboot.S boot2.c conf.c devopen.c exec.c
+SOURCES?= biosboot.S boot2.c conf.c devopen.c exec.c panic.c
 SRCS= ${SOURCES}
 .if !make(depend)
 SRCS+= vers.c
============================================================
--- sys/arch/i386/stand/boot/biosboot.S 01ce4fdd4987286ee7204ee0829b23322c104c22
+++ sys/arch/i386/stand/boot/biosboot.S 7cc60a58ac155152ebf21bf705fc97d37d2bdd54
@@ -127,7 +127,7 @@ 1:  .asciz  "Boot2 failed: "
        jmp     loopstop
 1:     .asciz  "Boot2 failed: "
 
-ENTRY(_rtt)
+ENTRY(exit)
        .code32
        call    prot_to_real
        .code16
============================================================
--- sys/arch/i386/stand/bootxx/Makefile.bootxx  
b8395519a1fecd7a04efbb75771ecb10f2037d95
+++ sys/arch/i386/stand/bootxx/Makefile.bootxx  
2d797d0ad8b873ee65a397615baae191e99cf289
@@ -18,7 +18,7 @@ BOOTXX_MAXSIZE?= $$(( ${BOOTXX_SECTORS} 
 BOOTXX_SECTORS?=15
 BOOTXX_MAXSIZE?= $$(( ${BOOTXX_SECTORS} * 512 ))
 
-SRCS= pbr.S label.S bootxx.S boot1.c
+SRCS= pbr.S label.S bootxx.S boot1.c ${EXTRASRCS}
 
 .include <bsd.own.mk>
 
============================================================
--- sys/arch/i386/stand/bootxx/bootxx.S ddd72d6658a6d76ef40032620ae8e86bd9193ff3
+++ sys/arch/i386/stand/bootxx/bootxx.S b539f3c0c113923705fcddb9dea1eca274edc9ce
@@ -105,7 +105,7 @@ 12: .asciz  "xx): "
 11:    .ascii  "Boot failed (errno "
 12:    .asciz  "xx): "
 
-ENTRY(_rtt)
+ENTRY(exit)
        .code32
        call    prot_to_real
        .code16
============================================================
--- sys/arch/i386/stand/bootxx/bootxx_ustarfs/Makefile  
e1564bf8f91ef5f592532f32a87e403240921123
+++ sys/arch/i386/stand/bootxx/bootxx_ustarfs/Makefile  
16bc843fd72ba897193528b6fca738f3e87f4c6f
@@ -4,5 +4,6 @@ CPPFLAGS+=      -DSHOW_BANNER
 
 BOOTXX_SECTORS=16
 CPPFLAGS+=     -DSHOW_BANNER
+EXTRASRCS=     panic.c
 
 .include <../Makefile.bootxx>


Home | Main Index | Thread Index | Old Index