📄 pcipost.asm
字号:
; []===========================================================[]
;
; NOTICE: THIS PROGRAM BELONGS TO AWARD SOFTWARE INTERNATIONAL(R)
; INC. IT IS CONSIDERED A TRADE SECRET AND IS NOT TO BE
; DIVULGED OR USED BY PARTIES WHO HAVE NOT RECEIVED
; WRITTEN AUTHORIZATION FROM THE OWNER.
;
; []===========================================================[]
;
;----------------------------------------------------------------------------
;Rev Date Name Description
;----------------------------------------------------------------------------
;R80A 05/15/99 TNY Fix USB node report conflict if "SHADOW_UNIT_64K"
; option defined.
;R23A 05/14/99 STV Fixed R23 some bug.
;R105C 05/10/99 TNY Fix IT8888 (P2I) bridge is not affected by NOGO,
; so we must set IT8888 to subtractive mode earlier
; for fixing ISA VGA fail.
;R95A 05/07/99 RCH Fixed system hang up if Mylex DAC960 RAID controller
; is plugged and PS2 mouse is not installed.
;
;R105B 05/06/99 TNY We must call the "Patch_IT8888F" hook earlier for
; fixing ISA VGA.
;R106 05/04/99 RCH Fixed system hang up in POST while TI/PC1225 Cardbus
; and ATI/Rage LT Pro AGP work together.
;
;R105A 04/20/99 TNY Add IT8888F DMA channel programming followed by ITE.
;R105 04/16/99 TNY Fix IT8888F (P2I bridge) MISA can not work.
;R82B 04/02/99 RCH Fixed PCI/SCSI option ROM can not be initialized if
; the VGA device number is 0CH and the SCSI device
; number is 08H.
;
;R105 04/02/99 ATY Fixed system hang up on Post Card "0B",Because PCIBus
; must to clear in Base Addresses 5.
;R102A 04/01/99 TNY "PCI_IRQ_SELECTABLE" only set INTA-D to be selectable.
;R104 03/26/99 RCH Fixed system hang up while AHA2940/SCSI and RTL8139
; /LAN are plugged together on ALi chipset.
;
;R103 03/26/99 TNY Fix W83628F (P2I bridge) port 80h decode fail
; problem.
;R102 03/25/99 RAY Add slot5 to slot9 support for PCI_IRQ_SELECTABLE
;R101 03/22/99 RAY Disable the IO resource assigned to P2P bridge if
; no IO request is found behind this bridge.
;
; This is added to solved the problem of Intel's
; 440BX & 440LX AGP bridge, which is not fully decoded,
; will have problem installing NT4.0 with S3 PCI VGA
;
; Note:
; ----
; To disable a P2P bridge address, we simply use a
; method of assigning a base IO address of 0F000h to
; the bridge but with a limit of ZERO.
;
;R100 03/18/99 RCH Don't assign IRQ 9 for built-in audio controller to
; Patch VIA/686 south bridge bug. System will hang up
; while installing Win98 if the audio use IRQ 9.
;R64B 03/18/99 MCH Added "ACPI_IRQ_Auto_Assign_Selectable" define with
; "ACPI_IRQ_Selectable" to choose Auto/Manual assign IRQ.
;R92C 03/18/99 TNY Fixed coding error.
;R99 03/16/99 RAY NO "Check_M1_CPU" if it is not 586 BIOS
;R98 03/15/99 TNY Set PCI Latency time to be 20h (not 40h) for fixing
; some VGA card compability issue.
;R97 03/11/99 RCH Added Intel/ICH0 IDE controller checking.
;R96 03/09/99 RCH 1. Added Boot from LAN devices with Bootstrap Entry
; Vector (BEV) boot ROM support.
; 2. Fixed BIOS can not boot from Intel/559 boot ROM
; if the PnP/BEV Boot is enabled.
;R91A 03/08/99 KVN Fixed lan_command byte restore wrong data.That reason
; is the lann_command byte be temp stored in XGROUP, but
; Xgroup will be clear in POST_82S, so it always restore
; zero.Now we put it to stack of POST
;R95 03/04/98 JSN Fixed Mylex DAC960 RAID controller card cannot work
; successfully while the PS/2 mouse is not plugging and
; used flash 2M support.
;R78A 03/04/99 KVN Dont set IDE DMA capable status for all of IDE drive
; that avoid ZIP read fail in NT with DMA driver (installed
; service pack 4)
;R92B 03/03/99 TNY Fixed R92 coding error.
;R85A 03/01/99 RIC Fixed that VGA ROM added by CBROM can't be search in
; follow case:
; 1. Add VGA ROM by using old CBROM.
; 2. VGA ID don't match with VGA ROM added by CBROM.
; (If VGA ID don't match with VGA ROM added by CBROM,
; BIOS will use first VGA ROM added by CBROM.)
;R92A 03/01/99 RCH Fixed legacy USB not working after PCI ROM scanning
; if the shadow unit is 64KB.
;R94 02/23/99 RCH Fixed Avance Logic ALG2301 PCI VGA card failed with
; ROM scanning. This card decode VGA ROM at address
; 0C0000H when command register is on even though the
; ROM decode enable bit in config. space 30H is off.
;R93A 02/22/99 RCH Also mask IRQ 14 of 8259 for first IDE channel.
;R93 02/11/99 RCH Added a switch to mask 8259 for IRQ 15 if on-chip
; second IDE channel is disabled for PIIX platforms.
;R92 02/10/99 TNY Fix VGA BIOS corrupted if ISA VGA plugged.
; (SHADOW_UNIT_64K)
;R91 01/10/99 RAY Add BIOS.CFG swith: PciLanROM_Control. This switch
; allows the user to decide whether to invoke the onboard
; LAN chip's ROM or not
;
;R90 02/10/99 RAY Support ISA VGA for chipset having shadow unit
; 64K
;R82A 02/10/99 RIC Fixed that some VGA card use C8000-CFFFF address on
; over 32K VGA BIOS.(ex: RIVA TNT AGP card)
; It will cause other PCI ROM to hang in POST 52h.
; So assign 64K(Don't assign 48K) for over 32K VGA BIOS
; using.
;R89 02/08/99 RCH Added AMD-750 IDE controller checking for release IRQ 14
; & IRQ 15 if controller is disabled.
;
;R88 02/05/99 RCH Assign IRQ to PCI-TO-PCI bridge if requested.
;R87 01/27/99 RCH Added STPC IDE controller checking for release IRQ 14
; & IRQ 15 if controller is disabled. Also change
; memory space address to F0000000H for PCI devices
; due to no fully address decode.
;R68A 01/27/99 RAY R68 Fix legacy-ISA's ROM shadowed fail which will
; cause all ISA PnP ROM space to be forced to shadowed.
; This is reported by a IBM token ring card cannot work
; properly.
;
;R86 01/21/99 MCH Added "No_Assign_IRQ5_For_PCILAN" define to avoid
; PCI LAN Card work in IRQ5 failure with some chipsets.
;R85 01/20/99 RCH Check option header (0AA55H) first then verify ROM
; checksum to save POST time if the ROM image is
; invalid.
;R84 01/15/99 KVN Fixed ROM size return from decompress to be destroy.
;R81A 01/13/99 MCH Fixed the coding error.
;R83 01/13/99 RAY Use Big real mode instead of protected mode during
; serching for VGA BIOS. Some M/B hangs here!
;
;R82 12/28/98 RAY 1. Add SHADOW_UNIT_64K switch for chipsets supporting
; shadow in terms of 64K Unit.
;
; Note: This swith only applies to PCIP_NEW.ASM
; NOT PCIPOST.ASM
;
; 2. Kill the switch: CT_SHADOW_RW_HOOK_SUPPORT so that
; from now on if you want to use PCIP_NEW.ASM, you
; have to provide "Ct_Shadow_RW" & "Ct_Shadow_RW"
; in the F000 Segment of PCICHIP.ASM
;
;R81 12/23/98 MCH Fixed for most PCI/VGA have random dots/lines in the
; screen while starting to install Win95/98 if Cyrix
; 6x86 M1/M2 CPU is used with PCI Peer Concurrency and
; OnChip USB is enabled in VIA/VPX chipsets platform.
; It needs to add "Patch_MX_CPU_For_PCI_Peer_Con_USB"
; define in the BIOS.CFG for effectiveness.
;R80 12/22/98 RCH Fixed wrong device node report for option ROM size
; is not match with shadow unit if the shadow unit is
; 64KByte.
;R63B 12/25/98 AVN Fixed SiS 5600/530/620 when IDE channel disable and
; IRQ cannot release, because channel enable bits had
; swap.
;R79 12/14/98 TNY Add "WHITNEY_SPECIAL" option.
; Reason:
; It is exhibited to be truned on command register
; before I/O & memory address assigned, otherwise the
; system will hang-up.
;R78 12/09/98 KVN Force set IDE DMA status register of capable bits for
; windows NT service pack 4 to properly check DMA
;R77 12/09/98 TNY Fix cache line size register of P2P bridge always be
; 2. (it should be 8)
;R76 12/08/98 RCH Added Intel/ICH IDE controller checking.
;R57C 12/02/98 MIL Enable Master bit for Cyrix CX55x0 Onboard P2P bridge.
;R75 12/02/98 MIL Added code for Cyrix CX55x0 Chipset IDE Device.
; Fixed IRQ 14/15 was assigned for PCI card when the
; Two IDE Channel doesn't disable.
;R74 11/24/98 JMS Fix can't use CD-ROM when use CMD CAS-646U IDE Card
;R73A 11/23/98 TNY Fix R73 cause P6-Dual-P system hang in POST31.
;R73 11/19/98 ATY Fixed bug that the AMD K6/3D CPU sometimes reset
; during POST in SiS5598, when USB legacy support is
; enabled.
; The causation is that the SS is destroyed when entry
; and leave SMI during protected mode period.
;R72 11/16/98 RAY No more Reserve_Irq_For_PciBootDev
;R71 11/16/98 TNY Some PCI/IDE card is not class ide card, so we can
; assign resource to it as real PCI card.
; (like CMD CAS-646U)
;R70 11/16/98 RCH Temporarily patch system hang if the PPGA 370 CPU
; (CPUID=0665H) is configured with clock ratio 6
; (400Mhz) or 6.5(433Mhz)
;R39C 11/10/98 LAW fixed more level 3 bus VGA select error and onboard P2P
; PCI VGA cannot select turn on
;R69 11/09/98 JKY Patch 3COM cardbus card in dos , assign card is bus 7
;R68 11/05/98 RAY Fix legacy-ISA's ROM shadowed fail.
;R63A 10/22/98 AVN Support IRQ 14/15 was assigned for PCI card to all
; SiS chipset.
;R56E 10/21/98 RCH Clear PME# status for PCI MODEM card with class code
; 078000H to support Wake-On-Ring feature.
;
;R56D 10/08/98 RCH Rewrite routine for clearing PME# status to support
; other devices (like MODEM etc.)
;
;R65A 10/06/98 AVN Move code to CHIPPOST.ASM to avoid check SiS6306 AGP
; share/local memory repeat, if other P2P card plug.
;R67 10/06/98 RAY Some M/B wants to reserved E000h IO space for
; their customers.
;
; Solution
; --------
; Add compiler variable "PCI_IO_LIMIT" for BIOS.CFG
; to config the top IO address which is appropriate.
; In this case, add "PCI_IO_LIMIT EQ 0E000h" in
; BIOS.CFG.
;
; Note: this variable only applies to the new PCIPOST.ASM
; i.e. PCIP_NEW.ASM
;
;R66 10/02/98 RAY Some M/B maker share the same "SCSI onboard BIOS"
; for 2 different M/B w/ and w/o SCSI devices.
; However the SCSI_SLOT location for the non-SCSI
; device is a P2P bridge.
;
; Here in the BIOS we do a checking for storage device
; before we disable the device on that SLOT
;
;R64A 10/02/98 RIC Add "No_ACPI_IRQ_Auto_Assign" definition for R64 code.
;R65 09/23/98 AVN Support SiS6306 AGP to check share/local memory using.
;R64 09/23/98 RIC Change ACPI IRQ assign algorithm to Auto-assigned.
; (This function is only support in VIA SouthBridge now)
; If you want to use old algorithm, please define:
; 1."No_ACPI_IRQ_Auto_Assign" for disabled new algorithm.
; 2."ACPI_IRQ_Selectable" for enabled old algorithm.
;R63 09/22/98 RCH Fixed IRQ 14/15 was assigned for PCI card when the
; HDD is installed on secondary channel and there is
; no device on primary channel for SiS chipset.
;R56C 09/22/98 RIC Fix that WOL hang in POST 0Dh in some VIA mainboard
; (with 596 SouthBridge).
;R62 09/18/98 RCH Open IRQ 6 as available IRQ for PCI devices. If
; platform need this feature, the value of
; "AVAILABLE_PCI_IRQ" must be modifed also to have IRQ 6
; available for assignment .
;R21C 09/11/98 RAY Fixed ISA occupied address temporary shadowed
; we invoking PCI ROM.
;
; This bug was found when PCI SCSI & the M-System chip
; were both installed. If the M-System(ISA) area was
; shadowed, the system would hang up inside the SCSI
; ROM since the M-System area was not only ROM but
; some direct memory-map storage on the chip.
;
;R57B 08/27/98 RCH Don't turn on bus master bit during PCI devices
; I/O & memory scanning to avoid system hang up for
; Sis5571 with 128MB SDRAM installed and the COGNEX
; capture card is used.
;R61 08/21/98 RCH Added a switch to support onboard PCI VGA located on
; PCI bus above "0" and the chipset support AGP.
; Note : "R22C" & "R21B" are used to fix working failure for
; "IBM ISA/PnP Token-Ring LAN card"
;R22C 08/21/98 RAY Do not report device node for ISA ROM which size is
; not matched with the shadow size
;
;R21B 08/21/98 RAY Temporary removed the changes that R21 & R21A had been
; made since they caused the ROM area assigned by ISA PnP
; being shadowed.
;
; Due to R21 & R21A fixed the combination of M-System
; ROM & PCI SCSI ROM conflict & this kind of combination
; is comparatively less that ISA PnP devices with ROM.
; Further investigation on this will be carried out to
; fix this combination.
;
;R56B 08/19/98 TNY Always clear PME status is plugged LAN card support
; PME#.
; Method:
; Rx(34h) is the power-management capabilities
; pointer. And the Cap register bit 31-27 is the
; PME-Support register ( 0 = No PME# supported).
; If PME# supported , we can R/W the Cap register bit 47
; to clear the PME status.
;R60 08/12/98 STV Added ACARD SCSI ID for Force_ROM_For_Some_Devices func.
;R59 08/11/98 RCH Patch system hang up while scanning onboard C&T 6XXXX
; VGA ROM register if Intel MMO module for 430TX is
; used.
;R52B 08/10/98 AVN Fixed when USB legacy support disable, no IRQ assign
; USB host control.
; The cause is that USB class code had destroy and the
; class code will same as alternative VGA type.
; So when define 'PCI_VGA_IRQ_SETUP_ITEM' and disable
; VGA IRQ in setup, that the USB IRQ is disable too.
; The correct solution save USB class code.
;R58 08/06/98 RAY Fixed PCI memory space conflict when VGA in bus 0 and
; a lots of PCI cards behind P2P bridge with much memory
; space requested.
;R56A 08/05/98 TNY 1.Fix some chipset WOL fail.
; 2.Fix WOL fail if two 558 LAN card plugged.
;R52A 08/03/98 ATY Fixed IRQ bug.If defined "ONBOARD_VGA_NEED_IRQ"
; "PCI_VGA_IRQ_SETUP_ITEM"
; and "No_Assign_IRQ_If_USB_Disable"
; after "VGA" Item choose "Disable",but "USB" Item is
; "Enable",In boot mean is show "NA".
;R57A 07/29/98 RCH Fixed USB legacy keyboard not working caused by R57
;R57 07/29/98 RCH Don't turn on bus master bit before assigning resource
; for PCI devices. It cause system hang up when COGNEX
; MVS 8100 is plugged and system memory is 128Mb for
; SiS5571 chipset.
;R56 07/28/98 TNY Clear PCI LAN card's power-on status register
; for fixing power-on fail next time.
;R55 07/23/98 KVN Change method of decompressing in protect mode
;R54 07/21/98 STV Fixed combination tow vga bios can't init.
;R53 07/16/98 KEN Added delay between two memory write/read at routine
; "Prepare_LMEM_Resource", otherwise the UMB will be
; recognized as all RAM occupied if some ISA cards
; installed.(e.g. Simple's PC card reader/writer)
;R52 07/08/98 AVN Fixed when USB host disable and POST still reserve
; one IRQ for USB host.
;R51A 07/08/98 AVN R51 just patch question, now it is no usefully.
; Beacuse the correct solution was found out.
;R51 07/02/98 AVN For SiS5591/5595 with ACER CDROM driver (DOS version
; vide-cdd.sys) will hang, if IRQ routine reg. no any
; IRQ10 assing, so we let IRQ10 can be firstly assign.
;R50 06/26/98 RCH Disabled VGA ROM space decode immediately after
; VGA BIOS is copied to buffer to fix display failure
; for CirrusLogic CL7555 PCI VGA card.
;R49 06/03/98 TNY Fix both AGP VGA card and P2P VGA card plugged, the
; AGP VGA card always is the highest priolity display.
;R48 06/02/98 TNY Add "ASSIGN_ONE_IRQ_FOR_PCI_IF_PnPOS_YES" option.
;R47A 05/26/98 JSN Fixed error code.
;R47 05/26/98 JSN Fixed VIA/Ali chipset system reboot while use AHA SCSI
; pci card at POST_52s when the CPU is AMD K6/3D and
; the USB keyboard is plugged.
; The causation is that the SMI is issued while the
; system is resided in protected mode.
; The solution is that using flat mode. reading and writing.
;R46 05/22/98 ADS Added "AGP_V3000_Card_Awlays_Assign_IRQ" to fix this
; AGP VGA card hang in Win95 with no assign IRQ.
;R45 05/08/98 RCH Fixed device(DAC960PG) using i960RP as I/O processor
; lose option ROM initialization.
;R39B 05/08/98 TNY Reduce code size.
;R39A 05/07/98 TNY Improve FirstInitAGP_Item for user to select to init
; AGP ,PCI slot and Onboard PCI vga.
;R44 05/07/98 RCH Fixed VGA can not work if it's ROM size is bigger
; than 32Kb for MediaGX platform
;R43 05/05/98 JDN Fixed codes for Cardbus can't initial
;R42 04/21/98 TNY Patch MATROX VR card.
; It's a VGA P2P card, we found the P2P's ending prefetchr
; egister must be modified: Rx(26) = 0 &
; Rx(27) = and not 08h.
;R41 04/17/98 RAY Skip checking the device ID for NCR SCSI ROM for the
; below 2 reasons:
;
; 1. NCR/Symbios can supports all series of NCR/Symbios
; SCSI device by one ROM
; 2. Some Symbios SCSI card will have a ROM with device
; ID different from the ID on chip
;
;R40 04/01/98 ATY Solved SiS5598 of Onboard vga to hang in "BF".
;R39 03/31/98 RAY Add support for users to select from which VGA card
; (AGP or PCI) should the BIOS initialize
;
;R38 03/31/98 RAY Add ONBOARD_VGA_P2P[BP] for PCICHIP.ASM to report a
; onboard VGA which goes thru a onboard P2P. Just fill
; ONBOARD_VGA_P2P[BP] with the P2P bridge's device(func)
; number to inform the PCI kernel.
;
; Note: It applies only to VGA P2P on Bus 0
;
;R37 03/29/98 RAY Add external definitions to fix old PnP setup
; compiling error.
;
;R36 03/24/98 RCH BIOS scan all PCI ROMs from bus 0 up to maximum bus
; number. Most of Raid cards are incorporated with a
; P2P bridge and the bus number assigned is higher
; than bus 0. In order to let user can select booting
; from Raid first instead of normal SCSI card on the
; bus 0, a switch "RAID_BOOT_OPTION" is used to reach
; this goal and user also have choice in the setup
; screen.
;R35 03/20/98 RCH Fixed system can not boot from SCSI drive if 3COM LAN
; boot ROM is executed before SCSI ROM initials.
; It's 3COM's boot ROM problem. BIOS just patch it.
; It is optional, need switch "LAST_INIT_FOR_LAN_ROM"
;R34A 03/20/98 RAY Fix Loop too long
;
; R34 caused the "loop Next_P2P_Request" instruction to
; jump to a label offset > 128 bytes. Use CMP & JNE
; instead !
;
;R34 03/19/98 RAY Problem fixed:
;
; When a lot of P2P are plugged, the IO range will
; confict.
;
;R33 03/12/98 KVN Added ChipAwayVirus ROM to F000 shadow
;R22B 03/10/98 RCH Patch system failure if VGA ROM is larger than 32Kb
; and working with LAN card under Win95 after
; suspend/resume.
;R32 03/10/98 RAY Force the base request register B1 to be 0 if that
; base register request a I/O space. This is added to
; to prevent some "BAD" PCI devices which report a
; unreasonable value but in fact they need resources
;
;R09A 03/06/98 RCH More modifications for Trend ChipAway anti-virus
; support, Skip ChipAway ROM initial if user disable
; in CMOS setup screen.
;
;R31 03/06/98 RAY The Intel 440LX AGP P2P bridge do not fully decode the
; I/O space. When the I/O range of this bridge is set to
; B000h-BFFFFh(when the total I/O request of Bus 0
; including P2P is 4000h), it will cause the S3 775 VGA
; card to have a blank screen(except the mouse cursor)
; under NT4.0 with the VGA device driver installed.
;
; We patch this by trying to prevent the bridge's I/O
; range to be set to B000-BFFF
;
; Remark: This happens only in this PCIP_NEW.ASM because
; the old PCIPOST.ASM "hard coded" the I/O range
; of a P2P bridge
;
;R30 02/27/98 KVN Public the routine: E000_A20_Off
;R29 02/26/98 RIC Fixed that the IRQ of USB can't release when USB
; disabled in "USB_IRQ_SELECTABLE" define.
;R21A 02/17/98 STV The Shadow set enable but not enable.
;R28 02/16/98 TNY Disable 3Eh(0) Parity Errre Response of AGP bridge
; followed by Intel.
;R27 02/02/98 KGN Add defin No_C8_DF_Shadow_Item for save F000 Code
; remove C800-DFFF shadow menuitem from bfeature
;R26 02/02/98 PAL Fixed error when shadow unit use 32k
;R25 01/22/98 JSN Fixed easy hang at 0b for Ali + ET6000 + AHA 2940W
;R19A 01/14/98 RAY Fixed compiler error in if MOUSE_IN_XGROUP is defined
;
;R24 01/14/98 STV Fixed bug. When PCI BIOS size > 64k ,post later shadow
; change error.
;R22A 01/14/98 RCH Fixed wrong size of ROM device node if option ROM size
; is bigger than 16Kb
;R23 01/13/98 STV Added all isa rom func for CBROM /isa.
; i.e : 1.cbrom /isa [Filename]
; 2.cbrom /isa [Filename] [xxxx:0]
;R22 01/13/98 RCH Intel/558 LAN and AHA/2940 SCSI working under Win95
; will cause a yellow caution if system enter and exit
; suspend mode. This only happen on Win95 and no problem
; on Win98.
;R21 01/08/98 PAL Fixed SCSI option rom hangs in combination with M-SYSTEMS
;R20 01/06/98 RCH Added optional feature with IRQ selectable for each
; PCI slots if define "PCI_IRQ_SELECTABLE"
;R19 01/03/98 STV Fixed Mylex DAC960 RAID controller card cannot work
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -