* unknown/unsupported videomode at boot leads to return in config manager

* boot config manager now allows to totally disable DMA access to HD

git-svn-id: svn://kolibrios.org@514 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Evgeny Grechnikov (Diamond) 2007-05-21 13:25:02 +00:00
parent 4c1ad6f2c7
commit 875ba74b27
9 changed files with 573 additions and 562 deletions

10
kernel/trunk/blkdev/hd_drv.inc Executable file → Normal file
View File

@ -54,6 +54,9 @@ hd_read:
call find_empty_slot ; ret in edi call find_empty_slot ; ret in edi
cmp [hd_error],0 cmp [hd_error],0
jne return_01 jne return_01
; DMA read is permitted if [allow_dma_access]=1 or 2
cmp [allow_dma_access], 2
ja .nodma
cmp [dma_hdd], 1 cmp [dma_hdd], 1
jnz .nodma jnz .nodma
call hd_read_dma call hd_read_dma
@ -229,8 +232,9 @@ write_cache:
cmp eax,[PARTITION_END] cmp eax,[PARTITION_END]
ja danger ja danger
cmp [allow_dma_write], 1 ; DMA write is permitted only if [allow_dma_access]=1
jnz .nodma cmp [allow_dma_access], 2
jae .nodma
cmp [dma_hdd], 1 cmp [dma_hdd], 1
jnz .nodma jnz .nodma
; Ž¡ê¥¤¨­ï¥¬ § ¯¨áì 楯®çª¨ ¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢ ¢ ®¤­® ®¡à é¥­¨¥ ª ¤¨áªã ; Ž¡ê¥¤¨­ï¥¬ § ¯¨áì 楯®çª¨ ¯®á«¥¤®¢ â¥«ì­ëå ᥪâ®à®¢ ¢ ®¤­® ®¡à é¥­¨¥ ª ¤¨áªã
@ -601,7 +605,7 @@ cache_chain_size db 0
cache_chain_started db 0 cache_chain_started db 0
dma_task_switched db 0 dma_task_switched db 0
dma_hdd db 0 dma_hdd db 0
allow_dma_write db 0 allow_dma_access db 0
endg endg
align 4 align 4

File diff suppressed because it is too large Load Diff

View File

@ -34,7 +34,7 @@ vrrmprint db "Apply VRR? (picture frequency greater than 60Hz"
; db " Select port [1-3]: ",0 ; db " Select port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0 ;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0 ;no_com2 db 13,10,186, " No COM2 mouse",0
ask_dma db "Use DMA for HDD writing? [1-yes/2-no]: ",0 ask_dma db "Use DMA for HDD access? [1-yes, 2-only for reading, 3-no]: ",0
;gr_direct db 186," Use direct LFB writing? " ;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0 ; db "[1-yes/2-no] ? ",0
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / "
@ -80,9 +80,10 @@ mode9 db "320x200, EGA/CGA 256 colors",0
mode10 db "640x480, VGA 16 colors",0 mode10 db "640x480, VGA 16 colors",0
probeno_msg db " (standard mode)",0 probeno_msg db " (standard mode)",0
probeok_msg db " (check nonstandard modes)",0 probeok_msg db " (check nonstandard modes)",0
dma_msg db " [b] Use DMA for HDD writing:",0 dma_msg db " [b] Use DMA for HDD access:",0
on_msg db " on",13,10,0 on_msg db " on",13,10,0
off_msg db " off",13,10,0 off_msg db " off",13,10,0
readonly_msg db " only for reading",13,10,0
vrrm_msg db " [c] Use VRR:",0 vrrm_msg db " [c] Use VRR:",0
preboot_device_msg db " [d] Floppy image: ",0 preboot_device_msg db " [d] Floppy image: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -34,7 +34,7 @@ vrrmprint db "Kinnita VRR? (ekraani sagedus suurem kui 60Hz"
; db " Vali port [1-3]: ",0 ; db " Vali port [1-3]: ",0
;no_com1 db 13,10,186, " No COM1 mouse",0 ;no_com1 db 13,10,186, " No COM1 mouse",0
;no_com2 db 13,10,186, " No COM2 mouse",0 ;no_com2 db 13,10,186, " No COM2 mouse",0
ask_dma db "Use DMA for HDD writing? [1-jah/2-ei]: ",0 ask_dma db "Use DMA for HDD access? [1-yes, 2-only for reading, 3-no]: ",0
;gr_direct db 186," Use direct LFB writing? " ;gr_direct db 186," Use direct LFB writing? "
; db "[1-yes/2-no] ? ",0 ; db "[1-yes/2-no] ? ",0
;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Motherboard memory [1-16 Mb / 2-32 Mb / "
@ -80,9 +80,10 @@ mode9 db "320x200, EGA/CGA 256 v
mode10 db "640x480, VGA 16 värvi",0 mode10 db "640x480, VGA 16 värvi",0
probeno_msg db " (standard reziim)",0 probeno_msg db " (standard reziim)",0
probeok_msg db " (kontrolli ebastandardseid reziime)",0 probeok_msg db " (kontrolli ebastandardseid reziime)",0
dma_msg db " [b] Use DMA for HDD writing:",0 dma_msg db " [b] Use DMA for HDD access:",0
on_msg db " sees",13,10,0 on_msg db " sees",13,10,0
off_msg db " väljas",13,10,0 off_msg db " väljas",13,10,0
readonly_msg db " only for reading",13,10,0
vrrm_msg db " [c] Kasuta VRR:",0 vrrm_msg db " [c] Kasuta VRR:",0
preboot_device_msg db " [d] Disketi kujutis: ",0 preboot_device_msg db " [d] Disketi kujutis: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -39,7 +39,7 @@ vrrmprint db "VRR verwenden? (Monitorfrequenz groesser als 60Hz"
; db " Waehle Port [1-3]: ",0 ; db " Waehle Port [1-3]: ",0
;no_com1 db 13,10,186, " Keine COM1 Maus",0 ;no_com1 db 13,10,186, " Keine COM1 Maus",0
;no_com2 db 13,10,186, " Keine COM2 Maus",0 ;no_com2 db 13,10,186, " Keine COM2 Maus",0
ask_dma db "Nutze DMA zum HDD Aufschreiben? [1-ja/2-nein]: ",0 ask_dma db "Nutze DMA zum HDD Zugriff? [1-ja, 2-allein fur Lesen, 3-nein]: ",0
;gr_direct db 186," Benutze direct LFB? " ;gr_direct db 186," Benutze direct LFB? "
; db "[1-ja/2-nein] ? ",0 ; db "[1-ja/2-nein] ? ",0
;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Hauptspeicher [1-16 Mb / 2-32 Mb / "
@ -88,6 +88,7 @@ probeok_msg db " (teste nicht-standard Modi)",0
dma_msg db " [b] Nutze DMA zum HDD Aufschreiben:",0 dma_msg db " [b] Nutze DMA zum HDD Aufschreiben:",0
on_msg db " an",13,10,0 on_msg db " an",13,10,0
off_msg db " aus",13,10,0 off_msg db " aus",13,10,0
readonly_msg db " fur Lesen",13,10,0
vrrm_msg db " [c] Nutze VRR:",0 vrrm_msg db " [c] Nutze VRR:",0
preboot_device_msg db " [d] Diskettenimage: ",0 preboot_device_msg db " [d] Diskettenimage: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -34,7 +34,7 @@ vrrmprint db "
; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0 ; db " ‚ë¡¥à¨â¥ ¯®àâ [1-3]: ",0
;no_com1 db 13,10,186," No COM1 mouse",0 ;no_com1 db 13,10,186," No COM1 mouse",0
;no_com2 db 13,10,186," No COM2 mouse",0 ;no_com2 db 13,10,186," No COM2 mouse",0
ask_dma db "<EFBFBD>α―®«μ§®Ά βμ DMA ¤«ο § ―¨α¨ ­  HDD? [1-¤ /2-­¥β]: ",0 ask_dma db "ˆá¯®«ì§®¢ âì DMA ¤«ï ¤®áâ㯠 ª HDD? [1-¤ , 2-⮫쪮 ç⥭¨¥, 3-­¥â]: ",0
;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? " ;gr_direct db 186," ˆá¯®«ì§®¢ âì «¨­¥©­ë© ¢¨¤¥®¡ãä¥à? "
; db "[1-¤ /2-­¥â]: ",0 ; db "[1-¤ /2-­¥â]: ",0
;mem_model db 13,10,186," Ž¡ê+¬ ¯ ¬ï⨠[1-16 Mb / 2-32 Mb / " ;mem_model db 13,10,186," Ž¡ê+¬ ¯ ¬ï⨠[1-16 Mb / 2-32 Mb / "
@ -80,9 +80,10 @@ mode9 db "320x200, EGA/CGA 256 梥⮢",0
mode10 db "640x480, VGA 16 梥⮢",0 mode10 db "640x480, VGA 16 梥⮢",0
probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0 probeno_msg db " (áâ ­¤ àâ­ë© ¢¨¤¥®à¥¦¨¬)",0
probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0 probeok_msg db " (¯à®¢¥à¨âì ­¥áâ ­¤ àâ­ë¥ ०¨¬ë)",0
dma_msg db " [b] <EFBFBD>α―®«μ§®Ά ­¨¥ DMA ¤«ο § ―¨α¨ ­  HDD:",0 dma_msg db " [b] ˆá¯®«ì§®¢ ­¨¥ DMA ¤«ï ¤®áâ㯠 ª HDD:",0
on_msg db " ¢ª«",13,10,0 on_msg db " ¢ª«",13,10,0
off_msg db " ¢ëª«",13,10,0 off_msg db " ¢ëª«",13,10,0
readonly_msg db " ⮫쪮 ç⥭¨¥",13,10,0
vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0 vrrm_msg db " [c] ˆá¯®«ì§®¢ ­¨¥ VRR:",0
preboot_device_msg db " [d] Ž¡à § ¤¨áª¥âë: ",0 preboot_device_msg db " [d] Ž¡à § ¤¨áª¥âë: ",0
preboot_device_msgs dw 0,pdm1,pdm2,pdm3 preboot_device_msgs dw 0,pdm1,pdm2,pdm3

View File

@ -18,7 +18,7 @@ display_atboot db 0 ; show boot screen messages ( 2-no )
preboot_graph db 0 ; graph mode preboot_graph db 0 ; graph mode
preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes) preboot_gprobe db 0 ; probe vesa3 videomodes (1-no, 2-yes)
preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no) preboot_vrrm db 0 ; use VRR_M (1-yes, 2- no)
preboot_dma_write db 0 ; use DMA for writing to HDD (1-yes, 2-no) preboot_dma db 0 ; use DMA for access to HDD (1-always, 2-only for read, 3-never)
preboot_device db 0 ; boot device preboot_device db 0 ; boot device
; (1-floppy 2-harddisk 3-kernel restart) ; (1-floppy 2-harddisk 3-kernel restart)
;!!!! 0 - autodetect !!!! ;!!!! 0 - autodetect !!!!

View File

@ -321,8 +321,8 @@ high_code:
; ----------------------------------------- ; -----------------------------------------
; movzx eax,byte [BOOT_VAR+0x9010] ; mouse port ; movzx eax,byte [BOOT_VAR+0x9010] ; mouse port
; mov [0xF604],byte 1 ;al ; mov [0xF604],byte 1 ;al
mov al, [BOOT_VAR+0x901F] ; DMA writing mov al, [BOOT_VAR+0x901F] ; DMA access
mov [allow_dma_write], al mov [allow_dma_access], al
mov al,[BOOT_VAR+0x9000] ; bpp mov al,[BOOT_VAR+0x9000] ; bpp
mov [ScreenBPP],al mov [ScreenBPP],al
movzx eax,word [BOOT_VAR+0x900A] ; X max movzx eax,word [BOOT_VAR+0x900A] ; X max

0
kernel/trunk/unpacker.inc Executable file → Normal file
View File