2512 lines
117 KiB
Plaintext
2512 lines
117 KiB
Plaintext
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 1 - 1
|
||
|
||
|
||
;++
|
||
;
|
||
; Copyright (c) Microsoft Corporation. All rights reserved
|
||
;
|
||
; Module Name:
|
||
;
|
||
; inittbl.asm
|
||
;
|
||
; Abstract:
|
||
;
|
||
; This module contains table of commands used by South Bridge to initialize
|
||
; hardware and test memory during boot startup. For definition of each
|
||
; command, please see initcode.inc and command.inc
|
||
;
|
||
;--
|
||
INCLUDE chipset.inc
|
||
C ;++
|
||
C ;
|
||
C ; Copyright (c) Microsoft Corporation
|
||
C ;
|
||
C ; Module Name:
|
||
C ;
|
||
C ; chipset.inc
|
||
C ;
|
||
C ; Abstract:
|
||
C ;
|
||
C ; This file contains defines that control which chipset romdec and
|
||
C ; init table are built for
|
||
C ;
|
||
C ;--
|
||
C
|
||
C IFNDEF RETAILXM3
|
||
C ENDIF
|
||
C
|
||
C ;
|
||
C ; Define the following, when building for MCP Rev B01 in XMODE3
|
||
C ; Otherwise, this should undefined
|
||
C ;
|
||
C ;MCP_REV_B01 = 1
|
||
C
|
||
C
|
||
C IFDEF SYS_QT
|
||
C ENDIF
|
||
C
|
||
C ;
|
||
C ; If we are building retail, set the local retail define
|
||
C ;
|
||
C IFDEF RETAILXM3
|
||
C
|
||
= 0001 C SYS_RETAIL = 1
|
||
C
|
||
C ENDIF
|
||
C
|
||
C
|
||
|
||
;
|
||
; To build the init table for old A02 (without M7, fansink) DVT3s, DVT2s and
|
||
; DVT1, define INITTABLE_OLDA02. To build the init table for fullspeed systems,
|
||
; this should undefined. We are currently building two init tables:
|
||
;
|
||
;
|
||
; Init Table Ver Defines
|
||
; --------------------- ------ ----------------------------------------------------------
|
||
; DVT4/5 0x46 SYS_DVT4
|
||
;
|
||
; DVT6 0x60 SYS_DVT6 (SYS_DVT4 undefined)
|
||
;
|
||
; QT 0x70 SYS_QT (automatically defines SYS_DVT6)
|
||
;
|
||
|
||
INCLUDE nv2ainit.inc
|
||
C ;++
|
||
C ;
|
||
C ; Copyright (c) Microsoft Corporation. All rights reserved
|
||
C ;
|
||
C ; Module Name:
|
||
C ;
|
||
C ; nv2ainit.inc
|
||
C ;
|
||
C ; Abstract:
|
||
C ;
|
||
C ; NV2A initialization table
|
||
C ;
|
||
C ; This module contains table of commands used by South Bridge to initialize
|
||
C ; hardware and test memory during boot startup. For definition of each
|
||
C ; command, please see initcode.inc and command.inc
|
||
C ;--
|
||
C
|
||
C page 84,132
|
||
C .MODEL compact
|
||
C .486p
|
||
C
|
||
C INCLUDE COMMAND.INC
|
||
C IFDEF MCP_XMODE2
|
||
C ELSE
|
||
C
|
||
C ;
|
||
C ; Opcodes for internal ROM (XMODE3)
|
||
C ;
|
||
C
|
||
= 0001 C COMMAND_RESERVED EQU 1h
|
||
= 0002 C COMMAND_READ_MEM EQU 2h
|
||
= 0003 C COMMAND_WRITE_MEM EQU 3h
|
||
= 0004 C COMMAND_PCI_CFG_WRITE EQU 4h
|
||
= 0005 C COMMAND_PCI_CFG_READ EQU 5h
|
||
= 0006 C COMMAND_RMW_RESULT EQU 6h
|
||
= 0007 C COMMAND_USE_RESULT_AS_DATA EQU 7h
|
||
= 0008 C COMMAND_COMPARE_RESULT_JNE EQU 8h
|
||
= 0009 C COMMAND_JMP EQU 9h
|
||
= 0010 C COMMAND_RMW_ACCUM EQU 10h
|
||
= 0011 C COMMAND_OUT_BYTE EQU 11h
|
||
= 0012 C COMMAND_IN_BYTE EQU 12h
|
||
= 00EE C COMMAND_QUIT EQU 0EEh
|
||
C
|
||
= 00F5 C COMMAND_UNUSED1 EQU 0F5h
|
||
= 0080 C COMMAND_UNUSED2 EQU 080h
|
||
C
|
||
C ENDIF
|
||
C
|
||
C
|
||
= 0000 C DONT_CARE EQU 0
|
||
C
|
||
0009 C nv_command_struct struct
|
||
0000 00 C nv_command db 0
|
||
0001 00000000 C nv_address dd 0
|
||
0005 00000000 C nv_data dd 0
|
||
C nv_command_struct ends
|
||
C
|
||
C
|
||
C
|
||
C INCLUDE NV2A.INC
|
||
C ;
|
||
C ; NV2A ROM table ptr (NV20 Register Base/Limit (BAR0)
|
||
C ;
|
||
= FF000008 C NV2A_XBOX_ROM_TABLE_PTR EQU 0FF000008h
|
||
C
|
||
C ;
|
||
C ; Datatbl starts at this offset
|
||
C ;
|
||
C ; IMPORTANT: This must be adjusted if the size of the init table
|
||
C ; code has changed
|
||
C ;
|
||
C IFDEF SYS_RETAIL
|
||
= 0C90 C DATATBL_BASE_OFFSET EQU 0C90h
|
||
C ELSE
|
||
C ENDIF
|
||
C
|
||
C ;
|
||
C ; Integrated NV20 Register Base (BAR0)
|
||
C ;
|
||
= 0F000000 C NV20_REG_BASE EQU 00F000000h ; only during the init tbl
|
||
= FD000000 C NV20_REG_BASE_KERNEL EQU 0FD000000h ; reloaded to agree with kernel code
|
||
= F0000000 C NV20_FB_BASE EQU 0F0000000h
|
||
= 40000000 C APERTURE_BASE EQU 040000000h
|
||
C
|
||
= C000 C SMB_CONTROL_BASE EQU 00000C000h
|
||
= C200 C SMB_DDC_SPIO_BASE EQU 00000C200h
|
||
C
|
||
C ;
|
||
C ; NV2A config equates
|
||
C ;
|
||
= 80000084 C CR_CPU_MEMTOP EQU 080000084h
|
||
= 03FFFFFF C CR_CPU_MEMTOP_LIMIT_64MB EQU 003FFFFFFh
|
||
= 07FFFFFF C CR_CPU_MEMTOP_LIMIT_128MB EQU 007FFFFFFh
|
||
C
|
||
= 80000340 C CR_CPU_CST_0 EQU 080000340h
|
||
= 80000344 C CR_CPU_CST_1 EQU 080000344h
|
||
= 8000035C C CR_CPU_CST_7 EQU 08000035Ch
|
||
C
|
||
= 8000036C C CR_CPU_MPLL_COEFF EQU 08000036Ch
|
||
C
|
||
= 8000F004 C CR_APC_P2P_1 EQU 08000F004h
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 2 - 1
|
||
|
||
|
||
= 0007 C CR_APC_P2P_1_BUS_MSTR_MEM_IO EQU 000000007h ; should be RMW, still ok?
|
||
C
|
||
= 8000F018 C CR_APC_P2P_6 EQU 08000F018h
|
||
= 00010100 C CR_APC_P2P_6_SUB_SEC_PRI_BUS EQU 000010100h ; change CR_NV20, if bus changes
|
||
C
|
||
= 8000F020 C CR_APC_P2P_8 EQU 08000F020h
|
||
= 0FF00F00 C CR_APC_P2P_8_MLIMIT_MBASE_INIT EQU (NV20_REG_BASE + 0F00000h) OR (NV20_REG_BASE SHR 16)
|
||
= FDF0FD00 C CR_APC_P2P_8_MLIMIT_MBASE_KERNEL EQU (NV20_REG_BASE_KERNEL + 0F00000h) OR (NV20_REG_BASE_KERNEL SHR
|
||
C 16)
|
||
= 8000F024 C CR_APC_P2P_9 EQU 08000F024h
|
||
= F7F0F000 C CR_APC_P2P_9_PREF_MLIMIT_MBASE EQU (NV20_FB_BASE + 7F00000h) OR (NV20_FB_BASE SHR 16)
|
||
C
|
||
= 8000F04C C CR_APC_P2P_19 EQU 08000F04Ch
|
||
= 0001 C CR_APC_P2P_19_NV20_ENABLE EQU 000000001h ; enables internal graphics
|
||
C
|
||
C ;
|
||
C ; MCP config equates
|
||
C ;
|
||
= 80000804 C MCP_LEG_CFG_1 EQU 080000804h ; enable IO space
|
||
= 80000808 C MCP_LEG_CFG_2 EQU 080000808h ; holds MCP revision ID
|
||
C
|
||
C IFDEF MCP_REV_C03
|
||
C ELSE
|
||
= 80000810 C MCP_LEG_CFG_4 EQU 080000810h ; IO BAR for revs < C03
|
||
C ENDIF
|
||
C
|
||
= 8000084C C MCP_LEG_CFG_19 EQU 08000084Ch
|
||
= 80000860 C MCP_LEG_CFG_24 EQU 080000860h
|
||
= 8000089C C MCP_LEG_CFG_39 EQU 08000089Ch
|
||
= 800008B4 C MCP_LEG_CFG_45 EQU 0800008B4h
|
||
C
|
||
= 80000904 C MCP_SMB_CFG_1 EQU 080000904h
|
||
= 0001 C MCP_SMB_CFG_1_IO_SPACE EQU 000000001h ; should be RMW, still ok?
|
||
C
|
||
= 80000914 C MCP_SMB_CFG_5 EQU 080000914h
|
||
= C001 C MCP_SMB_CFG_5_IO_BASE EQU SMB_CONTROL_BASE + 1
|
||
C
|
||
= 80000918 C MCP_SMB_CFG_6 EQU 080000918h
|
||
= C201 C MCP_SMB_CFG_6_IO_BASE EQU SMB_DDC_SPIO_BASE + 1
|
||
C
|
||
= 8000103C C MCP_USBA_CFG_15 EQU 08000103Ch ; scratch pad for meminit
|
||
= 8000183C C MCP_USBB_CFG_15 EQU 08000183Ch ; scratch pad for meminit
|
||
C
|
||
C ;
|
||
C ; MCP registers used as scratchpad for memory test
|
||
C ;
|
||
= 8000103C C MEMTEST_TYPE EQU 08000103Ch ; MCP_USBA_CFG_15
|
||
= 8000183C C MEMTEST_RESULT EQU 08000183Ch ; MCP_USBB_CFG_15
|
||
C
|
||
C ;
|
||
C ; Memory test patterns
|
||
C ;
|
||
= AAAAAAAA C MEMTEST_PATTERN1 EQU 0AAAAAAAAh
|
||
= 5A5A5A5A C MEMTEST_PATTERN2 EQU 05A5A5A5Ah
|
||
= 55555555 C MEMTEST_PATTERN3 EQU 055555555h
|
||
= CCCCCCCC C MEMTEST_PATTERN4 EQU 0CCCCCCCCh
|
||
C
|
||
C
|
||
C ; Internal NV20 config equates (assumes bus 1)
|
||
C ;
|
||
= 80010004 C CR_NV20_PCI_1 EQU 080010004h
|
||
= 0007 C CR_NV20_PCI_1_BUS_MSTR_MEM_IO EQU 000000007h ; should be RMW, still ok?
|
||
C
|
||
= 80010010 C CR_NV20_PCI_4 EQU 080010010h
|
||
= 80010014 C CR_NV20_PCI_5 EQU 080010014h
|
||
C
|
||
C ;
|
||
C ; NV20 register offsets and init values (from nv2a\manuals\rom_table.txt)
|
||
C ;
|
||
= 10B0 C NV_PBUS_DEBUG_CTRIM_0 EQU 0000010B0h
|
||
= 10B4 C NV_PBUS_DEBUG_CTRIM_1 EQU 0000010B4h
|
||
= 10B8 C NV_PBUS_DEBUG_CTRIM_2 EQU 0000010B8h
|
||
= 10BC C NV_PBUS_DEBUG_CTRIM_3 EQU 0000010BCh
|
||
= 10C4 C NV_PBUS_DEBUG_CTRIM_4 EQU 0000010C4h
|
||
= 10C8 C NV_PBUS_DEBUG_CTRIM_5 EQU 0000010C8h
|
||
= 10CC C NV_PBUS_DEBUG_CTRIM_6 EQU 0000010CCh
|
||
= 10D4 C NV_PBUS_DEBUG_CTRIM_7 EQU 0000010D4h
|
||
= 10D8 C NV_PBUS_DEBUG_CTRIM_8 EQU 0000010D8h
|
||
= 10DC C NV_PBUS_DEBUG_CTRIM_9 EQU 0000010DCh
|
||
= 10E8 C NV_PBUS_DEBUG_CTRIM_10 EQU 0000010E8h
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 3 - 1
|
||
|
||
|
||
C
|
||
= 1210 C NV_PBUS_FBIO_CFG EQU 000001210h
|
||
C
|
||
= 1220 C NV_PBUS_FBIO_CALEN EQU 000001220h
|
||
= 0000 C NV_PBUS_FBIO_CALEN_OFF EQU 000000000h
|
||
C
|
||
= 1228 C NV_PBUS_FBIO_CALSEL EQU 000001228h
|
||
= 0000 C NV_PBUS_FBIO_CALSEL_VALUE EQU 000000000h
|
||
C
|
||
= 1214 C NV_PBUS_FBIO_DLY EQU 000001214h
|
||
C
|
||
= 122C C NV_PBUS_FBIO_ADRDRV EQU 00000122Ch
|
||
= 1230 C NV_PBUS_FBIO_CLKDRV EQU 000001230h
|
||
= 1234 C NV_PBUS_FBIO_DATDRV EQU 000001234h
|
||
= AAAAAAAA C NV_PBUS_FBIO_DATDRV_INIT EQU 0AAAAAAAAh
|
||
= 1238 C NV_PBUS_FBIO_DQSDRV EQU 000001238h
|
||
= AAAAAAAA C NV_PBUS_FBIO_DQSDRV_INIT EQU 0AAAAAAAAh
|
||
= 123C C NV_PBUS_FBIO_ADRSLW EQU 00000123Ch
|
||
= 8B8B8B8B C NV_PBUS_FBIO_ADRSLW_INIT EQU 08B8B8B8Bh
|
||
= 1240 C NV_PBUS_FBIO_CLKSLW EQU 000001240h
|
||
= 1244 C NV_PBUS_FBIO_DATSLW EQU 000001244h
|
||
= 8B8B8B8B C NV_PBUS_FBIO_DATSLW_INIT EQU 08B8B8B8Bh
|
||
= 1248 C NV_PBUS_FBIO_DQSSLW EQU 000001248h
|
||
= 8B8B8B8B C NV_PBUS_FBIO_DQSSLW_INIT EQU 08B8B8B8Bh
|
||
= 124C C NV_PBUS_DISPIO_PADCTL EQU 00000124Ch
|
||
= AA8BAA8B C NV_PBUS_DISPIO_PADCTL_INIT EQU 0AA8BAA8Bh
|
||
= 1250 C NV_PBUS_TVDIO_PADCTL EQU 000001250h
|
||
= AA8B C NV_PBUS_TVDIO_PADCTL_INIT EQU 00000AA8Bh
|
||
C
|
||
= 1264 C NV_PBUS_TVDIO_CALEN EQU 000001264h
|
||
= 0000 C NV_PBUS_TVDIO_CALEN_OFF EQU 000000000h
|
||
C
|
||
= 00101000 C NV_PEXTDEV_BOOT_0 EQU 000101000h
|
||
C
|
||
= 001002D0 C NV_PFB_REF EQU 0001002D0h
|
||
= 001002D4 C NV_PFB_PRE EQU 0001002D4h
|
||
= 0001 C NV_PFB_PRE_CMD_PRECHARGE_1 EQU 000000001h
|
||
= 001002C4 C NV_PFB_EMRS EQU 0001002C4h
|
||
= 001002CC C NV_PFB_EMRS_EXT EQU 0001002CCh
|
||
= 001002C0 C NV_PFB_MRS EQU 0001002C0h
|
||
= 0132 C NV_PFB_MRS_DLL_RESET EQU 000000132h
|
||
= 001002C8 C NV_PFB_MRS_EXT EQU 0001002C8h
|
||
= 0132 C NV_PFB_MRS_EXT_DLL_RESET EQU 000000132h
|
||
= 00100210 C NV_PFB_REFCTRL EQU 000100210h
|
||
= 80000000 C NV_PFB_REFCTRL_VALID_1 EQU 080000000h
|
||
= 00100410 C NV_PFB_WBC EQU 000100410h
|
||
= 00100420 C NV_PFB_CPU_RRQ EQU 000100420h
|
||
= 0401 C NV_PFB_CPU_RRQ_FWP_LAT_ENABLE EQU 000000401h
|
||
= 00100424 C NV_PFB_BYPASS EQU 000100424h
|
||
= F1780031 C NV_PFB_BYPASS_VALUE EQU 0F1780031h
|
||
C
|
||
= 0000 C NV_PMC_BOOT_0 EQU 000000000h
|
||
C
|
||
= 0068050C C NV_PRAMDAC_PLL_COEFF_SELECT EQU 00068050Ch
|
||
= 00100200 C NV_PFB_CFG0 EQU 000100200h
|
||
= 00100204 C NV_PFB_CFG1 EQU 000100204h
|
||
C
|
||
= 00100228 C NV_PFB_TIMING2 EQU 000100228h
|
||
C
|
||
= 00100330 C NV_PFB_ARB_XFER_SZ EQU 000100330h
|
||
= 0010032C C NV_PFB_ARB_TIMEOUT EQU 00010032Ch
|
||
= 00100328 C NV_PFB_ARB_PREDIVIDER EQU 000100328h
|
||
= 00100338 C NV_PFB_ARB_DIFF_BANK EQU 000100338h
|
||
C
|
||
= 1218 C NV_PBUS_FBIO_RAM EQU 000001218h
|
||
C
|
||
= 00680500 C NV_PRAMDAC_NVPLL_COEFF EQU 000680500h
|
||
C
|
||
= 00400880 C NV_PGRAPH_DEBUG_2 EQU 000400880h
|
||
= 002EC3FF C NV_PGRAPH_DEBUG_2_VALUE EQU 0002EC3FFh
|
||
= 00400B88 C NV_PGRAPH_DEBUG_10 EQU 000400b88h
|
||
= 0003 C NV_PGRAPH_DEBUG_10_ROP_BLEND EQU 000000003h
|
||
C
|
||
C ;
|
||
C ; Equates used for the memory detect/test
|
||
C ;
|
||
= 0000 C MEM_PART_0 EQU 000000000h
|
||
= 0010 C MEM_PART_1 EQU 000000010h
|
||
= 0020 C MEM_PART_2 EQU 000000020h
|
||
= 0030 C MEM_PART_3 EQU 000000030h
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 4 - 1
|
||
|
||
|
||
= 04000000 C MEM_PART_4 EQU 004000000h
|
||
= 04000010 C MEM_PART_5 EQU 004000010h
|
||
= 04000020 C MEM_PART_6 EQU 004000020h
|
||
= 04000030 C MEM_PART_7 EQU 004000030h
|
||
C
|
||
C
|
||
C ;
|
||
C ; First byte of the desired SMC revision
|
||
C ;
|
||
= 0050 C DESIRED_SMC_VER EQU 050h
|
||
C
|
||
C
|
||
C
|
||
C
|
||
C
|
||
C
|
||
0000 C CODE SEGMENT PARA PUBLIC 'code'
|
||
C assume ds:code,es:nothing,ss:nothing
|
||
C org 0000h
|
||
C
|
||
C ;
|
||
C ; NB data for NV2A on the DVT boards
|
||
C ;
|
||
C
|
||
C ;
|
||
C ; Not currently documented, NV2A expects table ptrs to exist in the first
|
||
C ; 2 DWORDS of the ROM image, which point to the beginning of the ROM table.
|
||
C ; The MCPX still expects to find it's init values starting at 0x70.
|
||
C ;
|
||
0000 FF000009 C dd NV2A_XBOX_ROM_TABLE_PTR + 1 ; LSB needs to be 1 to appear valid
|
||
0004 FF000008 C dd NV2A_XBOX_ROM_TABLE_PTR
|
||
C
|
||
C ; CR_ROM_NB_BOOT_HEADER (0*32+31):(0*32+0) /* R--VF */
|
||
C ;
|
||
0008 2B16D065 C dd 2B16D065h
|
||
C
|
||
C ; CR_ROM_NB_BOOT_PROC (1*32+0):(1*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_PROC_INTEL 0x00000001 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_RAMTYPE (1*32+2):(1*32+2) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_RAMTYPE_DDR 0x00000001 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_RAMWIDTH (1*32+3):(1*32+3) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_RAMWIDTH_128 0x00000001 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_MEM_POSTDIV (1*32+7):(1*32+4) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_AGP_POSTDIV (1*32+11):(1*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_FSB_ROM (1*32+15):(1*32+12) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_FSB_66 (1*32+19):(1*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_FSB_100 (1*32+23):(1*32+20) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_FSB_TUALATIN (1*32+27):(1*32+24) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_FSB_133 (1*32+31):(1*32+28) /* R--VF */
|
||
C ;
|
||
C ; dd 4444444dh ; (100MHz FSB hardcoded)
|
||
C ; dd 3346323Dh ; (AGP_PDIV = 2, MEM_PDIV = 3), start at 133MHz
|
||
000C 3346322D C dd 3346322Dh ; (AGP_PDIV = 2, MEM_PDIV = 2)
|
||
C
|
||
C ; These COREPLL values are based on using a 13.5MHz xtal.
|
||
C ;
|
||
C ; NOTE: If you change the MDIV, NDIV, FSB POSTDIV or MEM_POSTDIV you'll
|
||
C ; need to sync the change with the CR_CPU_MPLL_COEFF write in the inittbl
|
||
C ; below.
|
||
C ;
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_66 (2*32+7):(2*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_66_VALUE 0x00000007 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_100 (2*32+15):(2*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_100_VALUE 0x00000007 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_TUALATIN (2*32+23):(2*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_TUALATIN_VALUE 0x00000007 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_133 (2*32+31):(2*32+24) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_133_VALUE 0x00000007 /* R---V */
|
||
C ;
|
||
C ; dd 07070707h
|
||
C ; dd 01010101h
|
||
0010 01010101 C dd 01010101h
|
||
C
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_66 (3*32+7):(3*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_66_VALUE 0x00000022 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_100 (3*32+15):(3*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_100_VALUE 0x00000034 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_TUALATIN (3*32+23):(3*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_TUALATIN_VALUE 0x00000045 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_133 (3*32+31):(3*32+24) /* R--VF */
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 5 - 1
|
||
|
||
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_133_VALUE 0x00000045 /* R---V */
|
||
C ;
|
||
C ; dd 45453422h
|
||
C ; dd 07070707h ; (100MHz FSB)
|
||
C ; dd 08080808h ; (106MHz FSB)
|
||
C ; dd 0A0A0A0Ah ; (135MHz FSB)
|
||
C ; dd 09090909h ; (133MHz FSB)
|
||
0014 08080808 C dd 08080808h ; (133MHz FSB 16.66MHz input clock)
|
||
C
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_ROM (4*32+7):(4*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_MDIV_ROM_VALUE 0x00000007 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_ROM (4*32+15):(4*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_NDIV_ROM_VALUE 0x00000045 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_ASRC_CPU (4*32+23):(4*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_ASRC_LDT (4*32+31):(4*32+24) /* R--VF */
|
||
C ;
|
||
C ; dd 4507h
|
||
C ; dd 0801h ; (106MHz FSB)
|
||
C ; dd 0701h ; (100MHz FSB)
|
||
C ; dd 0A01h ; (135MHz FSB)
|
||
C ; dd 1D03h ; (133MHz FSB)
|
||
0018 00000801 C dd 0801h ; (133MHz FSB w/ 16.66MHz input clock)
|
||
C
|
||
C ; CR_ROM_NB_BOOT_SADDOUTCLK_DLY (5*32+3):(5*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_SDATAOUTCLK_DLY (5*32+7):(5*32+4) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CPU_VREF_EN_ (5*32+8):(5*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_APIC_33 (5*32+9):(5*32+9) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_SETUP (5*32+18):(5*32+10) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CPUPLL_SETUP (5*32+27):(5*32+19) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_COREPLL_DLY (5*32+31):(5*32+28) /* R--VF */
|
||
C ;
|
||
001C C8FC7C8A C dd 0C8FC7C8Ah
|
||
C
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLKFB (6*32+3):(6*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLKFB_VALUE 0x00000003 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK2X_BL (6*32+7):(6*32+4) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK2X_BL_VALUE 0x00000001 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK2X_BR (6*32+11):(6*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK2X_BR_VALUE 0x00000002 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK_NW (6*32+15):(6*32+12) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK_NW_VALUE_DONTCARE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK_SW (6*32+19):(6*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK_SW_VALUE 0x00000009 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK_SE (6*32+23):(6*32+20) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLK_SE_VALUE 0x00000002 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUOCLK_BL (6*32+27):(6*32+24) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUOCLK_BL_VALUE 0x00000002 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUOCLK_BR (6*32+31):(6*32+28) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUOCLK_BR_VALUE 0x00000002 /* R---V */
|
||
C ;
|
||
0020 44290213 C dd 44290213h ; A03
|
||
C
|
||
C
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLKOUT (7*32+3):(7*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUCLKOUT_VALUE 0x00000008 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_APICCLK_MCP (7*32+7):(7*32+4) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_APICCLK_MCP_VALUE 0x00000009 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_APICCLK_CPU (7*32+11):(7*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_APICCLK_CPU_VALUE 0x00000009 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_COREPLLFB (7*32+15):(7*32+12) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_COREPLLFB_VALUE 0X00000004 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUPLLFB (7*32+19):(7*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_SPARE1 (7*32+23):(7*32+20) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_SPARE1_VALUE_DONTCARE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_SPARE2 (7*32+27):(7*32+24) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_SPARE2_VALUE_DONTCARE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CTRIM_SPARE3 (7*32+31):(7*32+28) /* R--VF */
|
||
C ;
|
||
C IFDEF SYS_DVT6
|
||
0024 90004998 C dd 90004998h
|
||
C ELSE
|
||
C ENDIF
|
||
C
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLKFB (8*32+3):(8*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLKFB_VALUE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLK2X (8*32+7):(8*32+4) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLK2X_VALUE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLK (8*32+11):(8*32+8) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLK_VALUE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLKOUT (8*32+15):(8*32+12) /* R--VF */
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 6 - 1
|
||
|
||
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_CPUCLKOUT_VALUE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_APICCLK_CPU (8*32+19):(8*32+16) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_APICCLK_CPU_VALUE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_APICCLK_MCP (8*32+23):(8*32+20) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_APICCLK_MCP_VALUE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_SPARE1 (8*32+27):(8*32+24) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_SPARE1_VALUE_DONTCARE 0x00000000 /* R---V */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_SPARE2 (8*32+31):(8*32+28) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_CSHAPE_SPARE2_VALUE 0x00000000 /* R---V */
|
||
C ;
|
||
0028 00000000 C dd 000000000h
|
||
C
|
||
C ; CR_ROM_NB_BOOT_INTEL_BPRI_ (9*32+0):(9*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_BNR_ (9*32+1):(9*32+1) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_ADS_ (9*32+2):(9*32+2) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_ADDR_ (9*32+31):(9*32+3) /* R--VF */
|
||
C ;
|
||
002C FFFFFFFF C dd 0FFFFFFFFh
|
||
C
|
||
C ; CR_ROM_NB_BOOT_INTEL_TRDY_ (10*32+0):(10*32+0) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_RS_ (10*32+3):(10*32+1) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_REQ_ (10*32+8):(10*32+4) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_HITM_ (10*32+9):(10*32+9) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_HIT_ (10*32+10):(10*32+10) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_DRDY_ (10*32+11):(10*32+11) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_DEFER_ (10*32+12):(10*32+12) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_DBSY_ (10*32+13):(10*32+13) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_AGTL_PLUS (10*32+14):(10*32+14) /* R--VF */
|
||
C ; CR_ROM_NB_BOOT_INTEL_SPARE1 (10*32+31):(10*32+15) /* R--VF */
|
||
C ;
|
||
0030 FFFFFFFF C dd 0FFFFFFFFh
|
||
C
|
||
C ;
|
||
C ; 14 DWORDS used (11 for CR_ROM_BOOT, 2 table ptrs, 1 DWORD ROM rev)
|
||
C ;
|
||
0034 000E [ C dd (28-14) dup (0h)
|
||
00000000
|
||
]
|
||
C
|
||
C ; ROM/Trims Revision number
|
||
C ;
|
||
C ; To keep track of TRIM changes and other inittbl/datatbl changes, we'll
|
||
C ; use this DWORD as the revision ID. We'll also keep the history here, so
|
||
C ; clear what's been changed.
|
||
C ;
|
||
C ; rev1.00 -
|
||
C ; . set QUSE_NORMAL in NV_PBUS_FBIO_CFG
|
||
C ; . set NB_BOOT_CPUPLL_SETUP[3:0] and NB_BOOT_COREPLL_SETUP[3:0] to 0xF
|
||
C ; . set NB_BOOT_CTRIM_CPUPLLFB to 0x6
|
||
C ; . set NV_PBUS_DEBUG_CTRIM_6 to 0x66660000 and
|
||
C ; NV_PBUS_DEBUG_CTRIM_2 to 0x11110000, in that order
|
||
C ; . clear most significant nibble from NV_PBUS_DEBUG_CTRIM_4
|
||
C ; . add SYS_DVT3 ifdef for (DVT3) 13.5 vs. (DVT4) 16.6 input clocks,
|
||
C ; with changes to:
|
||
C ; NB_BOOT_COREPLL_NDIV and MDIV
|
||
C ; NV_PRAMDAC_NVPLL_COEFF
|
||
C ; CR_CPU_MPLL_COEFF
|
||
C ; . add NV2A_REV_A03 ifdef for A03 related trims:
|
||
C ; CTRIM_CPUOCLK_BL = 0x4
|
||
C ; CTRIM_CPUOCLK_BR = 0x4
|
||
C ; CR_CPU_CST_0 = 0xF0F0C0C0
|
||
C ; . update 13.5 and 16.6 calibration speedometer settings
|
||
C ; (previous VCC values were incorrect for both input clocks)
|
||
C ;
|
||
C ; rev1.01 -
|
||
C ; . set WBC from 0x11000001 (which is no buffering) to 0x11000016
|
||
C ; . reset PFB_ARB_XFER_SZ_ZW from 0xF (unlimited burst) to 0x8
|
||
C ; since NV2A doesn't need the zcull workaround like NV20.
|
||
C ; . set DQS/DQ inbound delay to 0x1/0x0 in the Samsung calibration table
|
||
C ; . set the MCLK drive/slew parameters to their max (helps clock jitter).
|
||
C ;
|
||
C ; rev1.02 -
|
||
C ; . change NV_PBUS_FBIO_CFG (from 0x1 to 0x10) for 1/4 clock delay
|
||
C ; . change NV_PBUS_DEBUG_CTRIM_2 (from 0x11110000 to 0x0)
|
||
C ;
|
||
C ; rev1.03 -
|
||
C ; . max MCP_LEG_CFG_45_PCICLKO5_TRIM to better line up the PCI clk
|
||
C ; for the LPC card
|
||
C ; . DVT6 trims (tested with the Cypress zero delay buffer):
|
||
C ; PBUS_DEBUG_CTRIM_2 = 0xFFFF0000
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 7 - 1
|
||
|
||
|
||
C ; CR_ROM_NB_BOOT_CTRIM_CPUPLLFB = 0x0
|
||
C ; CR_ROM_NB_BOOT_CTRIM_SPARE3 = 0x9
|
||
C ; change calibration inbound delay values (DQS = 0, DATA = 1)
|
||
C ;
|
||
C ; rev1.04 -
|
||
C ; . Add support for MCP C03's different base address
|
||
C ;
|
||
C ; rev1.05 -
|
||
C ; . update Micron FBIO_DLY and ADDRESS_DRIVE settings during init and
|
||
C ; in the calibration table.
|
||
C ; . PBUS_DEBUG_CTRIM_2 is now different between Samsung/Micron.
|
||
C ;
|
||
C ; rev1.06 -
|
||
C ; . Changed pre-calibration defaults for Samsung memory.
|
||
C ; . FBIO_DLY default was 012121212 is now 009090909
|
||
C ; . CLKDRV/CLKSLW value is now 0FFFFFFFF
|
||
C ;
|
||
C
|
||
C ;
|
||
006C 00000106 C dd 00000106h ; bits 31:8 = major rev, 7:0 = minor rev
|
||
C
|
||
C ;
|
||
C ; SB data for MCPX on the DVT boards (starts at offset 0x70)
|
||
C ;
|
||
C
|
||
C ; MCP_ROM_BOOT_FREQ_STRAP (28*32+3):(28*32+0) /* R--VF */
|
||
C ; MCP_ROM_BOOT_FREQ_STRAP_SAFE 0x0000000f /* R---V */
|
||
C ;
|
||
C ;dd 00000000h
|
||
0070 0000000F C dd 0Fh
|
||
C
|
||
C ; MCP_ROM_BOOT_PIC_DIS (29*32+0):(29*32+0) /* RWIVF */
|
||
C ; MCP_ROM_BOOT_PIT_DIS (29*32+1):(29*32+1) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_DMA_DIS (29*32+2):(29*32+2) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_P92_DIS (29*32+3):(29*32+3) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_FERR_DIS (29*32+4):(29*32+4) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_RTC_NMI_DIS (29*32+5):(29*32+5) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_USB0_DIS (29*32+8):(29*32+8) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_USB1_DIS (29*32+9):(29*32+9) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_MAC0_DIS (29*32+10):(29*32+10) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_MAC1_DIS (29*32+11):(29*32+11) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_ACI_DIS (29*32+12):(29*32+12) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_MCI_DIS (29*32+13):(29*32+13) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_IDE_DIS (29*32+14):(29*32+14) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_P2P_DIS (29*32+15):(29*32+15) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_SMB_DIS (29*32+16):(29*32+16) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_FST_RST (29*32+24):(29*32+24) /* R--VF */
|
||
C ; MCP_ROM_BOOT_FST_RST_NO 0x00000000 /* R---V */
|
||
C ; MCP_ROM_BOOT_REBOOT (29*32+25):(29*32+25) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_REBOOT_NO 0x00000000 /* RW--V */
|
||
C ; MCP_ROM_BOOT_LDT_FRQ (29*32+26):(29*32+26) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_LDT_FRQ_400MHz 0x00000000 /* RW--V */
|
||
C ; MCP_ROM_BOOT_LDT_FRQ_200MHz 0x00000001 /* RW--V */
|
||
C ; MCP_ROM_BOOT_PROC (29*32+27):(29*32+27) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_PROC_INTEL 0x00000000 /* RWI-V */
|
||
C ; MCP_ROM_BOOT_APU_TYP (29*32+28):(29*32+28) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_APU_TYP_256V 0x00000000 /* RW--V */
|
||
C ; MCP_ROM_BOOT_IDE_SEC (29*32+29):(29*32+29) /* RW-VF */
|
||
C ; MCP_ROM_BOOT_IDE_SEC_IDE 0x00000000 /* RWI-V */
|
||
C ; MCP_ROM_BOOT_XBOX_ROM_SPEED (29*32+30):(29*32+30) /* RWIVF */
|
||
C ; MCP_ROM_BOOT_XBOX_ROM_SPEED_SLOW 0x00000000 /* RWI-V */
|
||
C ; MCP_ROM_BOOT_XBOX_ROM_SPEED_FAST 0x00000001 /* RW--V */
|
||
C ;
|
||
C IFDEF SYS_RETAIL
|
||
0074 40004400 C dd 40004400h
|
||
C ELSE
|
||
C ENDIF
|
||
C ;
|
||
C ; Init table identifier number
|
||
C ;
|
||
C IFDEF SYS_DVT4
|
||
C ELSE
|
||
C IFDEF SYS_QT
|
||
C ELSE
|
||
0078 00000060 C dd 000000060h
|
||
C ENDIF
|
||
C ENDIF
|
||
C ;
|
||
C ; offset from ROM base to the datatbl
|
||
C ;
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 8 - 1
|
||
|
||
|
||
C ; IMPORTANT: If size of the init table code below changes, this offset must be adjusted
|
||
C ;
|
||
007C 00000C90 C dd DATATBL_BASE_OFFSET
|
||
C
|
||
C ;
|
||
C ; Force 128 byte alignment MCPX in XBox mode.
|
||
C ;
|
||
C org 0080h
|
||
C
|
||
C ;//////////////////////////////////////////
|
||
C ;
|
||
C ; NV2A init sequence.
|
||
C ;
|
||
C ;//////////////////////////////////////////
|
||
C
|
||
C IFDEF SYS_RETAIL
|
||
0080 F5 00081000 C nv_command_struct <COMMAND_UNUSED1, 000081000h, 001h>
|
||
00000001
|
||
0089 80 00000114 C nv_command_struct <COMMAND_UNUSED2, 0000114h, 0228h>
|
||
00000228
|
||
C ENDIF
|
||
C
|
||
C
|
||
C ;
|
||
C ; Setup the IO BAR in MCP. MCP_LEG_CFG_4 below evaluates to different
|
||
C ; values based on MCP rev we are building for.
|
||
C ;
|
||
0092 04 80000810 C nv_command_struct<COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_4, 8001h>
|
||
00008001
|
||
C
|
||
C ;
|
||
C ; Enable the IO space
|
||
C ;
|
||
009B 04 80000804 C nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_1, 3h>
|
||
00000003
|
||
C
|
||
C ;
|
||
C ; Disable the TCO timer
|
||
C ;
|
||
00A4 11 00008049 C nv_command_struct <COMMAND_OUT_BYTE, 08049h, 8h>
|
||
00000008
|
||
C
|
||
C ;
|
||
C ; Also, the KBDRSTIN# signal should've been pulled low on XBox. It wasn't and
|
||
C ; was left floating. As a workaround, will change the mode to be a GPIO.
|
||
C ;
|
||
00AD 11 000080D9 C nv_command_struct <COMMAND_OUT_BYTE, 080D9h, 0h> ; KBDRSTIN# in GPIO mode
|
||
00000000
|
||
00B6 11 00008026 C nv_command_struct <COMMAND_OUT_BYTE, 08026h, 1h> ; disable PWRBTN# in PM26
|
||
00000001
|
||
C
|
||
C ;
|
||
C ; First, we have to gain access to the integrated NV20. This involves
|
||
C ; enabling intergrated graphics and setting up the NB P2P to configure
|
||
C ; Bus2.
|
||
C ;
|
||
00BF 04 8000F04C C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_APC_P2P_19, CR_APC_P2P_19_NV20_ENABLE> ; internal gr
|
||
00000001 C aphics enabled
|
||
00C8 04 8000F018 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_APC_P2P_6, CR_APC_P2P_6_SUB_SEC_PRI_BUS> ; setup secon
|
||
00010100 C dary bus 1
|
||
C
|
||
C ;
|
||
C ; Now, config cycles to graphics should work. Setup the memory base/limit
|
||
C ; on the P2P and the BAR0 of the integrated graphics, so we can access priv
|
||
C ; regs. Enable BUS_MASTER and MEM/IO space accesses for NV20 and P2P.
|
||
C ;
|
||
C ; Note, because of a limitation in COMMAND_READ_MEM, we can't read from an
|
||
C ; address larger than 28bits, so we need to make our register base mapping
|
||
C ; under this (0x0D000000), but there's likely kernel code that assumes we're
|
||
C ; at 0xFD000000, so we'll reload to this address at the end of the inittbl.
|
||
C ;
|
||
00D1 04 80000084 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MEMTOP, CR_CPU_MEMTOP_LIMIT_128MB> ; for proper
|
||
07FFFFFF C P2P addr decode
|
||
C
|
||
00DA 04 8000F020 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_APC_P2P_8, CR_APC_P2P_8_MLIMIT_MBASE_INIT>
|
||
0FF00F00
|
||
00E3 04 8000F024 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_APC_P2P_9, CR_APC_P2P_9_PREF_MLIMIT_MBASE>
|
||
F7F0F000
|
||
00EC 04 80010010 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_NV20_PCI_4, NV20_REG_BASE> ; set register BAR0
|
||
0F000000
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 9 - 1
|
||
|
||
|
||
00F5 04 80010014 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_NV20_PCI_5, NV20_FB_BASE> ; set framebuffer BAR1
|
||
F0000000
|
||
00FE 04 80010004 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_NV20_PCI_1, CR_NV20_PCI_1_BUS_MSTR_MEM_IO>
|
||
00000007
|
||
0107 04 8000F004 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_APC_P2P_1, CR_APC_P2P_1_BUS_MSTR_MEM_IO> ; enable spa
|
||
00000007 C ces
|
||
C
|
||
C ;
|
||
C ; Also, setup the PBUS_DEBUG_CTRIM values
|
||
C ;
|
||
0110 02 0F000000 C nv_command_struct<COMMAND_READ_MEM, (NV20_REG_BASE + NV_PMC_BOOT_0), DONT_CARE>
|
||
00000000
|
||
0119 06 000000FF C nv_command_struct<COMMAND_RMW_RESULT, 0000000FFh, 000000000h>
|
||
00000000
|
||
0122 08 000000A1 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0A1h, (pbus_ctrim_A2-$-4)> ; (rev >= A2)
|
||
0000002D
|
||
C ;
|
||
012B C pbus_ctrim_A1:
|
||
012B 03 0F0010B0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_0), 007633451h>
|
||
07633451
|
||
0134 03 0F0010CC C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_6), 000000000h>
|
||
00000000
|
||
013D 03 0F0010B8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_2), 0FFFF0000h>
|
||
FFFF0000
|
||
0146 03 0F0010D4 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_7), 000000005h>
|
||
00000005
|
||
014F 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (pbus_ctrim_common-$-4)>
|
||
00000051
|
||
C
|
||
0158 C pbus_ctrim_A2:
|
||
0158 03 0F0010B0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_0), 007633461h>
|
||
07633461
|
||
0161 03 0F0010CC C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_6), 066660000h>
|
||
66660000
|
||
C
|
||
C IFDEF SYS_DVT6
|
||
C ;
|
||
C ; PBUS_DEBUG_CTRIM_2 is different between Samsung/Micron
|
||
C ;
|
||
016A 02 0F101000 C nv_command_struct<COMMAND_READ_MEM, (NV20_REG_BASE + NV_PEXTDEV_BOOT_0), DONT_CARE>
|
||
00000000
|
||
0173 06 000C0000 C nv_command_struct<COMMAND_RMW_RESULT, 0000C0000h, 000000000h>
|
||
00000000
|
||
017C 08 00000000 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0h, (samsung_ctrim2-$-4)>
|
||
00000012
|
||
C
|
||
0185 C micron_ctrim2:
|
||
0185 03 0F0010B8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_2), 0EEEE0000h>
|
||
EEEE0000
|
||
018E 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (ctrim_continue-$-4)>
|
||
00000009
|
||
C
|
||
0197 C samsung_ctrim2:
|
||
0197 03 0F0010B8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_2), 0FFFF0000h>
|
||
FFFF0000
|
||
C
|
||
01A0 C ctrim_continue:
|
||
C ELSE
|
||
C ENDIF
|
||
01A0 03 0F0010D4 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_7), 000000009h>
|
||
00000009
|
||
C
|
||
01A9 C pbus_ctrim_common:
|
||
01A9 03 0F0010B4 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_1), 000000000h>
|
||
00000000
|
||
01B2 03 0F0010BC C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_3), 000005866h>
|
||
00005866
|
||
01BB 03 0F0010C4 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_4), 00351C858h>
|
||
0351C858
|
||
01C4 03 0F0010C8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_5), 030007D67h>
|
||
30007D67
|
||
01CD 03 0F0010D8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_8), 000000000h>
|
||
00000000
|
||
01D6 03 0F0010DC C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_9), 0A0423635h>
|
||
A0423635
|
||
01DF 03 0F0010E8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DEBUG_CTRIM_10), 00C6558C6h>
|
||
0C6558C6
|
||
C
|
||
C ;
|
||
C ; Before we do MRS_EXT/EMRS_EXT cycles, make sure we've enabled the external bank
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 10 - 1
|
||
|
||
|
||
C ;
|
||
01E8 03 0F100200 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG0), 003070103h>
|
||
03070103
|
||
C
|
||
C ;
|
||
C ; Setup WBC High water mark
|
||
C ; The NV_PFB_WBC_HWM field should always be set no greater than 0x17
|
||
C ;
|
||
01F1 03 0F100410 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_WBC), 011000016h>
|
||
11000016
|
||
C
|
||
C ;
|
||
C ; FB Arbitration settings
|
||
C ;
|
||
01FA 03 0F100330 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_ARB_XFER_SZ), 084848888h>
|
||
84848888
|
||
0203 03 0F10032C C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_ARB_TIMEOUT), 0FFFFCFFFh>
|
||
FFFFCFFF
|
||
020C 03 0F100328 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_ARB_PREDIVIDER), 01h>
|
||
00000001
|
||
0215 03 0F100338 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_ARB_DIFF_BANK), 0DFh>
|
||
000000DF
|
||
C
|
||
C
|
||
C ;
|
||
C ; Update PEXTDEV_BOOT_0 (if A01)
|
||
C ;
|
||
C ; 0x80354C01 = turn on the override, disables AGP SBA/FW
|
||
C ; 0x803D4C01 = also sets EMRS_MATCHED
|
||
C ; 0x803D4C01 = no fast writes
|
||
C ;
|
||
021E 02 0F000000 C nv_command_struct<COMMAND_READ_MEM, (NV20_REG_BASE + NV_PMC_BOOT_0), DONT_CARE>
|
||
00000000
|
||
0227 06 000000FF C nv_command_struct<COMMAND_RMW_RESULT, 0000000FFh, 000000000h>
|
||
00000000
|
||
0230 08 000000A1 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0A1h, (skip_strap_override-$-4)> ; (rev >= A2)
|
||
00000009
|
||
C
|
||
0239 03 0F101000 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PEXTDEV_BOOT_0), 0803D4401h>
|
||
803D4401
|
||
0242 C skip_strap_override:
|
||
C
|
||
C ;
|
||
C ; Setup the SMBus for talking to the encoder.
|
||
C ;
|
||
C ; On the DVT boards controller 0 isn't used, so only setup controller 1. Besides
|
||
C ; enabling IO's, we'll also convert the pins from GPIOs to SMBus clk/data. This
|
||
C ; need to be done early during boot, so there's a pixclk before setting NVCLK.
|
||
C ;
|
||
0242 04 80000904 C nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_SMB_CFG_1, MCP_SMB_CFG_1_IO_SPACE>
|
||
00000001
|
||
024B 04 80000914 C nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_SMB_CFG_5, MCP_SMB_CFG_5_IO_BASE>
|
||
0000C001
|
||
0254 04 80000918 C nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_SMB_CFG_6, MCP_SMB_CFG_6_IO_BASE>
|
||
0000C201
|
||
025D 11 0000C200 C nv_command_struct <COMMAND_OUT_BYTE, SMB_DDC_SPIO_BASE, 70h> ; converts from GPIO
|
||
00000070
|
||
C
|
||
C IFNDEF FOCUS
|
||
C ;
|
||
C ; Now, make sure the TV encoder is driving a pixclk.
|
||
C ;
|
||
0266 11 0000C004 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+4, 08Ah> ; CX871 slave addr
|
||
0000008A
|
||
C
|
||
C ; CX871 offset 0xBA = 0x3F
|
||
026F 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 0BAh>
|
||
000000BA
|
||
0278 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 03Fh> ; turn on slave bit
|
||
0000003F
|
||
0281 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
028A 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
0293 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
029C 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 11 - 1
|
||
|
||
|
||
C ; CX871 offset 0x6C = 0x46
|
||
02A5 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 06Ch>
|
||
0000006C
|
||
02AE 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 046h>
|
||
00000046
|
||
02B7 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; write byte kickoff
|
||
0000000A
|
||
C
|
||
02C0 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
02C9 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
02D2 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ; CX871 offset 0xB8 = 0x0
|
||
02DB 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 0B8h>
|
||
000000B8
|
||
02E4 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 000h> ; autoconfig
|
||
00000000
|
||
02ED 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
02F6 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
02FF 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
0308 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ; CX871 offset 0xCE = 0x19
|
||
0311 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 0CEh>
|
||
000000CE
|
||
031A 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 019h>
|
||
00000019
|
||
0323 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
032C 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
0335 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
033E 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ; CX871 offset 0xC6 = 0x9C
|
||
0347 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 0C6h>
|
||
000000C6
|
||
0350 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 09Ch>
|
||
0000009C
|
||
0359 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
0362 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
036B 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
0374 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ; CX871 offset 0x32 = 0x08
|
||
037D 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 032h>
|
||
00000032
|
||
0386 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 008h>
|
||
00000008
|
||
038F 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
0398 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
03A1 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
03AA 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ; CX871 offset 0xC4 = 0x01
|
||
03B3 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 0C4h>
|
||
000000C4
|
||
03BC 11 0000C006 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 001h> ; enable clk output
|
||
00000001
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 12 - 1
|
||
|
||
|
||
03C5 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
03CE 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
03D7 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
03E0 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ENDIF
|
||
C
|
||
C
|
||
C IFDEF SYS_RETAIL
|
||
C ;
|
||
C ; Verify SMC revision
|
||
C ;
|
||
03E9 11 0000C004 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+4, 020h> ; SMC slave write addr
|
||
00000020
|
||
03F2 11 0000C008 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 001h> ; SMC revision register
|
||
00000001
|
||
03FB 11 0000C006 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6, 000h> ; Clear SMC rev pointer
|
||
00000000
|
||
0404 11 0000C002 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
040D 12 0000C000 C nv_command_struct<COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
0416 08 00000010 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
041F 11 0000C000 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
0428 11 0000C004 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+4, 021h> ; SMC slave read addr
|
||
00000021
|
||
0431 11 0000C008 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 001h> ; read revision register
|
||
00000001
|
||
043A 11 0000C002 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
0443 12 0000C000 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
044C 08 00000010 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
0455 11 0000C000 C nv_command_struct <COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
045E 12 0000C006 C nv_command_struct <COMMAND_IN_BYTE, SMB_CONTROL_BASE+6, DONT_CARE> ; get the result
|
||
00000000
|
||
C
|
||
0467 08 00000050 C nv_command_struct <COMMAND_COMPARE_RESULT_JNE, DESIRED_SMC_VER, (SmcIsWrong-$-4)> ; if smc is bad
|
||
00000009
|
||
0470 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (SmcIsOK-$-4)> ; smc is fine
|
||
00000009
|
||
C
|
||
0479 C SmcIsWrong:
|
||
C ;
|
||
C ; SMC is bad, flatline the clocks
|
||
C ;
|
||
0479 04 8000036C C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 001000000h>
|
||
01000000
|
||
C
|
||
0482 C SmcIsOK:
|
||
C
|
||
C ENDIF
|
||
C
|
||
C ;
|
||
C ; Set NVCLK (M, N, P may need adjusting if integrated NV20 VCOs are different)
|
||
C ; 0x0001ED08 = 200MHz
|
||
C ; 0x00011701 = 155MHz (rev == 0xA01)
|
||
C ; 0x00011C01 = 189MHz
|
||
C ; 0x00011E01 = 202.5MHz (rev >= 0xA02)
|
||
C ; 0x00011F01 = 209.25MHz (rev >= 0xA02)
|
||
C ; 0x00014502 = 229.5MHz (rev >= 0xA02 and 1.7V w/ fansink DVT3)
|
||
C ;
|
||
C ;nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PRAMDAC_NVPLL_COEFF), 00001ED08h>
|
||
C ;
|
||
0482 02 0F000000 C nv_command_struct<COMMAND_READ_MEM, (NV20_REG_BASE + NV_PMC_BOOT_0), DONT_CARE>
|
||
00000000
|
||
048B 06 000000FF C nv_command_struct<COMMAND_RMW_RESULT, 0000000FFh, 000000000h>
|
||
00000000
|
||
0494 08 000000A1 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0A1h, (nvclk_200-$-4)> ; (rev >= A2)
|
||
00000012
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 13 - 1
|
||
|
||
|
||
C
|
||
049D C nvclk_155:
|
||
049D 03 0F680500 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PRAMDAC_NVPLL_COEFF), 000011701h>
|
||
00011701
|
||
04A6 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (pll_select-$-4)>
|
||
00000009
|
||
C
|
||
04AF C nvclk_200:
|
||
C
|
||
04AF 03 0F680500 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PRAMDAC_NVPLL_COEFF), 000011C01h>
|
||
00011C01
|
||
C
|
||
04B8 C pll_select:
|
||
04B8 03 0F68050C C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PRAMDAC_PLL_COEFF_SELECT), 0000A0400h>
|
||
000A0400
|
||
C
|
||
C ;
|
||
C ; Disable FBIO/TVD calibration
|
||
C ;
|
||
04C1 03 0F001220 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_CALEN), NV_PBUS_FBIO_CALEN_OFF>
|
||
00000000
|
||
04CA 03 0F001228 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_CALSEL), NV_PBUS_FBIO_CALSEL_VALU
|
||
00000000 C E>
|
||
04D3 03 0F001264 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_TVDIO_CALEN), NV_PBUS_TVDIO_CALEN_OFF>
|
||
00000000
|
||
C
|
||
C ;
|
||
C ; Set the ADR_EDGE_HALF bit in FBIO_CFG
|
||
C ;
|
||
04DC 03 0F001210 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_CFG), 000000010h>
|
||
00000010
|
||
C
|
||
C ;
|
||
C ; DRAM configuration
|
||
C ;
|
||
C ; Determine Samsung vs Micron by checking NV_PEXTDEV_BOOT_0_STRAP_EMRS (19:18)
|
||
C ; 0=Micron, 3=Samsung
|
||
C ;
|
||
04E5 02 0F101000 C nv_command_struct<COMMAND_READ_MEM, (NV20_REG_BASE + NV_PEXTDEV_BOOT_0), DONT_CARE>
|
||
00000000
|
||
04EE 06 000C0000 C nv_command_struct<COMMAND_RMW_RESULT, 0000C0000h, 000000000h>
|
||
00000000
|
||
04F7 08 00000000 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0h, (samsung_memory-$-4)>
|
||
0000001B
|
||
C
|
||
C ;
|
||
C ; Configure for Micron
|
||
C ;
|
||
0500 03 0F001214 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_DLY), 028282828h>
|
||
28282828
|
||
0509 03 0F00122C C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_ADRDRV), 088888888h>
|
||
88888888
|
||
0512 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (memory_pad_config-$-4)>
|
||
00000012
|
||
C
|
||
051B C samsung_memory:
|
||
C ;
|
||
C ; Configure for Samsung
|
||
C ;
|
||
051B 03 0F001214 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_DLY), 009090909h>
|
||
09090909
|
||
0524 03 0F00122C C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_ADRDRV), 0AAAAAAAAh>
|
||
AAAAAAAA
|
||
C
|
||
052D C memory_pad_config:
|
||
C
|
||
C ;
|
||
C ; Memory PAD configuration
|
||
C ;
|
||
052D 03 0F001230 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_CLKDRV), 0FFFFFFFFh>
|
||
FFFFFFFF
|
||
0536 03 0F001234 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_DATDRV), NV_PBUS_FBIO_DATDRV_INIT
|
||
AAAAAAAA C >
|
||
053F 03 0F001238 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_DQSDRV), NV_PBUS_FBIO_DQSDRV_INIT
|
||
AAAAAAAA C >
|
||
0548 03 0F00123C C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_ADRSLW), NV_PBUS_FBIO_ADRSLW_INIT
|
||
8B8B8B8B C >
|
||
0551 03 0F001240 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_CLKSLW), 0FFFFFFFFh>
|
||
FFFFFFFF
|
||
055A 03 0F001244 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_DATSLW), NV_PBUS_FBIO_DATSLW_INIT
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 14 - 1
|
||
|
||
|
||
8B8B8B8B C >
|
||
0563 03 0F001248 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_DQSSLW), NV_PBUS_FBIO_DQSSLW_INIT
|
||
8B8B8B8B C >
|
||
C
|
||
C ;
|
||
C ; RAM Initialization (XXX should we be waiting for cmds to complete?)
|
||
C ;
|
||
056C 03 0F1002D4 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_PRE), NV_PFB_PRE_CMD_PRECHARGE_1>
|
||
00000001
|
||
0575 03 0F1002C4 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_EMRS), 000100042h>
|
||
00100042
|
||
057E 03 0F1002CC C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_EMRS_EXT), 000100042h>
|
||
00100042
|
||
0587 03 0F1002C0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_MRS), 000000011h>
|
||
00000011
|
||
0590 03 0F1002C8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_MRS_EXT), 000000011h>
|
||
00000011
|
||
0599 03 0F1002C0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_MRS), 000000032h>
|
||
00000032
|
||
05A2 03 0F1002C8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_MRS_EXT), 000000032h>
|
||
00000032
|
||
05AB 03 0F1002C0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_MRS), NV_PFB_MRS_DLL_RESET>
|
||
00000132
|
||
05B4 03 0F1002C8 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_MRS_EXT), NV_PFB_MRS_EXT_DLL_RESET>
|
||
00000132
|
||
05BD 03 0F1002D0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_REF), 000000001h>
|
||
00000001
|
||
05C6 03 0F1002D0 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_REF), 000000001h>
|
||
00000001
|
||
05CF 03 0F100210 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_REFCTRL), NV_PFB_REFCTRL_VALID_1>
|
||
80000000
|
||
C
|
||
C ;
|
||
C ; Display PAD configuration
|
||
C ;
|
||
05D8 03 0F00124C C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_DISPIO_PADCTL), NV_PBUS_DISPIO_PADCTL_
|
||
AA8BAA8B C INIT>
|
||
C
|
||
C ;
|
||
C ; TVD PAD configuration
|
||
C ;
|
||
05E1 03 0F001250 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_TVDIO_PADCTL), NV_PBUS_TVDIO_PADCTL_IN
|
||
0000AA8B C IT>
|
||
C
|
||
C ;
|
||
C ; Change PFB_TIMING2 and PBUS_FBIO_RAM
|
||
C ;
|
||
C ; NV_PFB_TIMING2 = 0x081202FF
|
||
C ; = 0x081205FF (increase REFRESH count with M=1, N=9, MEMPDIV=2)
|
||
C ;
|
||
05EA 03 0F100228 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_TIMING2), 0081205FFh>
|
||
081205FF
|
||
05F3 03 0F001218 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PBUS_FBIO_RAM), 000010000h>
|
||
00010000
|
||
C
|
||
C ;
|
||
C ; Tell MCP not to generate INIT# in response to the shutdown cycle
|
||
C ;
|
||
05FC 05 80000860 C nv_command_struct<COMMAND_PCI_CFG_READ, MCP_LEG_CFG_24, DONT_CARE>
|
||
00000000
|
||
0605 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000400h>
|
||
00000400
|
||
060E 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_24>
|
||
80000860
|
||
C
|
||
C ;
|
||
C ; Init ISO/non-ISO bits for the various MCP unit IDs
|
||
C ;
|
||
0617 04 8000084C C nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_19, 00000FDDEh>
|
||
0000FDDE
|
||
C
|
||
C ;
|
||
C ; Make sure the USB PLL has the correct value (not the POR value).
|
||
C ;
|
||
C ; nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_39, 0851CAA0Ch>
|
||
0620 04 8000089C C nv_command_struct <COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_39, 0871CC707h>
|
||
871CC707
|
||
C
|
||
C ;
|
||
C ; Set the maximum PCICLK_OUT5 trim (bits 11:8 = 0xF).
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 15 - 1
|
||
|
||
|
||
C ;
|
||
0629 05 800008B4 C nv_command_struct<COMMAND_PCI_CFG_READ, MCP_LEG_CFG_45, DONT_CARE>
|
||
00000000
|
||
0632 06 FFFFF0FF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFF0FFh, 000000F00h>
|
||
00000F00
|
||
063B 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MCP_LEG_CFG_45>
|
||
800008B4
|
||
C
|
||
C ;
|
||
C ; Set cshape/ctrim for clocks in CR_top.
|
||
C ;
|
||
0644 04 80000340 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_CST_0, 0F0F0C0C0h> ; A03
|
||
F0F0C0C0
|
||
064D 04 80000344 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_CST_1, 000C00000h>
|
||
00C00000
|
||
0656 04 8000035C C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_CST_7, 004070000h>
|
||
04070000
|
||
C
|
||
C ;
|
||
C ; These values have been set by the straps, but we'll write them into the
|
||
C ; CR_CPU_MPLL_COEFF register, so the values are knowable outside the ROM.
|
||
C ;
|
||
C ; Currently, we have MEM_PDIV of 3, which is 133MHz and will be left that
|
||
C ; way for A01. For A02, we set the MEM_PDIV to 2, which sets a 200MHz mclk.
|
||
C ;
|
||
C ; (0x230901: MEM_PDIV = 2, FSB_PDIV = 3; NDIV = 9; MDIV = 1)
|
||
C ; (0x230A01: MEM_PDIV = 2, FSB_PDIV = 3; NDIV = A; MDIV = 1)
|
||
C ; (0x231D03: MEM_PDIV = 2, FSB_PDIV = 3; NDIV = 1D; MDIV = 3)
|
||
C ;
|
||
C ; nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 000230901h>
|
||
C ; nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 000230901h> ; 182MHz
|
||
C ; nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 000231D03h> ; 200MHz
|
||
C ; nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 000230A01h> ; 202MHz
|
||
C ;
|
||
065F 02 0F000000 C nv_command_struct<COMMAND_READ_MEM, (NV20_REG_BASE + NV_PMC_BOOT_0), DONT_CARE>
|
||
00000000
|
||
0668 06 000000FF C nv_command_struct<COMMAND_RMW_RESULT, 0000000FFh, 000000000h>
|
||
00000000
|
||
0671 08 000000A1 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0A1h, (mclk_200-$-4)> ; (rev >= A2)
|
||
00000009
|
||
067A 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (mclk_133-$-4)> ; (rev == A1)
|
||
00000000
|
||
C
|
||
0683 C mclk_133:
|
||
0683 C mclk_200:
|
||
C ;
|
||
C ; Set the clocks and override. CR_CPU_MPLL_COEFF must be set once without override
|
||
C ; and then again with override.
|
||
C ;
|
||
0683 04 8000036C C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 000230801h>
|
||
00230801
|
||
068C 04 8000036C C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_CPU_MPLL_COEFF, 001230801h>
|
||
01230801
|
||
C
|
||
C ;
|
||
C ; Delay ~15 nano seconds by performing jmps
|
||
C ;
|
||
0695 09 00000000 C nv_command_struct< COMMAND_JMP, DONT_CARE, (DelayJump1-$-4) >
|
||
00000000
|
||
069E C DelayJump1:
|
||
069E 09 00000000 C nv_command_struct< COMMAND_JMP, DONT_CARE, (DelayJump2-$-4) >
|
||
00000000
|
||
06A7 C DelayJump2:
|
||
C
|
||
C ; MEMORY TEST
|
||
C ;
|
||
C ; This section does memory detection and test, and then updates
|
||
C ; the memory config registers and reports this config (and memory errors) back
|
||
C ; to the SMC.
|
||
C ;
|
||
C ; First, this is how the addressing works, with 12 row bits and an
|
||
C ; external bank:
|
||
C ;
|
||
C ; E[0:0],R[11:10] | R[9:6] | R[5:2] | R[1:0],B[1:0] | C[7:4] | C[3:2],P[1:0] | C[1:0],00
|
||
C ;
|
||
C ; We determine a particular DRAMs number of row bits (11 or 12) by toggling
|
||
C ; the R11 bit and looking for an alias within the DRAM (row address bit doesn't
|
||
C ; exist with the 2Mx32 parts).
|
||
C ;
|
||
C ; For row detection with the first 4 DRAM partitions (MEM_PART_0 -> MEM_PART_3),
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 16 - 1
|
||
|
||
|
||
C ; we'll address at 0x2500000 (R11 = 1, ext_bank = 0) and cycle the partition bits.
|
||
C ; For the second set of DRAMS (MEM_PART_4 -> MEM_PART_7), we'll address at
|
||
C ; 0x6500000 (R11 = 1, ext_bank = 1).
|
||
C ;
|
||
C ; In addition to row detection, we'll update the SMC controller with the number
|
||
C ; of 2Mx32 and 4Mx32 DRAMS and any memory errors we've found. We use the 2 USB
|
||
C ; registers as scratchpad (reset to 0 and later overwritten by the kernel).
|
||
C ;
|
||
C ; rows = 2^12, cols = 2^8, banks = 2^2, external bank
|
||
C ;
|
||
C
|
||
C
|
||
06A7 03 0F100200 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG0), 003070103h>
|
||
03070103
|
||
06B0 03 0F100204 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG1), 011448000h>
|
||
11448000
|
||
C
|
||
C ;
|
||
C ; Clear the scratchpad registers used in memory test
|
||
C ;
|
||
06B9 04 8000103C C nv_command_struct<COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE, 0>
|
||
00000000
|
||
06C2 04 8000183C C nv_command_struct<COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT, 0>
|
||
00000000
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
06CB C dram0:
|
||
06CB 03 00555548 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_0 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
06D4 03 02555548 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_0 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
06DD 02 02555548 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_0 + 002555548h), DONT_CARE>
|
||
00000000
|
||
06E6 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram0_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
06EF 02 00555548 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_0 + 000555548h), DONT_CARE>
|
||
00000000
|
||
06F8 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram0_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
0701 C dram0_4mb:
|
||
0701 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
070A 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000001h>
|
||
00000001
|
||
0713 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
071C C dram0_alt_write:
|
||
071C 03 00555548 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_0 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
0725 02 00555548 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_0 + 000555548h), DONT_CARE>
|
||
00000000
|
||
072E 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram0_err-$-4)>
|
||
00000009
|
||
0737 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram1-$-4)>
|
||
0000001B
|
||
C
|
||
0740 C dram0_err:
|
||
0740 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0749 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000001h>
|
||
00000001
|
||
0752 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
075B C dram1:
|
||
075B 03 00555558 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_1 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
0764 03 02555558 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_1 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
076D 02 02555558 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_1 + 002555548h), DONT_CARE>
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 17 - 1
|
||
|
||
|
||
00000000
|
||
0776 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram1_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
077F 02 00555558 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_1 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0788 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram1_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
0791 C dram1_4mb:
|
||
0791 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
079A 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000002h>
|
||
00000002
|
||
07A3 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
07AC C dram1_alt_write:
|
||
07AC 03 00555558 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_1 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
07B5 02 00555558 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_1 + 000555548h), DONT_CARE>
|
||
00000000
|
||
07BE 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram1_err-$-4)>
|
||
00000009
|
||
07C7 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram2-$-4)>
|
||
0000001B
|
||
C
|
||
07D0 C dram1_err:
|
||
07D0 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
07D9 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000002h>
|
||
00000002
|
||
07E2 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
07EB C dram2:
|
||
07EB 03 00555568 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_2 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
07F4 03 02555568 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_2 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
07FD 02 02555568 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_2 + 002555548h), DONT_CARE>
|
||
00000000
|
||
0806 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram2_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
080F 02 00555568 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_2 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0818 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram2_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
0821 C dram2_4mb:
|
||
0821 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
082A 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000004h>
|
||
00000004
|
||
0833 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
083C C dram2_alt_write:
|
||
083C 03 00555568 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_2 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
0845 02 00555568 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_2 + 000555548h), DONT_CARE>
|
||
00000000
|
||
084E 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram2_err-$-4)>
|
||
00000009
|
||
0857 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram3-$-4)>
|
||
0000001B
|
||
C
|
||
0860 C dram2_err:
|
||
0860 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0869 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000004h>
|
||
00000004
|
||
0872 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 18 - 1
|
||
|
||
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
087B C dram3:
|
||
087B 03 00555578 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_3 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
0884 03 02555578 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_3 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
088D 02 02555578 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_3 + 002555548h), DONT_CARE>
|
||
00000000
|
||
0896 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram3_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
089F 02 00555578 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_3 + 000555548h), DONT_CARE>
|
||
00000000
|
||
08A8 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram3_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
08B1 C dram3_4mb:
|
||
08B1 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
08BA 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000008h>
|
||
00000008
|
||
08C3 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
08CC C dram3_alt_write:
|
||
08CC 03 00555578 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_3 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
08D5 02 00555578 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_3 + 000555548h), DONT_CARE>
|
||
00000000
|
||
08DE 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram3_err-$-4)>
|
||
00000009
|
||
08E7 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram4-$-4)>
|
||
0000001B
|
||
C
|
||
08F0 C dram3_err:
|
||
08F0 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
08F9 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000008h>
|
||
00000008
|
||
0902 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
090B C dram4:
|
||
090B 03 04555548 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_4 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
0914 03 06555548 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_4 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
091D 02 06555548 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_4 + 002555548h), DONT_CARE>
|
||
00000000
|
||
0926 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram4_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
092F 02 04555548 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_4 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0938 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram4_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
0941 C dram4_4mb:
|
||
0941 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
094A 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000010h>
|
||
00000010
|
||
0953 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
095C C dram4_alt_write:
|
||
095C 03 04555548 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_4 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
0965 02 04555548 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_4 + 000555548h), DONT_CARE>
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 19 - 1
|
||
|
||
|
||
00000000
|
||
096E 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram4_err-$-4)>
|
||
00000009
|
||
0977 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram5-$-4)>
|
||
0000001B
|
||
C
|
||
0980 C dram4_err:
|
||
0980 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0989 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000010h>
|
||
00000010
|
||
0992 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
099B C dram5:
|
||
099B 03 04555558 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_5 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
09A4 03 06555558 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_5 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
09AD 02 06555558 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_5 + 002555548h), DONT_CARE>
|
||
00000000
|
||
09B6 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram5_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
09BF 02 04555558 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_5 + 000555548h), DONT_CARE>
|
||
00000000
|
||
09C8 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram5_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
09D1 C dram5_4mb:
|
||
09D1 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
09DA 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000020h>
|
||
00000020
|
||
09E3 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
09EC C dram5_alt_write:
|
||
09EC 03 04555558 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_5 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
09F5 02 04555558 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_5 + 000555548h), DONT_CARE>
|
||
00000000
|
||
09FE 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram5_err-$-4)>
|
||
00000009
|
||
0A07 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram6-$-4)>
|
||
0000001B
|
||
C
|
||
0A10 C dram5_err:
|
||
0A10 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0A19 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000020h>
|
||
00000020
|
||
0A22 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
0A2B C dram6:
|
||
0A2B 03 04555568 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_6 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
0A34 03 06555568 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_6 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
0A3D 02 06555568 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_6 + 002555548h), DONT_CARE>
|
||
00000000
|
||
0A46 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram6_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
0A4F 02 04555568 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_6 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0A58 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram6_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 20 - 1
|
||
|
||
|
||
0A61 C dram6_4mb:
|
||
0A61 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
0A6A 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000040h>
|
||
00000040
|
||
0A73 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
0A7C C dram6_alt_write:
|
||
0A7C 03 04555568 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_6 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
0A85 02 04555568 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_6 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0A8E 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram6_err-$-4)>
|
||
00000009
|
||
0A97 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (dram7-$-4)>
|
||
0000001B
|
||
C
|
||
0AA0 C dram6_err:
|
||
0AA0 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0AA9 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000040h>
|
||
00000040
|
||
0AB2 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
C ;-------------------------------------------------------------------------------
|
||
0ABB C dram7:
|
||
0ABB 03 04555578 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_7 + 000555548h), MEMTEST_PATTERN1>
|
||
AAAAAAAA
|
||
0AC4 03 06555578 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_7 + 002555548h), MEMTEST_PATTERN2>
|
||
5A5A5A5A
|
||
C
|
||
C ; does the DRAM exist?
|
||
0ACD 02 06555578 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_7 + 002555548h), DONT_CARE>
|
||
00000000
|
||
0AD6 08 5A5A5A5A C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN2, (dram7_err-$-4)>
|
||
00000051
|
||
C
|
||
C ; did we alias in the DRAM?
|
||
0ADF 02 04555578 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_7 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0AE8 08 AAAAAAAA C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN1, (dram7_alt_write-$-4)>
|
||
0000001B
|
||
C
|
||
0AF1 C dram7_4mb:
|
||
0AF1 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
0AFA 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000080h>
|
||
00000080
|
||
0B03 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_TYPE>
|
||
8000103C
|
||
C
|
||
0B0C C dram7_alt_write:
|
||
0B0C 03 04555578 C nv_command_struct<COMMAND_WRITE_MEM, (MEM_PART_7 + 000555548h), MEMTEST_PATTERN3>
|
||
55555555
|
||
0B15 02 04555578 C nv_command_struct<COMMAND_READ_MEM, (MEM_PART_7 + 000555548h), DONT_CARE>
|
||
00000000
|
||
0B1E 08 55555555 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, MEMTEST_PATTERN3, (dram7_err-$-4)>
|
||
00000009
|
||
0B27 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (memtest_done-$-4)>
|
||
0000001B
|
||
C
|
||
0B30 C dram7_err:
|
||
0B30 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0B39 06 FFFFFFFF C nv_command_struct<COMMAND_RMW_RESULT, 0FFFFFFFFh, 000000080h>
|
||
00000080
|
||
0B42 07 00000004 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_PCI_CFG_WRITE, MEMTEST_RESULT>
|
||
8000183C
|
||
C
|
||
C
|
||
0B4B C memtest_done:
|
||
C ;
|
||
C ; Start by assuming we're using a 4Mx32, 64MB config (no external bank).
|
||
C ; We've already set rows = 2^12, so clear the external bank bit.
|
||
C ;
|
||
0B4B 03 0F100200 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG0), 003070003h>
|
||
03070003
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 21 - 1
|
||
|
||
|
||
0B54 04 80000084 C nv_command_struct<COMMAND_PCI_CFG_WRITE, CR_CPU_MEMTOP, CR_CPU_MEMTOP_LIMIT_64MB>
|
||
03FFFFFF
|
||
C
|
||
C ;
|
||
C ; Read out our bitmask of 4Mx32 parts into the SMBus register and update our
|
||
C ; memory config, if necessary.
|
||
C ;
|
||
0B5D 05 8000103C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_TYPE, DONT_CARE>
|
||
00000000
|
||
0B66 06 000000FF C nv_command_struct<COMMAND_RMW_RESULT, 0000000FFh, 000000000h>
|
||
00000000
|
||
0B6F 07 00000011 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6>
|
||
0000C006
|
||
C
|
||
0B78 12 0000C006 C nv_command_struct<COMMAND_IN_BYTE, SMB_CONTROL_BASE+6, DONT_CARE>
|
||
00000000
|
||
0B81 08 00000000 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 000000000h, (dram_4M-$-4)>
|
||
0000001B
|
||
C
|
||
C ; Reset back to 11 row bits and add back the external bank bit
|
||
0B8A 03 0F100200 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG0), 003070103h> ; extbank bit
|
||
03070103
|
||
0B93 03 0F100204 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG1), 011338000h> ; 11 row bits
|
||
11338000
|
||
0B9C 09 00000000 C nv_command_struct<COMMAND_JMP, DONT_CARE, (mem_report-$-4)>
|
||
00000024
|
||
C
|
||
0BA5 C dram_4M:
|
||
C ; We've got some 4Mx32 parts, check if we're a 128MB config?
|
||
0BA5 12 0000C006 C nv_command_struct<COMMAND_IN_BYTE, SMB_CONTROL_BASE+6, DONT_CARE>
|
||
00000000
|
||
0BAE 08 000000FF C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 0000000FFh, (mem_report-$-4)>
|
||
00000012
|
||
C
|
||
C ; Add back the external bank bit and update MEMTOP
|
||
0BB7 03 0F100200 C nv_command_struct<COMMAND_WRITE_MEM, (NV20_REG_BASE + NV_PFB_CFG0), 003070103h> ; extback bit
|
||
03070103
|
||
0BC0 04 80000084 C nv_command_struct<COMMAND_PCI_CFG_WRITE, CR_CPU_MEMTOP, CR_CPU_MEMTOP_LIMIT_128MB>
|
||
07FFFFFF
|
||
C
|
||
C
|
||
0BC9 C mem_report:
|
||
C
|
||
C ;
|
||
C ; Report the results to the SMC
|
||
C ;
|
||
0BC9 11 0000C004 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+4, 020h> ; SMC slave addr
|
||
00000020
|
||
C
|
||
C ;
|
||
C ; Send Memory Type (already in SMB_CONTROL_BASE+6) to SMC
|
||
C ;
|
||
0BD2 11 0000C008 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 013h> ; SMC Register
|
||
00000013
|
||
0BDB 11 0000C002 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
0BE4 12 0000C000 C nv_command_struct<COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
00000000
|
||
0BED 08 00000010 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
0BF6 11 0000C000 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
C ;
|
||
C ; Send Memory test results to SMC
|
||
C ;
|
||
0BFF 05 8000183C C nv_command_struct<COMMAND_PCI_CFG_READ, MEMTEST_RESULT, DONT_CARE>
|
||
00000000
|
||
0C08 06 000000FF C nv_command_struct<COMMAND_RMW_RESULT, 0000000FFh, 000000000h>
|
||
00000000
|
||
0C11 07 00000011 C nv_command_struct<COMMAND_USE_RESULT_AS_DATA, COMMAND_OUT_BYTE, SMB_CONTROL_BASE+6>
|
||
0000C006
|
||
C
|
||
0C1A 11 0000C008 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+8, 012h> ; SMC Register
|
||
00000012
|
||
0C23 11 0000C002 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE+2, 00Ah> ; kickoff
|
||
0000000A
|
||
C
|
||
0C2C 12 0000C000 C nv_command_struct<COMMAND_IN_BYTE, SMB_CONTROL_BASE, DONT_CARE> ; read back status
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 22 - 1
|
||
|
||
|
||
00000000
|
||
0C35 08 00000010 C nv_command_struct<COMMAND_COMPARE_RESULT_JNE, 010h, -18> ; spin if not idle
|
||
FFFFFFEE
|
||
0C3E 11 0000C000 C nv_command_struct<COMMAND_OUT_BYTE, SMB_CONTROL_BASE, 010h> ; clear status
|
||
00000010
|
||
C
|
||
0C47 C mem_report_end:
|
||
C
|
||
C
|
||
C ;
|
||
C ; Reload the NV20 register base (should be just prior to COMMAND_QUIT)
|
||
C ; to what the kernel expects.
|
||
C ;
|
||
0C47 04 8000F020 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_APC_P2P_8, CR_APC_P2P_8_MLIMIT_MBASE_KERNEL>
|
||
FDF0FD00
|
||
0C50 04 80010010 C nv_command_struct <COMMAND_PCI_CFG_WRITE, CR_NV20_PCI_4, NV20_REG_BASE_KERNEL>
|
||
FD000000
|
||
C
|
||
C ; End of table. First argument is used as the value for the default MTRR register
|
||
C ;
|
||
0C59 EE 00000806 C nv_command_struct <COMMAND_QUIT, 0806h, DONT_CARE>
|
||
00000000
|
||
C
|
||
C ;
|
||
C ; Drive/Slew Parameter Offset and Data. Boot loader needs to access this data
|
||
C ;
|
||
C
|
||
C org DATATBL_BASE_OFFSET
|
||
C
|
||
C ;DATATBL_DRVSLWPARAM_OFFSET EQU DATATBL_BASE_OFFSET+0
|
||
C
|
||
C ;-----------------------------------------------------------------------------
|
||
C
|
||
0C90 C DrvSlwParamBegin:
|
||
C ;
|
||
C ; Common calibration data
|
||
C ;
|
||
0C90 4E20 C dw 20000 ; MaxMClk (230Mhz)
|
||
C ;
|
||
C ; Operating condition based on speedometer
|
||
C ; (Count is from VCCQ; CountB is from VCC)
|
||
C ;
|
||
C
|
||
C ;
|
||
C ; 16.6 clock
|
||
C ;
|
||
C
|
||
0C92 4E C db 4Eh ; SlowCountExt
|
||
0C93 3E C db 3Eh ; SlowCountBExt
|
||
C
|
||
0C94 56 C db 56h ; SlowCountAvg
|
||
0C95 43 C db 43h ; SlowCountBAvg
|
||
C
|
||
0C96 5D C db 5Dh ; TypiCount
|
||
0C97 4A C db 4Ah ; TypiCountB
|
||
C
|
||
0C98 64 C db 64h ; FastCountAvg
|
||
0C99 50 C db 50h ; FastCountBAvg
|
||
C
|
||
0C9A 6A C db 6Ah ; FastCountExt
|
||
0C9B 55 C db 55h ; FastCountBExt
|
||
C
|
||
C ;-----------------------------------------------------------------------------
|
||
C ;
|
||
C ; Samsung Extreme FAST values
|
||
C ;
|
||
0C9C 09 C db 09h ; AdrDrvFallFastExt
|
||
0C9D 09 C db 09h ; AdrDrvRiseFastExt
|
||
0C9E 0E C db 0Eh ; AdrSlwFallFastExt
|
||
0C9F 08 C db 08h ; AdrSlwRiseFastExt
|
||
C
|
||
0CA0 0F C db 0Fh ; ClkDrvFallFastExt
|
||
0CA1 0F C db 0Fh ; ClkDrvRiseFastExt
|
||
0CA2 0F C db 0Fh ; ClkSlwFallFastExt
|
||
0CA3 0F C db 0Fh ; ClkSlwRiseFastExt
|
||
C
|
||
0CA4 09 C db 09h ; DatDrvFallFastExt
|
||
0CA5 09 C db 09h ; DatDrvRiseFastExt
|
||
0CA6 0E C db 0Eh ; DatSlwFallFastExt
|
||
0CA7 08 C db 08h ; DatSlwRiseFastExt
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 23 - 1
|
||
|
||
|
||
C
|
||
0CA8 09 C db 09h ; DqsDrvFallFastExt
|
||
0CA9 09 C db 09h ; DqsDrvRiseFastExt
|
||
0CAA 0E C db 0Eh ; DqsSlwFallFastExt
|
||
0CAB 08 C db 08h ; DqsSlwRiseFastExt
|
||
C
|
||
C IFDEF SYS_DVT6
|
||
0CAC 01 C db 01h ; DataInbDelyFastExt
|
||
0CAD 00 C db 00h ; ClkIcDelyFastExt
|
||
0CAE 00 C db 00h ; DqsInbDelyFastExt
|
||
C ELSE
|
||
C ENDIF
|
||
C ;
|
||
C ; Samsung Average FAST values
|
||
C ;
|
||
0CAF 09 C db 09h ; AdrDrvFallFastAvg
|
||
0CB0 09 C db 09h ; AdrDrvRiseFastAvg
|
||
0CB1 0E C db 0Eh ; AdrSlwFallFastAvg
|
||
0CB2 08 C db 08h ; AdrSlwRiseFastAvg
|
||
C
|
||
0CB3 0F C db 0Fh ; ClkDrvFallFastAvg
|
||
0CB4 0F C db 0Fh ; ClkDrvRiseFastAvg
|
||
0CB5 0F C db 0Fh ; ClkSlwFallFastAvg
|
||
0CB6 0F C db 0Fh ; ClkSlwRiseFastAvg
|
||
C
|
||
0CB7 09 C db 09h ; DatDrvFallFastAvg
|
||
0CB8 09 C db 09h ; DatDrvRiseFastAvg
|
||
0CB9 0E C db 0Eh ; DatSlwFallFastAvg
|
||
0CBA 08 C db 08h ; DatSlwRiseFastAvg
|
||
C
|
||
0CBB 09 C db 09h ; DqsDrvFallFastAvg
|
||
0CBC 09 C db 09h ; DqsDrvRiseFastAvg
|
||
0CBD 0E C db 0Eh ; DqsSlwFallFastAvg
|
||
0CBE 08 C db 08h ; DqsSlwRiseFastAvg
|
||
C
|
||
C IFDEF SYS_DVT6
|
||
0CBF 01 C db 01h ; DataInbDelyFastAvg
|
||
0CC0 01 C db 01h ; ClkIcDelyFastAvg
|
||
0CC1 00 C db 00h ; DqsInbDelyFastAvg
|
||
C ELSE
|
||
C ENDIF
|
||
C ;
|
||
C ; Samsung Typical values
|
||
C ;
|
||
0CC2 09 C db 09h ; AdrDrvFallTypi
|
||
0CC3 09 C db 09h ; AdrDrvRiseTypi
|
||
0CC4 0E C db 0Eh ; AdrSlwFallTypi
|
||
0CC5 08 C db 08h ; AdrSlwRiseTypi
|
||
C
|
||
0CC6 0F C db 0Fh ; ClkDrvFallTypi
|
||
0CC7 0F C db 0Fh ; ClkDrvRiseTypi
|
||
0CC8 0F C db 0Fh ; ClkSlwFallTypi
|
||
0CC9 0F C db 0Fh ; ClkSlwRiseTypi
|
||
C
|
||
0CCA 09 C db 09h ; DatDrvFallTypi
|
||
0CCB 09 C db 09h ; DatDrvRiseTypi
|
||
0CCC 0E C db 0Eh ; DatSlwFallTypi
|
||
0CCD 08 C db 08h ; DatSlwRiseTypi
|
||
C
|
||
0CCE 09 C db 09h ; DqsDrvFallTypi
|
||
0CCF 09 C db 09h ; DqsDrvRiseTypi
|
||
0CD0 0E C db 0Eh ; DqsSlwFallTypi
|
||
0CD1 08 C db 08h ; DqsSlwRiseTypi
|
||
C
|
||
C IFDEF SYS_DVT6
|
||
0CD2 01 C db 01h ; DataInbDelyTypi
|
||
0CD3 02 C db 02h ; ClkIcDelyTypi
|
||
0CD4 00 C db 00h ; DqsInbDelyTypi
|
||
C ELSE
|
||
C ENDIF
|
||
C ;
|
||
C ; Samsung Average SLOW values
|
||
C ;
|
||
0CD5 0A C db 0Ah ; AdrDrvFallSlowAvg
|
||
0CD6 0B C db 0Bh ; AdrDrvRiseSlowAvg
|
||
0CD7 0E C db 0Eh ; AdrSlwFallSlowAvg
|
||
0CD8 08 C db 08h ; AdrSlwRiseSlowAvg
|
||
C
|
||
0CD9 0F C db 0Fh ; ClkDrvFallSlowAvg
|
||
0CDA 0F C db 0Fh ; ClkDrvRiseSlowAvg
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 24 - 1
|
||
|
||
|
||
0CDB 0F C db 0Fh ; ClkSlwFallSlowAvg
|
||
0CDC 0F C db 0Fh ; ClkSlwRiseSlowAvg
|
||
C
|
||
0CDD 0A C db 0Ah ; DatDrvFallSlowAvg
|
||
0CDE 0B C db 0Bh ; DatDrvRiseSlowAvg
|
||
0CDF 0E C db 0Eh ; DatSlwFallSlowAvg
|
||
0CE0 08 C db 08h ; DatSlwRiseSlowAvg
|
||
C
|
||
0CE1 0A C db 0Ah ; DqsDrvFallSlowAvg
|
||
0CE2 0B C db 0Bh ; DqsDrvRiseSlowAvg
|
||
0CE3 0E C db 0Eh ; DqsSlwFallSlowAvg
|
||
0CE4 08 C db 08h ; DqsSlwRiseSlowAvg
|
||
C
|
||
C IFDEF SYS_DVT6
|
||
0CE5 01 C db 01h ; DataInbDelySlowAvg
|
||
0CE6 02 C db 02h ; ClkIcDelySlowAvg
|
||
0CE7 00 C db 00h ; DqsInbDelySlowAvg
|
||
C ELSE
|
||
C ENDIF
|
||
C ;
|
||
C ; Samsung Extreme SLOW values
|
||
C ;
|
||
0CE8 0B C db 0Bh ; AdrDrvFallSlowExt
|
||
0CE9 0E C db 0Eh ; AdrDrvRiseSlowExt
|
||
0CEA 0E C db 0Eh ; AdrSlwFallSlowExt
|
||
0CEB 08 C db 08h ; AdrSlwRiseSlowExt
|
||
C
|
||
0CEC 0F C db 0Fh ; ClkDrvFallSlowExt
|
||
0CED 0F C db 0Fh ; ClkDrvRiseSlowExt
|
||
0CEE 0F C db 0Fh ; ClkSlwFallSlowExt
|
||
0CEF 0F C db 0Fh ; ClkSlwRiseSlowExt
|
||
C
|
||
0CF0 0B C db 0Bh ; DatDrvFallSlowExt
|
||
0CF1 0E C db 0Eh ; DatDrvRiseSlowExt
|
||
0CF2 0E C db 0Eh ; DatSlwFallSlowExt
|
||
0CF3 08 C db 08h ; DatSlwRiseSlowExt
|
||
C
|
||
0CF4 0B C db 0Bh ; DqsDrvFallSlowExt
|
||
0CF5 0E C db 0Eh ; DqsDrvRiseSlowExt
|
||
0CF6 0E C db 0Eh ; DqsSlwFallSlowExt
|
||
0CF7 08 C db 08h ; DqsSlwRiseSlowExt
|
||
C
|
||
C IFDEF SYS_DVT6
|
||
0CF8 01 C db 01h ; DataInbDelySlowExt
|
||
0CF9 03 C db 03h ; ClkIcDelySlowExt
|
||
0CFA 00 C db 00h ; DqsInbDelySlowExt
|
||
C ELSE
|
||
C ENDIF
|
||
C ;-----------------------------------------------------------------------------
|
||
C ;
|
||
C ; Micron Extreme FAST values
|
||
C ;
|
||
0CFB 08 C db 08h ; AdrDrvFallFastExt
|
||
0CFC 08 C db 08h ; AdrDrvRiseFastExt
|
||
0CFD 0E C db 0Eh ; AdrSlwFallFastExt
|
||
0CFE 08 C db 08h ; AdrSlwRiseFastExt
|
||
C
|
||
0CFF 0F C db 0Fh ; ClkDrvFallFastExt
|
||
0D00 0F C db 0Fh ; ClkDrvRiseFastExt
|
||
0D01 0F C db 0Fh ; ClkSlwFallFastExt
|
||
0D02 0F C db 0Fh ; ClkSlwRiseFastExt
|
||
C
|
||
0D03 09 C db 09h ; DatDrvFallFastExt
|
||
0D04 09 C db 09h ; DatDrvRiseFastExt
|
||
0D05 0E C db 0Eh ; DatSlwFallFastExt
|
||
0D06 08 C db 08h ; DatSlwRiseFastExt
|
||
C
|
||
0D07 09 C db 09h ; DqsDrvFallFastExt
|
||
0D08 09 C db 09h ; DqsDrvRiseFastExt
|
||
0D09 0E C db 0Eh ; DqsSlwFallFastExt
|
||
0D0A 08 C db 08h ; DqsSlwRiseFastExt
|
||
C
|
||
0D0B 00 C db 00h ; DataInbDelyFastExt
|
||
0D0C 01 C db 01h ; ClkIcDelyFastExt
|
||
0D0D 01 C db 01h ; DqsInbDelyFastExt
|
||
C ;
|
||
C ; Micron Average FAST values
|
||
C ;
|
||
0D0E 08 C db 08h ; AdrDrvFallFastAvg
|
||
0D0F 08 C db 08h ; AdrDrvRiseFastAvg
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 25 - 1
|
||
|
||
|
||
0D10 0E C db 0Eh ; AdrSlwFallFastAvg
|
||
0D11 08 C db 08h ; AdrSlwRiseFastAvg
|
||
C
|
||
0D12 0F C db 0Fh ; ClkDrvFallFastAvg
|
||
0D13 0F C db 0Fh ; ClkDrvRiseFastAvg
|
||
0D14 0F C db 0Fh ; ClkSlwFallFastAvg
|
||
0D15 0F C db 0Fh ; ClkSlwRiseFastAvg
|
||
C
|
||
0D16 09 C db 09h ; DatDrvFallFastAvg
|
||
0D17 09 C db 09h ; DatDrvRiseFastAvg
|
||
0D18 0E C db 0Eh ; DatSlwFallFastAvg
|
||
0D19 08 C db 08h ; DatSlwRiseFastAvg
|
||
C
|
||
0D1A 09 C db 09h ; DqsDrvFallFastAvg
|
||
0D1B 09 C db 09h ; DqsDrvRiseFastAvg
|
||
0D1C 0E C db 0Eh ; DqsSlwFallFastAvg
|
||
0D1D 08 C db 08h ; DqsSlwRiseFastAvg
|
||
C
|
||
0D1E 00 C db 00h ; DataInbDelyFastAvg
|
||
0D1F 01 C db 01h ; ClkIcDelyFastAvg
|
||
0D20 01 C db 01h ; DqsInbDelyFastAvg
|
||
C ;
|
||
C ; Micron Typical values
|
||
C ;
|
||
0D21 08 C db 08h ; AdrDrvFallTypi
|
||
0D22 08 C db 08h ; AdrDrvRiseTypi
|
||
0D23 0E C db 0Eh ; AdrSlwFallTypi
|
||
0D24 08 C db 08h ; AdrSlwRiseTypi
|
||
C
|
||
0D25 0F C db 0Fh ; ClkDrvFallTypi
|
||
0D26 0F C db 0Fh ; ClkDrvRiseTypi
|
||
0D27 0F C db 0Fh ; ClkSlwFallTypi
|
||
0D28 0F C db 0Fh ; ClkSlwRiseTypi
|
||
C
|
||
0D29 09 C db 09h ; DatDrvFallTypi
|
||
0D2A 09 C db 09h ; DatDrvRiseTypi
|
||
0D2B 0E C db 0Eh ; DatSlwFallTypi
|
||
0D2C 08 C db 08h ; DatSlwRiseTypi
|
||
C
|
||
0D2D 09 C db 09h ; DqsDrvFallTypi
|
||
0D2E 09 C db 09h ; DqsDrvRiseTypi
|
||
0D2F 0E C db 0Eh ; DqsSlwFallTypi
|
||
0D30 08 C db 08h ; DqsSlwRiseTypi
|
||
C
|
||
0D31 00 C db 00h ; DataInbDelyTypi
|
||
0D32 01 C db 01h ; ClkIcDelyTypi
|
||
0D33 01 C db 01h ; DqsInbDelyTypi
|
||
C ;
|
||
C ; Micron Average SLOW values
|
||
C ;
|
||
0D34 08 C db 08h ; AdrDrvFallSlowAvg
|
||
0D35 08 C db 08h ; AdrDrvRiseSlowAvg
|
||
0D36 0E C db 0Eh ; AdrSlwFallSlowAvg
|
||
0D37 08 C db 08h ; AdrSlwRiseSlowAvg
|
||
C
|
||
0D38 0F C db 0Fh ; ClkDrvFallSlowAvg
|
||
0D39 0F C db 0Fh ; ClkDrvRiseSlowAvg
|
||
0D3A 0F C db 0Fh ; ClkSlwFallSlowAvg
|
||
0D3B 0F C db 0Fh ; ClkSlwRiseSlowAvg
|
||
C
|
||
0D3C 0A C db 0Ah ; DatDrvFallSlowAvg
|
||
0D3D 0B C db 0Bh ; DatDrvRiseSlowAvg
|
||
0D3E 0E C db 0Eh ; DatSlwFallSlowAvg
|
||
0D3F 08 C db 08h ; DatSlwRiseSlowAvg
|
||
C
|
||
0D40 0A C db 0Ah ; DqsDrvFallSlowAvg
|
||
0D41 0B C db 0Bh ; DqsDrvRiseSlowAvg
|
||
0D42 0E C db 0Eh ; DqsSlwFallSlowAvg
|
||
0D43 08 C db 08h ; DqsSlwRiseSlowAvg
|
||
C
|
||
0D44 00 C db 00h ; DataInbDelySlowAvg
|
||
0D45 01 C db 01h ; ClkIcDelySlowAvg
|
||
0D46 01 C db 01h ; DqsInbDelySlowAvg
|
||
C ;
|
||
C ; Micron Extreme SLOW values
|
||
C ;
|
||
0D47 08 C db 08h ; AdrDrvFallSlowExt
|
||
0D48 08 C db 08h ; AdrDrvRiseSlowExt
|
||
0D49 0E C db 0Eh ; AdrSlwFallSlowExt
|
||
0D4A 08 C db 08h ; AdrSlwRiseSlowExt
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Page 26 - 1
|
||
|
||
|
||
C
|
||
0D4B 0F C db 0Fh ; ClkDrvFallSlowExt
|
||
0D4C 0F C db 0Fh ; ClkDrvRiseSlowExt
|
||
0D4D 0F C db 0Fh ; ClkSlwFallSlowExt
|
||
0D4E 0F C db 0Fh ; ClkSlwRiseSlowExt
|
||
C
|
||
0D4F 0B C db 0Bh ; DatDrvFallSlowExt
|
||
0D50 0E C db 0Eh ; DatDrvRiseSlowExt
|
||
0D51 0E C db 0Eh ; DatSlwFallSlowExt
|
||
0D52 08 C db 08h ; DatSlwRiseSlowExt
|
||
C
|
||
0D53 0B C db 0Bh ; DqsDrvFallSlowExt
|
||
0D54 0E C db 0Eh ; DqsDrvRiseSlowExt
|
||
0D55 0E C db 0Eh ; DqsSlwFallSlowExt
|
||
0D56 08 C db 08h ; DqsSlwRiseSlowExt
|
||
C
|
||
0D57 00 C db 00h ; DataInbDelySlowExt
|
||
0D58 01 C db 01h ; ClkIcDelySlowExt
|
||
0D59 01 C db 01h ; DqsInbDelySlowExt
|
||
C
|
||
0D5A C DrvSlwParamEnd:
|
||
C
|
||
0D5A 43 6F 70 79 72 69 C DB 'Copyright (c) Microsoft Corporation. All rights reserved.'
|
||
67 68 74 20 28 63
|
||
29 20 4D 69 63 72
|
||
6F 73 6F 66 74 20
|
||
43 6F 72 70 6F 72
|
||
61 74 69 6F 6E 2E
|
||
20 41 6C 6C 20 72
|
||
69 67 68 74 73 20
|
||
72 65 73 65 72 76
|
||
65 64 2E
|
||
C
|
||
C
|
||
0D93 C CODE ENDS
|
||
C
|
||
C
|
||
|
||
END
|
||
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Symbols 27 - 1
|
||
|
||
|
||
|
||
|
||
Structures and Unions:
|
||
|
||
N a m e Size
|
||
Offset Type
|
||
|
||
nv_command_struct . . . . . . . 0009
|
||
nv_command . . . . . . . . . . 0000 Byte
|
||
nv_address . . . . . . . . . . 0001 DWord
|
||
nv_data . . . . . . . . . . . 0005 DWord
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Symbols 28 - 1
|
||
|
||
|
||
|
||
|
||
Segments and Groups:
|
||
|
||
N a m e Size Length Align Combine Class
|
||
|
||
CODE . . . . . . . . . . . . . . 16 Bit 0D93 Para Public 'CODE'
|
||
DGROUP . . . . . . . . . . . . . GROUP
|
||
_DATA . . . . . . . . . . . . . 16 Bit 0000 Word Public 'DATA'
|
||
_TEXT . . . . . . . . . . . . . 16 Bit 0000 Word Public 'CODE'
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Symbols 29 - 1
|
||
|
||
|
||
|
||
|
||
Symbols:
|
||
|
||
N a m e Type Value Attr
|
||
|
||
@CodeSize . . . . . . . . . . . Number 0000h
|
||
@DataSize . . . . . . . . . . . Number 0001h
|
||
@Interface . . . . . . . . . . . Number 0000h
|
||
@Model . . . . . . . . . . . . . Number 0003h
|
||
@code . . . . . . . . . . . . . Text _TEXT
|
||
@data . . . . . . . . . . . . . Text DGROUP
|
||
@fardata? . . . . . . . . . . . Text FAR_BSS
|
||
@fardata . . . . . . . . . . . . Text FAR_DATA
|
||
@stack . . . . . . . . . . . . . Text DGROUP
|
||
APERTURE_BASE . . . . . . . . . Number 40000000h
|
||
COMMAND_COMPARE_RESULT_JNE . . . Number 0008h
|
||
COMMAND_IN_BYTE . . . . . . . . Number 0012h
|
||
COMMAND_JMP . . . . . . . . . . Number 0009h
|
||
COMMAND_OUT_BYTE . . . . . . . . Number 0011h
|
||
COMMAND_PCI_CFG_READ . . . . . . Number 0005h
|
||
COMMAND_PCI_CFG_WRITE . . . . . Number 0004h
|
||
COMMAND_QUIT . . . . . . . . . . Number 00EEh
|
||
COMMAND_READ_MEM . . . . . . . . Number 0002h
|
||
COMMAND_RESERVED . . . . . . . . Number 0001h
|
||
COMMAND_RMW_ACCUM . . . . . . . Number 0010h
|
||
COMMAND_RMW_RESULT . . . . . . . Number 0006h
|
||
COMMAND_UNUSED1 . . . . . . . . Number 00F5h
|
||
COMMAND_UNUSED2 . . . . . . . . Number 0080h
|
||
COMMAND_USE_RESULT_AS_DATA . . . Number 0007h
|
||
COMMAND_WRITE_MEM . . . . . . . Number 0003h
|
||
CR_APC_P2P_19_NV20_ENABLE . . . Number 0001h
|
||
CR_APC_P2P_19 . . . . . . . . . Number 8000F04Ch
|
||
CR_APC_P2P_1_BUS_MSTR_MEM_IO . . Number 0007h
|
||
CR_APC_P2P_1 . . . . . . . . . . Number 8000F004h
|
||
CR_APC_P2P_6_SUB_SEC_PRI_BUS . . Number 00010100h
|
||
CR_APC_P2P_6 . . . . . . . . . . Number 8000F018h
|
||
CR_APC_P2P_8_MLIMIT_MBASE_INIT . Number 0FF00F00h
|
||
CR_APC_P2P_8_MLIMIT_MBASE_KERNEL . Number FDF0FD00h
|
||
CR_APC_P2P_8 . . . . . . . . . . Number 8000F020h
|
||
CR_APC_P2P_9_PREF_MLIMIT_MBASE . Number F7F0F000h
|
||
CR_APC_P2P_9 . . . . . . . . . . Number 8000F024h
|
||
CR_CPU_CST_0 . . . . . . . . . . Number 80000340h
|
||
CR_CPU_CST_1 . . . . . . . . . . Number 80000344h
|
||
CR_CPU_CST_7 . . . . . . . . . . Number 8000035Ch
|
||
CR_CPU_MEMTOP_LIMIT_128MB . . . Number 07FFFFFFh
|
||
CR_CPU_MEMTOP_LIMIT_64MB . . . . Number 03FFFFFFh
|
||
CR_CPU_MEMTOP . . . . . . . . . Number 80000084h
|
||
CR_CPU_MPLL_COEFF . . . . . . . Number 8000036Ch
|
||
CR_NV20_PCI_1_BUS_MSTR_MEM_IO . Number 0007h
|
||
CR_NV20_PCI_1 . . . . . . . . . Number 80010004h
|
||
CR_NV20_PCI_4 . . . . . . . . . Number 80010010h
|
||
CR_NV20_PCI_5 . . . . . . . . . Number 80010014h
|
||
DATATBL_BASE_OFFSET . . . . . . Number 0C90h
|
||
DESIRED_SMC_VER . . . . . . . . Number 0050h
|
||
DEVKIT . . . . . . . . . . . . . Text
|
||
DONT_CARE . . . . . . . . . . . Number 0000h
|
||
DelayJump1 . . . . . . . . . . . L Near 069E CODE
|
||
DelayJump2 . . . . . . . . . . . L Near 06A7 CODE
|
||
DrvSlwParamBegin . . . . . . . . L Near 0C90 CODE
|
||
DrvSlwParamEnd . . . . . . . . . L Near 0D5A CODE
|
||
MCP_LEG_CFG_19 . . . . . . . . . Number 8000084Ch
|
||
MCP_LEG_CFG_1 . . . . . . . . . Number 80000804h
|
||
MCP_LEG_CFG_24 . . . . . . . . . Number 80000860h
|
||
MCP_LEG_CFG_2 . . . . . . . . . Number 80000808h
|
||
MCP_LEG_CFG_39 . . . . . . . . . Number 8000089Ch
|
||
MCP_LEG_CFG_45 . . . . . . . . . Number 800008B4h
|
||
MCP_LEG_CFG_4 . . . . . . . . . Number 80000810h
|
||
MCP_SMB_CFG_1_IO_SPACE . . . . . Number 0001h
|
||
MCP_SMB_CFG_1 . . . . . . . . . Number 80000904h
|
||
MCP_SMB_CFG_5_IO_BASE . . . . . Number C001h
|
||
MCP_SMB_CFG_5 . . . . . . . . . Number 80000914h
|
||
MCP_SMB_CFG_6_IO_BASE . . . . . Number C201h
|
||
MCP_SMB_CFG_6 . . . . . . . . . Number 80000918h
|
||
MCP_USBA_CFG_15 . . . . . . . . Number 8000103Ch
|
||
MCP_USBB_CFG_15 . . . . . . . . Number 8000183Ch
|
||
MEMTEST_PATTERN1 . . . . . . . . Number AAAAAAAAh
|
||
MEMTEST_PATTERN2 . . . . . . . . Number 5A5A5A5Ah
|
||
MEMTEST_PATTERN3 . . . . . . . . Number 55555555h
|
||
MEMTEST_PATTERN4 . . . . . . . . Number CCCCCCCCh
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Symbols 30 - 1
|
||
|
||
|
||
|
||
|
||
Symbols:
|
||
|
||
N a m e Type Value Attr
|
||
|
||
MEMTEST_RESULT . . . . . . . . . Number 8000183Ch
|
||
MEMTEST_TYPE . . . . . . . . . . Number 8000103Ch
|
||
MEM_PART_0 . . . . . . . . . . . Number 0000h
|
||
MEM_PART_1 . . . . . . . . . . . Number 0010h
|
||
MEM_PART_2 . . . . . . . . . . . Number 0020h
|
||
MEM_PART_3 . . . . . . . . . . . Number 0030h
|
||
MEM_PART_4 . . . . . . . . . . . Number 04000000h
|
||
MEM_PART_5 . . . . . . . . . . . Number 04000010h
|
||
MEM_PART_6 . . . . . . . . . . . Number 04000020h
|
||
MEM_PART_7 . . . . . . . . . . . Number 04000030h
|
||
NV20_FB_BASE . . . . . . . . . . Number F0000000h
|
||
NV20_REG_BASE_KERNEL . . . . . . Number FD000000h
|
||
NV20_REG_BASE . . . . . . . . . Number 0F000000h
|
||
NV2A_XBOX_ROM_TABLE_PTR . . . . Number FF000008h
|
||
NV_PBUS_DEBUG_CTRIM_0 . . . . . Number 10B0h
|
||
NV_PBUS_DEBUG_CTRIM_10 . . . . . Number 10E8h
|
||
NV_PBUS_DEBUG_CTRIM_1 . . . . . Number 10B4h
|
||
NV_PBUS_DEBUG_CTRIM_2 . . . . . Number 10B8h
|
||
NV_PBUS_DEBUG_CTRIM_3 . . . . . Number 10BCh
|
||
NV_PBUS_DEBUG_CTRIM_4 . . . . . Number 10C4h
|
||
NV_PBUS_DEBUG_CTRIM_5 . . . . . Number 10C8h
|
||
NV_PBUS_DEBUG_CTRIM_6 . . . . . Number 10CCh
|
||
NV_PBUS_DEBUG_CTRIM_7 . . . . . Number 10D4h
|
||
NV_PBUS_DEBUG_CTRIM_8 . . . . . Number 10D8h
|
||
NV_PBUS_DEBUG_CTRIM_9 . . . . . Number 10DCh
|
||
NV_PBUS_DISPIO_PADCTL_INIT . . . Number AA8BAA8Bh
|
||
NV_PBUS_DISPIO_PADCTL . . . . . Number 124Ch
|
||
NV_PBUS_FBIO_ADRDRV . . . . . . Number 122Ch
|
||
NV_PBUS_FBIO_ADRSLW_INIT . . . . Number 8B8B8B8Bh
|
||
NV_PBUS_FBIO_ADRSLW . . . . . . Number 123Ch
|
||
NV_PBUS_FBIO_CALEN_OFF . . . . . Number 0000h
|
||
NV_PBUS_FBIO_CALEN . . . . . . . Number 1220h
|
||
NV_PBUS_FBIO_CALSEL_VALUE . . . Number 0000h
|
||
NV_PBUS_FBIO_CALSEL . . . . . . Number 1228h
|
||
NV_PBUS_FBIO_CFG . . . . . . . . Number 1210h
|
||
NV_PBUS_FBIO_CLKDRV . . . . . . Number 1230h
|
||
NV_PBUS_FBIO_CLKSLW . . . . . . Number 1240h
|
||
NV_PBUS_FBIO_DATDRV_INIT . . . . Number AAAAAAAAh
|
||
NV_PBUS_FBIO_DATDRV . . . . . . Number 1234h
|
||
NV_PBUS_FBIO_DATSLW_INIT . . . . Number 8B8B8B8Bh
|
||
NV_PBUS_FBIO_DATSLW . . . . . . Number 1244h
|
||
NV_PBUS_FBIO_DLY . . . . . . . . Number 1214h
|
||
NV_PBUS_FBIO_DQSDRV_INIT . . . . Number AAAAAAAAh
|
||
NV_PBUS_FBIO_DQSDRV . . . . . . Number 1238h
|
||
NV_PBUS_FBIO_DQSSLW_INIT . . . . Number 8B8B8B8Bh
|
||
NV_PBUS_FBIO_DQSSLW . . . . . . Number 1248h
|
||
NV_PBUS_FBIO_RAM . . . . . . . . Number 1218h
|
||
NV_PBUS_TVDIO_CALEN_OFF . . . . Number 0000h
|
||
NV_PBUS_TVDIO_CALEN . . . . . . Number 1264h
|
||
NV_PBUS_TVDIO_PADCTL_INIT . . . Number AA8Bh
|
||
NV_PBUS_TVDIO_PADCTL . . . . . . Number 1250h
|
||
NV_PEXTDEV_BOOT_0 . . . . . . . Number 00101000h
|
||
NV_PFB_ARB_DIFF_BANK . . . . . . Number 00100338h
|
||
NV_PFB_ARB_PREDIVIDER . . . . . Number 00100328h
|
||
NV_PFB_ARB_TIMEOUT . . . . . . . Number 0010032Ch
|
||
NV_PFB_ARB_XFER_SZ . . . . . . . Number 00100330h
|
||
NV_PFB_BYPASS_VALUE . . . . . . Number F1780031h
|
||
NV_PFB_BYPASS . . . . . . . . . Number 00100424h
|
||
NV_PFB_CFG0 . . . . . . . . . . Number 00100200h
|
||
NV_PFB_CFG1 . . . . . . . . . . Number 00100204h
|
||
NV_PFB_CPU_RRQ_FWP_LAT_ENABLE . Number 0401h
|
||
NV_PFB_CPU_RRQ . . . . . . . . . Number 00100420h
|
||
NV_PFB_EMRS_EXT . . . . . . . . Number 001002CCh
|
||
NV_PFB_EMRS . . . . . . . . . . Number 001002C4h
|
||
NV_PFB_MRS_DLL_RESET . . . . . . Number 0132h
|
||
NV_PFB_MRS_EXT_DLL_RESET . . . . Number 0132h
|
||
NV_PFB_MRS_EXT . . . . . . . . . Number 001002C8h
|
||
NV_PFB_MRS . . . . . . . . . . . Number 001002C0h
|
||
NV_PFB_PRE_CMD_PRECHARGE_1 . . . Number 0001h
|
||
NV_PFB_PRE . . . . . . . . . . . Number 001002D4h
|
||
NV_PFB_REFCTRL_VALID_1 . . . . . Number -80000000h
|
||
NV_PFB_REFCTRL . . . . . . . . . Number 00100210h
|
||
NV_PFB_REF . . . . . . . . . . . Number 001002D0h
|
||
NV_PFB_TIMING2 . . . . . . . . . Number 00100228h
|
||
Microsoft (R) Macro Assembler Version 7.10.3077 07/22/03 22:26:00
|
||
..\i386\inittbl.asm Symbols 31 - 1
|
||
|
||
|
||
|
||
|
||
Symbols:
|
||
|
||
N a m e Type Value Attr
|
||
|
||
NV_PFB_WBC . . . . . . . . . . . Number 00100410h
|
||
NV_PGRAPH_DEBUG_10_ROP_BLEND . . Number 0003h
|
||
NV_PGRAPH_DEBUG_10 . . . . . . . Number 00400B88h
|
||
NV_PGRAPH_DEBUG_2_VALUE . . . . Number 002EC3FFh
|
||
NV_PGRAPH_DEBUG_2 . . . . . . . Number 00400880h
|
||
NV_PMC_BOOT_0 . . . . . . . . . Number 0000h
|
||
NV_PRAMDAC_NVPLL_COEFF . . . . . Number 00680500h
|
||
NV_PRAMDAC_PLL_COEFF_SELECT . . Number 0068050Ch
|
||
RETAILXM3 . . . . . . . . . . . Text 1
|
||
SMB_CONTROL_BASE . . . . . . . . Number C000h
|
||
SMB_DDC_SPIO_BASE . . . . . . . Number C200h
|
||
SYS_DVT6 . . . . . . . . . . . . Text 1
|
||
SYS_RETAIL . . . . . . . . . . . Number 0001h
|
||
SmcIsOK . . . . . . . . . . . . L Near 0482 CODE
|
||
SmcIsWrong . . . . . . . . . . . L Near 0479 CODE
|
||
ctrim_continue . . . . . . . . . L Near 01A0 CODE
|
||
dram0_4mb . . . . . . . . . . . L Near 0701 CODE
|
||
dram0_alt_write . . . . . . . . L Near 071C CODE
|
||
dram0_err . . . . . . . . . . . L Near 0740 CODE
|
||
dram0 . . . . . . . . . . . . . L Near 06CB CODE
|
||
dram1_4mb . . . . . . . . . . . L Near 0791 CODE
|
||
dram1_alt_write . . . . . . . . L Near 07AC CODE
|
||
dram1_err . . . . . . . . . . . L Near 07D0 CODE
|
||
dram1 . . . . . . . . . . . . . L Near 075B CODE
|
||
dram2_4mb . . . . . . . . . . . L Near 0821 CODE
|
||
dram2_alt_write . . . . . . . . L Near 083C CODE
|
||
dram2_err . . . . . . . . . . . L Near 0860 CODE
|
||
dram2 . . . . . . . . . . . . . L Near 07EB CODE
|
||
dram3_4mb . . . . . . . . . . . L Near 08B1 CODE
|
||
dram3_alt_write . . . . . . . . L Near 08CC CODE
|
||
dram3_err . . . . . . . . . . . L Near 08F0 CODE
|
||
dram3 . . . . . . . . . . . . . L Near 087B CODE
|
||
dram4_4mb . . . . . . . . . . . L Near 0941 CODE
|
||
dram4_alt_write . . . . . . . . L Near 095C CODE
|
||
dram4_err . . . . . . . . . . . L Near 0980 CODE
|
||
dram4 . . . . . . . . . . . . . L Near 090B CODE
|
||
dram5_4mb . . . . . . . . . . . L Near 09D1 CODE
|
||
dram5_alt_write . . . . . . . . L Near 09EC CODE
|
||
dram5_err . . . . . . . . . . . L Near 0A10 CODE
|
||
dram5 . . . . . . . . . . . . . L Near 099B CODE
|
||
dram6_4mb . . . . . . . . . . . L Near 0A61 CODE
|
||
dram6_alt_write . . . . . . . . L Near 0A7C CODE
|
||
dram6_err . . . . . . . . . . . L Near 0AA0 CODE
|
||
dram6 . . . . . . . . . . . . . L Near 0A2B CODE
|
||
dram7_4mb . . . . . . . . . . . L Near 0AF1 CODE
|
||
dram7_alt_write . . . . . . . . L Near 0B0C CODE
|
||
dram7_err . . . . . . . . . . . L Near 0B30 CODE
|
||
dram7 . . . . . . . . . . . . . L Near 0ABB CODE
|
||
dram_4M . . . . . . . . . . . . L Near 0BA5 CODE
|
||
mclk_133 . . . . . . . . . . . . L Near 0683 CODE
|
||
mclk_200 . . . . . . . . . . . . L Near 0683 CODE
|
||
mem_report_end . . . . . . . . . L Near 0C47 CODE
|
||
mem_report . . . . . . . . . . . L Near 0BC9 CODE
|
||
memory_pad_config . . . . . . . L Near 052D CODE
|
||
memtest_done . . . . . . . . . . L Near 0B4B CODE
|
||
micron_ctrim2 . . . . . . . . . L Near 0185 CODE
|
||
nvclk_155 . . . . . . . . . . . L Near 049D CODE
|
||
nvclk_200 . . . . . . . . . . . L Near 04AF CODE
|
||
pbus_ctrim_A1 . . . . . . . . . L Near 012B CODE
|
||
pbus_ctrim_A2 . . . . . . . . . L Near 0158 CODE
|
||
pbus_ctrim_common . . . . . . . L Near 01A9 CODE
|
||
pll_select . . . . . . . . . . . L Near 04B8 CODE
|
||
samsung_ctrim2 . . . . . . . . . L Near 0197 CODE
|
||
samsung_memory . . . . . . . . . L Near 051B CODE
|
||
skip_strap_override . . . . . . L Near 0242 CODE
|
||
|
||
0 Warnings
|
||
0 Errors
|