⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5530.asm

📁 X86 GX1 BOOTLOAD代码 ,支持WINCE操作系统!
💻 ASM
字号:
;**************************************************************************
;* 
;*  5530.ASM
;* 
;*  Copyright (c) 1999 National Semiconductor Corporation.
;*  All Rights Reserved. 
;* 
;*  Function: 
;*    Set up 5530 chipset to default values.
;* 
;*  $Revision:: 1    $
;*
;**************************************************************************

	.486P

	INCLUDE DEF.INC
	INCLUDE MACROS.INC
	INCLUDE PORT80.INC
	INCLUDE 5530.INC
	INCLUDE OPTIONS.INC

_TEXT SEGMENT PUBLIC use16 'CODE'


	EXTERN	cy55x0RegRead8:NEAR
	EXTERN	cy55x0RegWrite8:NEAR


;
; We use  db  FF, FF to Increment the FUNCTION number 	
; Make sure you NEVER need to talk to REG FF of any device.
;
FUN_5530_0_TABLE:
	db	CX5530_REG04, 1Fh	; Allow memory and I/O cycles/Memwrite & invalidate 
	db	CX5530_REG05, 00h
	db	CX5530_REG06, 80h
	db	CX5530_REG07, 02h	; Medium Devsel timing
	db	CX5530_REG0C, 04h	; PCi cache line size
	db	CX5530_REG0D, 40h	; Master Latency Timer
	db	CX5530_REG40, 89h
	db	CX5530_REG41, 10h	; Enable write buffer
	db	CX5530_REG42, 0ACh	; en USB, x-Bus buffer en,HOLD REQ#. DO NOT ENABLE DMA Priority bit!
	db	CX5530_REG43, 46h OR USBINSTALL
	db	CX5530_REG50, 7Bh
	db	CX5530_REG51, 44h
	db	CX5530_REG52, 099h
	db	CX5530_REG53, 03h
	db	CX5530_REG58, 00h
	db	CX5530_REG5A, 03h OR (FDDINSTALL SHL 6)	; KBD/RTC Positive decode
	db	CX5530_REG5B, 00h  OR IDEENABLE	; BIOS ROM Subtractive decode was 3c, 24 no hd
	db	CX5530_REG5C, INTBA	; PCI INT steering
	db	CX5530_REG5D, INTDC	; PCI INT steering
	db	CX5530_REG70, GPCSIOL	; GPIO 
	db	CX5530_REG71, GPCSIOH
	db	CX5530_REG72, GPCSCONTROL
	db	CX5530_REG80, 00h	; SMI related registers
	db	CX5530_REG81, 00h	; SMI related registers
	db	CX5530_REG82, 00h	; SMI related registers
	db	CX5530_REG83, 00h	; SMI related registers
; Should not set GPIO's here. - GPIOs are platform specific. Userfunc.asm is a good place. 
;	db	CX5530_REG90, 0Bh	; GPIO direction
;	db	CX5530_REG91, 02h	; GPIO data

;
; Func 1 - SMI/ACPI  PCI Config Cycles
;
	db	0ffh, 0ffh
FUN_5530_1_TABLE:
	db	CX5530_REG04, 0Fh
	db	CX5530_REG05, 00h
	db	CX5530_REG06, 80h
	db	CX5530_REG07, 02h
	db	CX5530_REG0C, 00h
	db	CX5530_REG10, 00h	; Mem Base = X0012000h
	db	CX5530_REG11, 20h
	db	CX5530_REG12, 01h
	db	CX5530_REG13, (GX_BASE / 1000000h)

;
; Func 2 - IDE  PCI Config Cycles
;
	db	0ffh, 0ffh
FUN_5530_2_TABLE:
	db	CX5530_REG04, 00h	; Disable
	db	CX5530_REG20, 01h
	db	CX5530_REG21, 0fch
	db	CX5530_REG22, 00h
	db	CX5530_REG23, 00h
	db	CX5530_REG04, 01h	; Enable


;
; Func 3 - Audio  PCI Config Cycles
;
	db	0ffh, 0ffh
FUN_5530_3_TABLE:
	db	CX5530_REG04, 0Fh
	db	CX5530_REG05, 00h
	db	CX5530_REG06, 80h
	db	CX5530_REG07, 02h
	db	CX5530_REG0C, 00h
	db	CX5530_REG10, 00h	; Mem Base = X0011000h
	db	CX5530_REG11, 10h
	db	CX5530_REG12, 01h
	db	CX5530_REG13, (GX_BASE / 1000000h)

;
; Func 4 - Video  PCI Config Cycles
;
	db	0ffh, 0ffh
FUN_5530_4_TABLE:
	db	CX5530_REG04, 0Fh
	db	CX5530_REG05, 00h
	db	CX5530_REG06, 80h
	db	CX5530_REG07, 02h
	db	CX5530_REG0C, 00h
	db	CX5530_REG10, 00h	; Mem Base = X0010000h
	db	CX5530_REG11, 00h
	db	CX5530_REG12, 01h
	db	CX5530_REG13, (GX_BASE / 1000000h)

TOTAL_5530_COUNT EQU (($ - FUN_5530_0_TABLE)/2 )
 

;**************************************************************************
;*
;*	chipsetInit
;*
;*	Entry:
;*	Exit:
;*	Destroys:
;*
;**************************************************************************
chipsetInit PROC NEAR PUBLIC
	push	bx

	PORT80	P80_CHIPSET_INIT	; Chipset init

	mov	cx, TOTAL_5530_COUNT
	lea	si, FUN_5530_0_TABLE
	mov	eax, CX55x0_ID
	mov	ah, FUNC0

Register_5530_Loop:
	mov	al, cs:[si]
	inc	si
	mov	dl, cs:[si]
	inc	si
	cmp	al, 0FFh
	jne	ValidReg
	cmp	dl, 0FFh
	jne	ValidReg
	inc	ah			; Crossed a Function Table
					; Add one to the Function 
	jmp	SkipRegWrite
ValidReg:
	push	edx
	push	eax
	push	ecx
	NOSTACK	bx, cy55x0RegWrite8
	pop	ecx
	pop	eax
	pop	edx

SkipRegWrite:
	loop Register_5530_Loop

	pop	bx
	jmp	bx

chipsetInit ENDP

_TEXT ENDS

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -