mirror of
https://github.com/stevenhowes/wbios.git
synced 2026-05-26 15:53:34 +01:00
d410ad0acb
Original source https://www.pcengines.ch/file/wbios111s.zip
242 lines
6.2 KiB
Plaintext
242 lines
6.2 KiB
Plaintext
;
|
|
; TinyBIOS, configured for National SC1100, PC Engines WRAP board
|
|
;
|
|
; (C)1998-2003 Pascal Dornier / PC Engines; All rights reserved.
|
|
;
|
|
; v1.11
|
|
; pd 051108 extend PCI reset pulse width
|
|
;
|
|
; v1.10
|
|
; pd 050625 add option for slower DRAM clock
|
|
;
|
|
; v1.09
|
|
; pd 050521 allow USB also for WRAP.2C (will add on WRAP.2D)
|
|
; some customers use this for timing.
|
|
;
|
|
; v1.08
|
|
; pd 050502 be less picky about IDE device IDs
|
|
; disable IR UART
|
|
;
|
|
; v1.07
|
|
; pd 050417 add delay on warm start (protect CF integrity)
|
|
; add serial console disable option
|
|
;
|
|
; v1.06
|
|
; pd 050227 fix serial port configuration; neutral message on
|
|
; WRAP setup; add PXE configuration option;
|
|
; Int 15 function E820 memory map.
|
|
; disable COM2 IR UART.
|
|
;
|
|
; v1.05
|
|
; pd 041021 add platform ID at end of flash
|
|
; pd 041011 fix PMR setting for GPIO14 (DOGFOOD pin)
|
|
;
|
|
; v1.04
|
|
; pd 040817 add support for 39VF020/39VF040 flash
|
|
;
|
|
; v1.03
|
|
; pd 040705 Configure latency + line size on ALL slots (incl. 68).
|
|
;
|
|
|
|
; start offset
|
|
|
|
STARTOFS equ 09000 ;start offset, must be multiple of 256
|
|
CFG_OFS equ 08000 ;start of config block
|
|
|
|
db STARTOFS dup 0 ;(start data cut out by BIOSSUM.EXE)
|
|
|
|
#if def CFG_OFS
|
|
include wrap_cfg.8 ;include config offsets
|
|
#endif
|
|
|
|
; platform specific options
|
|
|
|
;&&&PCI_WAIT: ;add PCI startup delay
|
|
|
|
WRAP2A: ;select new interrupt mapping
|
|
|
|
WRAP: ;select WRAP platform
|
|
|
|
ROM_BEG equ 0c800 ;start of option ROM scan
|
|
ROM_END equ 0f000 ;end of option ROM scan
|
|
|
|
PCI_NORST equ 090 ;don't reset 5530
|
|
PCI_NORST2 equ 098 ;don't reset USB
|
|
PCI_NORST3 equ 000 ;don't reset GX1
|
|
|
|
; PCI options
|
|
|
|
INTA equ 9 ;PCI interrupt assignment
|
|
INTB equ 10 ;also see PCI_TAB
|
|
INTC equ 11
|
|
INTD equ 12
|
|
INT0 equ 0ff ;no interrupt assigned
|
|
|
|
; general options
|
|
|
|
;BOOTBEEP: ;enables beep on bootup
|
|
|
|
;DEBUG: ;debug mode (Int 13 trace etc).
|
|
|
|
;QUICKMEM: ;no memory test (fill only)
|
|
MTEST_1PASS: ;quicker memory test (1 pass)
|
|
|
|
; hard disk, boot options
|
|
|
|
FORCE_LBA equ 1024 ;use LBA if more than x cylinders
|
|
|
|
;BOOT_AC: ;Boot A: first, then C:
|
|
;comment out for C: then A:
|
|
|
|
;HD_WAIT equ 20 ;Hard disk wait, max. x seconds
|
|
;HD_ENA equ 0 ;don't check HDD status before x seconds
|
|
|
|
HD_INFO: ;display hard disk info
|
|
|
|
HDD_LOOSE: ;don't be picky about device ID
|
|
|
|
HDD_EDD: ;enable EDD support
|
|
|
|
HDD_LBA: ;enable LBA support
|
|
|
|
HDD_NOSLAVE: ;don't look (and wait) for slave device
|
|
|
|
;HD_TIME equ 080 ;commented out = HDD power down disabled
|
|
;0 = code included, but no timeout
|
|
;1..240 = timeout x * 5 s units
|
|
;241..251 = timeout (x-240)*30 min
|
|
|
|
; keyboard options
|
|
|
|
NO_KBC: ;don't fail if KBC not present
|
|
|
|
INT15_24: ;option: A20 gate functions
|
|
|
|
;LED_UPDATE: ;Define to enable keyboard LED updates
|
|
;(NumLock, CapsLock, ScrollLock).
|
|
;Not recommended for real-time apps.
|
|
|
|
; serial port options
|
|
|
|
CONSOLE equ 03F8 ;serial port for console = COM1
|
|
CONRATE equ 12 ;default baudrate
|
|
;3 = 38400, 12 = 9600 - override by
|
|
;CFG_BAUD
|
|
CONINT equ 4 ;interrupt for console
|
|
COM_NO2400: ;prevent DOS 2400 baud setting...
|
|
|
|
;
|
|
; Signon prompt (must be at start of binary, 4KB step,
|
|
; for patch utility to work)
|
|
;
|
|
copysig: db "##" ;
|
|
copysum: db 0 ;checksum
|
|
copyrt: db "PC Engines WRAP.2B/2C v1.11",13,10,0
|
|
db copysig+256-$ dup (0) ;pad to 256 byte limit
|
|
|
|
include ..\message.8
|
|
;
|
|
; Include files
|
|
;
|
|
include ..\equ.8 ;general equates
|
|
include gxm.8 ;SC1200 chipset / system specific code
|
|
#if def DRAMOPT
|
|
include sdramopt.8 ;SC1200 SDRAM timing optimization
|
|
include i2c.8 ;SC1200 I2C routines
|
|
#endif
|
|
include sio.8 ;super I/O initialization
|
|
include post.8 ;POST / local modifications
|
|
include ..\post2.8 ;POST routines
|
|
include ..\debug.8 ;Debug routines, comment out
|
|
include ..\vid.8 ;video BIOS
|
|
include ..\int1x.8 ;miscellaneous interrupts
|
|
include ..\fdd.8 ;floppy BIOS
|
|
include ..\hdd.8 ;hard disk BIOS
|
|
include ..\com.8 ;serial BIOS
|
|
include ..\kbd.8 ;keyboard BIOS
|
|
include ..\kbtab.8 ;keyboard table
|
|
include ..\lpt.8 ;printer BIOS
|
|
include ..\rtc.8 ;timer / RTC BIOS
|
|
include ..\pci.8 ;PCI BIOS
|
|
include ..\pcipnp.8 ;PCI plug & play
|
|
#if def PS2MOUSE
|
|
include ..\ps2mous.8 ;PS/2 mouse BIOS
|
|
#endif
|
|
#if def CFG_OFS
|
|
include wrap_set.8 ;WRAP setup module
|
|
include wrap_xm.8 ;WRAP xmodem module
|
|
#endif
|
|
;
|
|
; OEM decision: verify diagnostic flags to decide
|
|
; whether to boot or display error messages
|
|
;
|
|
decide: mov dx,GPIOBASE+0 ;GPDO0 GPIO out 0 sc196
|
|
in eax,dx
|
|
or eax,040008 ;turn off LED2/G3 and LED3/G18
|
|
out dx,eax
|
|
|
|
mov dx,LPCBASE+010 ;LAD_EN LPC address enable sc204
|
|
in eax,dx
|
|
and eax,07FFF ;disable LPC flash
|
|
out dx,eax
|
|
|
|
mov ax,04008 ;PCI latency, cache line size
|
|
mov ebx,08000680C ;set for miniPCI + LAN
|
|
decide2: call pci_setw ;pd 040705 fix
|
|
inc bh
|
|
cmp bh,090
|
|
jb decide2
|
|
|
|
#if def wrap_set
|
|
call wrap_set
|
|
#endif
|
|
ret
|
|
;
|
|
; BIOS writeable configuration data
|
|
;
|
|
include ..\data.8
|
|
;
|
|
; INT 1A legacy entry point
|
|
;
|
|
db (0fe6e-$) dup 0ffh ;explicitly documented in the
|
|
jmp int1a ;PCI BIOS spec.
|
|
;
|
|
; PCI interrupt assignment table
|
|
;
|
|
PCI_TAB: db INT0,INT0,INT0,INT0 ;00 north bridge
|
|
db INT0,INT0,INT0,INT0 ;08
|
|
db INT0,INT0,INT0,INT0 ;10
|
|
db INT0,INT0,INT0,INT0 ;18
|
|
db INT0,INT0,INT0,INT0 ;20
|
|
db INT0,INT0,INT0,INT0 ;28
|
|
db INT0,INT0,INT0,INT0 ;30
|
|
db INT0,INT0,INT0,INT0 ;38
|
|
db INT0,INT0,INT0,INT0 ;40
|
|
db INT0,INT0,INT0,INT0 ;48
|
|
db INT0,INT0,INT0,INT0 ;50
|
|
db INT0,INT0,INT0,INT0 ;58
|
|
db INT0,INT0,INT0,INT0 ;60
|
|
#if def WRAP2A
|
|
db INTD,INTA,INT0,INT0 ;68 AD23 miniPCI J6
|
|
db INTB,INT0,INT0,INT0 ;70 AD24 LAN U13
|
|
db INTA,INT0,INT0,INT0 ;78 AD25 LAN U12
|
|
db INTC,INT0,INT0,INT0 ;80 AD26 LAN U11
|
|
db INTA,INTD,INT0,INT0 ;88 AD27 miniPCI J5
|
|
#else
|
|
db INT0,INT0,INT0,INT0 ;68
|
|
db INTD,INTA,INT0,INT0 ;70 AD24 miniPCI J6
|
|
db INTB,INT0,INT0,INT0 ;78 AD25 LAN U12
|
|
db INTC,INT0,INT0,INT0 ;80 AD26 LAN U11
|
|
db INTA,INTD,INT0,INT0 ;88 AD27 miniPCI J5
|
|
#endif
|
|
db INTA,INTB,INTC,INTD ;90 AD28 south bridge
|
|
db INTA,INTB,INTC,INTD ;98 AD29 USB
|
|
db INT0,INT0,INT0,INT0 ;remaining devices
|
|
pci_tab9: ;end of table
|
|
include ..\tables.8 ;ISA initialization tables
|
|
|
|
safeorg 0ffd0
|
|
db "PC Engines WRAP.2",0
|
|
|
|
include ..\reset.8 ;reset vector
|