;Inclusion guard ifndef _mbiosequ_equ_ _mbiosequ_equ_ equ 1 .586p .xlist ;**************************************************************************** ;**************************************************************************** ;** ** ;** (C)Copyright 1985-2001, American Megatrends, Inc. ** ;** ** ;** All Rights Reserved. ** ;** ** ;** 6145-F Northbelt Pkwy, Norcross, GA 30071 ** ;** ** ;** Phone (770)-246-8600 ** ;** ** ;**************************************************************************** ;**************************************************************************** ;**************************************************************************** ; $Header: /Alaska/SOURCE/Modules/CSM/Generic/OEM Hooks/MBIOSEQU.EQU 1 5/16/06 2:39p Olegi $ ; ; $Revision: 1 $ ; ; $Date: 5/16/06 2:39p $ ;**************************************************************************** ; Revision History ; ---------------- ; $Log: /Alaska/SOURCE/Modules/CSM/Generic/OEM Hooks/MBIOSEQU.EQU $ ; ; 1 5/16/06 2:39p Olegi ; ; 16 4/23/03 3:38p Anandj ; Added error type 'NO_PS2_MOUSE_ERR'. ; ; 15 1/28/03 4:01p Dickh ; New module id for osb_logo_module_id (On Screen Branding) added. ; ; 14 1/16/03 3:29p Dickh ; Added comment for module IDs F0 - FF (they are allocated for OEM use). ; ; 13 12/23/02 1:23p Anandj ; Currently BIOS supports 5 error types. ; Informal, Fatal, Warning, General and CMOS related enumerated 1 to 5. ; Types 6 and 7 are reserved for future BIOS core use. Error types 8 to F ; are to be used by OEM. ; ; 12 12/20/02 12:51p Kevinm ; Moved the structure SETUP_ATA_TABLE_STRUC here from SETUP.ASM. ; ; 11 9/11/02 11:17a Kevinm ; Updated to support up to 4 IDE channels. ; ; 10 5/24/02 1:40p Anandj ; Added 'DISPLAY_TOKEN_MESSAGE_UNBUFFERED' in the ouput API equates ; ; 9 5/01/02 10:37a Anandj ; Added a new error type PASSWORD_CHECK_ERROR_NON_CRITICAL the default ; behavior is set to warning. ; ; 8 4/09/02 5:07p Juand ; Added CID_CUSTOM_FOR_OEM as requested by INTEL. ; ; 7 12/14/01 10:55a Juand ; Defined bits three and four for the variable boot_block_flag. ; ; 6 12/04/01 9:42a Anandj ; Fixed the problem in the header of e820_info_struc ; ; 5 12/03/01 11:30a Anandj ; updated header for e820_info_struc ; ; 4 11/29/01 9:31a Anandj ; Additional memory type 'ram_os_1M' to support memory above 4GB ; the upper bit means he granularity is 1MB. ; While reporting we have to convert memory in no of bytes and reset the ; upper bit for memory type. ; ; 3 10/02/01 7:06p Sudhakaro ; Removed the invalid VSS prefix ("*"). ; ; 2 10/02/01 6:10p Sudhakaro ; Changed MIDs to CIDs to avoid confusion with ROM module IDs. ; ; 12 9/08/01 7:33a Sudhakaro ; Removed currently unused error code "UNKNOWN_BIOS_ERR". ; ; 11 8/28/01 8:28p Sudhakaro ; Added the equate CURSOR_COLUMN_FOR_IDE_INFO, being used in IDE ; information display. ; ; 10 8/22/01 6:09p Kevinm ; Added a module id for PARTIES logo. ; ; 9 8/17/01 7:39p Sudhakaro ; Kernel error codes are redefined to have lower byte of error codes ; directly mapped to SMBIOS error bits for errors defined in SMBIOS spec. ; ; 8 8/15/01 2:06p Sudhakaro ; Module IDs are allocated for all different components of BIOS. Error ; codes are modified to have Module ID in the upper byte. ; ; 7 8/13/01 3:44p Sudhakaro ; Added the equate CDS_0Eh_DATE_TIME_ERR_BIT for Bit-2 of CMOS Diagnostic ; Status Byte. ; ; 6 7/24/01 9:30a Anandj ; Macro eK_PROC is moved to mbiosmac.mac. ; ; 5 7/24/01 9:01a Anandj ; Macros IO_DELAY and IO_DELAY_BB are moved to mbiosmac.mac. ; ; 4 7/10/01 5:34p Chrism ; Deleted reference to num_proc_port ; ; 2 5/31/01 3:24p Anandj ; Changed the IO_DELAY macro and created IO_DELAY_BB for stackless use ; ; 1 5/25/01 1:38p Anandj ; First Check in on CORE database ; ; 5 5/10/01 4:51p Sudhakaro ; Updated to use the macro SET_ORG instead of ORG directive, so that ; MAPGUARD can detect the code overlap problems. ; ; 4 5/01/01 3:04p Sudhakaro ; Updated for and key functionality during POST by shared ; data segment (BBLK_DSEG) between BootBlock and POST modules. ; ; 2 3/28/01 12:42p Sudhakaro ; Updated for TBLv1.1 integration ; ; 9 3/01/01 5:01p Juand ; Added include ek.equ for Table Driven POST. Removed multiple copyright ; blocks. ; ; 8 2/21/01 1:54p Juand ; Deleted temporary module id 30h that was being used for the BIGBIOS ; module. ; Created two new module_ids for SLAB and BCP data ; ; 7 2/20/01 9:22a Juand ; Deleted unused equates. ; ; 6 2/05/01 10:49a Juand ; Removed I2O equate. ; ; 5 1/11/01 5:29p Juand ; Removed int13 odule Header ; ; 4 12/14/00 6:04p Juand ; Removed RUNTIME Header structure definition. ; ; 3 11/21/00 1:50p Juand ; BigBIOS changes. ; ; 2 1/31/00 7:04p Juand ; Added Inclusion guard. ; ; 1 11/29/99 11:48a Debkumar ; Initial CheckIn for Core 7.00. ; ; 2 3/16/99 6:27p Robertj ; Added initial ADM code (beta version) ; ; 3 1/05/98 11:42a Debkumar ; New module IDs added. ARMD emulation type added. ; ; 1 9/16/97 11:22a Debkumar ; Files changed from 063000 to 063001 ; ; 3 5/23/97 7:41a Debkumar ; Equates added for ACPI Table Module ID (0Fh) and ACPI AML Module ID ; (10h) ; ; 2 3/12/97 3:51p Debkumar ; Module ID for OEM Logo Module added. ; ; 1 1/31/97 11:30a Debkumar ; New files for 62700. ; ; 2 1/09/97 3:42p Debkumar ; Equates added for Password used, FDD/HDD access control bits used in ; 40:EA. ; ; 1 1/02/97 10:50a Debkumar ; Started with 6.26.02 files. ; ; 9 12/30/96 2:03p Debkumar ; ROMID and INT13 module IDs added. ; ; 1 11/04/96 6:06p Debkumar ; ; 8 11/01/96 11:40a Debkumar ; ROMID Module ID equate (0Ch) added. ; ; 2 8/28/96 9:14a Mandal ; Synchronized with bestlink current changes for 6.26 release with USB ; support, INT10.BIN module, HDISK/CDROM changes. ; ; 6 4/03/96 6:33p Mandal ; MPS module ID added. ; ; 3 2/19/96 6:47p Mandal ; BBLK_RUNTIME_INTERFACE_MODULE_ID equate added. ; ; 2 1/12/96 5:06p Dickh ; Added SourceSafe keywords to track revision history. ;**************************************************************************** ;**************************************************************************** ;---------------------------------------; ; COMPRESSED BIOS EQUATES ; ;---------------------------------------; setup_binary_module_id equ 04h ; SETUP Binary identifier bblk_runtime_interface_module_id equ 08h; Module containing uncompress routine notebook_module_id equ 0Ah ; NoteBook BIOS Module identifier romid_module_id equ 0Ch ; ROMID Module identifier oem_logo_module_id equ 0Eh ; OEM Logo Module identifier acpi_table_module_id equ 0Fh ; ACPI Table Module identifier acpi_aml_module_id equ 10h ; ACPI AML Code Module identifier micro_code_module_id equ 11h ; P6 Micro Code Module identifier micro_code_patch_length equ 08h ; #of bytes added to Micro code..this ; helps us update BIOS checksum when ; micro code gets updated in runtime ; IF THIS EUQATE GETS CHANGED, NECESSARY ; CHANGES NEEDS TO BE DONE IN CORE.MAK FILE memory_size_module_id equ 15h ; Memory Sizing Module identifier bios_debug_module_id equ 17h ; BIOS Debug Module identifier adm_module_id equ 18h ; Display Manager Module identifier adm_font_module_id equ 19h ; Font Module identifier small_logo_module_id equ 1ah ; Small Logo(s) Module identifer slab_module_id equ 1bh ; Single Link Arch BIOS Module identifier bcp_info_module_id equ 1ch ; BCP data area module identifier ; 1D-1F..Reserved for future use ; 20-2F..For User defined module pci_option_rom_id equ 20h ; PCI Option ROM identifier multi_language_module_id equ 21h ; Multi Language identifier ; 30-3F..Reserved for future use serial_redir_module_id equ 2fh parties_logo_module_id equ 30h osb_logo_module_id equ 31h ; On Screen Branding Logo Package ; F0-FF..Reserved for OEM use, these ; IDs should never be used by AMI. ;-----------------------------------------------------------------------; ; BOOT DRIVE EQUATES ; ;-----------------------------------------------------------------------; hdd0_boot_drive equ 01h hdd1_boot_drive equ hdd0_boot_drive+1 hdd2_boot_drive equ hdd1_boot_drive+1 hdd3_boot_drive equ hdd2_boot_drive+1 hdd4_boot_drive equ hdd3_boot_drive+1 hdd5_boot_drive equ hdd4_boot_drive+1 hdd6_boot_drive equ hdd5_boot_drive+1 hdd7_boot_drive equ hdd6_boot_drive+1 fdd0_boot_drive equ hdd7_boot_drive+1 fdd1_boot_drive equ fdd0_boot_drive+1 afd_boot_drive equ fdd1_boot_drive+1 afd_hdd_boot_drive equ afd_boot_drive+1 cd_boot_drive equ afd_hdd_boot_drive+1 scsi_boot_drive equ cd_boot_drive+1 network_boot_drive equ scsi_boot_drive+1 ;---------------------------------------; ; MISCELLANEOUS EQUATES ; ;---------------------------------------; level_1_int equ 70h ; master int controller base level_2_int equ 08 ; slave int controller base beep_one_on_time equ 0e0h ; speaker on time beep_one_off_time equ 0d0h ; speaker off time beep_one_envelope_time equ 080h ; envelope time for single beep beep_error_off_time equ 6 ; silence period for error beep ;---------------------------------------; ; 8254 TIMER EQUATES ; ;---------------------------------------; timer_control_port equ 43h ; 8254 control register timer_2_port equ 42h ; 8254 ch_2 select timer_1_port equ 41h ; 8254 ch_1 select timer_0_port equ 40h ; 8254 ch_0 select timer_delta_wait_time equ 10h ; time for delta count test timer_delta_count_diff equ 10 ; tollerable delta count diff timer_delta_1_data equ 0ffh ; data for delta count 1 test timer_delta_2_data equ 0eeh ; data for delta count 2 test refresh_delta_count_diff equ 10 ; refresh duty tolerance. ;---------------------------------------; ; 8042 KB CONTROLLER EQUATES ; ;---------------------------------------; kb_stat_port equ 64h ; keyboard status port sound_port equ 61h ; parity,refresh,sound,timer .. refresh_port equ 61h kb_data_port equ 60h ; keyboard data port kb_buffer_wait_time equ 12 ; kb buffer full loop count ;---------------------------------------; ; CMOS EQUATES ; ;---------------------------------------; cmos_addr_port equ 70h ; address selection port cmos_data_port equ 71h ; data r/w port shutdown_code_1 equ 01 ; shutdown after memory error shutdown_code_2 equ 02 ; v_mode exception shut code shutdown_code_3 equ 03 ; shutdown after memory test shutdown_code_6 equ 06 ; to display memory size ;---------------------------------------; ; VIRTUAL MODE EQUATES ; ;---------------------------------------; v_mode_msw equ 0001h ; virtual mode machine status v_mode_idt_size equ 0100h ; virtual mode IDT segment size v_mode_dum_size equ 0000h ; virtual mode dummy seg size v_mode_dum_offs equ 0000h ; virtual mode dummy offset v_mode_ds_size equ 0fc00h ; virtual mode (DS) seg size v_mode_ds_offs equ 0400h ; virtual mode (DS) offset v_mode_es_size equ 0ffffh ; virtual mode (ES) seg size v_mode_es_offs equ 0000h ; virtual mode (ES) offset v_mode_ss_size equ 0100h ; virtual mode (SS) seg size v_mode_ss_offs equ 0300h ; virtual mode (SS) offset v_mode_cs_size equ 0ffffh ; virtual mode (CS) seg size v_mode_cs_offs equ 0000h ; virtual mode (CS) offset v_mode_es_entry equ 40h ; virtual mode (ES) entry ,, ;---------------------------------------; ; 8237 DMA CONTROLLER EQUTES ; ;---------------------------------------; dma_1_byte_ptr_ff_reset equ 0ch ; DMA unit 1 byte ptr f/f clear dma_unit_1_command_port equ 08h ; DMA unit 1 command port dma_unit_1_base equ 00h ; DMA unit 1 base dma_unit_1_mask_clear equ 0eh ; DMA unit 1 mask clear dma_unit_1_mode equ 0bh ; DMA unit 1 mode dma_unit_1_master_clear equ 0dh ; DMA unit 1 reset port dma_2_byte_ptr_ff_reset equ 0d8h ; DMA unit 2 byte ptr f/f clear dma_unit_2_master_clear equ 0dah ; DMA unit 2 reset port dma_unit_2_command_port equ 0d0h ; DMA unit 2 command port dma_unit_2_base equ 0c0h ; DMA unit 2 base dma_unit_2_mask_clear equ 0dch ; DMA unit 2 mask clear dma_unit_2_mode equ 0d6h ; DMA unit 2 mode dma_unit_2_writ_req_reg equ 0d2h ; DMA unit 2 write request dma_unit_2_mask_s_r_reg equ 0d4h ; DMA unit 2 mask set reset dma_page_base equ 80h ; DMA page register base dma_page_ch_1 equ 87h ; DMA page channel 1 dma_page_ch_2 equ 83h ; DMA page channel 2 dma_page_registers equ 16 ; DMA page registers count dma_channel_registers equ 8 ; DMA channel registers count ;---------------------------------------; ; 8259 INTERRUPT CNTLR EQUATES ; ;---------------------------------------; i_m_m_port equ 21h ; interrupt master mask port i_s_m_port equ 0a1h ; interrupt slave mask port i_c_m_port equ 20h ; interrupt cntlr master port i_c_s_port equ 0a0h ; interrupt cntlr slave port ;---------------------------------------; ; E-820 information structure ; ;---------------------------------------; ; ;---------------------------------------------------------------------------- ; Name: e820_info_struc ; ; Fields: Name Type Description ; ------------------------------------------------------------ ; start_addr DWORD 32-bit start address ; size_bytes DWORD size in bytes ; mem_type byte memory type ; ; Description: Structure used to define E820 information by the BIOS as well ; as emodules. ; ; different available memory types are ; "!!!! only Following types are reported to OS !!!!" ; ram_os(01h) - memory type available to OS ; ram_res(02h) - memory type reserved by system and ; must not be used by OS ; ram_acpi_data(03h)- ACPI Reclaim data area ; ram_acpi_nvs(04h)- ACPI NVS area ; ; "!!!! FOR BIOS INTERNAL PURPOSE ONLY !!!!" ; ram_dummy(0FFh) Dummy entry for BIOS internal use. ; "!!!! Addition for memory above 4GB !!!!" ; ram_os_1M(081h) - memory type available to OS the upper ; bit means he granularity is 1MB. ; While reporting we have to convert ; memory in no of bytes and reset the ; upper bit for memory type. ; ; ; ;---------------------------------------------------------------------------- ; e820_info_struc struc start_addr dd ? ; 32-bit start address size_bytes dd ? ; size in bytes mem_type db ? ; memory type e820_info_struc ends ram_os equ 01h ; memory type available to OS ram_res equ 02h ; memory type reserved by system and ; must not be used by OS ram_acpi_data equ 03h ; ACPI Reclaim data area ram_acpi_nvs equ 04h ; ACPI NVS area ram_dummy equ 0FFh ; Dummy entry for BIOS internal use. ; Addition for memory above 4GB "!!!! FOR INTERNAL PURPOSE ONLY !!!!" ram_os_1M equ 081h ; memory type available to OS ; the upper bit means he granularity ; is 1MB. ; While reporting we have to convert ; memory in no of bytes and reset the ; upper bit for memory type. ; ;---------------------------------------; ; FDD/HDD Access Control Equates ; ; in 40:EA (OEM_SUPPORT_BYTE) ; ;---------------------------------------; password_used_bit equ 00000001b; Bit-0 = 0..No Password or Supervisor Password used ; 1..User Password used fdd_remove_bit equ 00000010b; Bit-1 = 0..FDD is present ; 1..FDD is removed fdd_access_control_bit equ 00000100b; Bit-2 = 0..FDD R/W ; 1..FDD R/O hdd_access_control_bit equ 00001000b; Bit-3 = 0..HDD R/W ; 1..HDD R/O ; Bit7-4 = Not Used ;---------------------------------------; ; ARMD Device Emulation Type ; ;---------------------------------------; armd_fdd_emulation equ 00h ; 00 -> ARMD to be emulated as Floppy armd_hdd_emulation equ 01h ; 01 -> ARMD to be emulated as Hard Disk ;------------- BIOS_SCRATCH ------------; bios_f_shadow_bit equ 00000001b; F000 shadow information ; 0 = Disabled ; 1 = Enabled bios_e_shadow_bit equ 00000010b; E000 shadow information ; 0 = Disabled ; 1 = Enabled ; Bit3-2........NOT USED floppy_error_bit equ 00010000b; POST Floppy Error Status ; 0 = FDD ok ; 1 = FDD error acpi_aware_os_bit equ 00100000b; ACPI Aware OS Information ; 0 = Not an ACPI Aware OS ; 1 = ACPI Aware OS bios_post_complete_bit equ 01000000b; BIOS POST information ; 0 = POST not complete ; 1 = POST complete int19_display_bit equ 10000000b; Active display during INT19 ; 0 = BIOS display ; 1 = OEM display ;------------- RT_CMOS_BYTE ------------; rt_cmos_os2_bit equ 10000000b; bit-7 = OS2 compatibilty mode rt_cmos_ps2_bit equ 01000000b; bit-6 = PS2 Mouse support rt_cmos_virus_bit equ 00100000b; bit-5 = virus protection rt_cmos_password_bit equ 00010000b; bit-4 = password check rt_cmos_parity_bit equ 00001000b; bit-3 = parity check rt_cmos_6064_bit equ 00000100b; bit-2 = 60/64 emulation ; bit1-0..not used ;-----------------------------------------------------------------------; ; CONTROLLER_DETAILS_STRUC ; ;-----------------------------------------------------------------------; CHANNEL_DETAILS_STRUC struc wBasePortAddress dw ? ; Base Port Address wControlPortAddress dw ? ; Control Port Address wBusMasterPortAddress dw ? ; Bus Master Port Address wPtrISR dw ? ; ptr to IRQ ISR bIRQ db ? ; IRQ Value wBusDeviceFunction dw ? ; Bus#, Device#, Function# CHANNEL_DETAILS_STRUC ends ;-----------------------------------------------------------------------; ; bMiscInfo Details ; ;-----------------------------------------------------------------------; ; following information is built from setup question i13_virus_protection_bit equ 00000001b; bit-0 = virus protection information ; 0 = disabled, 1 = enabled ; following information is built from IDE_PARAM_VALIDATE_BIT in _MISC_INFO byte i13_ata_parameter_validate_bit equ 00000010b; bit-1 = ATA parameter validate information ; 0 = do not vaildate user selection ; 1 = validate user selection i13_fdd_setup_bit equ 00000100b; bit-2 = FDD init information ; 0 = do not execute FDD setup ; 1 = execute FDD setup i13_display_smart_status_bit equ 00001000b; bit-3 = Display SMART staus information ; 0 = do not display SMART status ; 1 = display SMART status i13_display_dma_status_bit equ 00010000b; bit-4 = Display DMA staus information ; 0 = do not display DMA status i13_activate_INT13_ISR_bit equ 00100000b; bit-5 = 1 to ; ; Bit7-5= not used ;-----------------------------------------------------------------------; ; ATA(PI) INFORMATION USED BY SETUP SERVER ; ;-----------------------------------------------------------------------; SETUP_ATA_INFO_STRUC struc bType db ? ; device type 0/1/2/3 for None/HDD/CDROM/ARMD wInfo dw ? ; bit-mapped information (bit definitions, see below) wCylinder dw ? ; #of cylinders (1-based) bHead db ? ; #of heads (1-based) bSPT db ? ; #of sectors per track dNoOfSectors dd ? ; total #of sectors bPIOMode db ? ; PIO Mode bADMAMode db ? ; Async DMA Mode (single/multi word depends on the INFO Word) bUDMAMode db ? ; Sync (Ultra) DMA Mode bMultiSector db ? ; #of sectors that can be xferred in one interrupt bSizeString db 8 dup (?); ASCIIZ Size string bVendorString db 41 dup (?); ASCIIZ Vendor string SETUP_ATA_INFO_STRUC ends ;-----------------------------------------------------------------------; ; SETUP_ATA_TABLE ; ; this table contains the information regarding the base address and the; ; device selection value to be used by BIOS for auto-detecting all the ; ; ATA(PI) devices before going to Setup. ; ;-----------------------------------------------------------------------; SETUP_ATA_TABLE_STRUC STRUC wBasePortAddress dw ? ; base port address bDeviceSelection db ? ; 80h/81h for master/slave SETUP_ATA_TABLE_STRUC ENDS ;-----------------------------------------------------------------------; ; INFO WORD DETAILS in SETUP_ATA_INFO_STRUC ; ;-----------------------------------------------------------------------; chs_bit equ 00000001b; bit-0 = 1..CHS information valid pio_bit equ 00000010b; bit-1 = 1..PIO supported block_bit equ 00000100b; bit-2 = 1..block xfer supported lba_bit equ 00001000b; bit-3 = 1..LBA translation supported smart_bit equ 00010000b; bit-4 = 1..SMART supported async_sw_dma_bit equ 00100000b; bit-5 = 1..Async SingleWord DMA supported async_mw_dma_bit equ 01000000b; bit-6 = 1..Async MultiWord DMA supported sync_dma_bit equ 10000000b; bit-7 = 1..Sync DMA supported ;-----------------------------------------------------------------------; ; BOOT_BLOCK_FLAG ; ; these bits define the different programming options based on the keys ; ; pressed during power-on. ; ;-----------------------------------------------------------------------; ; NOTE: the HALT_AFTER_PRGRAM_BIT is build during BIOS building, all other ; bits are set/reset properly in recovery code according to the forced ; recovery condition (e.g. key-strokes pressed) during power-on. halt_after_program_bit equ 00000001b; bit-0 = 0..reset after programming ; 1..halt after programming destroy_cmos_bit equ 00000010b; bit-1 = 0..do not destroy cmos ; 1..destroy cmos destroy_nvram_bit equ 00000100b; bit-2 = 0..do not destroy NVRAM ; 1..destroy NVRAM recovery_request_bit equ 00001000b; bit-3 = 0..Do not force FLASH recovery ; 1..Force FLASH recovery recovery_result_bit equ 00010000b; bit-4 = 0..FLASH recovery success ; 1..FLASH recovery failed ; bit-5.....reserved for future use rom_checksum_bit equ 01000000b; bit-6 = 0..existing ROM checksum good ; 1..existing ROM checksum bad flash_program_bit equ 10000000b; bit-7 = 0..do not program Flash part ; 1..program Flash part ;-----------------------------------------------------------------------; ; ATAPI DEVICE SUPPORT IN BOOT BLOCK RECOVERY ; ;-----------------------------------------------------------------------; ; ATAPI_HARDWARE_ENTRY ; ;-----------------------------------------------------------------------; ATAPI_HARDWARE_ENTRY_STRUC struc wBasePort dw ? ; Base Port Address wControlPort dw ? ; Control Port Address bDriveSelection db ? ; Drive Selection Parameter bIRQ db ? ; IRQ used ATAPI_HARDWARE_ENTRY_STRUC ends ;-----------------------------------------------------------------------; ; ATAPI_HARDWARE_INFO ; ;-----------------------------------------------------------------------; ATAPI_HARDWARE_INFO_STRUC struc wNoEntry dw ? ; #of entries present ATAPI_HARDWARE_INFO_STRUC ends ;-----------------------------------------------------------------------; ; WFM LOCKOUT CAPABILITIES BIT MAP DEFINITION ; ;-----------------------------------------------------------------------; ; 1 0 ; 5432109876543210 wfm_hard_onoff_bit equ 0000000000000001b; bit-0, Reserved (No longer used) wfm_soft_onoff_bit equ 0000000000000010b; bit-1, Soft On/Off wfm_reset_switch_bit equ 0000000000000100b; bit-2, Reset Button wfm_mouse_bit equ 0000000000001000b; bit-3, Mouse wfm_ctrl_alt_del_bit equ 0000000000010000b; bit-4, Ctrl-Alt-Del wfm_all_key_ecad_bit equ 0000000000100000b; bit-5, All Keyboard Activity except Ctrl-Alt-Del wfm_not_used_bits equ 1111111111000000b; bit15-6..Not used ;-----------------------------------------------------------------------; ; INFORMATION ABOUT THE MEMORY SIZING MODULE OUTSIDE BOOTBLOCK ; ;-----------------------------------------------------------------------; ; MEMORY SIZING MODULE INFO STRUCTURE ; ; this information will be present at the start of memory sizing code. ; ;-----------------------------------------------------------------------; MEMORY_SIZING_INFO_STRUC struc dEntryOffset dd 1 dup (?) ; entry offset of memory sizing code wEntrySelector dw 1 dup (?) ; entry selector of memory sizing code wOffsetGDTLabel dw 1 dup (?) ; pointer to GDT Label having GDT table address and length wOffsetGDTTable dw 1 dup (?) ; pointer to GDT Table MEMORY_SIZING_INFO_STRUC ends ;-----------------------------------------------------------------------; ; GDT LABEL STRUCTURE IN MEMORY SIZING MODULE ; ; the GDT Label contains information about the length and the physical ; ; address of the GDT table. ; ;-----------------------------------------------------------------------; MEMORY_SIZING_GDT_LABEL_STRUC struc wLength dw 1 dup (?) ; length (0-based) of GDT table dGDTTableAddress dd 1 dup (?) ; 32Bit physical address of GDT table MEMORY_SIZING_GDT_LABEL_STRUC ends ;-----------------------------------------------------------------------; ; GDT TABLE STRUCTURE IN MEMORY SIZING MODULE ; ; the GDT Table information which is present in memory sizing module. ; ;-----------------------------------------------------------------------; MEMORY_SIZING_GDT_TABLE_STRUC struc bDummyDescriptor db 8 dup (?) ; dummy descriptor bMemorySizeCodeDescriptor db 8 dup (?) ; memory sizing code descriptor bMemorySizeDataDescriptor db 8 dup (?) ; memory sizing data descriptor b4GBCodeDescriptor db 8 dup (?) ; Flat mode code descriptor b4GBDataDescriptor db 8 dup (?) ; Flat mode data descriptor bF000CodeDescriptor db 8 dup (?) ; F000 code descriptor bF000DataDescriptor db 8 dup (?) ; F000 data descriptor MEMORY_SIZING_GDT_TABLE_STRUC ends ;-----------------------------------------------------------------------; ss_value_for_cs equ offset MEMORY_SIZING_GDT_TABLE_STRUC.bMemorySizeDataDescriptor ss_value_for_f000 equ offset MEMORY_SIZING_GDT_TABLE_STRUC.bF000DataDescriptor flat_ds_value equ offset MEMORY_SIZING_GDT_TABLE_STRUC.b4GBDataDescriptor ;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------; CDROM_BUF_LENGTH equ 80h ;-----------------------------------------------------------------------; ;============================================================================ ; For eKernel [Start] ;============================================================================ ASCII_CHAR_CR EQU 0Dh ASCII_CHAR_LF EQU 0Ah TRUE EQU 0FFh FALSE EQU 00 ;---------------------------------------------------------------------------- ; Structure used in TDB ;---------------------------------------------------------------------------- stTblEntryNEAR STRUCT EntryPtr DW 0000h stTblEntryNEAR ENDS stIDAndTblEntryNEAR STRUCT EntryID DW 0000h EntryPtr DW 0000h stIDAndTblEntryNEAR ENDS stTblEntryFAR STRUCT EntryPtr DD 0000h stTblEntryFAR ENDS stIDAndTblEntryFAR STRUCT EntryID DW 0000h EntryPtr DD 0000h stIDAndTblEntryFAR ENDS ;============================================================================ ; B I T E Q U A T E S ;============================================================================ BIT_0 EQU 01h BIT_1 EQU 02h BIT_2 EQU 04h BIT_3 EQU 008h BIT_4 EQU 010h BIT_5 EQU 020h BIT_6 EQU 040h BIT_7 EQU 080h BIT_8 EQU 0100h BIT_9 EQU 0200h BIT_10 EQU 0400h BIT_11 EQU 0800h BIT_12 EQU 01000h BIT_13 EQU 02000h BIT_14 EQU 04000h BIT_15 EQU 08000h BIT_16 EQU 010000h BIT_17 EQU 020000h BIT_18 EQU 040000h BIT_19 EQU 080000h BIT_20 EQU 0100000h BIT_21 EQU 0200000h BIT_22 EQU 0400000h BIT_23 EQU 0800000h BIT_24 EQU 01000000h BIT_25 EQU 02000000h BIT_26 EQU 04000000h BIT_27 EQU 08000000h BIT_28 EQU 010000000h BIT_29 EQU 020000000h BIT_30 EQU 040000000h BIT_31 EQU 080000000h BIT0 equ 001h BIT1 equ 002h BIT2 equ 004h BIT3 equ 008h BIT4 equ 010h BIT5 equ 020h BIT6 equ 040h BIT7 equ 080h BIT8 equ 100h BIT9 equ 200h BIT10 equ 400h BIT11 equ 800h BIT12 equ 1000h BIT13 equ 2000h BIT14 equ 4000h BIT15 equ 8000h BIT16 equ 10000h BIT17 equ 20000h BIT18 equ 40000h BIT19 equ 80000h BIT20 equ 100000h BIT21 equ 200000h BIT22 equ 400000h BIT23 equ 800000h BIT24 equ 1000000h BIT25 equ 2000000h BIT26 equ 4000000h BIT27 equ 8000000h BIT28 equ 10000000h BIT29 equ 20000000h BIT30 equ 40000000h BIT31 equ 80000000h ;============================================================================ ; C M O S ;============================================================================ CMOS_DIAG_STS_0Eh EQU 08Eh CDS_0Eh_DATE_TIME_ERR_BIT EQU BIT_2 CDS_0Eh_HDD_ERR_BIT EQU BIT_3 CDS_0Eh_INVALID_CONFIG_BIT EQU BIT_5 CDS_0Eh_BAD_CHECKSUM_BIT EQU BIT_6 CDS_0Eh_RTC_LOST_POWER_BIT EQU BIT_7 CMOS_SHUTDOWN_STS_0Fh EQU 08Fh CMOS_MACHINE_CONFIG_14h EQU 094h CMOS_BASE_MEM_LOW_15h EQU 095h CMOS_BASE_MEM_HIGH_16h EQU 096h CMOS_KB_MEM_LOW_17h EQU 097h CMOS_KB_MEM_HIGH_18h EQU 098h CMOS_KB_MEM_LOW_30h EQU 0B0h CMOS_30h_FLASH_UPDATE_REQ_SIGN EQU 055AAh CMOS_KB_MEM_HIGH_31h EQU 0B1h CMOS_SCRATCH_33h EQU 0B3h CSCR_33h_CACHE_GOOD_BIT EQU 00000001b CSCR_33h_SOFT_RESET_BIT EQU 00000100b CSCR_33h_FLASH_UPDATE_REQ_BIT EQU 01000000b CSCR_33h_MEM_EXPANSION_BIT EQU 10000000b CMOS_SCRATCH_34h EQU 0B4h CSCR_34h_NVRAM_PRESENT_BIT EQU 10000000b CMOS_MB_MEM_LOW_35h EQU 0B5h CMOS_MB_MEM_HIGH_36h EQU 0B6h ;============================================================================ ; C O M P O N E N T I D s F O R B I O S C O M P O N E N T S ;============================================================================ ;; 000h-03Fh : CIDs for CORE compnents. CID_KERNEL EQU 000h CID_CPU EQU 001h CID_FLASH EQU 002h CID_SUPER_IO EQU 003h ;; 040h-04Fh : CIDs for CHIPSET compnents. CID_CHIPSET_BASE EQU 040h CID_NORTH_BRIDGE EQU 041h CID_SOUTH_BRIDGE EQU 042h ;; 050h-06Fh : CIDs for BOARD compnents. CID_BOARD_BASE EQU 050h CID_OEM EQU 051h ;; 070h-07Fh : CIDs RESERVED for future use. CID_CUSTOM_FOR_OEM EQU 070h ;; 080h-0BFh : CIDs for optional eMODULEs. CID_SMI EQU 080h CID_USB EQU 081h CID_ACPI EQU 082h CID_SMBIOS EQU 083h CID_SREDIR EQU 084h CID_DEBUGGER EQU 085h ;; 0C0h-0F9h : CIDs RESERVED for future use. ;; 0FAh-0FFh : CIDs for temperory usage till a unique CID is allocated. CID_TEMP_0 EQU 0FAh CID_TEMP_1 EQU 0FBh CID_TEMP_2 EQU 0FCh CID_TEMP_3 EQU 0FDh CID_TEMP_4 EQU 0FEh CID_UNDEFINED EQU 0FFh ;============================================================================ ; B I O S T A B L E S ;============================================================================ ;---------------------------------------------------------------------------- ; BIOS Table Types ;---------------------------------------------------------------------------- TT_DUMMY EQU 000h ;;TT_MEM_MAPPED_DEV_INIT EQU 010h TT_IO_MAPPED_DEV_INIT EQU 020h TT_PCI_DEV_INIT EQU 030h TT_QBASED_PCI_DEV_INIT EQU 031h ;---------------------------------------------------------------------------- ; Structures used in BIOS tables ;---------------------------------------------------------------------------- stBTblInfo STRUCT bTblType DB TT_DUMMY dProcessingFunc DD 00000000h stBTblInfo ENDS stBTblHdr STRUCT bTblType DB TT_DUMMY wTblStart DW 0000h wTblEnd DW 0000h dwData1 DW 0000h dData2 DD 00000000h stBTblHdr ENDS stReg STRUCT bRegIndex DB 0FFh bANDMask DB 0FFh bORMask DB 00h stReg ENDS stQBasedReg STRUCT wSetupQst DW 0FFFFh bRegIndex DB 0FFh bMappedBitMask DB 00h dCallBackFn DD 0000000h stQBasedReg ENDS ;============================================================================ ; E R R O R M A N A G E R ;============================================================================ ;---------------------------------------------------------------------------- ; Structure to define Error Objects ;---------------------------------------------------------------------------- stBIOSError STRUCT wErrorCode DW 00000h;Bit[0-7] - Error number. ;Bit[8-15] - Module ID. wErrorAttrib DW 00000h;Bit[0-3] - Error type. ERROR_TYPE_MASK EQU 0000Fh ET_NOT_AN_ERR EQU 00000h ET_INFORMAL EQU 00001h ET_WARNING EQU 00002h ET_GENERAL EQU 00003h ET_CMOS_RELATED EQU 00004h ET_FATAL EQU 00005h ; EQU 00006h ;Reserved for CORE ; EQU 00007h ;Furure use. ET_OEM1 EQU 00008h ; Types 08-0Fh : can be used bye OEMs MAPS_TO_SMBIOS_ERR_BIT EQU BIT_4 ;Bit[4]-Set for SMBIOS mapped errs. ;Bit[5-15] - RESERVED. wDisplayErrorInfoProcOffset DW 00h; = 0FFFFh for string token. wDisplayErrorInfoProcSeg DW 00h; = Token number for string token. stBIOSError ENDS ;---------------------------------------------------------------------------- ; Error Codes mapped to SMBIOS Error Bits ;---------------------------------------------------------------------------- ;All commented error codes are not implemented in the current CORE. TIMER_COUNT_RW_ERR EQU (CID_KERNEL SHL 8) + 000h ;Bit-00 ;MASTER_PIC_ERR EQU (CID_KERNEL SHL 8) + 001h ;Bit-01 ;SLAVE_PIC_ERR EQU (CID_KERNEL SHL 8) + 002h ;Bit-02 CMOS_BATTERY_ERR EQU (CID_KERNEL SHL 8) + 003h ;Bit-03 CMOS_DIAG_STS_ERR EQU (CID_KERNEL SHL 8) + 004h ;Bit-04 CMOS_CHECKSUM_ERR EQU (CID_KERNEL SHL 8) + 005h ;Bit-05 ;CMOS_CONFIG_ERR EQU (CID_KERNEL SHL 8) + 006h ;Bit-06 ;MOUSE_KBD_SWAP_ERR EQU (CID_KERNEL SHL 8) + 007h ;Bit-07 KBD_LOCK_ERR EQU (CID_KERNEL SHL 8) + 008h ;Bit-08 NO_KBD_ERR EQU (CID_KERNEL SHL 8) + 009h ;Bit-09 KBC_BAT_TEST_ERR EQU (CID_KERNEL SHL 8) + 00Ah ;Bit-10 CMOS_MEMORY_SIZE_ERR EQU (CID_KERNEL SHL 8) + 00Bh ;Bit-11 RAM_RW_TEST_ERR EQU (CID_KERNEL SHL 8) + 00Ch ;Bit-12 ;CACHE_MEMORY_ERR EQU (CID_KERNEL SHL 8) + 00Dh ;Bit-13 FDD_0_ERR EQU (CID_KERNEL SHL 8) + 00Eh ;Bit-14 FDD_1_ERR EQU (CID_KERNEL SHL 8) + 00Fh ;Bit-15 FLOPPY_CONTROLLER_ERR EQU (CID_KERNEL SHL 8) + 010h ;Bit-16 ;ATA_DRIVES_REDUCED_ERR EQU (CID_KERNEL SHL 8) + 011h ;Bit-17 CMOS_DATE_TIME_ERR EQU (CID_KERNEL SHL 8) + 012h ;Bit-18 ;DDC_MONITOR_CONFIG_CHANGE_ERR EQU (CID_KERNEL SHL 8) + 013h ;Bit-19 NO_PS2_MOUSE_ERR EQU (CID_KERNEL SHL 8) + 014h ;Bit-20 ;; No specific errors are defined for Bit[21-38] ;; in SMBIOS Specification-V2.3. Some of these bits are for OEM ;; asignment. So, as per as the CORE is conserned, we can use the ;; corressponding error codes (Error codes from 14h-26h) to define ;; non-SMBIOS mapped errors, if needed in future. ;PCI_MEM_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 027h ;Bit-39 ;PCI_IO_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 028h ;Bit-40 ;PCI_IRQ_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 029h ;Bit-41 ;PNP_MEM_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 02Ah ;Bit-42 ;PNP_MEM32_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 02Bh ;Bit-43 ;PNP_IO_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 02Ch ;Bit-44 ;PNP_IRQ_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 02Dh ;Bit-45 ;PNP_DMA_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 02Eh ;Bit-46 ;PNP_SERIAL_ID_CHECKSUM_ERR EQU (CID_KERNEL SHL 8 + 02Fh ;Bit-47 ;PNP_RS_DATA_CHECKSUM_ERR EQU (CID_KERNEL SHL 8) + 030h ;Bit-48 ;STATIC_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 031h ;Bit-49 ;NVRAM_CHECKSUM_ERR EQU (CID_KERNEL SHL 8) + 032h ;Bit-50 ;SYSTEM_DEV_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 033h ;Bit-51 ;NO_PRIMARY_OUTPUT_DEV_ERR EQU (CID_KERNEL SHL 8) + 034h ;Bit-52 ;NO_PRIMARY_INPUT_DEV_ERR EQU (CID_KERNEL SHL 8) + 035h ;Bit-53 ;NO_PRIMARY_BOOT_DEV_ERR EQU (CID_KERNEL SHL 8) + 036h ;Bit-54 ;NVRAM_CLEARED_BY_JUMPER_ERR EQU (CID_KERNEL SHL 8) + 037h ;Bit-55 ;INVALID_NVRAM_DATA_ERR EQU (CID_KERNEL SHL 8) + 038h ;Bit-56 ;FDC_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 039h ;Bit-57 ;PRI_ATA_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 03Ah ;Bit-58 ;SEC_ATA_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 03Bh ;Bit-59 ;PARALLEL_PORT_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 03Ch ;Bit-60 ;SERIAL_PORT1_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 03Dh ;Bit-61 ;SERIAL_PORT2_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 03Eh ;Bit-62 ;AUDIO_RS_CONFLICT_ERR EQU (CID_KERNEL SHL 8) + 03Fh ;Bit-63 ;---------------------------------------------------------------------------- ; Error Codes NOT mapped to SMBIOS Error Bits ;---------------------------------------------------------------------------- REFRESH_TIMER_ERR EQU (CID_KERNEL SHL 8) + 040h DISPLAY_MEMORY_ERR EQU (CID_KERNEL SHL 8) + 041h CMOS_DISPLAY_ERR EQU (CID_KERNEL SHL 8) + 042h INSERT_FUNC_KEY_ERR EQU (CID_KERNEL SHL 8) + 043h DMAC_PAGE_REG_ERR EQU (CID_KERNEL SHL 8) + 044h DMAC1_CH_REG_ERR EQU (CID_KERNEL SHL 8) + 045h DMAC2_CH_REG_ERR EQU (CID_KERNEL SHL 8) + 046h PMM_MEM_ALLOC_ERR EQU (CID_KERNEL SHL 8) + 047h PASSWORD_CHECK_ERR EQU (CID_KERNEL SHL 8) + 048h SEGMENT_REG_ERR EQU (CID_KERNEL SHL 8) + 049h ADM_MODULE_ERR EQU (CID_KERNEL SHL 8) + 04Ah LANGUAGE_MODULE_ERR EQU (CID_KERNEL SHL 8) + 04Bh KBC_INTERFACE_ERR EQU (CID_KERNEL SHL 8) + 04Ch HDD_0_ERR EQU (CID_KERNEL SHL 8) + 04Dh HDD_1_ERR EQU (CID_KERNEL SHL 8) + 04Eh HDD_2_ERR EQU (CID_KERNEL SHL 8) + 04Fh HDD_3_ERR EQU (CID_KERNEL SHL 8) + 050h HDD_4_ERR EQU (CID_KERNEL SHL 8) + 051h HDD_5_ERR EQU (CID_KERNEL SHL 8) + 052h HDD_6_ERR EQU (CID_KERNEL SHL 8) + 053h HDD_7_ERR EQU (CID_KERNEL SHL 8) + 054h ATAPI_0_ERR EQU (CID_KERNEL SHL 8) + 055h ATAPI_1_ERR EQU (CID_KERNEL SHL 8) + 056h ATAPI_2_ERR EQU (CID_KERNEL SHL 8) + 057h ATAPI_3_ERR EQU (CID_KERNEL SHL 8) + 058h ATAPI_4_ERR EQU (CID_KERNEL SHL 8) + 059h ATAPI_5_ERR EQU (CID_KERNEL SHL 8) + 05Ah ATAPI_6_ERR EQU (CID_KERNEL SHL 8) + 05Bh ATAPI_7_ERR EQU (CID_KERNEL SHL 8) + 05Ch ATA_SMART_FEATURE_ERR EQU (CID_KERNEL SHL 8) + 05Dh PASSWORD_CHECK_ERR_NON_CRITICAL EQU (CID_KERNEL SHL 8) + 05Eh DUMMY_BIOS_ERR EQU (CID_KERNEL SHL 8) + 0FFh UNDEFINED_BIOS_ERROR EQU (CID_UNDEFINED SHL 8) + 0FFh ;---------------------------------------------------------------------------- ; Error Attributes ;---------------------------------------------------------------------------- ATTRIB_DUMMY_BIOS_ERR EQU ET_NOT_AN_ERR ;---------------------------------------------------------------------------- ; Structure to define beeps codes for BIOS errors ;---------------------------------------------------------------------------- stBeepCode STRUCT wErrorCode DW 00000h;Error Code. bBeepCode DB 000h ;Associated beep code. stBeepCode ENDS ;---------------------------------------------------------------------------- ; Beep Codes ;---------------------------------------------------------------------------- BC_REFRESH_TIMER_ERR EQU 001h BC_RAM_RW_TEST_ERR EQU 003h BC_KBC_BAT_TEST_ERR EQU 006h except_err_beep_count EQU 007h ; Exception interrupt. BC_DISPLAY_MEMORY_ERR EQU 0008h ;============================================================================ ; I N P U T D E V I C E ;============================================================================ ;---------------------------------------------------------------------------- ; Structure to define BIOS key objects ;---------------------------------------------------------------------------- stBIOSKey STRUCT wScanCode DW 00000h dORMaskForUserReq DD 00000h stBIOSKey ENDS ;============================================================================ ; O U T P U T D E V I C E ;============================================================================ CURSOR_POS_FOR_BIOS_VERSION_INFO EQU 01300h CURSOR_COLUMN_FOR_IDE_INFO EQU 0Ch DEFAULT_TEXT_ATTRIB EQU 07h ;---------------------------------------------------------------------------- ; Output API equates ;---------------------------------------------------------------------------- GET_VIDEO_MODE_FN EQU 00h SET_VIDEO_MODE_FN EQU 01h GET_CURSOR_POS_FN EQU 02h SET_CURSOR_POS_FN EQU 03h SET_CURSOR_TYPE_FN EQU 04h DISPLAY_ATTRIB_CHAR_FN EQU 05h READ_ATTRIB_CHAR_FN EQU 06h DISPLAY_ATTRIB_TOKEN_MSG_FN EQU 07h LAST_RT_OUTPUT_API_FN EQU 07h DISPLAY_LOGO_FN EQU 08h DISPLAY_TOKEN_MESSAGE_UNBUFFERED EQU 09h ;============================================================================ ; For eKernel [End] ;============================================================================ ;**************************************************************************** ;**************************************************************************** ;** ** ;** (C)Copyright 1985-2001, American Megatrends, Inc. ** ;** ** ;** All Rights Reserved. ** ;** ** ;** 6145-F Northbelt Pkwy, Norcross, GA 30071 ** ;** ** ;** Phone (770)-246-8600 ** ;** ** ;**************************************************************************** ;**************************************************************************** .list ;End of Inclusion guard endif ;_mbiosequ_equ_