northb.asm

来自「X86 GX1 BOOTLOAD代码 ,支持WINCE操作系统!」· 汇编 代码 · 共 102 行

ASM
102
字号
;**************************************************************************
;* 
;*  NORTHB.ASM
;* 
;*  Copyright (c) 1999 National Semiconductor Corporation. 
;*  All Rights Reserved. 
;* 
;*  Function: 
;*    Set up the CPU north bridge to default values. 
;* 
;*  $Revision:: 3  $
;*
;**************************************************************************
	.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

FUN_NORTHBRIDGE_TABLE:
	db	040h, 0Eh
;GXM bug: RAW Clock (bit6) does not change but writing it will turn RAW clock off.
;	db	041h, 01ah  ;80000041 should be set to 1ah for best performance if NOT using VIP
	db	041h, 012h  ;80000041 should be set to 12h for best performance using VIP
;	db	041h, 010h  ;80000041 set to 10h as a compromise if unsure whether vip will be used
	db	043h, 041h

;reprogram 41h if needed
IF ((MDEBUG) and (SC_CHIP))
  IF SCx1xx_PROCESSOR
	db	041h, 01Eh  ; tavor : RWCLK should be enabled for scxxxx chips when using mtest
  ELSE
	db	041h, 012h  ;80000041 should be set to 12h for best performance using VIP
;	db	041h, 010h  ;80000041 set to 10h as a compromise if unsure whether vip will be used
  ENDIF	
ELSE
  IF SCx1xx_PROCESSOR
	db	041h, 05Eh  ;tavor : GXM bug: RAW Clock (bit6) does not change but writing it will turn RAW clock off
  ENDIF
ENDIF
TOTAL_NORTHBRIDGE_COUNT EQU (($ - FUN_NORTHBRIDGE_TABLE)/2 )

;**************************************************************************
;*
;*	northBridgeInit
;*
;*	Core Logic initialization:  Host bridge
;*
;*	Entry:
;*	Exit:
;*	Modified:
;*
;**************************************************************************
northBridgeInit PROC NEAR PUBLIC
	push	bx

	PORT80	POST_NORTHB_INIT		;post_e8h - Chipset init

	mov	cx, TOTAL_NORTHBRIDGE_COUNT
	lea	si, FUN_NORTHBRIDGE_TABLE
	mov	eax, CPUPCI_ID

Register_northb_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_northb_Loop

	pop	bx
	jmp	bx

northBridgeInit ENDP

_TEXT ENDS

END

⌨️ 快捷键说明

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