aboutsummaryrefslogtreecommitdiff
path: root/src/DSi_NWifi.h
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2019-08-04 02:16:16 +0200
committerArisotura <thetotalworm@gmail.com>2019-08-04 02:16:16 +0200
commitf7f4ff0519309669e78b994e7c759d13808f0a87 (patch)
tree78f288acbec74e3a8072a8fbbb7602ae3c73d11f /src/DSi_NWifi.h
parent0918da7b004ea2259989ab7063cfa1e20216f10a (diff)
wifi: take this shit further. complete wifi init
Diffstat (limited to 'src/DSi_NWifi.h')
-rw-r--r--src/DSi_NWifi.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/DSi_NWifi.h b/src/DSi_NWifi.h
index 0a36705..e5fe637 100644
--- a/src/DSi_NWifi.h
+++ b/src/DSi_NWifi.h
@@ -33,11 +33,19 @@ public:
void ContinueTransfer();
+ void SetIRQ_F1_Counter(u32 n);
+
private:
u32 TransferCmd;
u32 TransferAddr;
u32 RemSize;
+ void UpdateIRQ();
+ void UpdateIRQ_F1();
+ //void SetIRQ_F1_Counter(u32 n);
+ void ClearIRQ_F1_Counter(u32 n);
+ void SetIRQ_F1_CPU(u32 n);
+
u8 F0_Read(u32 addr);
void F0_Write(u32 addr, u8 val);
@@ -50,11 +58,28 @@ private:
void ReadBlock();
void WriteBlock();
+ void HandleCommand();
void BMI_Command();
+ void WMI_Command();
+
+ void SendWMIFrame(u8* data, u32 len, u8 ep, u8 flags, u16 ctrl);
u32 WindowRead(u32 addr);
void WindowWrite(u32 addr, u32 val);
+ u16 MB_Read16(int n)
+ {
+ u16 ret = Mailbox[n]->Read();
+ ret |= (Mailbox[n]->Read() << 8);
+ return ret;
+ }
+
+ void MB_Write16(int n, u16 val)
+ {
+ Mailbox[n]->Write(val & 0xFF); val >>= 8;
+ Mailbox[n]->Write(val & 0xFF);
+ }
+
u32 MB_Read32(int n)
{
u32 ret = Mailbox[n]->Read();
@@ -72,9 +97,25 @@ private:
Mailbox[n]->Write(val & 0xFF);
}
+ void MB_Drain(int n)
+ {
+ while (!Mailbox[n]->IsEmpty()) Mailbox[n]->Read();
+ }
+
FIFO<u8>* Mailbox[8];
+ u8 F0_IRQEnable;
+ u8 F0_IRQStatus;
+
+ u8 F1_IRQEnable, F1_IRQEnable_CPU, F1_IRQEnable_Error, F1_IRQEnable_Counter;
+ u8 F1_IRQStatus, F1_IRQStatus_CPU, F1_IRQStatus_Error, F1_IRQStatus_Counter;
+
u32 WindowData, WindowReadAddr, WindowWriteAddr;
+
+ u8 EEPROM[0x400];
+ u32 EEPROMReady;
+
+ u32 BootPhase;
};
#endif // DSI_NWIFI_H