#
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 ...
|
#
25a7b01d |
| 05-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merge branch 'master' into package-management
Additional changes: * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib, needed by packagefs. * BuildFeatures: Add a build feature
Merge branch 'master' into package-management
Additional changes: * Add src/system/kernel/lib/zlib, which builds a kernel version of zlib, needed by packagefs. * BuildFeatures: Add a build feature "gcc2" to allow for easier checks. * Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter is not needed and prevents building for the build platform. * zlib/zutil.h: Fix gcc 2 build. We really should use the external package instead.
Conflicts: .gitignore build/jam/BuildSetup build/jam/FileRules build/jam/FloppyBootImage build/jam/HaikuImage build/jam/ImageRules build/jam/KernelRules build/jam/NetBootArchive build/jam/OptionalBuildFeatures build/jam/OptionalLibPackages build/jam/OptionalPackageDependencies build/jam/OptionalPackages build/scripts/build_haiku_image configure data/bin/installoptionalpackage data/system/boot/Bootscript headers/os/app/Message.h headers/os/package/PackageInfo.h headers/os/package/PackageInfoAttributes.h headers/os/package/PackageInfoSet.h headers/os/package/PackageRoster.h headers/os/package/PackageVersion.h headers/os/package/hpkg/PackageInfoAttributeValue.h headers/os/storage/FindDirectory.h headers/os/storage/Node.h headers/os/support/StringList.h headers/private/system/directories.h src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp src/add-ons/kernel/file_systems/packagefs/Jamfile src/add-ons/kernel/file_systems/packagefs/Package.cpp src/add-ons/kernel/file_systems/packagefs/Package.h src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp src/add-ons/kernel/file_systems/packagefs/PackageDomain.h src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp src/add-ons/kernel/file_systems/packagefs/PackageNode.h src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp src/add-ons/kernel/file_systems/packagefs/Version.cpp src/add-ons/kernel/file_systems/packagefs/Version.h src/add-ons/kernel/file_systems/packagefs/Volume.cpp src/add-ons/kernel/file_systems/packagefs/Volume.h src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c src/apps/deskbar/BarApp.cpp src/apps/deskbar/BarMenuBar.cpp src/apps/deskbar/BarMenuBar.h src/apps/deskbar/BarView.cpp src/apps/deskbar/BarView.h src/apps/deskbar/BarWindow.cpp src/apps/deskbar/BarWindow.h src/apps/deskbar/DeskbarMenu.cpp src/apps/deskbar/DeskbarMenu.h src/apps/deskbar/DeskbarUtils.cpp src/apps/deskbar/DeskbarUtils.h src/apps/deskbar/ExpandoMenuBar.cpp src/apps/deskbar/ExpandoMenuBar.h src/apps/deskbar/TeamMenu.cpp src/apps/processcontroller/ProcessController.cpp src/apps/remotedesktop/RemoteDesktop.cpp src/bin/bash/config-top.h src/bin/finddir.c src/bin/package/Jamfile src/bin/package/command_add.cpp src/bin/package/command_create.cpp src/bin/package/command_list.cpp src/bin/package_repo/command_list.cpp src/bin/pkgman/command_refresh.cpp src/build/libbe/support/Jamfile src/build/libpackage/Jamfile src/build/libroot/Jamfile src/build/libroot/fs.cpp src/build/libroot/remapped_functions.h src/kits/locale/MutableLocaleRoster.cpp src/kits/opengl/GLRendererRoster.cpp src/kits/package/PackageInfo.cpp src/kits/package/PackageInfoSet.cpp src/kits/package/PackageRoster.cpp src/kits/package/PackageVersion.cpp src/kits/package/RepositoryCache.cpp src/kits/package/hpkg/PackageWriterImpl.cpp src/kits/package/hpkg/ReaderImplBase.cpp src/kits/package/hpkg/WriterImplBase.cpp src/kits/print/PrintTransport.cpp src/kits/print/Printer.cpp src/kits/screensaver/ScreenSaverRunner.cpp src/kits/support/StringList.cpp src/kits/tracker/ContainerWindow.cpp src/kits/tracker/DeskWindow.cpp src/kits/tracker/PoseView.cpp src/libs/print/libprint/Transport.cpp src/preferences/printers/AddPrinterDialog.cpp src/preferences/screensaver/ScreenSaverWindow.cpp src/servers/debug/DebugServer.cpp src/servers/input/AddOnManager.cpp src/servers/media_addon/MediaAddonServer.cpp src/system/boot/Jamfile src/system/boot/loader/Jamfile src/system/boot/loader/loader.cpp src/system/boot/loader/vfs.cpp src/system/kernel/fs/vfs.cpp src/system/kernel/fs/vfs_boot.cpp src/system/libroot/os/find_directory.cpp src/system/runtime_loader/runtime_loader.cpp src/tools/package/Jamfile
show more ...
|
#
34a12c76 |
| 02-Feb-2013 |
François Revol <revol@free.fr> |
Merge branch 'master' into sam460ex
|
#
5ec5667d |
| 28-Jan-2013 |
Axel Dörfler <axeld@pinc-software.de> |
ata/ahci: Move some ATA functionality into the ATAInfoBlock.
* The AHCI driver was actually ignoring sector size information, and always set the size to 512. * Now both, the AHCI driver, and the A
ata/ahci: Move some ATA functionality into the ATAInfoBlock.
* The AHCI driver was actually ignoring sector size information, and always set the size to 512. * Now both, the AHCI driver, and the ATA bus manager, use the same method of retrieving the sector count, and size.
show more ...
|
#
77d95e1d |
| 18-Nov-2012 |
François Revol <revol@free.fr> |
Merge branch 'master' into sam460ex
Conflicts: src/system/boot/platform/u-boot/arch/ppc/Jamfile
|
#
30afb18c |
| 18-Nov-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Merge branch 'x86_64'
|
#
0063d2ba |
| 20-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Various 64-bit fixes to SCSI and ATA bus managers/drivers.
Mostly compilation fixes, as well as a few 64-bit safety fixes. I've briefly looked through everything for any obvious issues and fixed the
Various 64-bit fixes to SCSI and ATA bus managers/drivers.
Mostly compilation fixes, as well as a few 64-bit safety fixes. I've briefly looked through everything for any obvious issues and fixed the ones I've found, and it seems like they're working properly, though there could be some more well hidden ones that I've missed.
show more ...
|
#
35e8baa6 |
| 24-May-2011 |
Michael Lotz <mmlr@mlotz.ch> |
Fix typo in error output and a little automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41715 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
51d76425 |
| 13-Jan-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Added a new B_GET_DEVICE_NAME ioctl - this should be implemented by all drivers in the future, such that NetworkStatus and similar software can show nice names for the devices. The device manag
* Added a new B_GET_DEVICE_NAME ioctl - this should be implemented by all drivers in the future, such that NetworkStatus and similar software can show nice names for the devices. The device manager should implement this and return the B_DEVICE_PRETTY_NAME of the device (and in turn, new style drivers should actually set this). * Implemented handling of this ioctl in the scsi_periph to return the vendor/ product strings. * Implemented this in the ATA bus manager to return the model from the info block. * KDiskDevice now fills in the partition_data::name if the B_GET_DEVICE_NAME succeeds. * As a side effect, at least BootManager now shows the drive name; maybe DriveSetup does as well for the raw device.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40231 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
1aa32c3d |
| 05-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
if total sectors is greater than 0xffffffff, use this value for ReadCapacity().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39313 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0ac16c5b |
| 02-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
big_endian conversion: this should be more correct
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39279 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f0588869 |
| 02-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
* added definitions for SCSI_OP_VERIFY_* op commands * added support READ_12/16 and WRITE_12/16 in ata and scsi_periph, this enables read/write on block offsets greater than 2TB
git-svn-id: file://
* added definitions for SCSI_OP_VERIFY_* op commands * added support READ_12/16 and WRITE_12/16 in ata and scsi_periph, this enables read/write on block offsets greater than 2TB
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39278 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
f10a55a6 |
| 01-Nov-2010 |
Jérôme Duval <korli@users.berlios.de> |
* ata: added ATADevice::ReadCapacity16() * ata: don't fail if lba_sector_count is null and lba48_sector_count is not * scsi_periph: if ReadCapacity() returns 0xffffffff, use ReadCapacity16() instead
* ata: added ATADevice::ReadCapacity16() * ata: don't fail if lba_sector_count is null and lba48_sector_count is not * scsi_periph: if ReadCapacity() returns 0xffffffff, use ReadCapacity16() instead * scsi_disk: use a different computation in the struct geometry computation for bigger disks Tested successfully with a virtual 10TB hard drive.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39252 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
995b475c |
| 06-Sep-2010 |
Jérôme Duval <korli@users.berlios.de> |
Patch from dachaac (bug #4813): Fix ATA vendor and product strings according to ATA string conventions. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38547 a95241bf-73f2-0310-859d-f6b
Patch from dachaac (bug #4813): Fix ATA vendor and product strings according to ATA string conventions. Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38547 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
63400da8 |
| 22-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Got rid of the ATA_BLOCK_SIZE define. * The logical and physical block sizes are now retrieved from the info block, though only the logical one is actually used (where ATA_BLOCK_SIZE was used b
* Got rid of the ATA_BLOCK_SIZE define. * The logical and physical block sizes are now retrieved from the info block, though only the logical one is actually used (where ATA_BLOCK_SIZE was used before). * Also added retrieving the offset of the first logical block inside the first physical one. * All this stupidity just for Windows XP, it's really sad. * Added "const" to some methods, removed some superfluous ';'.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36416 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
b5eb0368 |
| 10-Sep-2009 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33043 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a4794591 |
| 10-Sep-2009 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Write device identification into syslog.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33042 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
398211a6 |
| 27-Aug-2009 |
Marcus Overhagen <marcusoverhagen@gmail.com> |
Modified initial ata device detection. Works for me. Please test. If you get an "error waiting for interrupt" during boot, try to disabled IDE DMA.
git-svn-id: file:///srv/svn/repos/haiku/haiku/tru
Modified initial ata device detection. Works for me. Please test. If you get an "error waiting for interrupt" during boot, try to disabled IDE DMA.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32769 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
8c8c904a |
| 24-Apr-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Fixed wrong indentation, and number of blank lines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30367 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ca68245e |
| 19-Apr-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Wrote a new infoblock header according to ATA/ATAPI-6 that is cleaner and more verbose than the old one. Removed the latter. * Put some of the hardcoded values into defines for more clearity. * R
* Wrote a new infoblock header according to ATA/ATAPI-6 that is cleaner and more verbose than the old one. Removed the latter. * Put some of the hardcoded values into defines for more clearity. * Report more detailed device type for ATAPI devices and report removable media based on the bit in the infoblock as well. * Rename the channel ID attributes back to ide to let the hack in scsi_periph work that then publishes the devices under the disk/ata[pi] tree. * Also disable command queueing for ATAPI devices. * Remove remnants of CHS support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30270 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
5ea617fa |
| 19-Apr-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Only wait for data request in the PIO case as before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30256 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b6b82488 |
| 18-Apr-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Apply block count maximum according to device capability. If the device supports LBA48 we can allow a maximum block count of 65535 as we have a 16bit sector count field available.
git-svn-id: file:
Apply block count maximum according to device capability. If the device supports LBA48 we can allow a maximum block count of 65535 as we have a 16bit sector count field available.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30254 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
827f849a |
| 18-Apr-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Reworked device detection, we'll see how well this works... * Reworked some of the transfer handling after reading the specs. * Ensure that the device selection bit is set correctly for all command
* Reworked device detection, we'll see how well this works... * Reworked some of the transfer handling after reading the specs. * Ensure that the device selection bit is set correctly for all commands. * Generally disable interrupts and enable them only when expecting a DMA one. * Renamed disk failure to device fault according to specs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30248 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
33d80ba2 |
| 10-Apr-2009 |
Michael Lotz <mmlr@mlotz.ch> |
* Rework ATAPI handling, removing all PIO interrupts. As Marcus pointed out the complication is not really worth it and it would in any case be unreliable in the shared interrupt case (even thoug
* Rework ATAPI handling, removing all PIO interrupts. As Marcus pointed out the complication is not really worth it and it would in any case be unreliable in the shared interrupt case (even though you could always check the poll condition in the interrupt handler). * Probably broke ATAPI with those changes though. * Change blocksLeft to bytesLeft to allow using it for arbitrary ATAPI requests. * Check some more error conditions and actually let those states get through to the SCSI layer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30109 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
da4c9900 |
| 10-Apr-2009 |
Michael Lotz <mmlr@mlotz.ch> |
Move the lock into the request.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30100 a95241bf-73f2-0310-859d-f6bbb57e9c96
|