A couple questions re: the table returned by the IDENTIFY DEVICE command. 
Author Message
 A couple questions re: the table returned by the IDENTIFY DEVICE command.

Hello.

I've written a Floppy Boot Loader to display the CHS values returned by the
IDENTIFY DEVICE command. Specifically Word offsets: 1, 3, 6, 54, 55, 56 (all
base 10).  My curiosity was to determine if the CHS values returned at these
offsets were somehow different --they're not. Reason was, my Hard Drive has
a capacity of 10.2GB, but these words (C=3FFFh, H=0010h, and S=003Fh),
calculate to 8.4GBs ((C*H*S)*512).

It doesn't appear to be possible to determine a Device's capacity
(partitioned or not), through the IDENTIFY DEVICE command, if this is true,
then should the capacity be determined with the READ NATIVE MAX ADDRESS
Command?

The ATA/ATAPI-4 Specification (Working Draft-T13 1153D), states in clause
6.2 (Page 36) that:

"Typical use of these commands [READ NATIVE MAX ADDRESS & SET MAX ADDRESS]
would be:
On Reset
 a) BIOS receives control after a system reset;
 b) BIOS issues a READ NATIVE MAX ADDRESS command to find the max capacity
of the device;
 c) [..snip...]
 d) [..snip...]
 e) BIOS issues a READ NATIVE MAX ADDRESS command followed by a SET MAX
ADDRESS command to reset the device to the size of the file system.

The BIOS in my system** is setting these values to that of an 8.4GB Device.
Is this to facilitate 'ill behaved-apps', backward compatibility, or to make
life interesting for amateur programmers? ...

Shawn

** My BIOS is more than capable to access device's with capacities greater
than 8.4GB, there is no drive manager installed i.e.: EZ-DRIVE. As well, the
File System is 32bit - 8k Clusters.



Thu, 25 Jul 2002 03:00:00 GMT  
 A couple questions re: the table returned by the IDENTIFY DEVICE command.
it's undoubtedly for backwards compatibility, as are 99% of all hardware
"features."  the TOTAL LBA SECTORS field (dword at word offset 60) should be
significantly greater than the TOTAL SECTORS (' at ' offset 57); you can use
that to determine total storage space.  or if it's the true number of cylinders
yer after (to my knowledge, that's the only portion of the geometry the drive
"lies" about to fit the 8.4 limit), then just seek and increment until you
get an error.


: Hello.

: I've written a Floppy Boot Loader to display the CHS values returned by the
: IDENTIFY DEVICE command. Specifically Word offsets: 1, 3, 6, 54, 55, 56 (all
: base 10).  My curiosity was to determine if the CHS values returned at these
: offsets were somehow different --they're not. Reason was, my Hard Drive has
: a capacity of 10.2GB, but these words (C=3FFFh, H=0010h, and S=003Fh),
: calculate to 8.4GBs ((C*H*S)*512).

: It doesn't appear to be possible to determine a Device's capacity
: (partitioned or not), through the IDENTIFY DEVICE command, if this is true,
: then should the capacity be determined with the READ NATIVE MAX ADDRESS
: Command?

: The ATA/ATAPI-4 Specification (Working Draft-T13 1153D), states in clause
: 6.2 (Page 36) that:

: "Typical use of these commands [READ NATIVE MAX ADDRESS & SET MAX ADDRESS]
: would be:
: On Reset
:  a) BIOS receives control after a system reset;
:  b) BIOS issues a READ NATIVE MAX ADDRESS command to find the max capacity
: of the device;
:  c) [..snip...]
:  d) [..snip...]
:  e) BIOS issues a READ NATIVE MAX ADDRESS command followed by a SET MAX
: ADDRESS command to reset the device to the size of the file system.

: The BIOS in my system** is setting these values to that of an 8.4GB Device.
: Is this to facilitate 'ill behaved-apps', backward compatibility, or to make
: life interesting for amateur programmers? ...

: Shawn

: ** My BIOS is more than capable to access device's with capacities greater
: than 8.4GB, there is no drive manager installed i.e.: EZ-DRIVE. As well, the
: File System is 32bit - 8k Clusters.



Fri, 26 Jul 2002 03:00:00 GMT  
 A couple questions re: the table returned by the IDENTIFY DEVICE command.
I agree with Assassin.
I use the DWORD at offset 60 decimal to calculate the maximum capacity.

--

Eric P. van Westendorp  Tel: +31(0252)210579
Reigerslaan 22  2215NN Voorhout  Netherlands

Quote:

> Hello.

> I've written a Floppy Boot Loader to display the CHS values returned by the
> IDENTIFY DEVICE command. Specifically Word offsets: 1, 3, 6, 54, 55, 56 (all
> base 10).  My curiosity was to determine if the CHS values returned at these
> offsets were somehow different --they're not. Reason was, my Hard Drive has
> a capacity of 10.2GB, but these words (C=3FFFh, H=0010h, and S=003Fh),
> calculate to 8.4GBs ((C*H*S)*512).

> It doesn't appear to be possible to determine a Device's capacity
> (partitioned or not), through the IDENTIFY DEVICE command, if this is true,
> then should the capacity be determined with the READ NATIVE MAX ADDRESS
> Command?

> The ATA/ATAPI-4 Specification (Working Draft-T13 1153D), states in clause
> 6.2 (Page 36) that:

> "Typical use of these commands [READ NATIVE MAX ADDRESS & SET MAX ADDRESS]
> would be:
> On Reset
>  a) BIOS receives control after a system reset;
>  b) BIOS issues a READ NATIVE MAX ADDRESS command to find the max capacity
> of the device;
>  c) [..snip...]
>  d) [..snip...]
>  e) BIOS issues a READ NATIVE MAX ADDRESS command followed by a SET MAX
> ADDRESS command to reset the device to the size of the file system.

> The BIOS in my system** is setting these values to that of an 8.4GB Device.
> Is this to facilitate 'ill behaved-apps', backward compatibility, or to make
> life interesting for amateur programmers? ...

> Shawn

> ** My BIOS is more than capable to access device's with capacities greater
> than 8.4GB, there is no drive manager installed i.e.: EZ-DRIVE. As well, the
> File System is 32bit - 8k Clusters.



Fri, 26 Jul 2002 03:00:00 GMT  
 A couple questions re: the table returned by the IDENTIFY DEVICE command.

Quote:
> it's undoubtedly for backwards compatibility, as are 99% of all hardware
> "features."  the TOTAL LBA SECTORS field (dword at word offset 60) should
be
> significantly greater than the TOTAL SECTORS (' at ' offset 57); you can
use
> that to determine total storage space.  or if it's the true number of
cylinders
> yer after (to my knowledge, that's the only portion of the geometry the
drive
> "lies" about to fit the 8.4 limit), then just seek and increment until you
> get an error.

I'm trying to find a working correlation between CHS and LBA (or
Assisted-LBA), translated geometries.

When I picture a Hard Disc Platter with Cylinders, a Head for each side, and
an equal amount of Sectors from the inside cylinder to the outside cylinder
(or, does the outside cylinder have more sectors because the track length is
greater?) .... does cylinder 0, and cylinder 1, begin and end after 'head
16' & 'sector 63' is reached, irrespective of the actual physical location?

Shawn



Sat, 27 Jul 2002 03:00:00 GMT  
 
 [ 4 post ] 

 Relevant Pages 

1. sql command to return a result other than a data set for a table

2. data returned from serial devices question

3. Identify Device

4. identifying IDE devices

5. Acquire data from a thermal couple device using RS232

6. exec question regarding returning the value of a command running in background

7. Newbie Expect Question: where does Expect store values returned from an expect command

8. Command Table Help - trying to define alternate command for SCRNAME

9. info commands return value altered by execution of command inside a namespace

10. identifying a command parameters

11. Getting started, a couple questions about obtaining tcl for Windows - ignore the earlier DOS question

12. COUPLE COMMAND IN HP85685A

 

 
Powered by phpBB® Forum Software