-
-
Notifications
You must be signed in to change notification settings - Fork 2k
[ATAPI] Add ATA storage driver #6577
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Ok, reverted the changes on the drivers. It's now possible to remove them in a separate PR. |
drivers/storage/ide/atapi/data.c
Outdated
| const CHAR* const AtapBrokenInquiryDrive[] = | ||
| { | ||
| "THOMSON-DVD", | ||
| "PHILIPS XBOX DVD DRIVE", | ||
| "PHILIPS J5 3235C", | ||
| "SAMSUNG DVD-ROM SDG-605B" | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| const CHAR* const AtapBrokenInquiryDrive[] = | |
| { | |
| "THOMSON-DVD", | |
| "PHILIPS XBOX DVD DRIVE", | |
| "PHILIPS J5 3235C", | |
| "SAMSUNG DVD-ROM SDG-605B" | |
| }; | |
| const CHAR* const AtapBrokenInquiryDrive[] = | |
| { | |
| "THOMSON-DVD", | |
| "PHILIPS XBOX DVD DRIVE", | |
| "PHILIPS J5 3235C", | |
| "SAMSUNG DVD-ROM SDG-605B", | |
| /* TODO: Xbox 360 drives are also affected. */ | |
| }; |
Technically it's possible to connect Xbox DVD drives to an ordinary PC.
Regarding X360 drives, it was mentioned somewhere in XboxDev.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I failed to find anything useful in the wiki. Can you list the X360 drives here please?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It can be postponed then, since I have no information for these.
cc4cbbc to
231250c
Compare
3c08a4d to
0f0e260
Compare
Take a look at the AMD Simnow emulator. You'll be able to reproduce this there I'm pretty sure. but i can check for you if you'd like first :) |
x64 ROS (this branch) fails to boot on a SB700 machine due to bugs in the APIC HAL. SimNow.txt
I was able to reproduce this timeout issue with VMware. Unfortunately it seems that uniata shows the same behavior in VMware. |
|
@DarkFire01 Can you please try this debug patch and grab a log? 77c7c0e |
here: |
335539a to
892f599
Compare
Thanks, I've fixed a bug and disabled the PMP support code for this chip. Hope that helps. 892f599 |
|
I'm running into a assert when testing this pr's artifact livecd with Bochs. |
Thanks! Here's the log, sadly still drives aren't detected |
I'm afraid I've no idea how to debug this case any further, the log doesn't give me any further clues. It detects attaches devices correctly, but the IDENTIFY DEVICE command fails after 10 seconds due to timeout. I suspect the issue is coming from somewhere besides the driver code. What kind of mobo is it? I thought it would be helpful to acquire one.
These are harmless asserts, so just ignore for now. |
to be honest this is happening on every single one of my AMD systems, all the way from phoenom to Ryzen. so I imagine picking up any AMD system will work, but can give you a list of motherboard I use in my testing suite if you’d like that all did this. Appending this list as i go through them today off and on: laptops: |
Based on the MinGW header CORE-17256
d937e74 to
01b667e
Compare
CORE-17256
CORE-17256 CORE-17191 CORE-17716 CORE-17977 CORE-13976 CORE-16216
Reattempting this PR, the machines all listed above work and install now. |
| @@ -0,0 +1,68 @@ | |||
| /* | |||
| * PROJECT: ReactOS ATA Port Driver | |||
| * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would you be willing to license this driver under MIT instead?
| #endif | ||
|
|
||
| /* | ||
| * This attribute should be applied to a function that |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"to a function that is called from pageable code" ?
| #define DECLSPEC_NOINLINE_FROM_PAGED DECLSPEC_NOINLINE | ||
|
|
||
| /* | ||
| * This attribute should be applied to a function that |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(same question, but for non-pageable)
| AdapterControlContext->MapRegisterBase = MapRegisterBase; | ||
|
|
||
| TempElements = ExAllocatePoolZero(NonPagedPool, sizeof(*TempElements) * MAX_SG_ELEMENTS, TAG_DMA); | ||
| ASSERT(TempElements); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you safely fail there instead?
| include_directories( | ||
| ${REACTOS_SOURCE_DIR}/sdk/lib/drivers/sptilib) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be adding
target_include_directories(sptilib INTERFACE ${REACTOS_SOURCE_DIR}/sdk/lib/drivers/sptilib)
in the sdk/lib/drivers/sptilib/CMakeLists.txt file (after the add_library command).


Purpose
This patch introduces a new PnP-aware ATA storage stack for PATA and AHCI devices. The patch is WIP, posted for comments.
JIRA issue: CORE-17256