📄 reginfo.c
字号:
#include "reginfo.h"
FLStatus DINFO_REG( EXBYTE handle )
{
DinfoPrint( EX_TEXT("\n REGISTER INFO.\n") );
ExPrintLine( 16 );
switch( curFlash->mediaType )
{
case( FL_DOC_OREN ):
/* DinfoPrint( "DOC CONTROL REGISTES \n" ); */
DinfoPrint( " OREN CHIP ID REGISTER 0x1000\n" );
DinfoPrint( " OREN CHIP ID CONFIRM REGISTER 0x1074\n" );
DinfoPrint( " OREN NOP REGISTER 0x1002\n" );
DinfoPrint( " OREN ALIAS RESOLUTION REGISTER 0x1004\n" );
DinfoPrint( " OREN BUS LOCK REGISTERISTER 0x1006\n" );
DinfoPrint( " OREN BUS SWAP REGISTER 0x1008\n" );
DinfoPrint( " OREN DEVICE ID SELECT REGISTER 0x100A\n" );
DinfoPrint( " OREN DOC CONTROL REGISTER 0x100C\n" );
DinfoPrint( " OREN DOC CONTROL CONFIRM REGISTER 0x1072\n" );
DinfoPrint( " OREN CONFIGURATION REGISTER 0x100E\n" );
DinfoPrint( " OREN INTERRUPT CONTROL REGISTER 0x1010\n" );
DinfoPrint( " OREN FOUNDRY TEST REGISTER 0x1076\n" );
DinfoPrint( " OREN HW PROTECTION CONTROL REGISTER 0x1012\n" );
DinfoPrint( " OREN FOUNDRY KEY REGISTER 0x1078\n" );
DinfoPrint( " OREN OUTPUT CONTROL REGISTER 0x1014\n" );
/* DinfoPrint( "DOC ICMU REGISTES \n" ); */
DinfoPrint( " OREN ICMU CORRECT FACTOR REG 0x1016\n" );
DinfoPrint( " OREN ICMU CONTROL REG 0x1018\n" );
DinfoPrint( " OREN CLOCK COUNTER REG 0x101A\n" );
/* DinfoPrint( "DOC LPC REGISTES \n" ); */
DinfoPrint( " OREN LPC CONFIGURATION REG 0x1020\n" );
DinfoPrint( " OREN LPC STRAPPING REG 0X1022 \n" );
DinfoPrint( " OREN LPC DMA REG 0x1024\n" );
DinfoPrint( " OREN LPC INTERRUPT REG 0x1026\n" );
DinfoPrint( " OREN LPC IO INDEX REG 0x0007\n" );
/* DinfoPrint( "DOC FLASH REGISTES \n" ); */
DinfoPrint( " OREN FLASH CONTROL REG 0x1038\n" );
DinfoPrint( " OREN FLASH STATUS REG 0x103A \n" );
DinfoPrint( " OREN FLASH ACCESS CONFIG REG 0x103E\n" );
DinfoPrint( " OREN FLASH SEQUENCE REG 0x1032\n" );
DinfoPrint( " OREN FLASH COMMAND REG 0x1034\n" );
DinfoPrint( " OREN FLASH ADDRESS REG 0x1036\n" );
DinfoPrint( " OREN FLASH DATA REG 0x1030\n" );
DinfoPrint( " OREN FLASH DATA REG LB BYTE 0x103C\n" );
/* DinfoPrint( "DOC ECC REGISTES \n" ); */
DinfoPrint( " OREN FLASH BCH PARITY REG 0x1048\n" );
DinfoPrint( " OREN HAMMING PARITY REG 0x1046 \n" );
DinfoPrint( " OREN ECC PRESET REG 0x1044\n" );
DinfoPrint( " OREN ECC CONTROL REG 0 0x1040\n" );
DinfoPrint( " OREN ECC CONTROL REG 1 0x1042\n" );
/* DinfoPrint( "DOC PROTECTION REGISTES \n" ); */
DinfoPrint( " OREN COTP POINTER REG 0x1050 \n" );
DinfoPrint( " OREN COTP LOCK POINTER REG 0x1052 \n" );
DinfoPrint( " OREN BBT POINTER REG 0x1054 \n" );
DinfoPrint( " OREN PROTECTION STATUS REG 0x1056 \n" );
DinfoPrint( " OREN DPS0 ADDRESS LOW REG 0x1060 \n" );
DinfoPrint( " OREN DPS0 ADDRESS HIGH REG 0x1062 \n" );
DinfoPrint( " OREN DPS1 ADDRESS LOW REG 0x1064 \n" );
DinfoPrint( " OREN DPS1 ADDRESS HIGH REG 0x1066 \n" );
DinfoPrint( " OREN DPS0 POINTER REG 0x1068 \n" );
DinfoPrint( " OREN DPS1 POINTER REG 0x106A \n" );
DinfoPrint( " OREN DPS0 STATUS REG 0x106c \n" );
DinfoPrint( " OREN DPS1 STATUS REG 0x106e \n" );
DinfoPrint( " OREN DPS 0 KEY REG 0x105c \n" );
DinfoPrint( " OREN DPS 1 KEY REG 0x105e \n" );
DinfoPrint( " OREN FLASH GEOMETRY REG 0 0x1058 \n" );
DinfoPrint( " OREN FLASH GEOMETRY REG 1 0x105a \n" );
/* DinfoPrint( "DOC DOWNLOAD REGISTES \n" ); */
DinfoPrint( " OREN DOWNLOAD STATUS REGISTER0 0x1070\n" );
DinfoPrint( " OREN SEQUENCE CASH RAM START 0x1100\n" );
break;
case FL_MDOC512_G3 :
case FL_MDOC256_P3 :
/* DinfoPrint( "DOC CONTROL REGISTES \n" ); */
DinfoPrint( " MDOC CHIP ID REGISTER 0x1000\n" );
DinfoPrint( " MDOC CHIP ID CONFIRM REGISTER 0x1074\n" );
DinfoPrint( " MDOC NOP REGISTER 0x103E\n" );
DinfoPrint( " MDOC ALIAS RESOLUTION REGISTER 0x1004\n" );
DinfoPrint( " MDOC BUS LOCK REGISTER 0x1006\n" );
DinfoPrint( " MDOC BUS SWAP REGISTER 0x1008\n" );
DinfoPrint( " MDOC DEVICE ID SELECT REGISTER 0x100A\n" );
DinfoPrint( " MDOC DOC CONTROL REGISTER 0x100C\n" );
DinfoPrint( " MDOC DOC CONTROL CONFIRM REGISTER 0x1072\n" );
DinfoPrint( " MDOC CONFIGURATION REGISTER 0x100E\n" );
DinfoPrint( " MDOC INTERRUPT CONTROL REGISTER 0x1010\n" );
DinfoPrint( " MDOC INTERRUPT STATUS REGISTER 0x1020\n" );
DinfoPrint( " MDOC FOUNDRY TEST REGISTER 0x1076\n" );
DinfoPrint( " MDOC READ ADDRESS REGISTER 0x1076\n" );
DinfoPrint( " MDOC OUTPUT CONTROL REGISTER 0x1014\n" );
DinfoPrint( " MDOC DMA CONTROL REGISTER 0 0x1078\n" );
DinfoPrint( " MDOC DMA CONTROL REGISTER 1 0x107A\n" );
DinfoPrint( " MDOC BURST MODE CONTROL REGISTER 0x101C\n" );
DinfoPrint( " MDOC REAL TIME CLK CONTROL REGISTER 0x1016\n" );
DinfoPrint( " MDOC REAL TIME CLOCK REGISTER 0x1018\n" );
/* DinfoPrint( "DOC FLASH REGISTES \n" ); */
DinfoPrint( " MDOC FLASH CONTROL REG 0x1038\n" );
DinfoPrint( " MDOC FLASH ACCESS CONFIG REG 0x103E\n" );
DinfoPrint( " MDOC FLASH SEQUENCE REG 0x1032\n" );
DinfoPrint( " MDOC FLASH COMMAND REG 0x1034\n" );
DinfoPrint( " MDOC FLASH ADDRESS REG 0x1036\n" );
DinfoPrint( " MDOC FLASH DATA REG 0x103C\n" );
DinfoPrint( " MDOC FLASH END OF DATA REG 0x101E\n" );
/* DinfoPrint( "DOC ECC REGISTES \n" ); */
DinfoPrint( " MDOC BCH PARITY REGISTERS 0x1048-0x104E\n" );
DinfoPrint( " MDOC HAMMING PARITY REG 0x1046 \n" );
DinfoPrint( " MDOC ECC PRESET REG 0x1044\n" );
DinfoPrint( " MDOC ECC CONTROL REG 0 0x1040\n" );
DinfoPrint( " MDOC ECC CONTROL REG 1 0x1042\n" );
/* DinfoPrint( "DOC PROTECTION REGISTES \n" ); */
DinfoPrint( " MDOC PROTECTION STATUS REG 0x1056 \n" );
DinfoPrint( " MDOC DPS0 ADDRESS LOW REG 0x1060 \n" );
DinfoPrint( " MDOC DPS0 ADDRESS HIGH REG 0x1062 \n" );
DinfoPrint( " MDOC DPS1 ADDRESS LOW REG 0x1064 \n" );
DinfoPrint( " MDOC DPS1 ADDRESS HIGH REG 0x1066 \n" );
DinfoPrint( " MDOC DPS0 STATUS REG 0x106c \n" );
DinfoPrint( " MDOC DPS1 STATUS REG 0x106e \n" );
DinfoPrint( " MDOC DPS 0 KEY REG 0x105c \n" );
DinfoPrint( " MDOC DPS 1 KEY REG 0x105e \n" );
/* DinfoPrint( "DOC DOWNLOAD REGISTES \n" ); */
DinfoPrint( " MDOC DOWNLOAD STATUS REGISTER0 0x1070\n" );
DinfoPrint( " MDOC FIRST GOOD UNIT REG 0x1022\n" );
break;
default:
DinfoPrint( " Can't display register information\n" );
break;
}
return flOK;;
}
EXBYTE readRegContent( EXDWORD base, EXWORD address )
{
volatile unsigned char* win;
win = (volatile unsigned char *)physicalToPointer((base+address),0,0);
return (*win);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -