#
77463640 |
| 05-Nov-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
SCSI: Use an object_cache for the CCB pool.
Same as for the scatter/gather pool. This also changes CCBs to use condition variables instead of semaphores for completion, which means they're now C++-o
SCSI: Use an object_cache for the CCB pool.
Same as for the scatter/gather pool. This also changes CCBs to use condition variables instead of semaphores for completion, which means they're now C++-only. A few C files still include <SCSI.h>, but none use CCBs directly, so this works out fine.
A quick check with a compile benchmark didn't show a performance regression.
show more ...
|
#
21a284b6 |
| 21-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
AHCI: Don't cast to addr_t when fetching low/high 32 bits.
Otherwise we'll lose the high 32 bits on 32-bit systems.
|
#
b4ccd212 |
| 21-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
AHCI: Use count_set_bits from BitUtils.
No behavioral change intended.
|
#
3b91d73b |
| 17-Dec-2022 |
X512 <danger_mail@list.ru> |
bus & drivers: drop PCI_x86
Change-Id: I494deaf24a4793a5e0fe9fa46ecdce32f65e616a Reviewed-on: https://review.haiku-os.org/c/haiku/+/6226 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-b
bus & drivers: drop PCI_x86
Change-Id: I494deaf24a4793a5e0fe9fa46ecdce32f65e616a Reviewed-on: https://review.haiku-os.org/c/haiku/+/6226 Reviewed-by: waddlesplash <waddlesplash@gmail.com> Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
show more ...
|
#
8b1d35bd |
| 03-Jul-2021 |
David Sebek <dasebek@gmail.com> |
Improve SCSI and SATA trim support
Fixes: * scsi: Fix a bug that caused the device capacity to be set to an undefined value for some large SCSI devices when READ CAPACITY (16) was used * ahci: F
Improve SCSI and SATA trim support
Fixes: * scsi: Fix a bug that caused the device capacity to be set to an undefined value for some large SCSI devices when READ CAPACITY (16) was used * ahci: Fix VPD page reporting so that it does not return undefined values * ahci: Set the write bit to true when sending a DATA SET MANAGEMENT (trim) command to a device. The command would otherwise fail and time out on some devices.
Improvements: * scsi: Extend the READ CAPACITY (16) support to also include logical block provisioning information * scsi: Prefer READ CAPACITY (16) over READ CAPACITY (10) on devices that are expected to support this command * scsi, ahci: Enable trim on SCSI and SATA devices that are expected to support trim and which correctly report trim support * ahci: Redo the implementation of the SCSI UNMAP command * scsi: Redo UNMAP-related code * scsi: Add support for UNMAP via WRITE SAME (10) and WRITE SAME (16) commands * When copying trim ranges between different data types, make sure that the values don't change (detect overflows) * Report the number of trimmed blocks even if the trim operation fails
Change-Id: Ie5fc993bbbc19546b4308138ba10184bf7b9986a Reviewed-on: https://review.haiku-os.org/c/haiku/+/4157 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
show more ...
|
#
208a3535 |
| 22-Jun-2021 |
X512 <danger_mail@list.ru> |
ahci: remove packed attribute from register structure
It cause per-byte access instead of 32 bit on GCC/riscv64 that breaks operation.
All fields are 32 bit so alignment is already fine and packing
ahci: remove packed attribute from register structure
It cause per-byte access instead of 32 bit on GCC/riscv64 that breaks operation.
All fields are 32 bit so alignment is already fine and packing is not needed.
Change-Id: Ie96eac6615c9326e84608be1c667bc5d3600c508 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4117 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
show more ...
|
#
2f6a9c68 |
| 14-Oct-2015 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
ahci: Fix delays with large numbers of empty ports
* Properly flag missing devices * Do away with shifts and define ssts and sctl masks * Tested working on 6 different systems with a combination o
ahci: Fix delays with large numbers of empty ports
* Properly flag missing devices * Do away with shifts and define ssts and sctl masks * Tested working on 6 different systems with a combination of drive configurations. * Empty media on AHCI devices still cause port change storms. (the issue that was attempted fixed in 5584c22fdd)
show more ...
|
#
a1ed294f |
| 06-Oct-2015 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
AHCI: Rework port reset and control
* Move to more standardized functions matching AHCI spec * Don't perform unnecessary double port resets * Begin implementing a software reset to try first per spe
AHCI: Rework port reset and control
* Move to more standardized functions matching AHCI spec * Don't perform unnecessary double port resets * Begin implementing a software reset to try first per spec. Software reset needs more work, falls through to port reset for the moment which is stable. * Don't duplicate ATA defines, use what we already provide. * Tested working on VirtualBox 1-16 AHCI ports, Intel C200, and AMD FCH.
show more ...
|
#
cccf804d |
| 30-Aug-2015 |
Michael Lotz <mmlr@mlotz.ch> |
ahci: Replace use of bit field with shifts and masks.
It's a 32 bit register which needs properly aligned 32 bit writes. Using a bit field does not guarantee that, so replace it with shifts and mask
ahci: Replace use of bit field with shifts and masks.
It's a 32 bit register which needs properly aligned 32 bit writes. Using a bit field does not guarantee that, so replace it with shifts and masks. Should fix #12338.
show more ...
|
#
d316ccc7 |
| 30-Aug-2015 |
Michael Lotz <mmlr@mlotz.ch> |
ahci: Whitespace and line length cleanup only.
|
#
df5aeb6d |
| 28-Aug-2015 |
Axel Dörfler <axeld@pinc-software.de> |
AHCI: fixed constant mixup, minor cleanup.
* TRANSITION_... was incorrectly changed from the original patch. * Divided it into two constants, and also prefixed the new constants with the register
AHCI: fixed constant mixup, minor cleanup.
* TRANSITION_... was incorrectly changed from the original patch. * Divided it into two constants, and also prefixed the new constants with the register fields they are valid for. * Fixed incorrect usage of |= and removed the corresponding TODO comments. * Moved some reoccurring code into their own methods. * Added check for the ST bit in the command register for the interrupt hard reset, too. * This closes ticket #12295, thanks Anarchos!
show more ...
|
#
5584c22f |
| 08-Aug-2015 |
Sylvian Kerjean <sylvain_kerjean@hotmail.com> |
AHCI: Fix boot failures due to "Port Connect Change" IRQ storm.
Signed-off-by: Axel Dörfler <axeld@pinc-software.de>
|
#
776dbb03 |
| 15-Mar-2015 |
Jérôme Duval <jerome.duval@gmail.com> |
ahci: added some definitions from the specification v1.2+
* print extended capabilities.
|
#
97f865f7 |
| 03-Dec-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
Avoid undefined behavior by using unsigned int instead of int.
* 1 << 31, 2 << 30, 3 << 30 replaced by 1U << 31, 2U << 30 or 3U << 30.
|
#
c14bca29 |
| 13-Sep-2013 |
François Revol <revol@free.fr> |
Merge branch 'master' into sam460ex
|
#
cf70d345 |
| 12-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge remote-tracking branch 'haiku/master' into package-management
This reverts 8f7f28a7c3db28711920ad5d15df401fae90bcf1 (OpenGL: Upgrade to Mesa 9.2).
Conflicts: build/jam/BuildFeatures build/j
Merge remote-tracking branch 'haiku/master' into package-management
This reverts 8f7f28a7c3db28711920ad5d15df401fae90bcf1 (OpenGL: Upgrade to Mesa 9.2).
Conflicts: build/jam/BuildFeatures build/jam/HaikuImage build/jam/OptionalPackages build/scripts/build_cross_tools_gcc4 src/add-ons/opengl/swpipe/Jamfile src/apps/diskusage/Jamfile src/kits/tracker/ContainerWindow.cpp src/kits/tracker/DeskWindow.cpp src/kits/tracker/Jamfile
show more ...
|
#
c01fadca |
| 30-Jul-2013 |
Jerome Duval <jerome.duval@gmail.com> |
AHCI: add MSI support.
|
#
22e22417 |
| 02-Jul-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Fixed a race condition where the interrupt for a command happened before the thread issuing the command called acquire_sem_etc() on the semaphore that the interrupt handler would otherwise rele
* Fixed a race condition where the interrupt for a command happened before the thread issuing the command called acquire_sem_etc() on the semaphore that the interrupt handler would otherwise release. The semaphore is now released unconditionally, but to prevent the race condition that the B_RELEASE_IF_WAITING_ONLY was trying to avoid, it is released with the spinlock held. * The error interrupt handler did not reset the fCommandsActive flag, but it seemed to us like it should do that. * WaitForTransfer now also acquires the spinlock to reset fCommandsActive, which may be unnecessary but does not harm either. * Cleanup of some long lines, sorry for mixing that with the actual fix.
Fixes bug #2359 (long pauses when accessing the disk).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26223 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
1a4dcbd8 |
| 29-May-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* gPCI was never set anymore after my changes. I replaced it now by a fPCI member in AHCIController, since, at least in theory, every PCI device could come with its own module. * Fixed exported m
* gPCI was never set anymore after my changes. I replaced it now by a fPCI member in AHCIController, since, at least in theory, every PCI device could come with its own module. * Fixed exported module names to indicate compliance with the new device manager. * Apparently, GCC4 doesn't like mixing C++/C linkage even for variables anymore, though it really shouldn't care about that.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25699 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
d53ddcce |
| 24-May-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Provide better sense data. Turn off auto-sense for ATAPI, as we can't report anything.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25653 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c3342cf8 |
| 24-May-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
added simple error handling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25647 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9cb5c9bf |
| 18-May-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Fix the HI32 macro. This fixes bug #2021.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25557 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b830be90 |
| 05-Jan-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Marked some bits as RWC and RW1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23256 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e50610ed |
| 05-Jan-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
added defines for LBA limitations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23248 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0cc1690a |
| 04-Jan-2008 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Added a comment describing the command FIS layout, because AHCI, SATA and ATA/ATAPI standards use inconsitent terminology.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23247 a95241bf-73f2-03
Added a comment describing the command FIS layout, because AHCI, SATA and ATA/ATAPI standards use inconsitent terminology.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23247 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|