StrikerX3
f2ec24f4be
Add methods to read parameters needed by a PACKET transfer
2018-12-06 20:33:26 -02:00
StrikerX3
c6f439038c
Define PACKET protocol and bits used by it
2018-12-06 20:32:51 -02:00
StrikerX3
f39cc3feaf
Added dummy DVD drive stub
2018-12-06 15:39:36 -02:00
StrikerX3
3eb3d56b01
Implemented Identify PACKET Device ATA command
2018-12-06 14:52:19 -02:00
StrikerX3
db04840c6b
Implement disk image write
2018-12-06 13:37:43 -02:00
StrikerX3
599d030e81
Implement basic HDD image reader
...
Fix BM IDE DMA writes
2018-12-06 13:23:09 -02:00
StrikerX3
c0f0f26b5e
Created settings for virtual HD and DVD drives
...
Changed a few command line parameters and added a parameter to load a virtual hard disk image
2018-12-06 11:23:06 -02:00
StrikerX3
eff3037cd4
Implemented Initialize Device Parameters ATA command
2018-12-06 10:43:58 -02:00
StrikerX3
8f9a88acbb
Finish PIO data in and out protocols
...
Implement Security Unlock ATA command
2018-12-06 09:52:34 -02:00
StrikerX3
3f1a12a965
Implemented IDE DMA transfers
...
Prefer references over pointers where applicable
2018-12-05 23:33:58 -02:00
StrikerX3
bac54bfff3
Refactor bus master IDE channels into a class
...
Implement worker thread for bus master IDE channels
2018-12-05 20:06:47 -02:00
StrikerX3
55b76b447c
Begin implementing Read DMA ATA command
2018-12-05 18:59:00 -02:00
StrikerX3
fa2e29a7d2
Simplify ATA protocols and stub Read DMA command on ATA device class
2018-12-05 18:09:56 -02:00
StrikerX3
806d53f545
Stub Bus Master IDE commands
2018-12-05 16:43:58 -02:00
StrikerX3
472ab723b3
Don't register Host Bridge PCI BAR
...
This was hiding early initialization of NV2A registers
2018-12-05 16:43:35 -02:00
StrikerX3
7f993cf520
Reduce log verbosity
2018-12-05 16:42:53 -02:00
StrikerX3
213c0bac3c
ATA PIO data buffer always has 512 bytes
2018-12-05 16:32:53 -02:00
StrikerX3
355e5ae3ba
Added remaining BMIDE registers and implemented basic read/write functionality for them
2018-12-05 16:26:11 -02:00
StrikerX3
bf4dbe7375
Inline PCI vendor, device and revision IDs
...
Stub Bus Master IDE controller emulator
2018-12-05 15:43:44 -02:00
Ivan Roberto de Oliveira
1eb2565e54
Update README.md
2018-12-05 14:27:10 -02:00
Ivan Roberto de Oliveira
e1158e4997
Update README.md
2018-12-05 14:26:05 -02:00
StrikerX3
dd032ea0e3
Branding changes
2018-12-05 14:09:26 -02:00
StrikerX3
4db9914dca
Fix KVM I/O handling
2018-12-04 20:15:56 -08:00
StrikerX3
f9e35303ff
Initialize whatever NV2A fields GCC allows
2018-12-04 20:07:11 -08:00
StrikerX3
d345a882c6
Try initializing NV2A structs again...
2018-12-04 19:56:10 -08:00
StrikerX3
42f6d1a6d7
Remove invalid #pragma pop
2018-12-05 01:53:08 -02:00
StrikerX3
77ce795e21
Fix Linux build
2018-12-04 19:51:28 -08:00
StrikerX3
d295014d8d
Seems that the hard drive doesn't need to be locked
...
Telling the kernel that security is supported and enabled seems to be enough
2018-12-04 22:12:24 -02:00
StrikerX3
8f0aee3f41
Prepare to implement Security Unlock ATA command
2018-12-04 22:11:04 -02:00
StrikerX3
705d9f630b
Initialize dummy hard drive with security lock enabled
...
Rename ATA driver files to reduce verbosity
2018-12-04 21:53:43 -02:00
StrikerX3
a66da84ad0
Fix breakpoint handling
...
Also added some disabled code for dumping the kernel and setting a hardware breakpoint
2018-12-04 21:35:22 -02:00
StrikerX3
7e39ebe360
Set error status when processing unknown ATA commands
2018-12-04 21:33:55 -02:00
StrikerX3
5c2ac93155
Fix string I/O handling with HAXM
...
String I/O instructions are INS/INSB/INSW/INSD and OUTS/OUTSB/OUTSW/OUTSD when prefixed with REP.
We were not filling the IO tunnel buffer properly. The INSD instruction is used to read the response of ATA commands.
2018-12-04 21:31:33 -02:00
StrikerX3
f8727b10ed
Clear DRQ signal after reading a full block using the Data register
...
Stop responding to commands while BSY is asserted
2018-12-04 17:45:56 -02:00
StrikerX3
0d427ec030
Provide the means for a device to read a device driver's read buffer
2018-12-04 17:15:50 -02:00
StrikerX3
4ef6ba99bd
Declared Identify Device data structure
...
Filling it with reasonable data for a hard drive in the dumy driver
2018-12-04 16:50:56 -02:00
StrikerX3
836c30a8b2
Initial implementation of ATA device drivers
...
ATA device drivers act as virtual devices attached to ATA channels. They typically interact with real hardware by accessing a hard drive image, an XISO, a host DVD drive or similar methods.
Implemented two ATA device drivers:
- Null: absence of a device (cable disconnected)
- Dummy: a fake, empty hard drive (still incomplete; mostly to aid development)
Added ATA device drivers to the Xbox class. They need to be made configurable later.
Implemented the command processing part of the Identify Device command. Still need to implement the data buffer and reading from the buffer.
Allow 8-bit and 32-bit reads from and writes to the Data register
Reads from various command registers will now return 0 if there is no device attached to the selected port. Only the Status register is valid in this case. Writes go through but are largely ignored.
2018-12-04 14:33:30 -02:00
StrikerX3
bf4637f268
Introduced ATADevice and moved Set Features to it
...
Moved ATA registers into a separate struct, embedded into ATAChannel and referenced by ATADevices
Stubbed Identify Device command
Converted ATAChannel to a class and improved initialization of ATA classes
2018-12-03 23:38:59 -02:00
StrikerX3
9e457bfe57
Implement our first command!
2018-12-03 22:34:18 -02:00
StrikerX3
6de45364a7
ATA controller registers are not part of devices
2018-12-03 21:54:10 -02:00
StrikerX3
0f074a7070
Stub our first ATA command
2018-12-03 21:41:59 -02:00
StrikerX3
60d3db0cde
Devices that use IRQ should use the IRQHandler base type instead of the i8259
2018-12-03 20:37:19 -02:00
StrikerX3
2b59883eae
Some fixes
2018-12-03 20:04:40 -02:00
StrikerX3
7d51dd13c1
Refine ATA channel methods
...
Moved files around
2018-12-03 19:56:13 -02:00
StrikerX3
fa769c1212
Restructure ATA implementation
2018-12-03 19:33:57 -02:00
StrikerX3
7be0a89e32
IRQ assertion level is better represented by a bool
...
Improve documentation on ATA emulation
2018-12-03 18:55:56 -02:00
StrikerX3
685c764f2e
Fix compilation error
...
Namespaces are annoying...
2018-12-03 17:14:22 -02:00
StrikerX3
db01ec0263
Begin structuring the ATA emulator
2018-12-03 16:27:17 -02:00
StrikerX3
9d0c3c8518
Stub ATA device
2018-12-03 12:56:41 -02:00
StrikerX3
26d6f9d529
Write 0 on unimplemented reads
2018-12-03 12:56:33 -02:00