;	[]===========================================================[]
;
;	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
;----------------------------------------------------------------------------
;R10	04/16/99 BAR	Support MOSEL29C51001T 1M flash ROM.
;R09	03/29/99 BAR	Added support SST 39SF010 1M flash.
;R08 	02/26/99 BAR	PMC change erase parmeter block address .
;R07	12/18/98 BAR	Support MXIC 29F001T, ST M29400BT , 29F002T 
;			       & Intel 828802AD flash ROM.
;R06	11/19/98 BAR	Support 4M flash ROM.
;			Support AM29F400BT
;R05	08/28/98 BAR	Added support SST 39SF020 2M flash
;R04	05/14/98 BAR	Added Flash1M_16K_8K_8K_Unit definition.
;			Support ATMEL 49F001T 1M flash.
;R03	05/05/98 BAR	Added support SST 29LE020 2M flash
;R02	04/30/98 BAR	Added support ATMEL AT29LV020 2M flash
;R01	04/13/98 BAR	Added support ATMEL AT49F002T 2M flash
;R00	03/27/98 BAR	Move 'Detect EEPROM' subroutine from E0POST.ASM to
;			XGROUP 

;[]-----------------------------------[]
;
;   Award Software 386/486 BIOS
;         Common Equates
;   Initial Revision 17-Apr-1990
;
;[]-----------------------------------[]
;[]==============================================================[]
;
;EEPROM Sub Command
;	Address Format 		A0-A11		
;		AMD29F002T				
;	Address Format 		A0-A14
;		AM29F010 ,ATMEL49F002T,	WINBOND		
;	Address Format 		A0-A15
;		Bright BM29FS020
;	Address Format 		A0-A17
;		IMT IM29F002
;Entry: NONE
;[]==============================================================[]
ifdef	FLASH_SUPPORT		   
ifdef	AUTO_DETECT_EEPROM_ID	   

;R06 - start
   Byte_Access		EQU	1	;define BIOS ROM data bus is byte
   ifdef	Flash_4M_support
	ifdef	Byte_Access
;R09	   First_Address	EQU	0AAAH
;R09	   Second_Address	EQU	0555H
	   First_Address	EQU	0AAAAH		;R09
	   Second_Address	EQU	05555H		;R09
	elseifdef	Word_Access		;define BIOS ROM data bus is word
	   First_Address	EQU	0555H
	   Second_Address	EQU	02AAH
	endif;	Byte_Access
   else;	Flash_4M_support
	   First_Address	EQU	05555H
	   Second_Address	EQU	02AAAH
   endif;	Flash_4M_support

;[]==============================================================[]

	ifdef	Flash_4M_support
	   JEDEC_Series_3_ID_Check_Routine		 EQU	1	
	else;	Flash_4M_support
;R06 - end

JEDEC_Series_ID_Check_Routine		 EQU	1	
JEDEC_Series_2_ID_Check_Routine		 EQU	1	
	endif;	Flash_4M_support			;R06

EEPROM_Decode_Len	EQU	offset EEPROM_Decode_End - offset EEPROM_Decode_Start

SST_ID			EQU	0BFh	;SST Manufacturer Code
SST_28EE010_DEVICE	EQU	001h	;SST 28EE010 Device ID
SST_29EE010_DEVICE	EQU	007h	;SST 29EE010 Device ID
SST_29EE020_DEVICE	EQU	010h	;SST 29EE020 Device ID
SST_29LE020_DEVICE	EQU	012h	;SST 29LE020 Device ID	;R03
SST_39SF020_DEVICE	EQU	0B6h	;SST 39SF020 Device ID	;R05
SST_39SF010_DEVICE	EQU	0B5h	;SST 39SF020 Device ID	;R09

WINBOND_ID		EQU	0DAh	;WINBOND Manufacturer Code
WINBOND_29EE011_DEVICE	EQU	0C1h	;WINBOND 29EE010 Device ID
WINBOND_29C020_DEVICE	EQU	045h	;WINBOND 29EE010 Device ID

ATMEL_ID		EQU	01Fh	;ATMEL Manufacturer Code
ATMEL_29C010_DEVICE	EQU	0D5h	;ATMEL 29C010 Device ID
ATMEL_29C020_DEVICE	EQU	0DAh	;ATMEL 29C020 Device ID
ATMEL_49F002T_DEVICE	EQU	008h	;ATMEL 49F002T Device ID	;R01
ATMEL_29LV020_DEVICE	EQU	0BAh	;ATMEL 29LV020 Device ID	;R02
ATMEL_49F001T_DEVICE	EQU	004h	;ATMEL 49F001T Device ID	;R04

AMD_ID			EQU	001h	;AMD Manufacturer Code
AMD_29F010_DEVICE	EQU	020H	;AMD 29F010 Device ID
AMD_29F002T_DEVICE	EQU	0B0h	;AMD 29F002T Device ID
AMD_29F400BT_DEVICE	EQU	023h	;AMD 29F002T Device ID	;R06

INTEL_28F002T_ID	EQU	089h	;INTEL Manufacturer Code
INTEL_28F001T_DEVICE	EQU	094h	;INTEL 28f001T Device ID
INTEL_28F002T_DEVICE	EQU	07Ch	;INTEL 28f002T Device ID
INTEL_28F020_DEVICE	EQU	0BDh	;INTEL/TI 28f020 Device ID
INTEL_E82802AD		EQU	0ADh	;INTEL Device ID
INTEL_E82802AC		EQU	0ACh	;INTEL Device ID

MXIC_ID			EQU	0C2h	;MXIC Manufacturer Code
MXIC_28F1000PPC_DEVICE	EQU	01Ah	;MXIC 28f1000PPC Device ID 4k_unit
MXIC_28F1000PL_DEVICE	EQU	011h	;MXIC 28f1000PL Device ID  16k_unit
MXIC_28F2000PPC_DEVICE	EQU	02Ah	;MXIC 28f2000PPC Device ID 4k_unit
MXIC_28F2000TPC_DEVICE	EQU	03Ch	;MXIC 28f2000TPC Device ID 4k_unit
MXIC_28F002TTC_DEVICE	EQU	02Dh	;MXIC 28f2000TPC Device ID 16k_8k_8k
MXIC_29F001T		EQU	018h	;MXIC 29f001T Device ID 8k_4k_4k  ;R07
MXIC_29F002T		EQU	0B0h	;MXIC 29f002T Device ID 16k_8k_8k ;R07

CSI_ID			EQU	031h	;CSI Manufacturer Code
CSI_CAT28F001P_DEVICE	EQU	094h	;CSI CAT28f001P Device ID
CSI_CAT28F002T_DEVICE	EQU	07Ch	;CSI CAT28f002T Device ID

IMT_MANU_ID_1		EQU	07FH	;IMT manufacturer code byte 1
IMT_MANU_ID_2		EQU	01FH	;IMT manufacturer code byte 2
IMT_IM29F002T_DEVICE	EQU	0A1H	;IMT IM29F002T device code

BRIGHT_MANU_ID		EQU	0DCH	;BRIGHT manufacturer code byte 1
BM_29FS020T_DEVICE	EQU	02H	;BRIGHT manufacturer code byte 2

SGS_THOMSON_MANU	EQU	020H	; SGS-THOMSON			
ST_M29F002T		EQU	0B0H	; M29F002T	device code	
ST_M29F400T		EQU	0D5H	; M29F400T	device code	;R07

PMC_MANU		EQU	09DH	; Programmble Microelectronics Corp.
;R08 PMC_PM29F002C		EQU	01H	; PM29F002C	device code
PMC_PM29F002C		EQU	01dH	; PM29F002C	device code;R08

MOSEL_MANU		EQU	040H	; MOSEL			      
MOSEL_V29C51002T_DEVICE	EQU	02H	; MOSEL V29C51002T device code
MOSEL_V29C51001T_DEVICE	EQU	01H	; MOSEL V29C51001T device code;R10

SST_2M_TYPE_EEPROM	EQU	1
ATMEL_2M_TYPE_EEPROM	EQU	2
AMD_2M_TYPE_EEPROM	EQU	3
ATMEL_2M_1_TYPE_EEPROM	EQU	AMD_2M_TYPE_EEPROM	;R01
MXIC_29F002T_EEPROM	EQU	AMD_2M_TYPE_EEPROM	;R07
INTEL_2M_TYPE_EEPROM	EQU	4	 
MXIC_2M_TYPE_EEPROM	EQU	5
WINBOND_2M_TYPE_EEPROM	EQU	6	 
CSI_2M_TYPE_EEPROM	EQU	7	 
MXIC_2M_TYPE_1_EEPROM	EQU	8	 
IMT_2M_TYPE_EEPROM	EQU	9	 
MOSEL_2M_TYPE_EEPROM	EQU	IMT_2M_TYPE_EEPROM	;R01
BM_2M_TYPE_EEPROM	EQU	0Ah	 
ST_2M_TYPE_EEPROM	EQU	0Bh		
PMC_2M_TYPE_EEPROM	EQU	0Ch
SST_2M_1_TYPE_EEPROM	EQU	0Dh			;R05

SST_1M_TYPE_EEPROM	EQU	11h
ATMEL_1M_TYPE_EEPROM	EQU	12h
WINBOND_1M_TYPE_EEPROM	EQU	13h
INTEL_1M_TYPE_EEPROM	EQU	14h
MXIC_1M_PPC_TYPE_EEPROM	EQU	15h
CSI_1M_TYPE_EEPROM	EQU	16h
ATMEL_1M_1_TYPE_EEPROM	EQU	17h		;R04
MXIC_29F001T_EEPROM	EQU	18h		;R07
SST_1M_39_TYPE_EEPROM	EQU	19h		;R09
MOSEL_1M_TYPE_EEPROM	EQU	1AH		;R10

MXIC_1M_PL_TYPE_EEPROM	EQU	21h
AMD_1M_TYPE_EEPROM	EQU	22h

AMD_4M_TYPE_EEPROM	EQU	40h				;R06
ST_4M_TYPE_EEPROM	EQU	AMD_4M_TYPE_EEPROM		;R07
INTEL_4M_TYPE_EEPROM	EQU	41h				;R07

RESET_CMD		EQU	0FFh		       


;[]==============================================================[]
;  Flash auto Detect define
;This file is define which flash ROM is auto detect,You can define 
;Manufacturer no support ,or define only one device no support.
;for example ,
;	INTEL_EEPROM_No_Support		equ	1
;	WINBOND_EEPROM_No_Support	equ	1
;
;	SST29EE020_No_Support		equ	1
;
;
;[]==============================================================[]
;R06 - start
ifdef	Flash_4M_support
   ifdef	Flash_16K_8K_8K_Unit
	  ;[]======================================[]
	  ; 4M Flash ROM 16k_8k_8k
	  ;[]======================================[]
	  ifndef AMD_EEPROM_No_Support
	  	ifndef AM29F400BT_No_Support
		AMD_ID_Check_Routine		EQU	1
		Support_AM29F400BT_Series	equ	1	;AM29F400.NVM	
	  	endif; AM29F400BT_No_Support
	  endif; AMD_EEPROM_No_Support
;R07 - start
	  ifndef SGS_THOMSON_EEPROM_No_Support
	  	ifndef SGS_THOMSON_M29F400T_No_Support
		SGS_THOMSON_ID_Check_Routine	EQU	1	
		Support_AM29F400BT_Series	equ	1	;AM29F400.NVM	
	  	endif; SGS_THOMSON_M29F002T_No_Support
	  endif; SGS_THOMSON_EEPROM_No_Support
;debug   elseifdef	Flash_64K_Unit
	  ;[]======================================[]
	  ; 4M Flash ROM 64k_64k_64k
	  ;[]======================================[]
	  ifndef INTEL_EEPROM_No_Support
	  	ifndef INTEL_E82802_No_Support
		INTEL_ID_Check_Routine		EQU	1
		Support_INTEL_E82802_Series	equ	1	;F002BXT.NVM
	  	endif; INTEL_E82802_No_Support
	  endif; INTEL_EEPROM_No_Support

;R07 - end


   endif;	Flash_16K_8K_8K_Unit
elseifdef	Flash_2M_support
;R06 - end
;R06 ifdef	Flash_2M_support
   ifdef	Flash_16K_8K_8K_Unit
	  ;[]======================================[]
	  ; 2M Flash ROM 16k_8k_8k
	  ;[]======================================[]

	  ifndef SST_EEPROM_No_Support
	  	ifndef SST_29EE020_No_Support
		SST_ID_Check_Routine		EQU	1
		Support_SST29EE020_Series	equ	1	;SST020.NVM
	  	endif; SST_29ee020_No_Support
;R05 - start
	  	ifndef SST_39SF020_No_Support
		SST_ID_Check_Routine		EQU	1
		Support_SST39SF020_Series	equ	1	;SST39020.NVM
	  	endif; SST_39SF020_No_Support
;R05 - 	end

	  endif; SST_EEPROM_No_Support
	  ifndef WINBOND_EEPROM_No_Support
	  	ifndef WINBOND_W29C020_No_Support
		WINBOND_ID_Check_Routine	EQU	1	
		Support_SST29EE020_Series	equ	1	;SST020.NVM	
	  	endif; WINBOND_W29C020_No_Support
	  endif; WINBOND_EEPROM_No_Support


	  ifndef AMD_EEPROM_No_Support
	  	ifndef AM29F002_No_Support
		AMD_ID_Check_Routine		EQU	1
		Support_AM29F002_Series		equ	1	;AM29F002.NVM	
	  	endif; AM29f002_No_Support
	  endif; AMD_EEPROM_No_Support
	  ifndef SGS_THOMSON_EEPROM_No_Support
	  	ifndef SGS_THOMSON_M29F002T_No_Support
		SGS_THOMSON_ID_Check_Routine	EQU	1	
		Support_AM29F002_Series		equ	1	;AM29F002.NVM
	  	endif; SGS_THOMSON_M29F002T_No_Support
	  endif; SGS_THOMSON_EEPROM_No_Support

	  ifndef ATMEL_EEPROM_No_Support
	  	ifndef ATMEL29C020_No_Support
		ATMEL_ID_Check_Routine		EQU	1
		Support_ATMEL29C020_Series	equ	1	;ATMEL020.NVM
	  	endif; ATMEL29C020_No_Support
	;R01 - start
	  	ifndef ATMEL49F002T_No_Support
		ATMEL_ID_Check_Routine		EQU	1
		Support_AM29F002_Series		equ	1	;AM29F002.NVM
	  	endif; ATMEL49F002T_No_Support
	;R01 - end
	;R02 - start
	  	ifndef ATMEL29LV020_No_Support
		ATMEL_ID_Check_Routine		EQU	1
		Support_ATMEL29C020_Series	equ	1	;ATMEL020.NVM
	  	endif; ATMEL29LV020_No_Support
	;R02 - end

	  endif; ATMEL_EEPROM_No_Support

	  ifndef INTEL_EEPROM_No_Support
	  	ifndef INTEL_28F002BXT_No_Support
		INTEL_ID_Check_Routine		EQU	1
		Support_INTEL_28F002BXT_Series	equ	1	;F002BXT.NVM
	  	endif; INTEL_28F002BXT_No_Support
	  endif; INTEL_EEPROM_No_Support


	  ifndef MXIC_EEPROM_No_Support

	  	ifndef 	MXIC_28F2000TPC_No_Support
		MXIC_ID_Check_Routine		EQU	1	
		Support_MXIC28F2000PPC_Series	equ	1	;MX2MPPC.NVM
	  	endif; MXIC_28F2000TPC_No_Support

	  	ifndef MXIC_28F002TTC_No_Support
		MXIC_ID_Check_Routine		EQU	1	
		Support_MXIC28F002TTC_Series	equ	1	;MX2MTTC.NVM	
	  	endif; MXIC_28F002TTC_No_Support
;R07 - start
	  	ifndef MXIC_29F002T_No_Support
		MXIC_ID_5V_Check_Routine	EQU	1	
		Support_AM29F002_Series		EQU	1	;AM29F002.NVM
	  	endif; MXIC_29F002T_No_Support
;R07 - end

	  endif; MXIC_EEPROM_No_Support

	  ifndef IMT_EEPROM_No_Support
	  	ifndef IMT_IM29F002T_No_Support
		IMT_ID_Check_Routine		EQU	1	
		Support_IMT_IM29F002T_Series	equ	1	;IM29F002.NVM
	  	endif; IMT_IM29F002T_No_Support
	  endif; IMT_EEPROM_No_Support

	  ifndef MOSEL_EEPROM_No_Support
	  	ifndef MOSEL_V29C51002T_No_Support
		MOSEL_ID_Check_Routine		EQU	1	
		Support_IMT_IM29F002T_Series	equ	1	;IM29F002.NVM
	  	endif; MOSEL_V29C51002T_No_Support
	  endif; MOSEL_EEPROM_No_Support


	  ifndef BM_EEPROM_No_Support
	  	ifndef BRIGHT_BM29FS020_No_Support
		BM_ID_Check_Routine  		EQU	1	
		Support_BRIGHT_BM29FS020_Series	equ	1	;BM29FS02.NVM
	  	endif; BRIGHT_BM29FS020_No_Support
	  endif; BM_EEPROM_No_Support


	  ifndef PMC_EEPROM_No_Support
	  	ifndef PMC_PM29F002C_No_Support
		PMC_ID_Check_Routine		EQU	1
		Support_PMC_PM29F002C_Series	equ	1	;PM29F002.NVM
	  	endif; PMC_PM29F002C_No_Support
	  endif; PMC_EEPROM_No_Support


   elseifdef	Flash_4K_Unit				
	  ;[]======================================[]
	  ; 2M Flash ROM 4k_4k_4k_4k_16k
	  ;[]======================================[]

	  ifndef MXIC_EEPROM_No_Support
	  	ifndef MXIC_28F2000PPC_No_Support
		MXIC_ID_Check_Routine		EQU	1	
	   	Support_MXIC_28F2000PPC_Series	equ	1	;MX2MPPC.NVM
	  	endif; MXIC_28F2000PPC_No_Support

	  	ifndef 	MXIC_28F2000TPC_No_Support
		MXIC_ID_Check_Routine		EQU	1	
		Support_MXIC28F2000PPC_Series	equ	1	;MX2MPPC.NVM	
	  	endif; MXIC_28F2000TPC_No_Support

	  endif; MXICSST_EEPROM_No_Support
   endif;	Flash_16K_8K_8K_Unit
else;	Flash_2M_support
   ifdef	Flash_4K_Unit
	  ;[]======================================[]
	  ; 1M Flash ROM 4k_4k_4k_4k
	  ;[]======================================[]
	
	  ifndef SST_EEPROM_No_Support
	  	ifndef SST_29EE010_No_Support
		SST_ID_Check_Routine		EQU	1
		Support_SST_29EE010_Series	equ	1	;SST010.NVM	
	  	endif; SST_29EE010_No_Support
	  						;R09 - starts
	  	ifndef SST_39SF010_No_Support
		SST_ID_Check_Routine		EQU	1
		Support_SST_39SF010_Series	equ	1	;SST39010.NVM	
	  	endif; SST_39SF010_No_Support
	  						;R09 - ends
	  endif; SST_EEPROM_No_Support
	  ifndef ATMEL_EEPROM_No_Support
	  	ifndef ATMEL_29C010_No_Support
		ATMEL_ID_Check_Routine		EQU	1
		Support_SST_29EE010_Series	equ	1	;SST010.NVM
	  	endif; ATMEL_29C010_No_Support
	  endif; ATMEL_EEPROM_No_Support
	  ifndef WINBOND_EEPROM_No_Support
	  	ifndef WINBOND_W29EE011_No_Support
		WINBOND_ID_Check_Routine	EQU	1	
		Support_SST_29EE010_Series	equ	1	;SST010.NVM
	  	endif; WINBOND_W29EE011_No_Support
	  endif; WINBOND_EEPROM_No_Support


	  ifndef INTEL_EEPROM_No_Support
	  	ifndef INTEL_28F001BXT_No_Support
		INTEL_ID_Check_Routine		EQU	1
		Support_INTEL_28F001BXT_Series	equ	1	;F001BXT.NVM
	  	endif; INTEL_28F001BXT_No_Support

	  	ifndef CSI_CAT28F001P_No_Support
		INTEL_ID_Check_Routine		EQU	1
		Support_INTEL_28F001BXT_Series	equ	1	;F001BXT.NVM
	  	endif; CSI_CAT28F001P_No_Support
	  endif; INTEL_EEPROM_No_Support


	  ifndef MXIC_EEPROM_No_Support
	  	ifndef MXIC_28F1000PPC_No_Support
		MXIC_ID_Check_Routine		EQU	1	
	   	Support_MXIC_28F1000PPC_Series	equ	1	;MXIC.NVM
	  	endif; MXIC_28F1000PPC_No_Support
;R07 - start
	  	ifndef MXIC_29F001T_No_Support
		MXIC_ID_5V_Check_Routine	EQU	1	
	   	Support_MXIC_29F001T_Series	equ	1	;MX29F001.NVM
	  	endif; MXIC_28F001T_No_Support
;R07 - end

	  endif; MXIC_EEPROM_No_Support
;R10 - start
	  ifndef MOSEL_EEPROM_No_Support
	  	ifndef MOSEL_V29C51001T_No_Support
		MOSEL_ID_Check_Routine		EQU	1	
		Support_MOSEL_V29C51001T_Series	equ	1	;MOSel001.NVM
	  	endif; MOSEL_V29C51002T_No_Support
	  endif; MOSEL_EEPROM_No_Support
;R10 - end


;R04 - start
   elseifdef 	Flash1M_16K_8K_8K_Unit
	  ifndef ATMEL_EEPROM_No_Support
	  	ifndef ATMEL_49F001T_No_Support
		ATMEL_ID_Check_Routine		EQU	1
		Support_ATMEL_49F001T_Series	equ	1	;ATF001T.NVM
	  	endif; ATMEL_49F001T_No_Support
	  endif; ATMEL_EEPROM_No_Support
;R04 - end
   else;	Flash_4K_Unit
	  ifdef	Flash_16K_Unit				
	  ;[]======================================[]
	  ; 1M Flash ROM 16k_16k
	  ;[]======================================[]
	  ifndef MXIC_EEPROM_No_Support
	  	ifndef MXIC_28F1000PC_No_Support
		MXIC_ID_Check_Routine		EQU	1	
	   	Support_MXIC_28F1000PC_Series	equ	1		
	  	endif; MXIC_28F1000PC_No_Support
	  endif; MXIC_EEPROM_No_Support

	  ifndef AMD_EEPROM_No_Support
	  	ifndef AMD_29F010_No_Support
		AMD_ID_Check_Routine		EQU	1
		Support_AM29F010_Series		equ	1		
	  	endif; AMD29F010_No_Support
	  endif; AMD_EEPROM_No_Support

   	endif;	Flash_16K_Unit		
   endif;	Flash_4K_Unit
endif;	Flash_2M_support

endif;	AUTO_DETECT_EEPROM_ID
endif;	FLASH_SUPPORT


