DEV9: consistently prefix all console output with `DEV9: `

Around half of the debug and console output from the DEV9 tree already
had this prefix. Adding it everywhere for consistency. Also fixed
misspelling of "Unknown" whilst there.
This commit is contained in:
macmenot 2021-04-13 08:56:34 +12:00 committed by lightningterror
parent 0ad5680597
commit 6a2ed3d078
16 changed files with 272 additions and 272 deletions

View File

@ -47,9 +47,9 @@ void ATA::WritePaddedString(u8* data, int* index, std::string value, u32 len)
void ATA::CreateHDDinfo(int sizeMb) void ATA::CreateHDDinfo(int sizeMb)
{ {
const u16 sectorSize = 512; const u16 sectorSize = 512;
DevCon.WriteLn("HddSize : %i", config.HddSize); DevCon.WriteLn("DEV9: HddSize : %i", config.HddSize);
const u64 nbSectors = ((u64)(sizeMb / sectorSize) * 1024 * 1024); const u64 nbSectors = ((u64)(sizeMb / sectorSize) * 1024 * 1024);
DevCon.WriteLn("nbSectors : %i", nbSectors); DevCon.WriteLn("DEV9: nbSectors : %i", nbSectors);
memset(&identifyData, 0, sizeof(identifyData)); memset(&identifyData, 0, sizeof(identifyData));
//Defualt CHS translation //Defualt CHS translation
@ -390,5 +390,5 @@ void ATA::CreateHDDinfoCsum() //Is this correct?
for (int i = 0; i < (512); i++) for (int i = 0; i < (512); i++)
counter += identifyData[i]; counter += identifyData[i];
DevCon.WriteLn("%i", counter); DevCon.WriteLn("DEV9: %i", counter);
} }

View File

@ -89,7 +89,7 @@ void ATA::Close()
{ {
if (!IsQueueEmpty()) if (!IsQueueEmpty())
{ {
Console.Error("ATA: Write queue not empty"); Console.Error("DEV9: ATA: Write queue not empty");
pxAssert(false); pxAssert(false);
abort(); //All data must be written at this point abort(); //All data must be written at this point
} }
@ -143,7 +143,7 @@ void ATA::ResetEnd(bool hard)
void ATA::ATA_HardReset() void ATA::ATA_HardReset()
{ {
DevCon.WriteLn("*ATA_HARD RESET"); DevCon.WriteLn("DEV9: *ATA_HARD RESET");
ResetBegin(); ResetBegin();
ResetEnd(true); ResetEnd(true);
} }
@ -155,12 +155,12 @@ u16 ATA::Read16(u32 addr)
case ATA_R_DATA: case ATA_R_DATA:
return ATAreadPIO(); return ATAreadPIO();
case ATA_R_ERROR: case ATA_R_ERROR:
DevCon.WriteLn("*ATA_R_ERROR 16bit read at address %x, value %x, Active %s", addr, regError, (GetSelectedDevice() == 0) ? "True" : "False"); DevCon.WriteLn("DEV9: *ATA_R_ERROR 16bit read at address %x, value %x, Active %s", addr, regError, (GetSelectedDevice() == 0) ? "True" : "False");
if (GetSelectedDevice() != 0) if (GetSelectedDevice() != 0)
return 0; return 0;
return regError; return regError;
case ATA_R_NSECTOR: case ATA_R_NSECTOR:
DevCon.WriteLn("*ATA_R_NSECTOR 16bit read at address %x, value %x, Active %s", addr, nsector, (GetSelectedDevice() == 0) ? "True" : "False"); DevCon.WriteLn("DEV9: *ATA_R_NSECTOR 16bit read at address %x, value %x, Active %s", addr, nsector, (GetSelectedDevice() == 0) ? "True" : "False");
if (GetSelectedDevice() != 0) if (GetSelectedDevice() != 0)
return 0; return 0;
if (!regControlHOBRead) if (!regControlHOBRead)
@ -168,7 +168,7 @@ u16 ATA::Read16(u32 addr)
else else
return regNsectorHOB; return regNsectorHOB;
case ATA_R_SECTOR: case ATA_R_SECTOR:
DevCon.WriteLn("*ATA_R_NSECTOR 16bit read at address %x, value %x, Active %s", addr, regSector, (GetSelectedDevice() == 0) ? "True" : "False"); DevCon.WriteLn("DEV9: *ATA_R_NSECTOR 16bit read at address %x, value %x, Active %s", addr, regSector, (GetSelectedDevice() == 0) ? "True" : "False");
if (GetSelectedDevice() != 0) if (GetSelectedDevice() != 0)
return 0; return 0;
if (!regControlHOBRead) if (!regControlHOBRead)
@ -176,7 +176,7 @@ u16 ATA::Read16(u32 addr)
else else
return regSectorHOB; return regSectorHOB;
case ATA_R_LCYL: case ATA_R_LCYL:
DevCon.WriteLn("*ATA_R_LCYL 16bit read at address %x, value %x, Active %s", addr, regLcyl, (GetSelectedDevice() == 0) ? "True" : "False"); DevCon.WriteLn("DEV9: *ATA_R_LCYL 16bit read at address %x, value %x, Active %s", addr, regLcyl, (GetSelectedDevice() == 0) ? "True" : "False");
if (GetSelectedDevice() != 0) if (GetSelectedDevice() != 0)
return 0; return 0;
if (!regControlHOBRead) if (!regControlHOBRead)
@ -184,7 +184,7 @@ u16 ATA::Read16(u32 addr)
else else
return regLcylHOB; return regLcylHOB;
case ATA_R_HCYL: case ATA_R_HCYL:
DevCon.WriteLn("*ATA_R_HCYL 16bit read at address % x, value % x, Active %s", addr, regHcyl, (GetSelectedDevice() == 0) ? " True " : " False "); DevCon.WriteLn("DEV9: *ATA_R_HCYL 16bit read at address % x, value % x, Active %s", addr, regHcyl, (GetSelectedDevice() == 0) ? " True " : " False ");
if (GetSelectedDevice() != 0) if (GetSelectedDevice() != 0)
return 0; return 0;
if (!regControlHOBRead) if (!regControlHOBRead)
@ -192,21 +192,21 @@ u16 ATA::Read16(u32 addr)
else else
return regHcylHOB; return regHcylHOB;
case ATA_R_SELECT: case ATA_R_SELECT:
DevCon.WriteLn("*ATA_R_SELECT 16bit read at address % x, value % x, Active %s", addr, regSelect, (GetSelectedDevice() == 0) ? " True " : " False "); DevCon.WriteLn("DEV9: *ATA_R_SELECT 16bit read at address % x, value % x, Active %s", addr, regSelect, (GetSelectedDevice() == 0) ? " True " : " False ");
return regSelect; return regSelect;
case ATA_R_STATUS: case ATA_R_STATUS:
DevCon.WriteLn("*ATA_R_STATUS (Fallthough to ATA_R_ALT_STATUS)"); DevCon.WriteLn("DEV9: *ATA_R_STATUS (Fallthough to ATA_R_ALT_STATUS)");
//Clear irqcause //Clear irqcause
dev9.irqcause &= ~ATA_INTR_INTRQ; dev9.irqcause &= ~ATA_INTR_INTRQ;
[[fallthrough]]; [[fallthrough]];
case ATA_R_ALT_STATUS: case ATA_R_ALT_STATUS:
DevCon.WriteLn("*ATA_R_ALT_STATUS 16bit read at address % x, value % x, Active %s", addr, regStatus, (GetSelectedDevice() == 0) ? " True " : " False "); DevCon.WriteLn("DEV9: *ATA_R_ALT_STATUS 16bit read at address % x, value % x, Active %s", addr, regStatus, (GetSelectedDevice() == 0) ? " True " : " False ");
//raise IRQ? //raise IRQ?
if (GetSelectedDevice() != 0) if (GetSelectedDevice() != 0)
return 0; return 0;
return regStatus; return regStatus;
default: default:
Console.Error("ATA: Unknown 16bit read at address %x", addr); Console.Error("DEV9: ATA: Unknown 16bit read at address %x", addr);
return 0xff; return 0xff;
} }
} }
@ -215,49 +215,49 @@ void ATA::Write16(u32 addr, u16 value)
{ {
if (addr != ATA_R_CMD && (regStatus & (ATA_STAT_BUSY | ATA_STAT_DRQ)) != 0) if (addr != ATA_R_CMD && (regStatus & (ATA_STAT_BUSY | ATA_STAT_DRQ)) != 0)
{ {
Console.Error("ATA: DEVICE BUSY, DROPPING WRITE"); Console.Error("DEV9: ATA: DEVICE BUSY, DROPPING WRITE");
return; return;
} }
switch (addr) switch (addr)
{ {
case ATA_R_FEATURE: case ATA_R_FEATURE:
DevCon.WriteLn("*ATA_R_FEATURE 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_FEATURE 16bit write at address %x, value %x", addr, value);
ClearHOB(); ClearHOB();
regFeatureHOB = regFeature; regFeatureHOB = regFeature;
regFeature = (u8)value; regFeature = (u8)value;
break; break;
case ATA_R_NSECTOR: case ATA_R_NSECTOR:
DevCon.WriteLn("*ATA_R_NSECTOR 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_NSECTOR 16bit write at address %x, value %x", addr, value);
ClearHOB(); ClearHOB();
regNsectorHOB = regNsector; regNsectorHOB = regNsector;
regNsector = (u8)value; regNsector = (u8)value;
break; break;
case ATA_R_SECTOR: case ATA_R_SECTOR:
DevCon.WriteLn("*ATA_R_SECTOR 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_SECTOR 16bit write at address %x, value %x", addr, value);
ClearHOB(); ClearHOB();
regSectorHOB = regSector; regSectorHOB = regSector;
regSector = (u8)value; regSector = (u8)value;
break; break;
case ATA_R_LCYL: case ATA_R_LCYL:
DevCon.WriteLn("*ATA_R_LCYL 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_LCYL 16bit write at address %x, value %x", addr, value);
ClearHOB(); ClearHOB();
regLcylHOB = regLcyl; regLcylHOB = regLcyl;
regLcyl = (u8)value; regLcyl = (u8)value;
break; break;
case ATA_R_HCYL: case ATA_R_HCYL:
DevCon.WriteLn("*ATA_R_HCYL 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_HCYL 16bit write at address %x, value %x", addr, value);
ClearHOB(); ClearHOB();
regHcylHOB = regHcyl; regHcylHOB = regHcyl;
regHcyl = (u8)value; regHcyl = (u8)value;
break; break;
case ATA_R_SELECT: case ATA_R_SELECT:
DevCon.WriteLn("*ATA_R_SELECT 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_SELECT 16bit write at address %x, value %x", addr, value);
regSelect = (u8)value; regSelect = (u8)value;
//bus->ifs[0].select = (val & ~0x10) | 0xa0; //bus->ifs[0].select = (val & ~0x10) | 0xa0;
//bus->ifs[1].select = (val | 0x10) | 0xa0; //bus->ifs[1].select = (val | 0x10) | 0xa0;
break; break;
case ATA_R_CONTROL: case ATA_R_CONTROL:
DevCon.WriteLn("*ATA_R_CONTROL 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_CONTROL 16bit write at address %x, value %x", addr, value);
//dev9Ru16(ATA_R_CONTROL) = value; //dev9Ru16(ATA_R_CONTROL) = value;
if ((value & 0x2) != 0) if ((value & 0x2) != 0)
{ {
@ -270,7 +270,7 @@ void ATA::Write16(u32 addr, u16 value)
if ((value & 0x4) != 0) if ((value & 0x4) != 0)
{ {
DevCon.WriteLn("*ATA_R_CONTROL RESET"); DevCon.WriteLn("DEV9: *ATA_R_CONTROL RESET");
ResetBegin(); ResetBegin();
ResetEnd(false); ResetEnd(false);
} }
@ -279,14 +279,14 @@ void ATA::Write16(u32 addr, u16 value)
break; break;
case ATA_R_CMD: case ATA_R_CMD:
DevCon.WriteLn("*ATA_R_CMD 16bit write at address %x, value %x", addr, value); DevCon.WriteLn("DEV9: *ATA_R_CMD 16bit write at address %x, value %x", addr, value);
regCommand = value; regCommand = value;
regControlHOBRead = false; regControlHOBRead = false;
dev9.irqcause &= ~ATA_INTR_INTRQ; dev9.irqcause &= ~ATA_INTR_INTRQ;
IDE_ExecCmd(value); IDE_ExecCmd(value);
break; break;
default: default:
Console.Error("ATA: UNKOWN 16bit write at address %x, value %x", addr, value); Console.Error("DEV9: ATA: UNKNOWN 16bit write at address %x, value %x", addr, value);
break; break;
} }
} }
@ -358,7 +358,7 @@ s64 ATA::HDD_GetLBA()
regStatus |= (u8)ATA_STAT_ERR; regStatus |= (u8)ATA_STAT_ERR;
regError |= (u8)ATA_ERR_ABORT; regError |= (u8)ATA_ERR_ABORT;
Console.Error("ATA: Tried to get LBA address while LBA mode disabled"); Console.Error("DEV9: ATA: Tried to get LBA address while LBA mode disabled");
//(c.Nh + h).Ns+(s-1) //(c.Nh + h).Ns+(s-1)
//s64 CHSasLBA = ((regLcyl + (regHcyl << 8)) * curHeads + (regSelect & 0x0F)) * curSectors + (regSector - 1); //s64 CHSasLBA = ((regLcyl + (regHcyl << 8)) * curHeads + (regSelect & 0x0F)) * curSectors + (regSector - 1);
return -1; return -1;
@ -391,7 +391,7 @@ void ATA::HDD_SetLBA(s64 sectorNum)
regStatus |= ATA_STAT_ERR; regStatus |= ATA_STAT_ERR;
regError |= ATA_ERR_ABORT; regError |= ATA_ERR_ABORT;
Console.Error("ATA: Tried to set LBA address while LBA mode disabled"); Console.Error("DEV9: ATA: Tried to set LBA address while LBA mode disabled");
} }
} }
@ -416,7 +416,7 @@ bool ATA::HDD_CanAccess(int* sectors)
if (lba == -1) if (lba == -1)
return false; return false;
DevCon.WriteLn("LBA :%i", lba); DevCon.WriteLn("DEV9: LBA :%i", lba);
posStart = lba; posStart = lba;
if (posStart > maxLBA) if (posStart > maxLBA)

View File

@ -67,7 +67,7 @@ void ATA::IO_Read()
if (lba == -1) if (lba == -1)
{ {
Console.Error("ATA: Invalid LBA"); Console.Error("DEV9: ATA: Invalid LBA");
pxAssert(false); pxAssert(false);
abort(); abort();
} }
@ -76,7 +76,7 @@ void ATA::IO_Read()
hddImage.seekg(pos, std::ios::beg); hddImage.seekg(pos, std::ios::beg);
if (hddImage.fail()) if (hddImage.fail())
{ {
Console.Error("ATA: File read error"); Console.Error("DEV9: ATA: File read error");
pxAssert(false); pxAssert(false);
abort(); abort();
} }
@ -103,7 +103,7 @@ bool ATA::IO_Write()
hddImage.write((char*)data, len); hddImage.write((char*)data, len);
if (hddImage.fail()) if (hddImage.fail())
{ {
Console.Error("ATA: File write error"); Console.Error("DEV9: ATA: File write error");
pxAssert(false); pxAssert(false);
abort(); abort();
} }

View File

@ -92,7 +92,7 @@ void ATA::ATAreadDMA8Mem(u8* pMem, int size)
{ {
if (size == 0) if (size == 0)
return; return;
DevCon.WriteLn("DMA read, size %i, transferred %i, total size %i", size, rdTransferred, nsector * 512); DevCon.WriteLn("DEV9: DMA read, size %i, transferred %i, total size %i", size, rdTransferred, nsector * 512);
//read //read
memcpy(pMem, &readBuffer[rdTransferred], size); memcpy(pMem, &readBuffer[rdTransferred], size);
@ -115,7 +115,7 @@ void ATA::ATAwriteDMA8Mem(u8* pMem, int size)
if ((udmaMode >= 0) && if ((udmaMode >= 0) &&
(dev9.if_ctrl & SPD_IF_ATA_DMAEN) != 0) (dev9.if_ctrl & SPD_IF_ATA_DMAEN) != 0)
{ {
DevCon.WriteLn("DMA write, size %i, transferred %i, total size %i", size, wrTransferred, nsector * 512); DevCon.WriteLn("DEV9: DMA write, size %i, transferred %i, total size %i", size, wrTransferred, nsector * 512);
//write //write
memcpy(&currentWrite[wrTransferred], pMem, size); memcpy(&currentWrite[wrTransferred], pMem, size);
@ -139,7 +139,7 @@ void ATA::HDD_ReadDMA(bool isLBA48)
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_ReadDMA"); DevCon.WriteLn("DEV9: HDD_ReadDMA");
IDE_CmdLBA48Transform(isLBA48); IDE_CmdLBA48Transform(isLBA48);
@ -159,7 +159,7 @@ void ATA::HDD_WriteDMA(bool isLBA48)
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_WriteDMA"); DevCon.WriteLn("DEV9: HDD_WriteDMA");
IDE_CmdLBA48Transform(isLBA48); IDE_CmdLBA48Transform(isLBA48);

View File

@ -41,7 +41,7 @@ void ATA::HDD_FlushCache() //Can't when DRQ set
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_FlushCache"); DevCon.WriteLn("DEV9: HDD_FlushCache");
awaitFlush = true; awaitFlush = true;
Async(-1); Async(-1);
@ -50,7 +50,7 @@ void ATA::HDD_FlushCache() //Can't when DRQ set
void ATA::HDD_InitDevParameters() void ATA::HDD_InitDevParameters()
{ {
PreCmd(); //Ignore DRDY bit PreCmd(); //Ignore DRDY bit
DevCon.WriteLn("HDD_InitDevParameters"); DevCon.WriteLn("DEV9: HDD_InitDevParameters");
curSectors = regNsector; curSectors = regNsector;
curHeads = (u8)((regSelect & 0x7) + 1); curHeads = (u8)((regSelect & 0x7) + 1);
@ -61,7 +61,7 @@ void ATA::HDD_ReadVerifySectors(bool isLBA48)
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_ReadVerifySectors"); DevCon.WriteLn("DEV9: HDD_ReadVerifySectors");
IDE_CmdLBA48Transform(isLBA48); IDE_CmdLBA48Transform(isLBA48);
@ -74,7 +74,7 @@ void ATA::HDD_SeekCmd()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_SeekCmd"); DevCon.WriteLn("DEV9: HDD_SeekCmd");
regStatus &= ~ATA_STAT_SEEK; regStatus &= ~ATA_STAT_SEEK;
@ -93,7 +93,7 @@ void ATA::HDD_SetFeatures()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_SetFeatures"); DevCon.WriteLn("DEV9: HDD_SetFeatures");
switch (regFeature) switch (regFeature)
{ {
@ -113,49 +113,49 @@ void ATA::HDD_SetFeatures()
{ {
case 0x00: //pio default case 0x00: //pio default
//if mode = 1, disable IORDY //if mode = 1, disable IORDY
DevCon.WriteLn("PIO Default"); DevCon.WriteLn("DEV9: PIO Default");
pioMode = 4; pioMode = 4;
sdmaMode = -1; sdmaMode = -1;
mdmaMode = -1; mdmaMode = -1;
udmaMode = -1; udmaMode = -1;
break; break;
case 0x01: //pio mode (3,4) case 0x01: //pio mode (3,4)
DevCon.WriteLn("PIO Mode %i", mode); DevCon.WriteLn("DEV9: PIO Mode %i", mode);
pioMode = mode; pioMode = mode;
sdmaMode = -1; sdmaMode = -1;
mdmaMode = -1; mdmaMode = -1;
udmaMode = -1; udmaMode = -1;
break; break;
case 0x02: //Single word dma mode (0,1,2) case 0x02: //Single word dma mode (0,1,2)
DevCon.WriteLn("SDMA Mode %i", mode); DevCon.WriteLn("DEV9: SDMA Mode %i", mode);
//pioMode = -1; //pioMode = -1;
sdmaMode = mode; sdmaMode = mode;
mdmaMode = -1; mdmaMode = -1;
udmaMode = -1; udmaMode = -1;
break; break;
case 0x04: //Multi word dma mode (0,1,2) case 0x04: //Multi word dma mode (0,1,2)
DevCon.WriteLn("MDMA Mode %i", mode); DevCon.WriteLn("DEV9: MDMA Mode %i", mode);
//pioMode = -1; //pioMode = -1;
sdmaMode = -1; sdmaMode = -1;
mdmaMode = mode; mdmaMode = mode;
udmaMode = -1; udmaMode = -1;
break; break;
case 0x08: //Ulta dma mode (0,1,2,3,4,5,6) case 0x08: //Ulta dma mode (0,1,2,3,4,5,6)
DevCon.WriteLn("UDMA Mode %i", mode); DevCon.WriteLn("DEV9: UDMA Mode %i", mode);
//pioMode = -1; //pioMode = -1;
sdmaMode = -1; sdmaMode = -1;
mdmaMode = -1; mdmaMode = -1;
udmaMode = mode; udmaMode = mode;
break; break;
default: default:
Console.Error("ATA: Unkown transfer mode"); Console.Error("DEV9: ATA: Unknown transfer mode");
CmdNoDataAbort(); CmdNoDataAbort();
break; break;
} }
} }
break; break;
default: default:
Console.Error("ATA: Unkown feature mode"); Console.Error("DEV9: ATA: Unknown feature mode");
break; break;
} }
PostCmdNoData(); PostCmdNoData();
@ -165,7 +165,7 @@ void ATA::HDD_SetMultipleMode()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_SetMultipleMode"); DevCon.WriteLn("DEV9: HDD_SetMultipleMode");
curMultipleSectorsSetting = regNsector; curMultipleSectorsSetting = regNsector;
@ -176,7 +176,7 @@ void ATA::HDD_Nop()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_Nop"); DevCon.WriteLn("DEV9: HDD_Nop");
if (regFeature == 0) if (regFeature == 0)
{ {
@ -195,7 +195,7 @@ void ATA::HDD_Idle()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_Idle"); DevCon.WriteLn("DEV9: HDD_Idle");
long idleTime = 0; //in seconds long idleTime = 0; //in seconds
if (regNsector >= 1 && regNsector <= 240) if (regNsector >= 1 && regNsector <= 240)
@ -227,7 +227,7 @@ void ATA::HDD_Idle()
} }
} }
DevCon.WriteLn("HDD_Idle for %is", idleTime); DevCon.WriteLn("DEV9: HDD_Idle for %is", idleTime);
PostCmdNoData(); PostCmdNoData();
} }
@ -235,6 +235,6 @@ void ATA::HDD_IdleImmediate()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HDD_IdleImmediate"); DevCon.WriteLn("DEV9: HDD_IdleImmediate");
PostCmdNoData(); PostCmdNoData();
} }

View File

@ -51,11 +51,11 @@ void ATA::PostCmdPIODataToHost()
//FromHost //FromHost
u16 ATA::ATAreadPIO() u16 ATA::ATAreadPIO()
{ {
DevCon.WriteLn("*ATA_R_DATA 16bit read, pio_count %i, pio_size %i", pioPtr, pioEnd); DevCon.WriteLn("DEV9: *ATA_R_DATA 16bit read, pio_count %i, pio_size %i", pioPtr, pioEnd);
if (pioPtr < pioEnd) if (pioPtr < pioEnd)
{ {
const u16 ret = *(u16*)&pioBuffer[pioPtr * 2]; const u16 ret = *(u16*)&pioBuffer[pioPtr * 2];
DevCon.WriteLn("*ATA_R_DATA returned value is %x", ret); DevCon.WriteLn("DEV9: *ATA_R_DATA returned value is %x", ret);
pioPtr++; pioPtr++;
if (pioPtr >= pioEnd) //Fnished transfer (Changed from MegaDev9) if (pioPtr >= pioEnd) //Fnished transfer (Changed from MegaDev9)
PostCmdPIODataToHost(); PostCmdPIODataToHost();
@ -70,7 +70,7 @@ void ATA::HDD_IdentifyDevice()
{ {
if (!PreCmd()) if (!PreCmd())
return; return;
DevCon.WriteLn("HddidentifyDevice"); DevCon.WriteLn("DEV9: HddidentifyDevice");
//IDE transfer start //IDE transfer start
CreateHDDinfo(config.HddSize); CreateHDDinfo(config.HddSize);

View File

@ -20,7 +20,7 @@
void ATA::HDD_Smart() void ATA::HDD_Smart()
{ {
DevCon.WriteLn("HDD_Smart"); DevCon.WriteLn("DEV9: HDD_Smart");
if ((regStatus & ATA_STAT_READY) == 0) if ((regStatus & ATA_STAT_READY) == 0)
return; return;
@ -54,22 +54,22 @@ void ATA::HDD_Smart()
SMART_ReturnStatus(); SMART_ReturnStatus();
return; return;
case 0xD1: //SMART_READ_THRESH case 0xD1: //SMART_READ_THRESH
Console.Error("ATA: SMART_READ_THRESH Not Impemented"); Console.Error("DEV9: ATA: SMART_READ_THRESH Not Implemented");
CmdNoDataAbort(); CmdNoDataAbort();
return; return;
case 0xD0: //SMART_READ_DATA case 0xD0: //SMART_READ_DATA
Console.Error("ATA: SMART_READ_DATA Not Impemented"); Console.Error("DEV9: ATA: SMART_READ_DATA Not Implemented");
CmdNoDataAbort(); CmdNoDataAbort();
return; return;
case 0xD5: //SMART_READ_LOG case 0xD5: //SMART_READ_LOG
Console.Error("ATA: SMART_READ_LOG Not Impemented"); Console.Error("DEV9: ATA: SMART_READ_LOG Not Implemented");
CmdNoDataAbort(); CmdNoDataAbort();
return; return;
case 0xD4: //SMART_EXECUTE_OFFLINE case 0xD4: //SMART_EXECUTE_OFFLINE
SMART_ExecuteOfflineImmediate(); SMART_ExecuteOfflineImmediate();
return; return;
default: default:
Console.Error("ATA: Unknown SMART command %x", regFeature); Console.Error("DEV9: ATA: Unknown SMART command %x", regFeature);
CmdNoDataAbort(); CmdNoDataAbort();
return; return;
} }
@ -87,7 +87,7 @@ void ATA::SMART_SetAutoSaveAttribute()
smartAutosave = true; smartAutosave = true;
break; break;
default: default:
Console.Error("ATA: Unknown SMART_ATTR_AUTOSAVE command %s", regSector); Console.Error("DEV9: ATA: Unknown SMART_ATTR_AUTOSAVE command %s", regSector);
CmdNoDataAbort(); CmdNoDataAbort();
return; return;
} }

View File

@ -99,7 +99,7 @@ void ATA::IDE_ExecCmd(u16 value)
void ATA::HDD_Unk() void ATA::HDD_Unk()
{ {
Console.Error("ATA: Unknown cmd %x", regCommand); Console.Error("DEV9: ATA: Unknown cmd %x", regCommand);
PreCmd(); PreCmd();

View File

@ -20,7 +20,7 @@
void ATA::HDD_SCE() void ATA::HDD_SCE()
{ {
DevCon.WriteLn("DEV9 : SONY-SPECIFIC SECURITY CONTROL COMMAND %x", regFeature); DevCon.WriteLn("DEV9: HDD_SCE SONY-SPECIFIC SECURITY CONTROL COMMAND %x", regFeature);
switch (regFeature) switch (regFeature)
{ {
@ -28,7 +28,7 @@ void ATA::HDD_SCE()
SCE_IDENTIFY_DRIVE(); SCE_IDENTIFY_DRIVE();
break; break;
default: default:
Console.Error("ATA: Unknown SCE command %x", regFeature); Console.Error("DEV9: ATA: Unknown SCE command %x", regFeature);
CmdNoDataAbort(); CmdNoDataAbort();
return; return;
} }

View File

@ -101,13 +101,13 @@ bool isRunning = false;
s32 DEV9init() s32 DEV9init()
{ {
DevCon.WriteLn("DEV9init"); DevCon.WriteLn("DEV9: DEV9init");
memset(&dev9, 0, sizeof(dev9)); memset(&dev9, 0, sizeof(dev9));
dev9.ata = new ATA(); dev9.ata = new ATA();
DevCon.WriteLn("DEV9init2"); DevCon.WriteLn("DEV9: DEV9init2");
DevCon.WriteLn("DEV9init3"); DevCon.WriteLn("DEV9: DEV9init3");
FLASHinit(); FLASHinit();
@ -175,28 +175,28 @@ s32 DEV9init()
pbd->length = 0; pbd->length = 0;
} }
DevCon.WriteLn("DEV9init ok"); DevCon.WriteLn("DEV9: DEV9init ok");
return 0; return 0;
} }
void DEV9shutdown() void DEV9shutdown()
{ {
DevCon.WriteLn("DEV9shutdown"); DevCon.WriteLn("DEV9: DEV9shutdown");
delete dev9.ata; delete dev9.ata;
} }
s32 DEV9open(void* pDsp) s32 DEV9open(void* pDsp)
{ {
DevCon.WriteLn("DEV9open"); DevCon.WriteLn("DEV9: DEV9open");
LoadConf(); LoadConf();
#ifdef _WIN32 #ifdef _WIN32
//Convert to utf8 //Convert to utf8
char mbHdd[sizeof(config.Hdd)] = {0}; char mbHdd[sizeof(config.Hdd)] = {0};
WideCharToMultiByte(CP_UTF8, 0, config.Hdd, -1, mbHdd, sizeof(mbHdd) - 1, nullptr, nullptr); WideCharToMultiByte(CP_UTF8, 0, config.Hdd, -1, mbHdd, sizeof(mbHdd) - 1, nullptr, nullptr);
DevCon.WriteLn("open r+: %s", mbHdd); DevCon.WriteLn("DEV9: open r+: %s", mbHdd);
#else #else
DevCon.WriteLn("open r+: %s", config.Hdd); DevCon.WriteLn("DEV9: open r+: %s", config.Hdd);
#endif #endif
#ifdef _WIN32 #ifdef _WIN32
@ -230,7 +230,7 @@ s32 DEV9open(void* pDsp)
void DEV9close() void DEV9close()
{ {
DevCon.WriteLn("DEV9close"); DevCon.WriteLn("DEV9: DEV9close");
dev9.ata->Close(); dev9.ata->Close();
TermNet(); TermNet();
@ -240,7 +240,7 @@ void DEV9close()
int DEV9irqHandler(void) int DEV9irqHandler(void)
{ {
//dev9Ru16(SPD_R_INTR_STAT)|= dev9.irqcause; //dev9Ru16(SPD_R_INTR_STAT)|= dev9.irqcause;
DevCon.WriteLn("_DEV9irqHandler %x, %x", dev9.irqcause, dev9.irqmask); DevCon.WriteLn("DEV9: DEV9irqHandler %x, %x", dev9.irqcause, dev9.irqmask);
if (dev9.irqcause & dev9.irqmask) if (dev9.irqcause & dev9.irqmask)
return 1; return 1;
return 0; return 0;
@ -248,7 +248,7 @@ int DEV9irqHandler(void)
void _DEV9irq(int cause, int cycles) void _DEV9irq(int cause, int cycles)
{ {
DevCon.WriteLn("_DEV9irq %x, %x", cause, dev9.irqmask); DevCon.WriteLn("DEV9: _DEV9irq %x, %x", cause, dev9.irqmask);
dev9.irqcause |= cause; dev9.irqcause |= cause;
@ -327,7 +327,7 @@ u8 DEV9read8(u32 addr)
u8 hard; u8 hard;
if (addr >= ATA_DEV9_HDD_BASE && addr < ATA_DEV9_HDD_END) if (addr >= ATA_DEV9_HDD_BASE && addr < ATA_DEV9_HDD_END)
{ {
Console.Error("ATA does not support 8bit reads %lx", addr); Console.Error("DEV9: ATA does not support 8bit reads %lx", addr);
return 0; return 0;
} }
if (addr >= SMAP_REGBASE && addr < FLASH_REGBASE) if (addr >= SMAP_REGBASE && addr < FLASH_REGBASE)
@ -370,12 +370,12 @@ u8 DEV9read8(u32 addr)
} }
else else
hard = 0; hard = 0;
DevCon.WriteLn("SPD_R_PIO_DATA 8bit read %x", hard); DevCon.WriteLn("DEV9: SPD_R_PIO_DATA 8bit read %x", hard);
return hard; return hard;
case DEV9_R_REV: case DEV9_R_REV:
hard = 0x32; // expansion bay hard = 0x32; // expansion bay
DevCon.WriteLn("DEV9_R_REV 8bit read %x", hard); DevCon.WriteLn("DEV9: DEV9_R_REV 8bit read %x", hard);
return hard; return hard;
default: default:
@ -408,11 +408,11 @@ u16 DEV9read16(u32 addr)
switch (addr) switch (addr)
{ {
case SPD_R_INTR_STAT: case SPD_R_INTR_STAT:
DevCon.WriteLn("SPD_R_INTR_STAT 16bit read %x", dev9.irqcause); DevCon.WriteLn("DEV9: SPD_R_INTR_STAT 16bit read %x", dev9.irqcause);
return dev9.irqcause; return dev9.irqcause;
case SPD_R_INTR_MASK: case SPD_R_INTR_MASK:
DevCon.WriteLn("SPD_R_INTR_MASK 16bit read %x", dev9.irqmask); DevCon.WriteLn("DEV9: SPD_R_INTR_MASK 16bit read %x", dev9.irqmask);
return dev9.irqmask; return dev9.irqmask;
case SPD_R_PIO_DATA: case SPD_R_PIO_DATA:
@ -443,22 +443,22 @@ u16 DEV9read16(u32 addr)
} }
else else
hard = 0; hard = 0;
DevCon.WriteLn("SPD_R_PIO_DATA 16bit read %x", hard); DevCon.WriteLn("DEV9: SPD_R_PIO_DATA 16bit read %x", hard);
return hard; return hard;
case DEV9_R_REV: case DEV9_R_REV:
//hard = 0x0030; // expansion bay //hard = 0x0030; // expansion bay
DevCon.WriteLn("DEV9_R_REV 16bit read %x", dev9.irqmask); DevCon.WriteLn("DEV9: DEV9_R_REV 16bit read %x", dev9.irqmask);
hard = 0x0032; hard = 0x0032;
return hard; return hard;
case SPD_R_REV_1: case SPD_R_REV_1:
DevCon.WriteLn("SPD_R_REV_1 16bit read %x", 0); DevCon.WriteLn("DEV9: SPD_R_REV_1 16bit read %x", 0);
return 0; return 0;
case SPD_R_REV_2: case SPD_R_REV_2:
hard = 0x0011; hard = 0x0011;
DevCon.WriteLn("STD_R_REV_1 16bit read %x", hard); DevCon.WriteLn("DEV9: STD_R_REV_1 16bit read %x", hard);
return hard; return hard;
case SPD_R_REV_3: case SPD_R_REV_3:
@ -468,15 +468,15 @@ u16 DEV9read16(u32 addr)
if (config.ethEnable) if (config.ethEnable)
hard |= SPD_CAPS_SMAP; hard |= SPD_CAPS_SMAP;
hard |= SPD_CAPS_FLASH; hard |= SPD_CAPS_FLASH;
DevCon.WriteLn("SPD_R_REV_3 16bit read %x", hard); DevCon.WriteLn("DEV9: SPD_R_REV_3 16bit read %x", hard);
return hard; return hard;
case SPD_R_0e: case SPD_R_0e:
hard = 0x0002; //Have HDD inserted hard = 0x0002; //Have HDD inserted
DevCon.WriteLn("SPD_R_0e 16bit read %x", hard); DevCon.WriteLn("DEV9: SPD_R_0e 16bit read %x", hard);
return hard; return hard;
case SPD_R_XFR_CTRL: case SPD_R_XFR_CTRL:
DevCon.WriteLn("SPD_R_XFR_CTRL 16bit read %x", dev9.xfr_ctrl); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL 16bit read %x", dev9.xfr_ctrl);
return dev9.xfr_ctrl; return dev9.xfr_ctrl;
case SPD_R_DBUF_STAT: case SPD_R_DBUF_STAT:
{ {
@ -512,11 +512,11 @@ u16 DEV9read16(u32 addr)
hard |= SPD_DBUF_STAT_FULL; hard |= SPD_DBUF_STAT_FULL;
} }
DevCon.WriteLn("SPD_R_DBUF_STAT 16bit read %x", hard); DevCon.WriteLn("DEV9: SPD_R_DBUF_STAT 16bit read %x", hard);
return hard; return hard;
} }
case SPD_R_IF_CTRL: case SPD_R_IF_CTRL:
DevCon.WriteLn("SPD_R_IF_CTRL 16bit read %x", dev9.if_ctrl); DevCon.WriteLn("DEV9: SPD_R_IF_CTRL 16bit read %x", dev9.if_ctrl);
return dev9.if_ctrl; return dev9.if_ctrl;
default: default:
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
@ -533,7 +533,7 @@ u32 DEV9read32(u32 addr)
u32 hard; u32 hard;
if (addr >= ATA_DEV9_HDD_BASE && addr < ATA_DEV9_HDD_END) if (addr >= ATA_DEV9_HDD_BASE && addr < ATA_DEV9_HDD_END)
{ {
Console.Error("ATA does not support 32bit reads %lx", addr); Console.Error("DEV9: ATA does not support 32bit reads %lx", addr);
return 0; return 0;
} }
if (addr >= SMAP_REGBASE && addr < FLASH_REGBASE) if (addr >= SMAP_REGBASE && addr < FLASH_REGBASE)
@ -578,19 +578,19 @@ void DEV9write8(u32 addr, u8 value)
switch (addr) switch (addr)
{ {
case 0x10000020: case 0x10000020:
Console.Error("SPD_R_INTR_CAUSE, WTFH ?"); Console.Error("DEV9: SPD_R_INTR_CAUSE, WTFH ?");
dev9.irqcause = 0xff; dev9.irqcause = 0xff;
break; break;
case SPD_R_INTR_STAT: case SPD_R_INTR_STAT:
Console.Error("SPD_R_INTR_STAT, WTFH ?"); Console.Error("DEV9: SPD_R_INTR_STAT, WTFH ?");
dev9.irqcause = value; dev9.irqcause = value;
return; return;
case SPD_R_INTR_MASK: case SPD_R_INTR_MASK:
Console.Error("SPD_R_INTR_MASK8, WTFH ?"); Console.Error("DEV9: SPD_R_INTR_MASK8, WTFH ?");
break; break;
case SPD_R_PIO_DIR: case SPD_R_PIO_DIR:
DevCon.WriteLn("SPD_R_PIO_DIR 8bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_PIO_DIR 8bit write %x", value);
if ((value & 0xc0) != 0xc0) if ((value & 0xc0) != 0xc0)
return; return;
@ -604,7 +604,7 @@ void DEV9write8(u32 addr, u8 value)
return; return;
case SPD_R_PIO_DATA: case SPD_R_PIO_DATA:
DevCon.WriteLn("SPD_R_PIO_DATA 8bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_PIO_DATA 8bit write %x", value);
if ((value & 0xc0) != 0xc0) if ((value & 0xc0) != 0xc0)
return; return;
@ -652,7 +652,7 @@ void DEV9write8(u32 addr, u8 value)
} }
break; break;
default: default:
Console.Error("DEV9: Unkown EEPROM COMMAND"); Console.Error("DEV9: Unknown EEPROM COMMAND");
break; break;
} }
return; return;
@ -688,17 +688,17 @@ void DEV9write16(u32 addr, u16 value)
switch (addr) switch (addr)
{ {
case SPD_R_INTR_MASK: case SPD_R_INTR_MASK:
DevCon.WriteLn("SPD_R_INTR_MASK 16bit write %x , checking for masked/unmasked interrupts", value); DevCon.WriteLn("DEV9: SPD_R_INTR_MASK 16bit write %x , checking for masked/unmasked interrupts", value);
if ((dev9.irqmask != value) && ((dev9.irqmask | value) & dev9.irqcause)) if ((dev9.irqmask != value) && ((dev9.irqmask | value) & dev9.irqcause))
{ {
DevCon.WriteLn("SPD_R_INTR_MASK16 firing unmasked interrupts"); DevCon.WriteLn("DEV9: SPD_R_INTR_MASK16 firing unmasked interrupts");
dev9Irq(1); dev9Irq(1);
} }
dev9.irqmask = value; dev9.irqmask = value;
break; break;
case SPD_R_PIO_DIR: case SPD_R_PIO_DIR:
DevCon.WriteLn("SPD_R_PIO_DIR 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_PIO_DIR 16bit write %x", value);
if ((value & 0xc0) != 0xc0) if ((value & 0xc0) != 0xc0)
return; return;
@ -712,7 +712,7 @@ void DEV9write16(u32 addr, u16 value)
return; return;
case SPD_R_PIO_DATA: case SPD_R_PIO_DATA:
DevCon.WriteLn("SPD_R_PIO_DATA 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_PIO_DATA 16bit write %x", value);
if ((value & 0xc0) != 0xc0) if ((value & 0xc0) != 0xc0)
return; return;
@ -760,69 +760,69 @@ void DEV9write16(u32 addr, u16 value)
} }
break; break;
default: default:
Console.Error("Unkown EEPROM COMMAND"); Console.Error("DEV9: Unknown EEPROM COMMAND");
break; break;
} }
return; return;
case SPD_R_DMA_CTRL: case SPD_R_DMA_CTRL:
DevCon.WriteLn("SPD_R_IF_CTRL 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_IF_CTRL 16bit write %x", value);
dev9.dma_ctrl = value; dev9.dma_ctrl = value;
if (value & SPD_DMA_TO_SMAP) if (value & SPD_DMA_TO_SMAP)
DevCon.WriteLn("SPD_R_DMA_CTRL DMA For SMAP"); DevCon.WriteLn("DEV9: SPD_R_DMA_CTRL DMA For SMAP");
else else
DevCon.WriteLn("SPD_R_DMA_CTRL DMA For ATA"); DevCon.WriteLn("DEV9: SPD_R_DMA_CTRL DMA For ATA");
if ((value & SPD_DMA_FASTEST) != 0) if ((value & SPD_DMA_FASTEST) != 0)
DevCon.WriteLn("SPD_R_DMA_CTRL Fastest DMA Mode"); DevCon.WriteLn("DEV9: SPD_R_DMA_CTRL Fastest DMA Mode");
else else
DevCon.WriteLn("SPD_R_DMA_CTRL Slower DMA Mode"); DevCon.WriteLn("DEV9: SPD_R_DMA_CTRL Slower DMA Mode");
if ((value & SPD_DMA_WIDE) != 0) if ((value & SPD_DMA_WIDE) != 0)
DevCon.WriteLn("SPD_R_DMA_CTRL Wide(32bit) DMA Mode Set"); DevCon.WriteLn("DEV9: SPD_R_DMA_CTRL Wide(32bit) DMA Mode Set");
else else
DevCon.WriteLn("SPD_R_DMA_CTRL 16bit DMA Mode"); DevCon.WriteLn("DEV9: SPD_R_DMA_CTRL 16bit DMA Mode");
if ((value & SPD_DMA_PAUSE) != 0) if ((value & SPD_DMA_PAUSE) != 0)
Console.Error("SPD_R_DMA_CTRL Pause DMA Not Implemented"); Console.Error("DEV9: SPD_R_DMA_CTRL Pause DMA Not Implemented");
if ((value & 0b1111111111101000) != 0) if ((value & 0b1111111111101000) != 0)
Console.Error("SPD_R_DMA_CTRL Unkown value written %x", value); Console.Error("DEV9: SPD_R_DMA_CTRL Unknown value written %x", value);
break; break;
case SPD_R_XFR_CTRL: case SPD_R_XFR_CTRL:
DevCon.WriteLn("SPD_R_IF_CTRL 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_IF_CTRL 16bit write %x", value);
dev9.xfr_ctrl = value; dev9.xfr_ctrl = value;
if (value & SPD_XFR_WRITE) if (value & SPD_XFR_WRITE)
DevCon.WriteLn("SPD_R_XFR_CTRL Set Write"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL Set Write");
else else
DevCon.WriteLn("SPD_R_XFR_CTRL Set Read"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL Set Read");
if ((value & (1 << 1)) != 0) if ((value & (1 << 1)) != 0)
DevCon.WriteLn("SPD_R_XFR_CTRL Unkown Bit 1"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL Unknown Bit 1");
if ((value & (1 << 2)) != 0) if ((value & (1 << 2)) != 0)
DevCon.WriteLn("SPD_R_XFR_CTRL Unkown Bit 2"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL Unknown Bit 2");
if (value & SPD_XFR_DMAEN) if (value & SPD_XFR_DMAEN)
DevCon.WriteLn("SPD_R_XFR_CTRL For DMA Enabled"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL For DMA Enabled");
else else
DevCon.WriteLn("SPD_R_XFR_CTRL For DMA Disabled"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL For DMA Disabled");
if ((value & 0b1111111101111000) != 0) if ((value & 0b1111111101111000) != 0)
{ {
Console.Error("SPD_R_XFR_CTRL Unkown value written %x", value); Console.Error("DEV9: SPD_R_XFR_CTRL Unknown value written %x", value);
} }
break; break;
case SPD_R_DBUF_STAT: case SPD_R_DBUF_STAT:
DevCon.WriteLn("SPD_R_DBUF_STAT 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_DBUF_STAT 16bit write %x", value);
if ((value & SPD_DBUF_RESET_FIFO) != 0) if ((value & SPD_DBUF_RESET_FIFO) != 0)
{ {
DevCon.WriteLn("SPD_R_XFR_CTRL Reset FIFO"); DevCon.WriteLn("DEV9: SPD_R_XFR_CTRL Reset FIFO");
dev9.fifo_bytes_write = 0; dev9.fifo_bytes_write = 0;
dev9.fifo_bytes_read = 0; dev9.fifo_bytes_read = 0;
dev9.xfr_ctrl &= ~SPD_XFR_WRITE; //? dev9.xfr_ctrl &= ~SPD_XFR_WRITE; //?
@ -832,25 +832,25 @@ void DEV9write16(u32 addr, u16 value)
} }
if (value != 3) if (value != 3)
Console.Error("SPD_R_38 16bit write %x Which != 3!!!", value); Console.Error("DEV9: SPD_R_38 16bit write %x Which != 3!!!", value);
break; break;
case SPD_R_IF_CTRL: case SPD_R_IF_CTRL:
DevCon.WriteLn("SPD_R_IF_CTRL 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_IF_CTRL 16bit write %x", value);
dev9.if_ctrl = value; dev9.if_ctrl = value;
if (value & SPD_IF_UDMA) if (value & SPD_IF_UDMA)
DevCon.WriteLn("IF_CTRL UDMA Enabled"); DevCon.WriteLn("DEV9: IF_CTRL UDMA Enabled");
else else
DevCon.WriteLn("IF_CTRL UDMA Disabled"); DevCon.WriteLn("DEV9: IF_CTRL UDMA Disabled");
if (value & SPD_IF_READ) if (value & SPD_IF_READ)
DevCon.WriteLn("IF_CTRL DMA Is ATA Read"); DevCon.WriteLn("DEV9: IF_CTRL DMA Is ATA Read");
else else
DevCon.WriteLn("IF_CTRL DMA Is ATA Write"); DevCon.WriteLn("DEV9: IF_CTRL DMA Is ATA Write");
if (value & SPD_IF_ATA_DMAEN) if (value & SPD_IF_ATA_DMAEN)
{ {
DevCon.WriteLn("IF_CTRL ATA DMA Enabled"); DevCon.WriteLn("DEV9: IF_CTRL ATA DMA Enabled");
if (value & SPD_IF_READ) //Semi async if (value & SPD_IF_READ) //Semi async
{ {
HDDWriteFIFO(); //Yes this is not a typo HDDWriteFIFO(); //Yes this is not a typo
@ -862,24 +862,24 @@ void DEV9write16(u32 addr, u16 value)
FIFOIntr(); FIFOIntr();
} }
else else
DevCon.WriteLn("IF_CTRL ATA DMA Disabled"); DevCon.WriteLn("DEV9: IF_CTRL ATA DMA Disabled");
if (value & (1 << 3)) if (value & (1 << 3))
DevCon.WriteLn("IF_CTRL Unkown Bit 3 Set"); DevCon.WriteLn("DEV9: IF_CTRL Unknown Bit 3 Set");
if (value & (1 << 4)) if (value & (1 << 4))
Console.Error("IF_CTRL Unkown Bit 4 Set"); Console.Error("DEV9: IF_CTRL Unknown Bit 4 Set");
if (value & (1 << 5)) if (value & (1 << 5))
Console.Error("IF_CTRL Unkown Bit 5 Set"); Console.Error("DEV9: IF_CTRL Unknown Bit 5 Set");
if ((value & SPD_IF_HDD_RESET) == 0) //Maybe? if ((value & SPD_IF_HDD_RESET) == 0) //Maybe?
{ {
DevCon.WriteLn("IF_CTRL HDD Hard Reset"); DevCon.WriteLn("DEV9: IF_CTRL HDD Hard Reset");
dev9.ata->ATA_HardReset(); dev9.ata->ATA_HardReset();
} }
if ((value & SPD_IF_ATA_RESET) != 0) if ((value & SPD_IF_ATA_RESET) != 0)
{ {
DevCon.WriteLn("IF_CTRL ATA Reset"); DevCon.WriteLn("DEV9: IF_CTRL ATA Reset");
//0x62 0x0020 //0x62 0x0020
dev9.if_ctrl = 0x001A; dev9.if_ctrl = 0x001A;
//0x66 0x0001 //0x66 0x0001
@ -890,87 +890,87 @@ void DEV9write16(u32 addr, u16 value)
} }
if ((value & 0xFF00) > 0) if ((value & 0xFF00) > 0)
Console.Error("IF_CTRL Unkown Bit(s) %x", (value & 0xFF00)); Console.Error("DEV9: IF_CTRL Unknown Bit(s) %x", (value & 0xFF00));
break; break;
case SPD_R_PIO_MODE: //ATA only? or includes EEPROM? case SPD_R_PIO_MODE: //ATA only? or includes EEPROM?
DevCon.WriteLn("SPD_R_PIO_MODE 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_PIO_MODE 16bit write %x", value);
dev9.pio_mode = value; dev9.pio_mode = value;
switch (value) switch (value)
{ {
case 0x92: case 0x92:
DevCon.WriteLn("SPD_R_PIO_MODE 0"); DevCon.WriteLn("DEV9: SPD_R_PIO_MODE 0");
break; break;
case 0x72: case 0x72:
DevCon.WriteLn("SPD_R_PIO_MODE 1"); DevCon.WriteLn("DEV9: SPD_R_PIO_MODE 1");
break; break;
case 0x32: case 0x32:
DevCon.WriteLn("SPD_R_PIO_MODE 2"); DevCon.WriteLn("DEV9: SPD_R_PIO_MODE 2");
break; break;
case 0x24: case 0x24:
DevCon.WriteLn("SPD_R_PIO_MODE 3"); DevCon.WriteLn("DEV9: SPD_R_PIO_MODE 3");
break; break;
case 0x23: case 0x23:
DevCon.WriteLn("SPD_R_PIO_MODE 4"); DevCon.WriteLn("DEV9: SPD_R_PIO_MODE 4");
break; break;
default: default:
Console.Error("SPD_R_PIO_MODE UNKOWN MODE %x", value); Console.Error("DEV9: SPD_R_PIO_MODE UNKNOWN MODE %x", value);
break; break;
} }
break; break;
case SPD_R_MDMA_MODE: //ATA only? or includes EEPROM? case SPD_R_MDMA_MODE: //ATA only? or includes EEPROM?
DevCon.WriteLn("SPD_R_MDMA_MODE 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_MDMA_MODE 16bit write %x", value);
dev9.mdma_mode = value; dev9.mdma_mode = value;
switch (value) switch (value)
{ {
case 0xFF: case 0xFF:
DevCon.WriteLn("SPD_R_MDMA_MODE 0"); DevCon.WriteLn("DEV9: SPD_R_MDMA_MODE 0");
break; break;
case 0x45: case 0x45:
DevCon.WriteLn("SPD_R_MDMA_MODE 1"); DevCon.WriteLn("DEV9: SPD_R_MDMA_MODE 1");
break; break;
case 0x24: case 0x24:
DevCon.WriteLn("SPD_R_MDMA_MODE 2"); DevCon.WriteLn("DEV9: SPD_R_MDMA_MODE 2");
break; break;
default: default:
Console.Error("SPD_R_MDMA_MODE UNKOWN MODE %x", value); Console.Error("DEV9: SPD_R_MDMA_MODE UNKNOWN MODE %x", value);
break; break;
} }
break; break;
case SPD_R_UDMA_MODE: //ATA only? case SPD_R_UDMA_MODE: //ATA only?
DevCon.WriteLn("SPD_R_UDMA_MODE 16bit write %x", value); DevCon.WriteLn("DEV9: SPD_R_UDMA_MODE 16bit write %x", value);
dev9.udma_mode = value; dev9.udma_mode = value;
switch (value) switch (value)
{ {
case 0xa7: case 0xa7:
DevCon.WriteLn("SPD_R_UDMA_MODE 0"); DevCon.WriteLn("DEV9: SPD_R_UDMA_MODE 0");
break; break;
case 0x85: case 0x85:
DevCon.WriteLn("SPD_R_UDMA_MODE 1"); DevCon.WriteLn("DEV9: SPD_R_UDMA_MODE 1");
break; break;
case 0x63: case 0x63:
DevCon.WriteLn("SPD_R_UDMA_MODE 2"); DevCon.WriteLn("DEV9: SPD_R_UDMA_MODE 2");
break; break;
case 0x62: case 0x62:
DevCon.WriteLn("SPD_R_UDMA_MODE 3"); DevCon.WriteLn("DEV9: SPD_R_UDMA_MODE 3");
break; break;
case 0x61: case 0x61:
DevCon.WriteLn("SPD_R_UDMA_MODE 4"); DevCon.WriteLn("DEV9: SPD_R_UDMA_MODE 4");
break; break;
default: default:
Console.Error("SPD_R_UDMA_MODE UNKOWN MODE %x", value); Console.Error("DEV9: SPD_R_UDMA_MODE UNKNOWN MODE %x", value);
break; break;
} }
break; break;
default: default:
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
Console.Error("*Unknown 16bit write at address %lx value %x", addr, value); Console.Error("DEV9: *Unknown 16bit write at address %lx value %x", addr, value);
return; return;
} }
} }
@ -1002,7 +1002,7 @@ void DEV9write32(u32 addr, u32 value)
switch (addr) switch (addr)
{ {
case SPD_R_INTR_MASK: case SPD_R_INTR_MASK:
Console.Error("SPD_R_INTR_MASK , WTFH ?"); Console.Error("DEV9: SPD_R_INTR_MASK, WTFH ?");
break; break;
default: default:
dev9Ru32(addr) = value; dev9Ru32(addr) = value;
@ -1018,7 +1018,7 @@ void DEV9readDMA8Mem(u32* pMem, int size)
size >>= 1; size >>= 1;
DevCon.WriteLn("*DEV9readDMA8Mem: size %x", size); DevCon.WriteLn("DEV9: *DEV9readDMA8Mem: size %x", size);
if (dev9.dma_ctrl & SPD_DMA_TO_SMAP) if (dev9.dma_ctrl & SPD_DMA_TO_SMAP)
smap_readDMA8Mem(pMem, size); smap_readDMA8Mem(pMem, size);
@ -1044,7 +1044,7 @@ void DEV9writeDMA8Mem(u32* pMem, int size)
size >>= 1; size >>= 1;
DevCon.WriteLn("*DEV9writeDMA8Mem: size %x", size); DevCon.WriteLn("DEV9: *DEV9writeDMA8Mem: size %x", size);
if (dev9.dma_ctrl & SPD_DMA_TO_SMAP) if (dev9.dma_ctrl & SPD_DMA_TO_SMAP)
smap_writeDMA8Mem(pMem, size); smap_writeDMA8Mem(pMem, size);

View File

@ -71,7 +71,7 @@ void SaveConf()
const std::string file(GetSettingsFolder().Combine(wxString("DEV9.cfg")).GetFullPath()); const std::string file(GetSettingsFolder().Combine(wxString("DEV9.cfg")).GetFullPath());
Console.WriteLn("CONF: %s", file.c_str()); Console.WriteLn("DEV9: CONF: %s", file.c_str());
xmlSaveFormatFileEnc(file.c_str(), doc, "UTF-8", 1); xmlSaveFormatFileEnc(file.c_str(), doc, "UTF-8", 1);
// free(configFile); // free(configFile);

View File

@ -115,7 +115,7 @@ bool load_pcap()
if (fp_##name == nullptr) \ if (fp_##name == nullptr) \
{ \ { \
FreeLibrary(hpcap); \ FreeLibrary(hpcap); \
Console.Error("%s not found", #name); \ Console.Error("DEV9: %s not found", #name); \
hpcap = nullptr; \ hpcap = nullptr; \
return false; \ return false; \
} }

View File

@ -94,7 +94,7 @@ void FLASHinit()
ret = fread(file, 1, CARD_SIZE_ECC, fd); ret = fread(file, 1, CARD_SIZE_ECC, fd);
if (ret != CARD_SIZE_ECC) if (ret != CARD_SIZE_ECC)
{ {
DevCon.WriteLn("Reading error."); DevCon.WriteLn("DEV9: Reading error.");
} }
fclose(fd); fclose(fd);
@ -112,7 +112,7 @@ u32 FLASHread32(u32 addr, int size)
case FLASH_R_DATA: case FLASH_R_DATA:
memcpy(&value, &data[counter], size); memcpy(&value, &data[counter], size);
counter += size; counter += size;
DevCon.WriteLn("*FLASH DATA %dbit read 0x%08lX %s", size * 8, value, (ctrl & FLASH_PP_READ) ? "READ_ENABLE" : "READ_DISABLE"); DevCon.WriteLn("DEV9: *FLASH DATA %dbit read 0x%08lX %s", size * 8, value, (ctrl & FLASH_PP_READ) ? "READ_ENABLE" : "READ_DISABLE");
if (cmd == SM_CMD_READ3) if (cmd == SM_CMD_READ3)
{ {
if (counter >= PAGE_SIZE_ECC) if (counter >= PAGE_SIZE_ECC)
@ -148,33 +148,33 @@ u32 FLASHread32(u32 addr, int size)
return value; return value;
case FLASH_R_CMD: case FLASH_R_CMD:
DevCon.WriteLn("*FLASH CMD %dbit read %s DENIED", size * 8, getCmdName(cmd)); DevCon.WriteLn("DEV9: *FLASH CMD %dbit read %s DENIED", size * 8, getCmdName(cmd));
return cmd; return cmd;
case FLASH_R_ADDR: case FLASH_R_ADDR:
DevCon.WriteLn("*FLASH ADDR %dbit read DENIED", size * 8); DevCon.WriteLn("DEV9: *FLASH ADDR %dbit read DENIED", size * 8);
return 0; return 0;
case FLASH_R_CTRL: case FLASH_R_CTRL:
DevCon.WriteLn("*FLASH CTRL %dbit read 0x%08lX", size * 8, ctrl); DevCon.WriteLn("DEV9: *FLASH CTRL %dbit read 0x%08lX", size * 8, ctrl);
return ctrl; return ctrl;
case FLASH_R_ID: case FLASH_R_ID:
if (cmd == SM_CMD_READID) if (cmd == SM_CMD_READID)
{ {
DevCon.WriteLn("*FLASH ID %dbit read 0x%08lX", size * 8, id); DevCon.WriteLn("DEV9: *FLASH ID %dbit read 0x%08lX", size * 8, id);
return id; //0x98=Toshiba/0xEC=Samsung maker code should be returned first return id; //0x98=Toshiba/0xEC=Samsung maker code should be returned first
} }
else if (cmd == SM_CMD_GETSTATUS) else if (cmd == SM_CMD_GETSTATUS)
{ {
value = 0x80 | ((ctrl & 1) << 6); // 0:0=pass, 6:ready/busy, 7:1=not protected value = 0x80 | ((ctrl & 1) << 6); // 0:0=pass, 6:ready/busy, 7:1=not protected
DevCon.WriteLn("*FLASH STATUS %dbit read 0x%08lX", size * 8, value); DevCon.WriteLn("DEV9: *FLASH STATUS %dbit read 0x%08lX", size * 8, value);
return value; return value;
} //else fall off } //else fall off
return 0; return 0;
default: default:
DevCon.WriteLn("*FLASH Unknown %dbit read at address %lx", size * 8, addr); DevCon.WriteLn("DEV9: *FLASH Unknown %dbit read at address %lx", size * 8, addr);
return 0; return 0;
} }
} }
@ -186,7 +186,7 @@ void FLASHwrite32(u32 addr, u32 value, int size)
{ {
case FLASH_R_DATA: case FLASH_R_DATA:
DevCon.WriteLn("*FLASH DATA %dbit write 0x%08lX %s", size * 8, value, (ctrl & FLASH_PP_WRITE) ? "WRITE_ENABLE" : "WRITE_DISABLE"); DevCon.WriteLn("DEV9: *FLASH DATA %dbit write 0x%08lX %s", size * 8, value, (ctrl & FLASH_PP_WRITE) ? "WRITE_ENABLE" : "WRITE_DISABLE");
memcpy(&data[counter], &value, size); memcpy(&data[counter], &value, size);
counter += size; counter += size;
counter %= PAGE_SIZE_ECC; //should not get past the last byte, but at the end counter %= PAGE_SIZE_ECC; //should not get past the last byte, but at the end
@ -197,7 +197,7 @@ void FLASHwrite32(u32 addr, u32 value, int size)
{ {
if ((value != SM_CMD_GETSTATUS) && (value != SM_CMD_RESET)) if ((value != SM_CMD_GETSTATUS) && (value != SM_CMD_RESET))
{ {
DevCon.WriteLn("*FLASH CMD %dbit write %s ILLEGAL in busy mode - IGNORED", size * 8, getCmdName(value)); DevCon.WriteLn("DEV9: *FLASH CMD %dbit write %s ILLEGAL in busy mode - IGNORED", size * 8, getCmdName(value));
break; break;
} }
} }
@ -205,12 +205,12 @@ void FLASHwrite32(u32 addr, u32 value, int size)
{ {
if ((value != SM_CMD_PROGRAMPAGE) && (value != SM_CMD_RESET)) if ((value != SM_CMD_PROGRAMPAGE) && (value != SM_CMD_RESET))
{ {
DevCon.WriteLn("*FLASH CMD %dbit write %s ILLEGAL after WRITEDATA cmd - IGNORED", size * 8, getCmdName(value)); DevCon.WriteLn("DEV9: *FLASH CMD %dbit write %s ILLEGAL after WRITEDATA cmd - IGNORED", size * 8, getCmdName(value));
ctrl &= ~FLASH_PP_READY; //go busy, reset is needed ctrl &= ~FLASH_PP_READY; //go busy, reset is needed
break; break;
} }
} }
DevCon.WriteLn("*FLASH CMD %dbit write %s", size * 8, getCmdName(value)); DevCon.WriteLn("DEV9: *FLASH CMD %dbit write %s", size * 8, getCmdName(value));
switch (value) switch (value)
{ // A8 bit is encoded in READ cmd;) { // A8 bit is encoded in READ cmd;)
case SM_CMD_READ1: case SM_CMD_READ1:
@ -268,10 +268,10 @@ void FLASHwrite32(u32 addr, u32 value, int size)
break; break;
case FLASH_R_ADDR: case FLASH_R_ADDR:
DevCon.WriteLn("*FLASH ADDR %dbit write 0x%08lX", size * 8, value); DevCon.WriteLn("DEV9: *FLASH ADDR %dbit write 0x%08lX", size * 8, value);
address |= (value & 0xFF) << (addrbyte == 0 ? 0 : (1 + 8 * addrbyte)); address |= (value & 0xFF) << (addrbyte == 0 ? 0 : (1 + 8 * addrbyte));
addrbyte++; addrbyte++;
DevCon.WriteLn("*FLASH ADDR = 0x%08lX (addrbyte=%d)", address, addrbyte); DevCon.WriteLn("DEV9: *FLASH ADDR = 0x%08lX (addrbyte=%d)", address, addrbyte);
if (!(value & 0x100)) if (!(value & 0x100))
{ // address is complete { // address is complete
if ((cmd == SM_CMD_READ1) || (cmd == SM_CMD_READ2) || (cmd == SM_CMD_READ3)) if ((cmd == SM_CMD_READ1) || (cmd == SM_CMD_READ2) || (cmd == SM_CMD_READ3))
@ -287,22 +287,22 @@ void FLASHwrite32(u32 addr, u32 value, int size)
u32 pages = address - (blocks * BLOCK_SIZE); u32 pages = address - (blocks * BLOCK_SIZE);
[[maybe_unused]]const u32 bytes = pages % PAGE_SIZE; [[maybe_unused]]const u32 bytes = pages % PAGE_SIZE;
pages = pages / PAGE_SIZE; pages = pages / PAGE_SIZE;
DevCon.WriteLn("*FLASH ADDR = 0x%08lX (%d:%d:%d) (addrbyte=%d) FINAL", address, blocks, pages, bytes, addrbyte); DevCon.WriteLn("DEV9: *FLASH ADDR = 0x%08lX (%d:%d:%d) (addrbyte=%d) FINAL", address, blocks, pages, bytes, addrbyte);
} }
} }
break; break;
case FLASH_R_CTRL: case FLASH_R_CTRL:
DevCon.WriteLn("*FLASH CTRL %dbit write 0x%08lX", size * 8, value); DevCon.WriteLn("DEV9: *FLASH CTRL %dbit write 0x%08lX", size * 8, value);
ctrl = (ctrl & FLASH_PP_READY) | (value & ~FLASH_PP_READY); ctrl = (ctrl & FLASH_PP_READY) | (value & ~FLASH_PP_READY);
break; break;
case FLASH_R_ID: case FLASH_R_ID:
DevCon.WriteLn("*FLASH ID %dbit write 0x%08lX DENIED :P", size * 8, value); DevCon.WriteLn("DEV9: *FLASH ID %dbit write 0x%08lX DENIED :P", size * 8, value);
break; break;
default: default:
DevCon.WriteLn("*FLASH Unkwnown %dbit write at address 0x%08lX= 0x%08lX IGNORED", size * 8, addr, value); DevCon.WriteLn("DEV9: *FLASH Unkwnown %dbit write at address 0x%08lX= 0x%08lX IGNORED", size * 8, addr, value);
break; break;
} }
} }

View File

@ -90,7 +90,7 @@ void InitNet()
if (!na) if (!na)
{ {
Console.Error("Failed to GetNetAdapter()"); Console.Error("DEV9: Failed to GetNetAdapter()");
config.ethEnable = false; config.ethEnable = false;
return; return;
} }
@ -119,9 +119,9 @@ void TermNet()
{ {
RxRunning = false; RxRunning = false;
nif->close(); nif->close();
Console.WriteLn("Waiting for RX-net thread to terminate.."); Console.WriteLn("DEV9: Waiting for RX-net thread to terminate..");
rx_thread.join(); rx_thread.join();
Console.WriteLn("Done"); Console.WriteLn("DEV9: Done");
delete nif; delete nif;
nif = nullptr; nif = nullptr;

View File

@ -74,11 +74,11 @@ bool GetWin32Adapter(const char* name, PIP_ADAPTER_ADDRESSES adapter, std::uniqu
if (dwStatus == ERROR_BUFFER_OVERFLOW) if (dwStatus == ERROR_BUFFER_OVERFLOW)
{ {
DevCon.WriteLn("GetWin32Adapter() buffer too small, resizing"); DevCon.WriteLn("DEV9: GetWin32Adapter() buffer too small, resizing");
neededSize = dwBufLen / sizeof(IP_ADAPTER_ADDRESSES) + 1; neededSize = dwBufLen / sizeof(IP_ADAPTER_ADDRESSES) + 1;
AdapterInfo = std::make_unique<IP_ADAPTER_ADDRESSES[]>(neededSize); AdapterInfo = std::make_unique<IP_ADAPTER_ADDRESSES[]>(neededSize);
dwBufLen = sizeof(IP_ADAPTER_ADDRESSES) * neededSize; dwBufLen = sizeof(IP_ADAPTER_ADDRESSES) * neededSize;
DevCon.WriteLn("New size %i", neededSize); DevCon.WriteLn("DEV9: New size %i", neededSize);
DWORD dwStatus = GetAdaptersAddresses( DWORD dwStatus = GetAdaptersAddresses(
AF_UNSPEC, AF_UNSPEC,
@ -145,7 +145,7 @@ int pcap_io_init(char* adapter, bool switched, mac_address virtual_mac)
char filter[1024] = "ether broadcast or ether dst "; char filter[1024] = "ether broadcast or ether dst ";
int dlt; int dlt;
char* dlt_name; char* dlt_name;
Console.WriteLn("Opening adapter '%s'...", adapter); Console.WriteLn("DEV9: Opening adapter '%s'...", adapter);
pcap_io_switched = switched; pcap_io_switched = switched;
@ -158,8 +158,8 @@ int pcap_io_init(char* adapter, bool switched, mac_address virtual_mac)
errbuf // error buffer errbuf // error buffer
)) == NULL) )) == NULL)
{ {
Console.Error("%s", errbuf); Console.Error("DEV9: %s", errbuf);
Console.Error("Unable to open the adapter. %s is not supported by pcap", adapter); Console.Error("DEV9: Unable to open the adapter. %s is not supported by pcap", adapter);
return -1; return -1;
} }
if (switched) if (switched)
@ -171,13 +171,13 @@ int pcap_io_init(char* adapter, bool switched, mac_address virtual_mac)
if (pcap_compile(adhandle, &fp, filter, 1, PCAP_NETMASK_UNKNOWN) == -1) if (pcap_compile(adhandle, &fp, filter, 1, PCAP_NETMASK_UNKNOWN) == -1)
{ {
Console.Error("Error calling pcap_compile: %s", pcap_geterr(adhandle)); Console.Error("DEV9: Error calling pcap_compile: %s", pcap_geterr(adhandle));
return -1; return -1;
} }
if (pcap_setfilter(adhandle, &fp) == -1) if (pcap_setfilter(adhandle, &fp) == -1)
{ {
Console.Error("Error setting filter: %s", pcap_geterr(adhandle)); Console.Error("DEV9: Error setting filter: %s", pcap_geterr(adhandle));
return -1; return -1;
} }
} }
@ -186,7 +186,7 @@ int pcap_io_init(char* adapter, bool switched, mac_address virtual_mac)
dlt = pcap_datalink(adhandle); dlt = pcap_datalink(adhandle);
dlt_name = (char*)pcap_datalink_val_to_name(dlt); dlt_name = (char*)pcap_datalink_val_to_name(dlt);
Console.Error("Device uses DLT %d: %s", dlt, dlt_name); Console.Error("DEV9: Device uses DLT %d: %s", dlt, dlt_name);
switch (dlt) switch (dlt)
{ {
case DLT_EN10MB: case DLT_EN10MB:
@ -204,7 +204,7 @@ int pcap_io_init(char* adapter, bool switched, mac_address virtual_mac)
#endif #endif
pcap_io_running = 1; pcap_io_running = 1;
Console.WriteLn("Adapter Ok."); Console.WriteLn("DEV9: Adapter Ok.");
return 0; return 0;
} }

View File

@ -96,7 +96,7 @@ void rx_process(NetPacket* pk)
if (!(pbd->ctrl_stat & SMAP_BD_RX_EMPTY)) if (!(pbd->ctrl_stat & SMAP_BD_RX_EMPTY))
{ {
Console.Error("ERROR : Discarding %d bytes (RX%d not ready)", bytes, dev9.rxbdi); Console.Error("DEV9: ERROR : Discarding %d bytes (RX%d not ready)", bytes, dev9.rxbdi);
return; return;
} }
@ -148,7 +148,7 @@ void tx_process()
if (!(pbd->ctrl_stat & SMAP_BD_TX_READY)) if (!(pbd->ctrl_stat & SMAP_BD_TX_READY))
{ {
Console.Error("SMAP: ERROR : !pbd->ctrl_stat&SMAP_BD_TX_READY"); Console.Error("DEV9: SMAP: ERROR : !pbd->ctrl_stat&SMAP_BD_TX_READY");
break; break;
} }
if (pbd->length & 3) if (pbd->length & 3)
@ -158,18 +158,18 @@ void tx_process()
if (pbd->length > 1514) if (pbd->length > 1514)
{ {
Console.Error("SMAP: ERROR : Trying to send packet too big."); Console.Error("DEV9: SMAP: ERROR : Trying to send packet too big.");
} }
else else
{ {
u32 base = (pbd->pointer - 0x1000) & 16383; u32 base = (pbd->pointer - 0x1000) & 16383;
DevCon.WriteLn("Sending Packet from base %x, size %d", base, pbd->length); DevCon.WriteLn("DEV9: Sending Packet from base %x, size %d", base, pbd->length);
pk.size = pbd->length; pk.size = pbd->length;
if (!(pbd->pointer >= 0x1000)) if (!(pbd->pointer >= 0x1000))
{ {
Console.Error("SMAP: ERROR: odd , !pbd->pointer>0x1000 | 0x%X %u", pbd->pointer, pbd->length); Console.Error("DEV9: SMAP: ERROR: odd , !pbd->pointer>0x1000 | 0x%X %u", pbd->pointer, pbd->length);
} }
//increase fifo pointer(s) //increase fifo pointer(s)
//uh does that even exist on real h/w ? //uh does that even exist on real h/w ?
@ -211,7 +211,7 @@ void tx_process()
u32 was = 16384 - base; u32 was = 16384 - base;
memcpy(pk.buffer, dev9.txfifo + base, was); memcpy(pk.buffer, dev9.txfifo + base, was);
memcpy(pk.buffer + was, dev9.txfifo, pbd->length - was); memcpy(pk.buffer + was, dev9.txfifo, pbd->length - was);
DevCon.WriteLn("Warped read, was=%u, sz=%u, sz-was=%u", was, pbd->length, pbd->length - was); DevCon.WriteLn("DEV9: Warped read, was=%u, sz=%u, sz-was=%u", was, pbd->length, pbd->length - was);
} }
else else
{ {
@ -235,7 +235,7 @@ void tx_process()
//if some error/early exit signal TXDNV //if some error/early exit signal TXDNV
if (fc != cnt || cnt == 0) if (fc != cnt || cnt == 0)
{ {
Console.Error("SMAP: WARN : (fc!=cnt || cnt==0) but packet send request was made oO.."); Console.Error("DEV9: SMAP: WARN : (fc!=cnt || cnt==0) but packet send request was made oO..");
_DEV9irq(SMAP_INTR_TXDNV, 0); _DEV9irq(SMAP_INTR_TXDNV, 0);
} }
//if we actualy send something send TXEND //if we actualy send something send TXEND
@ -250,32 +250,32 @@ void emac3_write(u32 addr)
switch (addr) switch (addr)
{ {
case SMAP_R_EMAC3_MODE0_L: case SMAP_R_EMAC3_MODE0_L:
DevCon.WriteLn("SMAP: SMAP_R_EMAC3_MODE0 write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_EMAC3_MODE0 write %x", value);
value = (value & (~SMAP_E3_SOFT_RESET)) | SMAP_E3_TXMAC_IDLE | SMAP_E3_RXMAC_IDLE; value = (value & (~SMAP_E3_SOFT_RESET)) | SMAP_E3_TXMAC_IDLE | SMAP_E3_RXMAC_IDLE;
dev9Ru16(SMAP_R_EMAC3_STA_CTRL_H) |= SMAP_E3_PHY_OP_COMP; dev9Ru16(SMAP_R_EMAC3_STA_CTRL_H) |= SMAP_E3_PHY_OP_COMP;
break; break;
case SMAP_R_EMAC3_TxMODE0_L: case SMAP_R_EMAC3_TxMODE0_L:
DevCon.WriteLn("SMAP: SMAP_R_EMAC3_TxMODE0_L write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_EMAC3_TxMODE0_L write %x", value);
//spams// emu_printf("SMAP: SMAP_R_EMAC3_TxMODE0_L write %x\n", value); //spams// emu_printf("SMAP: SMAP_R_EMAC3_TxMODE0_L write %x\n", value);
//Process TX here ? //Process TX here ?
if (!(value & SMAP_E3_TX_GNP_0)) if (!(value & SMAP_E3_TX_GNP_0))
Console.Error("SMAP_R_EMAC3_TxMODE0_L: SMAP_E3_TX_GNP_0 not set"); Console.Error("DEV9: SMAP_R_EMAC3_TxMODE0_L: SMAP_E3_TX_GNP_0 not set");
tx_process(); tx_process();
value = value & ~SMAP_E3_TX_GNP_0; value = value & ~SMAP_E3_TX_GNP_0;
if (value) if (value)
Console.Error("SMAP_R_EMAC3_TxMODE0_L: extra bits set !"); Console.Error("DEV9: SMAP_R_EMAC3_TxMODE0_L: extra bits set !");
break; break;
case SMAP_R_EMAC3_TxMODE1_L: case SMAP_R_EMAC3_TxMODE1_L:
DevCon.WriteLn("SMAP_R_EMAC3_TxMODE1_L 32bit write %x", value); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_TxMODE1_L 32bit write %x", value);
if (value == 0x380f0000) if (value == 0x380f0000)
{ {
Console.WriteLn("Adapter Detection Hack - Resetting RX/TX"); Console.WriteLn("DEV9: Adapter Detection Hack - Resetting RX/TX");
_DEV9irq(SMAP_INTR_RXEND | SMAP_INTR_TXEND | SMAP_INTR_TXDNV, 5); _DEV9irq(SMAP_INTR_RXEND | SMAP_INTR_TXEND | SMAP_INTR_TXDNV, 5);
} }
break; break;
case SMAP_R_EMAC3_STA_CTRL_L: case SMAP_R_EMAC3_STA_CTRL_L:
DevCon.WriteLn("SMAP: SMAP_R_EMAC3_STA_CTRL write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_EMAC3_STA_CTRL write %x", value);
{ {
if (value & (SMAP_E3_PHY_READ)) if (value & (SMAP_E3_PHY_READ))
{ {
@ -293,7 +293,7 @@ void emac3_write(u32 addr)
val |= SMAP_PHY_STS_LINK | SMAP_PHY_STS_100M | SMAP_PHY_STS_FDX | SMAP_PHY_STS_ANCP; val |= SMAP_PHY_STS_LINK | SMAP_PHY_STS_100M | SMAP_PHY_STS_FDX | SMAP_PHY_STS_ANCP;
break; break;
} }
DevCon.WriteLn("phy_read %d: %x", reg, val); DevCon.WriteLn("DEV9: phy_read %d: %x", reg, val);
value = (value & 0xFFFF) | (val << 16); value = (value & 0xFFFF) | (val << 16);
} }
if (value & (SMAP_E3_PHY_WRITE)) if (value & (SMAP_E3_PHY_WRITE))
@ -308,13 +308,13 @@ void emac3_write(u32 addr)
val |= 0x1; val |= 0x1;
break; break;
} }
DevCon.WriteLn("phy_write %d: %x", reg, val); DevCon.WriteLn("DEV9: phy_write %d: %x", reg, val);
dev9.phyregs[reg] = val; dev9.phyregs[reg] = val;
} }
} }
break; break;
default: default:
DevCon.WriteLn("SMAP: emac3 write %x=%x", addr, value); DevCon.WriteLn("DEV9: SMAP: emac3 write %x=%x", addr, value);
} }
dev9Ru32(addr) = wswap(value); dev9Ru32(addr) = wswap(value);
} }
@ -324,21 +324,21 @@ smap_read8(u32 addr)
switch (addr) switch (addr)
{ {
case SMAP_R_TXFIFO_FRAME_CNT: case SMAP_R_TXFIFO_FRAME_CNT:
DevCon.WriteLn("SMAP_R_TXFIFO_FRAME_CNT read 8"); DevCon.WriteLn("DEV9: SMAP_R_TXFIFO_FRAME_CNT read 8");
break; break;
case SMAP_R_RXFIFO_FRAME_CNT: case SMAP_R_RXFIFO_FRAME_CNT:
DevCon.WriteLn("SMAP_R_RXFIFO_FRAME_CNT read 8"); DevCon.WriteLn("DEV9: SMAP_R_RXFIFO_FRAME_CNT read 8");
break; break;
case SMAP_R_BD_MODE: case SMAP_R_BD_MODE:
return dev9.bd_swap; return dev9.bd_swap;
default: default:
DevCon.WriteLn("SMAP : Unknown 8 bit read @ %X,v=%X", addr, dev9Ru8(addr)); DevCon.WriteLn("DEV9: SMAP : Unknown 8 bit read @ %X,v=%X", addr, dev9Ru8(addr));
return dev9Ru8(addr); return dev9Ru8(addr);
} }
DevCon.WriteLn("SMAP : error , 8 bit read @ %X,v=%X", addr, dev9Ru8(addr)); DevCon.WriteLn("DEV9: SMAP : error , 8 bit read @ %X,v=%X", addr, dev9Ru8(addr));
return dev9Ru8(addr); return dev9Ru8(addr);
} }
EXPORT_C_(u16) EXPORT_C_(u16)
@ -355,25 +355,25 @@ smap_read16(u32 addr)
{ {
case 0: // ctrl_stat case 0: // ctrl_stat
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
//DevCon.WriteLn("TX_CTRL_STAT[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard); //DevCon.WriteLn("DEV9: TX_CTRL_STAT[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
case 2: // unknown case 2: // unknown
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
//DevCon.WriteLn("TX_UNKNOWN[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard); //DevCon.WriteLn("DEV9: TX_UNKNOWN[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
case 4: // length case 4: // length
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
DevCon.WriteLn("TX_LENGTH[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard); DevCon.WriteLn("DEV9: TX_LENGTH[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
case 6: // pointer case 6: // pointer
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
DevCon.WriteLn("TX_POINTER[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard); DevCon.WriteLn("DEV9: TX_POINTER[%d]: read %x", (addr - SMAP_BD_TX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
@ -390,25 +390,25 @@ smap_read16(u32 addr)
{ {
case 0: // ctrl_stat case 0: // ctrl_stat
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
//DevCon.WriteLn("RX_CTRL_STAT[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard); //DevCon.WriteLn("DEV9: RX_CTRL_STAT[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
case 2: // unknown case 2: // unknown
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
//DevCon.WriteLn("RX_UNKNOWN[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard); //DevCon.WriteLn("DEV9: RX_UNKNOWN[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
case 4: // length case 4: // length
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
DevCon.WriteLn("RX_LENGTH[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard); DevCon.WriteLn("DEV9: RX_LENGTH[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
case 6: // pointer case 6: // pointer
hard = dev9Ru16(addr); hard = dev9Ru16(addr);
DevCon.WriteLn("RX_POINTER[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard); DevCon.WriteLn("DEV9: RX_POINTER[%d]: read %x", (addr - SMAP_BD_RX_BASE) / 8, hard);
if(dev9.bd_swap) if(dev9.bd_swap)
return (hard<<8)|(hard>>8); return (hard<<8)|(hard>>8);
return hard; return hard;
@ -419,76 +419,76 @@ smap_read16(u32 addr)
switch (addr) switch (addr)
{ {
case SMAP_R_TXFIFO_FRAME_CNT: case SMAP_R_TXFIFO_FRAME_CNT:
DevCon.WriteLn("SMAP_R_TXFIFO_FRAME_CNT read 16"); DevCon.WriteLn("DEV9: SMAP_R_TXFIFO_FRAME_CNT read 16");
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_RXFIFO_FRAME_CNT: case SMAP_R_RXFIFO_FRAME_CNT:
DevCon.WriteLn("SMAP_R_RXFIFO_FRAME_CNT read 16"); DevCon.WriteLn("DEV9: SMAP_R_RXFIFO_FRAME_CNT read 16");
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_MODE0_L: case SMAP_R_EMAC3_MODE0_L:
DevCon.WriteLn("SMAP_R_EMAC3_MODE0_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_MODE0_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_MODE0_H: case SMAP_R_EMAC3_MODE0_H:
DevCon.WriteLn("SMAP_R_EMAC3_MODE0_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_MODE0_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_MODE1_L: case SMAP_R_EMAC3_MODE1_L:
DevCon.WriteLn("SMAP_R_EMAC3_MODE1_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_MODE1_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_MODE1_H: case SMAP_R_EMAC3_MODE1_H:
DevCon.WriteLn("SMAP_R_EMAC3_MODE1_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_MODE1_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_RxMODE_L: case SMAP_R_EMAC3_RxMODE_L:
DevCon.WriteLn("SMAP_R_EMAC3_RxMODE_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_RxMODE_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_RxMODE_H: case SMAP_R_EMAC3_RxMODE_H:
DevCon.WriteLn("SMAP_R_EMAC3_RxMODE_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_RxMODE_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_INTR_STAT_L: case SMAP_R_EMAC3_INTR_STAT_L:
DevCon.WriteLn("SMAP_R_EMAC3_INTR_STAT_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_INTR_STAT_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_INTR_STAT_H: case SMAP_R_EMAC3_INTR_STAT_H:
DevCon.WriteLn("SMAP_R_EMAC3_INTR_STAT_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_INTR_STAT_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_INTR_ENABLE_L: case SMAP_R_EMAC3_INTR_ENABLE_L:
DevCon.WriteLn("SMAP_R_EMAC3_INTR_ENABLE_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_INTR_ENABLE_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_INTR_ENABLE_H: case SMAP_R_EMAC3_INTR_ENABLE_H:
DevCon.WriteLn("SMAP_R_EMAC3_INTR_ENABLE_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_INTR_ENABLE_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_TxMODE0_L: case SMAP_R_EMAC3_TxMODE0_L:
DevCon.WriteLn("SMAP_R_EMAC3_TxMODE0_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_TxMODE0_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_TxMODE0_H: case SMAP_R_EMAC3_TxMODE0_H:
DevCon.WriteLn("SMAP_R_EMAC3_TxMODE0_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_TxMODE0_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_TxMODE1_L: case SMAP_R_EMAC3_TxMODE1_L:
DevCon.WriteLn("SMAP_R_EMAC3_TxMODE1_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_TxMODE1_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_TxMODE1_H: case SMAP_R_EMAC3_TxMODE1_H:
DevCon.WriteLn("SMAP_R_EMAC3_TxMODE1_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_TxMODE1_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_STA_CTRL_L: case SMAP_R_EMAC3_STA_CTRL_L:
DevCon.WriteLn("SMAP_R_EMAC3_STA_CTRL_L 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_STA_CTRL_L 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
case SMAP_R_EMAC3_STA_CTRL_H: case SMAP_R_EMAC3_STA_CTRL_H:
DevCon.WriteLn("SMAP_R_EMAC3_STA_CTRL_H 16bit read %x", dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_STA_CTRL_H 16bit read %x", dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
default: default:
DevCon.WriteLn("SMAP : Unknown 16 bit read @ %X,v=%X", addr, dev9Ru16(addr)); DevCon.WriteLn("DEV9: SMAP : Unknown 16 bit read @ %X,v=%X", addr, dev9Ru16(addr));
return dev9Ru16(addr); return dev9Ru16(addr);
} }
#endif #endif
@ -507,13 +507,13 @@ smap_read32(u32 addr)
switch (addr) switch (addr)
{ {
case SMAP_R_TXFIFO_FRAME_CNT: case SMAP_R_TXFIFO_FRAME_CNT:
DevCon.WriteLn("SMAP_R_TXFIFO_FRAME_CNT read 32"); DevCon.WriteLn("DEV9: SMAP_R_TXFIFO_FRAME_CNT read 32");
return dev9Ru32(addr); return dev9Ru32(addr);
case SMAP_R_RXFIFO_FRAME_CNT: case SMAP_R_RXFIFO_FRAME_CNT:
DevCon.WriteLn("SMAP_R_RXFIFO_FRAME_CNT read 32"); DevCon.WriteLn("DEV9: SMAP_R_RXFIFO_FRAME_CNT read 32");
return dev9Ru32(addr); return dev9Ru32(addr);
case SMAP_R_EMAC3_STA_CTRL_L: case SMAP_R_EMAC3_STA_CTRL_L:
DevCon.WriteLn("SMAP_R_EMAC3_STA_CTRL_L 32bit read value %x", dev9Ru32(addr)); DevCon.WriteLn("DEV9: SMAP_R_EMAC3_STA_CTRL_L 32bit read value %x", dev9Ru32(addr));
return dev9Ru32(addr); return dev9Ru32(addr);
case SMAP_R_RXFIFO_DATA: case SMAP_R_RXFIFO_DATA:
@ -524,11 +524,11 @@ smap_read32(u32 addr)
dev9Ru32(SMAP_R_RXFIFO_RD_PTR) = ((rd_ptr + 4) & 16383); dev9Ru32(SMAP_R_RXFIFO_RD_PTR) = ((rd_ptr + 4) & 16383);
DevCon.WriteLn("SMAP_R_RXFIFO_DATA 32bit read %x", rv); DevCon.WriteLn("DEV9: SMAP_R_RXFIFO_DATA 32bit read %x", rv);
return rv; return rv;
} }
default: default:
DevCon.WriteLn("SMAP : Unknown 32 bit read @ %X,v=%X", addr, dev9Ru32(addr)); DevCon.WriteLn("DEV9: SMAP : Unknown 32 bit read @ %X,v=%X", addr, dev9Ru32(addr));
return dev9Ru32(addr); return dev9Ru32(addr);
} }
} }
@ -540,14 +540,14 @@ smap_write8(u32 addr, u8 value)
switch (addr) switch (addr)
{ {
case SMAP_R_TXFIFO_FRAME_INC: case SMAP_R_TXFIFO_FRAME_INC:
DevCon.WriteLn("SMAP_R_TXFIFO_FRAME_INC 8bit write %x", value); DevCon.WriteLn("DEV9: SMAP_R_TXFIFO_FRAME_INC 8bit write %x", value);
{ {
dev9Ru8(SMAP_R_TXFIFO_FRAME_CNT)++; dev9Ru8(SMAP_R_TXFIFO_FRAME_CNT)++;
} }
return; return;
case SMAP_R_RXFIFO_FRAME_DEC: case SMAP_R_RXFIFO_FRAME_DEC:
DevCon.WriteLn("SMAP_R_RXFIFO_FRAME_DEC 8bit write %x", value); DevCon.WriteLn("DEV9: SMAP_R_RXFIFO_FRAME_DEC 8bit write %x", value);
counter_lock.lock(); counter_lock.lock();
dev9Ru8(addr) = value; dev9Ru8(addr) = value;
{ {
@ -557,7 +557,7 @@ smap_write8(u32 addr, u8 value)
return; return;
case SMAP_R_TXFIFO_CTRL: case SMAP_R_TXFIFO_CTRL:
DevCon.WriteLn("SMAP_R_TXFIFO_CTRL 8bit write %x", value); DevCon.WriteLn("DEV9: SMAP_R_TXFIFO_CTRL 8bit write %x", value);
if (value & SMAP_TXFIFO_RESET) if (value & SMAP_TXFIFO_RESET)
{ {
dev9.txbdi = 0; dev9.txbdi = 0;
@ -571,7 +571,7 @@ smap_write8(u32 addr, u8 value)
return; return;
case SMAP_R_RXFIFO_CTRL: case SMAP_R_RXFIFO_CTRL:
DevCon.WriteLn("SMAP_R_RXFIFO_CTRL 8bit write %x", value); DevCon.WriteLn("DEV9: SMAP_R_RXFIFO_CTRL 8bit write %x", value);
if (value & SMAP_RXFIFO_RESET) if (value & SMAP_RXFIFO_RESET)
{ {
reset_lock.lock(); //lock reset mutex 1st reset_lock.lock(); //lock reset mutex 1st
@ -591,17 +591,17 @@ smap_write8(u32 addr, u8 value)
case SMAP_R_BD_MODE: case SMAP_R_BD_MODE:
if (value & SMAP_BD_SWAP) if (value & SMAP_BD_SWAP)
{ {
DevCon.WriteLn("SMAP_R_BD_MODE: Byteswapping enabled."); DevCon.WriteLn("DEV9: SMAP_R_BD_MODE: Byteswapping enabled.");
dev9.bd_swap = 1; dev9.bd_swap = 1;
} }
else else
{ {
DevCon.WriteLn("SMAP_R_BD_MODE: Byteswapping disabled."); DevCon.WriteLn("DEV9: SMAP_R_BD_MODE: Byteswapping disabled.");
dev9.bd_swap = 0; dev9.bd_swap = 0;
} }
return; return;
default: default:
DevCon.WriteLn("SMAP : Unknown 8 bit write @ %X,v=%X", addr, value); DevCon.WriteLn("DEV9: SMAP : Unknown 8 bit write @ %X,v=%X", addr, value);
dev9Ru8(addr) = value; dev9Ru8(addr) = value;
return; return;
} }
@ -618,20 +618,20 @@ smap_write16(u32 addr, u16 value)
switch (addr & 0x7) switch (addr & 0x7)
{ {
case 0: // ctrl_stat case 0: // ctrl_stat
DevCon.WriteLn("TX_CTRL_STAT[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); DevCon.WriteLn("DEV9: TX_CTRL_STAT[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value);
//hacky //hacky
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case 2: // unknown case 2: // unknown
//DevCon.WriteLn("TX_UNKNOWN[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); //DevCon.WriteLn("DEV9: TX_UNKNOWN[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case 4: // length case 4: // length
DevCon.WriteLn("TX_LENGTH[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); DevCon.WriteLn("DEV9: TX_LENGTH[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case 6: // pointer case 6: // pointer
DevCon.WriteLn("TX_POINTER[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value); DevCon.WriteLn("DEV9: TX_POINTER[%d]: write %x", (addr - SMAP_BD_TX_BASE) / 8, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
} }
@ -648,23 +648,23 @@ smap_write16(u32 addr, u16 value)
switch (addr & 0x7) switch (addr & 0x7)
{ {
case 0: // ctrl_stat case 0: // ctrl_stat
DevCon.WriteLn("RX_CTRL_STAT[%d]: write %x", rx_index, value); DevCon.WriteLn("DEV9: RX_CTRL_STAT[%d]: write %x", rx_index, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
if(value&0x8000) if(value&0x8000)
{ {
DevCon.WriteLn(" * * PACKET READ COMPLETE: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr); DevCon.WriteLn("DEV9: * * PACKET READ COMPLETE: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr);
} }
return; return;
case 2: // unknown case 2: // unknown
//DevCon.WriteLn("RX_UNKNOWN[%d]: write %x", rx_index, value); //DevCon.WriteLn("DEV9: RX_UNKNOWN[%d]: write %x", rx_index, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case 4: // length case 4: // length
DevCon.WriteLn("RX_LENGTH[%d]: write %x", rx_index, value); DevCon.WriteLn("DEV9: RX_LENGTH[%d]: write %x", rx_index, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case 6: // pointer case 6: // pointer
DevCon.WriteLn("RX_POINTER[%d]: write %x", rx_index, value); DevCon.WriteLn("DEV9: RX_POINTER[%d]: write %x", rx_index, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
} }
@ -675,17 +675,17 @@ smap_write16(u32 addr, u16 value)
switch (addr) switch (addr)
{ {
case SMAP_R_INTR_CLR: case SMAP_R_INTR_CLR:
DevCon.WriteLn("SMAP: SMAP_R_INTR_CLR 16bit write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_INTR_CLR 16bit write %x", value);
dev9.irqcause &= ~value; dev9.irqcause &= ~value;
return; return;
case SMAP_R_TXFIFO_WR_PTR: case SMAP_R_TXFIFO_WR_PTR:
DevCon.WriteLn("SMAP: SMAP_R_TXFIFO_WR_PTR 16bit write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_TXFIFO_WR_PTR 16bit write %x", value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
#define EMAC3_L_WRITE(name) \ #define EMAC3_L_WRITE(name) \
case name: \ case name: \
DevCon.WriteLn("SMAP: " #name " 16 bit write %x", value); \ DevCon.WriteLn("DEV9: SMAP: " #name " 16 bit write %x", value); \
dev9Ru16(addr) = value; \ dev9Ru16(addr) = value; \
return; return;
// clang-format off // clang-format off
@ -722,7 +722,7 @@ smap_write16(u32 addr, u16 value)
#define EMAC3_H_WRITE(name) \ #define EMAC3_H_WRITE(name) \
case name: \ case name: \
DevCon.WriteLn("SMAP: " #name " 16 bit write %x", value); \ DevCon.WriteLn("DEV9: SMAP: " #name " 16 bit write %x", value); \
dev9Ru16(addr) = value; \ dev9Ru16(addr) = value; \
emac3_write(addr - 2); \ emac3_write(addr - 2); \
return; return;
@ -759,11 +759,11 @@ smap_write16(u32 addr, u16 value)
// clang-format on // clang-format on
/* /*
case SMAP_R_EMAC3_MODE0_L: case SMAP_R_EMAC3_MODE0_L:
DevCon.WriteLn("SMAP: SMAP_R_EMAC3_MODE0 write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_EMAC3_MODE0 write %x", value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case SMAP_R_EMAC3_TxMODE0_L: case SMAP_R_EMAC3_TxMODE0_L:
DevCon.WriteLn("SMAP: SMAP_R_EMAC3_TxMODE0_L 16bit write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_EMAC3_TxMODE0_L 16bit write %x", value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case SMAP_R_EMAC3_TxMODE1_L: case SMAP_R_EMAC3_TxMODE1_L:
@ -781,13 +781,13 @@ smap_write16(u32 addr, u16 value)
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
case SMAP_R_EMAC3_STA_CTRL_H: case SMAP_R_EMAC3_STA_CTRL_H:
DevCon.WriteLn("SMAP: SMAP_R_EMAC3_STA_CTRL_H 16bit write %x", value); DevCon.WriteLn("DEV9: SMAP: SMAP_R_EMAC3_STA_CTRL_H 16bit write %x", value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
*/ */
default: default:
DevCon.WriteLn("SMAP : Unknown 16 bit write @ %X,v=%X", addr, value); DevCon.WriteLn("DEV9: SMAP : Unknown 16 bit write @ %X,v=%X", addr, value);
dev9Ru16(addr) = value; dev9Ru16(addr) = value;
return; return;
} }
@ -804,12 +804,12 @@ smap_write32(u32 addr, u32 value)
switch (addr) switch (addr)
{ {
case SMAP_R_TXFIFO_DATA: case SMAP_R_TXFIFO_DATA:
DevCon.WriteLn("SMAP_R_TXFIFO_DATA 32bit write %x", value); DevCon.WriteLn("DEV9: SMAP_R_TXFIFO_DATA 32bit write %x", value);
*((u32*)(dev9.txfifo + dev9Ru32(SMAP_R_TXFIFO_WR_PTR))) = value; *((u32*)(dev9.txfifo + dev9Ru32(SMAP_R_TXFIFO_WR_PTR))) = value;
dev9Ru32(SMAP_R_TXFIFO_WR_PTR) = (dev9Ru32(SMAP_R_TXFIFO_WR_PTR) + 4) & 16383; dev9Ru32(SMAP_R_TXFIFO_WR_PTR) = (dev9Ru32(SMAP_R_TXFIFO_WR_PTR) + 4) & 16383;
return; return;
default: default:
DevCon.WriteLn("SMAP : Unknown 32 bit write @ %X,v=%X", addr, value); DevCon.WriteLn("DEV9: SMAP : Unknown 32 bit write @ %X,v=%X", addr, value);
dev9Ru32(addr) = value; dev9Ru32(addr) = value;
return; return;
} }
@ -821,7 +821,7 @@ smap_readDMA8Mem(u32* pMem, int size)
{ {
dev9Ru32(SMAP_R_RXFIFO_RD_PTR) &= 16383; dev9Ru32(SMAP_R_RXFIFO_RD_PTR) &= 16383;
DevCon.WriteLn(" * * SMAP DMA READ START: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr); DevCon.WriteLn("DEV9: * * SMAP DMA READ START: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr);
while (size > 0) while (size > 0)
{ {
*pMem = *((u32*)(dev9.rxfifo + dev9Ru32(SMAP_R_RXFIFO_RD_PTR))); *pMem = *((u32*)(dev9.rxfifo + dev9Ru32(SMAP_R_RXFIFO_RD_PTR)));
@ -830,7 +830,7 @@ smap_readDMA8Mem(u32* pMem, int size)
size -= 4; size -= 4;
} }
DevCon.WriteLn(" * * SMAP DMA READ END: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr); DevCon.WriteLn("DEV9: * * SMAP DMA READ END: rd_ptr=%d, wr_ptr=%d", dev9Ru32(SMAP_R_RXFIFO_RD_PTR), dev9.rxfifo_wr_ptr);
dev9Ru16(SMAP_R_RXFIFO_CTRL) &= ~SMAP_RXFIFO_DMAEN; dev9Ru16(SMAP_R_RXFIFO_CTRL) &= ~SMAP_RXFIFO_DMAEN;
} }
@ -842,7 +842,7 @@ smap_writeDMA8Mem(u32* pMem, int size)
{ {
dev9Ru32(SMAP_R_TXFIFO_WR_PTR) &= 16383; dev9Ru32(SMAP_R_TXFIFO_WR_PTR) &= 16383;
DevCon.WriteLn(" * * SMAP DMA WRITE START: wr_ptr=%d, rd_ptr=%d", dev9Ru32(SMAP_R_TXFIFO_WR_PTR), dev9.txfifo_rd_ptr); DevCon.WriteLn("DEV9: * * SMAP DMA WRITE START: wr_ptr=%d, rd_ptr=%d", dev9Ru32(SMAP_R_TXFIFO_WR_PTR), dev9.txfifo_rd_ptr);
while (size > 0) while (size > 0)
{ {
int value = *pMem; int value = *pMem;
@ -853,7 +853,7 @@ smap_writeDMA8Mem(u32* pMem, int size)
dev9Ru32(SMAP_R_TXFIFO_WR_PTR) = (dev9Ru32(SMAP_R_TXFIFO_WR_PTR) + 4) & 16383; dev9Ru32(SMAP_R_TXFIFO_WR_PTR) = (dev9Ru32(SMAP_R_TXFIFO_WR_PTR) + 4) & 16383;
size -= 4; size -= 4;
} }
DevCon.WriteLn(" * * SMAP DMA WRITE END: wr_ptr=%d, rd_ptr=%d", dev9Ru32(SMAP_R_TXFIFO_WR_PTR), dev9.txfifo_rd_ptr); DevCon.WriteLn("DEV9: * * SMAP DMA WRITE END: wr_ptr=%d, rd_ptr=%d", dev9Ru32(SMAP_R_TXFIFO_WR_PTR), dev9.txfifo_rd_ptr);
dev9Ru16(SMAP_R_TXFIFO_CTRL) &= ~SMAP_TXFIFO_DMAEN; dev9Ru16(SMAP_R_TXFIFO_CTRL) &= ~SMAP_TXFIFO_DMAEN;
} }