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

📄 northb.asm

📁 X86 GX1 BOOTLOAD代码 ,支持WINCE操作系统!
💻 ASM
字号:
;**************************************************************************
;* 
;*  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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -