Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d26b892df | ||
|
|
28f5ca76cb | ||
|
|
3cf13ecc7a | ||
|
|
9ba4613c89 | ||
|
|
58c156d0cf | ||
|
|
80fe5c14ff |
+123
-11
@@ -555,25 +555,137 @@ void DumpAuraRegisters(AuraController * controller)
|
||||
* Main function. Detects busses and Aura controllers, then opens the main window *
|
||||
* *
|
||||
\******************************************************************************************/
|
||||
// PIIX4 SMBus address offsets
|
||||
#define SMBHSTSTS (0 + piix4_smba)
|
||||
#define SMBHSLVSTS (1 + piix4_smba)
|
||||
#define SMBHSTCNT (2 + piix4_smba)
|
||||
#define SMBHSTCMD (3 + piix4_smba)
|
||||
#define SMBHSTADD (4 + piix4_smba)
|
||||
#define SMBHSTDAT0 (5 + piix4_smba)
|
||||
#define SMBHSTDAT1 (6 + piix4_smba)
|
||||
#define SMBBLKDAT (7 + piix4_smba)
|
||||
#define SMBSLVCNT (8 + piix4_smba)
|
||||
#define SMBSHDWCMD (9 + piix4_smba)
|
||||
#define SMBSLVEVT (0xA + piix4_smba)
|
||||
#define SMBSLVDAT (0xC + piix4_smba)
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
DetectI2CBusses();
|
||||
|
||||
DetectAuraControllers();
|
||||
FILE* file = freopen("regdump.txt", "w", stdout);
|
||||
|
||||
#if WIN32
|
||||
OpenAuraSDKDialog dlg(busses, controllers);
|
||||
dlg.DoModal();
|
||||
int piix4_smba = ((i2c_smbus_piix4*)busses[0])->piix4_smba;
|
||||
|
||||
return 0;
|
||||
while(1)
|
||||
{
|
||||
while ((Inp32(SMBHSTSTS) & 0x02) != 0)
|
||||
{
|
||||
for (int i = 0; i < 5000; i++);
|
||||
}
|
||||
|
||||
#else
|
||||
QApplication a(argc, argv);
|
||||
while ((Inp32(SMBHSTSTS) & 0x02) == 0)
|
||||
{
|
||||
for (int i = 0; i < 5000; i++);
|
||||
}
|
||||
{
|
||||
unsigned char addr = Inp32(SMBHSTADD);
|
||||
unsigned char size = Inp32(SMBHSTCNT);
|
||||
unsigned char cmnd = Inp32(SMBHSTCMD);
|
||||
unsigned char dat0 = Inp32(SMBHSTDAT0);
|
||||
unsigned char dat1 = Inp32(SMBHSTDAT1);
|
||||
if (addr & 1)
|
||||
{
|
||||
switch (size & 0x1C)
|
||||
{
|
||||
case PIIX4_QUICK:
|
||||
printf("Read %02x from address %02x \n",
|
||||
dat0,
|
||||
addr >> 1);
|
||||
break;
|
||||
|
||||
Ui::OpenAuraSDKQtDialog dlg(busses, controllers);
|
||||
dlg.show();
|
||||
case PIIX4_BYTE_DATA:
|
||||
printf("Read %02x from %02x, address %02x \n",
|
||||
dat0,
|
||||
cmnd,
|
||||
addr >> 1);
|
||||
break;
|
||||
|
||||
case PIIX4_WORD_DATA:
|
||||
printf("Read %02x %02x from %02x, address %02x \n",
|
||||
dat0,
|
||||
dat1,
|
||||
cmnd,
|
||||
addr >> 1);
|
||||
break;
|
||||
|
||||
case PIIX4_BLOCK_DATA:
|
||||
printf("Read block of length %02x from %02x, address %02x, contents: ",
|
||||
dat0,
|
||||
cmnd,
|
||||
addr >> 1);
|
||||
|
||||
// Read SMBHSTCNT to reset SMBBLKDAT read pointer
|
||||
Inp32(SMBHSTCNT);
|
||||
|
||||
for (int byte = 0; byte < dat0; byte++)
|
||||
{
|
||||
printf("%02x ", Inp32(SMBBLKDAT));
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (size & 0x1C)
|
||||
{
|
||||
case PIIX4_QUICK:
|
||||
printf("Wrote %02x to address %02x \n",
|
||||
dat0,
|
||||
addr >> 1);
|
||||
break;
|
||||
|
||||
case PIIX4_BYTE_DATA:
|
||||
printf("Wrote %02x to %02x, address %02x \n",
|
||||
dat0,
|
||||
cmnd,
|
||||
addr >> 1);
|
||||
break;
|
||||
|
||||
case PIIX4_WORD_DATA:
|
||||
printf("Wrote %02x %02x to %02x, address %02x \n",
|
||||
dat0,
|
||||
dat1,
|
||||
cmnd,
|
||||
addr >> 1);
|
||||
break;
|
||||
|
||||
|
||||
case PIIX4_BLOCK_DATA:
|
||||
printf("Wrote block of length %02x to %02x, address %02x, contents: ",
|
||||
dat0,
|
||||
cmnd,
|
||||
addr >> 1);
|
||||
|
||||
// Read SMBHSTCNT to reset SMBBLKDAT read pointer
|
||||
Inp32(SMBHSTCNT);
|
||||
|
||||
for (int byte = 0; byte < dat0; byte++)
|
||||
{
|
||||
printf("%02x ", Inp32(SMBBLKDAT));
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
|
||||
return a.exec();
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user