summaryrefslogtreecommitdiff
path: root/core/comboot.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-05-18 13:42:19 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-05-18 13:44:35 -0700
commit4826c90afd85d3bc8ee963de0bf1438340db865a (patch)
tree5975a83deef10ec240c35bcdafed5a168c49be55 /core/comboot.inc
parent208721a5fa25e5a12d31e7a51488bf5ea7e2a680 (diff)
downloadsyslinux-4826c90afd85d3bc8ee963de0bf1438340db865a.tar.gz
Try to HLT the processor during idlesyslinux-3.81-pre4
Try to HLT the processor during idle. All the events we care about should have interrupts associated with them, except possibly the serial console. Try to deal with the serial console by waiting some time before going into HLT, and giving the user the option of enabling the serial console interrupt, on the assumption that the BIOS will simply IRET. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/comboot.inc')
-rw-r--r--core/comboot.inc30
1 files changed, 3 insertions, 27 deletions
diff --git a/core/comboot.inc b/core/comboot.inc
index 4db0b3e0..bbb0ad71 100644
--- a/core/comboot.inc
+++ b/core/comboot.inc
@@ -385,24 +385,11 @@ comboot_getchar:
;
; INT 28h - DOS idle
;
-%ifdef HAVE_IDLE
comboot_int28:
cli
cld
- pushad
- xor ax,ax
- push ds
- push es
- mov ds,ax
- mov es,ax
- DO_IDLE
- pop es
- pop ds
- popad
+ call do_idle
iret
-%else
-comboot_int28 equ comboot_iret
-%endif
;
; INT 29h - DOS fast write character
@@ -718,22 +705,11 @@ comapi_dnsresolv equ comapi_err
;
; INT 22h AX=0013h Idle call
;
-;
-; *** FIX THIS ***
-; The idle call seems to have detrimental effects on some machines when
-; called from a COM32 context (WHY?) -- disable it for now.
-; *** IS THIS STILL TRUE? ***
-;
-%ifdef HAVE_IDLE
comapi_idle:
- DO_IDLE
+ call do_idle
clc
ret
-%else
-comapi_idle equ comapi_err
-%endif
-
;
; INT 22h AX=0014h Local boot
;
@@ -1061,7 +1037,7 @@ zero_string db 0 ; Empty, null-terminated string
; in pxe_detect_nic_type
;
feature_flags:
- db 3 ; Have local boot, idle is noop
+ db 1 ; Have local boot, idle is not noop
feature_flags_len equ ($-feature_flags)
err_notdos db ': attempted DOS system call INT ',0