StrikerX3
d913d6695f
Add several definitions for ATAPI / SCSI data structures and constants
2018-12-08 13:55:03 -02:00
StrikerX3
1218931776
Flesh out the Packet Command protocol
2018-12-07 21:30:55 -02:00
Ivan Roberto de Oliveira
1b3eab6227
Update README.md
2018-12-07 16:50:19 -02:00
StrikerX3
00bbebde21
Build Packet protocol skeleton and implement the basics of the Packet command
2018-12-07 16:47:28 -02:00
StrikerX3
f3c1a44acf
Fix typo
2018-12-07 16:45:32 -02:00
StrikerX3
cacd467043
Hide some log messages for now
2018-12-07 14:35:27 -02:00
Ivan Roberto de Oliveira
564e86d52b
Update README.md
2018-12-07 14:15:33 -02:00
StrikerX3
15bf901bd2
DMA read/write should consider total number of bytes, not sectors
...
With this, viXen can now load the dashboard!
2018-12-07 14:03:01 -02:00
StrikerX3
2c25197423
Iron out the kinks, part 4
2018-12-07 13:14:07 -02:00
StrikerX3
ab985d10e9
Iron out the kinks, part 3
2018-12-07 12:45:29 -02:00
StrikerX3
9c10cd1188
Iron out the kinks, part 2
2018-12-07 11:36:38 -02:00
StrikerX3
79ed453fc6
Iron out the kinks, part 1
2018-12-07 11:25:32 -02:00
StrikerX3
a88dea4b4a
Convert DMA protocol commands to the new structure
...
Document the IATACommand interface more clearly
Make SetPIOTransferMode and SetDMATransferMode actually change the values returned by Identify Device
Temporarily disable writes to hard disk image; need to ensure it's not going to wreck the image
2018-12-07 10:54:39 -02:00
StrikerX3
ed468a9c6d
WIP: Refactor ATA commands into classes
...
Implement protocols as base classes on top of a common interface so that command processing and usage is uniform. Commands are much easier to implement on this platform, and most of the complicated state management in ATADevice is eliminated.
Next step is to move the DMA operations out of ATADevice and have ATAChannel delegate them to the current command
2018-12-07 00:53:45 -02:00
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