Thinkpad, Thinkpad, Thinkpad

Alan Cox alan at redhat.com
Wed Mar 29 10:14:59 UTC 2006


On Tue, Mar 28, 2006 at 05:20:40PM -0500, Peter Jones wrote:
> For all thinkpads that have this turned on it's for BIOS backup/restore
> features, a and other related features that the user (at least
> theoretically) paid for and may still want.  Right now we're trashing
> them.
> 
> I think ThinkPads make up more than 1% of cases, but I've got no real
> data to prove it with.

This is one of the problems. On a thinkpad the HPA is used to hide stuff,
and on many boxes its used in a way we want to undo. In theory its just a case
of installers doing partitioning right and maybe snooping the DMI tables to
see if its a thinkpad... in theory 8)

> > Looks basically sane. You have to run the ACPI taskfiles from the BIOS first
> > however or you are out of spec and anything can happen (although fortunately
> > it ususally doesnt)
> 
> Ugh.  Ok, I've got some reading to do before I get this in.  Thanks for
> the info.

The ACPI taskfile stuff is cooking already and should be mainstream soon. I
would suggest not worrying about it for the moment. You will need to sort the
HPA out after the ACPI stuff runs once it is in as on the thinkpad it also
edits the HPA settings when those run

> > Problems in the patch aside from that
> > 
> > #1:	HPA support and active state are in the identify data so you should
> > 	consult that (which is boot time cached).
> 
> drive->capacity64 comes from one of id->lba_capacity_2,
> id->lba_capacity, or CHS .  Is there something else you mean I should be
> consulting the identify data for?

Word 85 bit 10, HPA is enabled
Word 82 bit 10, HPA is supported

if I remember the bit rightly. 

> Well, currently that's not a problem -- in the second patch I have the
> set_capacity() calls.  But in this patch it's not needed, because we
> always disable HPA no matter what before the gendisk is initialized at
> all, so the block layer has never known about the smaller size.

Thats fine then

> disable it entirely for IDE, which means if we ever want to do anything
> other than just disable it, we need control to be somewhere that can
> examine the system to see what we've done.  Sadly, that probably means
> userland.

I've not dug into the thinkpad far enough but I would guess that something 
like

	read partition table
	work out last sector used
	if ( beyond hpa)
		disable hpa
	else
		honour hpa

will give the right answer for almost all cases, if not all. Not sure what you
do if the drive has no partition table. In the MS world this gets dealt with by
the user installing 'disk manager' type software so the user doesn't end up
directly answering questions about the HPA but answers them indirectly.





More information about the fedora-devel-list mailing list