Messages in this thread | | | Subject | 48-bit Drives Incorrectly reporting 255 Heads? | Date | Wed, 20 Aug 2003 13:31:08 -0600 | From | "John Riggs" <> |
| |
With the 2.4.20 kernel, I have a 40GB disk with 240 heads, with 48-bit mode enabled. The Linux ide driver automatically declares that anything with 48-bit mode enabled has 255 heads. This is a problem, as I am writing a utility to fix up a Windows PBR, and the PBR relies on the head count as counted by the BIOS. The Linux code in question is in ide-disk.c:
if (id->cfs_enable_2 & 0x0400) { . drive->head = drive->bios_head = 255; . }
What I would like to do is change the above to:
if (id->cfs_enable_2 & 0x0400) { . drive->head = 255; . }
Thereby not changing the bios head count. My initial tests seem to have worked okay, with the correct geometry getting reported. Can anybody point out to me why this will break something else? Two more specific questions are: 1) Will this break drives > 137 GB? 2) Why would the head count be set to 255 in the first place?
Thank you, John Riggs - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |