NeKernel
dev
Loading...
Searching...
No Matches
XHCI.h
Go to the documentation of this file.
1
/* ========================================
2
3
Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
4
5
File: Config.h
6
Purpose: XHCI (and backwards) header.
7
8
Revision History:
9
10
01/02/24: Added file (amlel)
11
03/02/24: Update filename to Config.h (amlel)
12
13
======================================== */
14
15
#pragma once
16
17
#include <
NeKit/Config.h
>
18
19
#define kUSBCommand (UInt16) 0x0
20
#define kUSBStatus (UInt16) 0x2
21
#define kUSBInterruptEnable (UInt16) 0x4
22
#define kUSBFrameNum (UInt16) 0x6
23
#define kUSBFrameListBaseAddress (UInt16) 0x8
24
#define kUSBFrameModifyStart (UInt16) 0xC
25
#define kUSBPort1StatusCtrl (UInt16) 0x10
26
#define kUSBPort2StatusCtrl (UInt16) 0x12
27
28
namespace
Kernel
{
29
typedef
struct
USBCommandRegister
final {
30
UInt8
mReserved
[8];
// Reserved
31
UInt8
mMaxPacket
;
// 0 = Max packet size 32 bits 1 = Max packet size 64 bits
32
UInt8
mConfigure
;
33
UInt8
mSoftwareDebug
;
34
UInt8
mGlobalResume
;
35
UInt8
mGlobalSuspend
;
36
UInt8
mHostCtrlReset
;
37
UInt8
mRun
;
// 1 = Controller execute frame list entries
38
}
USBCommandRegister
;
39
40
typedef
struct
USBStatusRegister
final {
41
UInt8
mReserved
[8];
// Reserved
42
UInt8
mHalted
;
// 1 = bit 0 in CMD is zero 0 = bit 0 in CMD is 1
43
UInt8
mProcessError
;
44
UInt8
mSystemError
;
45
UInt8
mResumeDetected
;
46
UInt8
mErrorInterrupt
;
47
UInt8
mInterrupt
;
48
}
USBStatusRegister
;
49
50
typedef
struct
USBInterruptEnableRegister
final {
51
UInt8
mReserved
[4];
// Reserved
52
UInt8
mShortPacket
;
// 1=Enable interrupt 0=Disable interrupt
53
UInt8
mComplete
;
// 1=Enable interrupt 0=Disable interrupt
54
UInt8
mResume
;
// 1=Enable interrupt 0=Disable interrupt
55
UInt8
mTimeoutCRC
;
// 1=Enable interrupt 0=Disable interrupt
56
}
USBInterruptEnableRegister
;
57
58
/*
59
Some terminology:
60
61
Frame Number: Number of processed entry of the Frame List.
62
Frame List Base Address:
63
32-bit physical adress of Frame List. Remember that first 12 bytes are
64
always 0. The Frame List must contain 1024 entries.
65
*/
66
}
// namespace Kernel
Config.h
Kernel
UPS inline definitions.
Definition
Device.h:12
Kernel::USBStatusRegister
struct Kernel::USBStatusRegister USBStatusRegister
Kernel::USBCommandRegister
struct Kernel::USBCommandRegister USBCommandRegister
Kernel::USBInterruptEnableRegister
struct Kernel::USBInterruptEnableRegister USBInterruptEnableRegister
Kernel::UInt8
__UINT8_TYPE__ UInt8
Definition
Config.h:55
Kernel::USBCommandRegister
Definition
XHCI.h:29
Kernel::USBCommandRegister::mConfigure
UInt8 mConfigure
Definition
XHCI.h:32
Kernel::USBCommandRegister::mGlobalSuspend
UInt8 mGlobalSuspend
Definition
XHCI.h:35
Kernel::USBCommandRegister::mRun
UInt8 mRun
Definition
XHCI.h:37
Kernel::USBCommandRegister::mReserved
UInt8 mReserved[8]
Definition
XHCI.h:30
Kernel::USBCommandRegister::mSoftwareDebug
UInt8 mSoftwareDebug
Definition
XHCI.h:33
Kernel::USBCommandRegister::mGlobalResume
UInt8 mGlobalResume
Definition
XHCI.h:34
Kernel::USBCommandRegister::mMaxPacket
UInt8 mMaxPacket
Definition
XHCI.h:31
Kernel::USBCommandRegister::mHostCtrlReset
UInt8 mHostCtrlReset
Definition
XHCI.h:36
Kernel::USBInterruptEnableRegister
Definition
XHCI.h:50
Kernel::USBInterruptEnableRegister::mTimeoutCRC
UInt8 mTimeoutCRC
Definition
XHCI.h:55
Kernel::USBInterruptEnableRegister::mShortPacket
UInt8 mShortPacket
Definition
XHCI.h:52
Kernel::USBInterruptEnableRegister::mResume
UInt8 mResume
Definition
XHCI.h:54
Kernel::USBInterruptEnableRegister::mReserved
UInt8 mReserved[4]
Definition
XHCI.h:51
Kernel::USBInterruptEnableRegister::mComplete
UInt8 mComplete
Definition
XHCI.h:53
Kernel::USBStatusRegister
Definition
XHCI.h:40
Kernel::USBStatusRegister::mProcessError
UInt8 mProcessError
Definition
XHCI.h:43
Kernel::USBStatusRegister::mResumeDetected
UInt8 mResumeDetected
Definition
XHCI.h:45
Kernel::USBStatusRegister::mSystemError
UInt8 mSystemError
Definition
XHCI.h:44
Kernel::USBStatusRegister::mHalted
UInt8 mHalted
Definition
XHCI.h:42
Kernel::USBStatusRegister::mReserved
UInt8 mReserved[8]
Definition
XHCI.h:41
Kernel::USBStatusRegister::mErrorInterrupt
UInt8 mErrorInterrupt
Definition
XHCI.h:46
Kernel::USBStatusRegister::mInterrupt
UInt8 mInterrupt
Definition
XHCI.h:47
src
modules
XHCI
XHCI.h
Generated by
1.15.0