* As Marcus correctly pointed out indirectly, the bitmask for

ide_mask_sector_count_48, and ide_mask_LBA_*_48 were all wrong.
* Using the high byte in LBA48 mode should work now, too (wasn't written
  to the IDE controller before, but that shouldn't have been a problem yet with
  today's disks).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28340 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-10-26 22:14:20 +00:00
parent 1998abd8ea
commit d5b30a2548
+10 -17
View File
@@ -1,20 +1,15 @@
/*
** Copyright 2002/03, Thomas Kurschel. All rights reserved.
** Distributed under the terms of the OpenBeOS License.
*/
/*
Part of Open IDE bus manager
IDE bus manager interface
*/
* Copyright 2002/03, Thomas Kurschel. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef __IDE_TYPES_H__
#define __IDE_TYPES_H__
#include <iovec.h>
#include <lendian_bitfield.h>
// IDE task file.
// contains the command block interpreted under different conditions with
// first byte being first command register, second byte second command register
@@ -239,14 +234,12 @@ enum {
// for 48 bits, the following flags tell which registers to load twice
ide_mask_features_48 = 0x80 | ide_mask_features,
ide_mask_sector_count_48 = 0x80 | ide_mask_sector_count,
ide_mask_LBA_low_48 = 0x100 | ide_mask_LBA_low,
ide_mask_LBA_mid_48 = 0x200 | ide_mask_LBA_mid,
ide_mask_LBA_high_48 = 0x400 | ide_mask_LBA_high,
ide_mask_sector_count_48 = 0x100 | ide_mask_sector_count,
ide_mask_LBA_low_48 = 0x200 | ide_mask_LBA_low,
ide_mask_LBA_mid_48 = 0x400 | ide_mask_LBA_mid,
ide_mask_LBA_high_48 = 0x800 | ide_mask_LBA_high,
ide_mask_HOB = 0x780
//ide_mask_all = 0x7f
ide_mask_HOB = 0xf80
}; // ide_reg_mask
// status register