Availability:
     Level 2    , 'x'
     Level 7    , 'x'

  Quick Help:
     Display Zone Information, x[Partition],[Hd],[Zone],[Options]

  Description:
    This command displays information about the media partitions (System and User) and
    data zones.

  Input Parameters:

    0 - Partition.
    
        This parameter specifies the partition for which the zone information is to
        be displayed.
    
             00 = User Media Partition
             01 = System Media Partition
             02 = OD SMART Media Partition (if SMART enabled)
             03 = ID SMART Media Partition (if SMART enabled)
    
        This parameter is only used if Parameter 3 bits 1 or 0 are set.
    
          Type:    Unsigned 8-bit hexadecimal value
    
          Range:   0 or 0xFF
    
          Default: If this parameter is not entered, the information will be displayed for
                   the User and System Partition.
    
    1 - Head.
    
        This parameter specifies the head for which the zone information is to be displayed.
    
        This parameter is only used if Parameter 3 bits 1 or 0 are set.
    
          Type:    Unsigned 8-bit hexadecimal value
    
          Range:   0 to 0xff
    
          Default: If this parameter is not entered, the zone information will be displayed
                   for all heads.
    
    2 - Zone.
    
        This parameter specifies the zone for which the zone information is to be displayed.
    
        This parameter is only used if Parameter 3 bits 1 or 0 are set.
    
          Type:    Unsigned 8-bit hexadecimal value
    
          Range:   0 to 0xff
    
          Default: If this parameter is not entered, the zone information will be displayed
                   for all zones.
    
    3 - Options.
    
         This parameter is a bit significant value that selects the following options:
    
             Bits 31-4: not used
    
             Bit 3:     Display R/W Zone Information.
    
                        If this bit is equal to 1, the R/W Zone information will be
                        displayed.
    
             Bit 2:     Display R/W Zone Group Information.
    
                        If this bit is equal to 1, the R/W Zone Group information will
                        be displayed.
    
             Bit 1:     Display Zone Tables.
    
                        If this bit is equal to 1, the original zone table information
                        will be displayed.
    
             Bit 0:     Display Zone Tables with Wedge Operation NRZ Symbols.
    
                        If this bit is equal to 1, the original zone table information
                        will be displayed including the number of NRZ Symbols for
                        the following wedge operations: Unformatted Direct Write,
                        Unformatted Direct Read, Formatted Direct Write, Formatted
                        Direct Read.
    
          Type:    Unsigned 32-bit hexadecimal value
    
          Range:   0 to 0xffffffff
    
          Default: 00000002 Hex (Display the Zone Tables)
    
  Output Data:

    If an error occurred, the following information will be displayed.
    
          "DiagError aaaaaaaa"
    
       where
    
          aaaaaaaa is the Diagnostic Error Code
    

    If no error occurred and the Display Zone Tables option (Parameter 3 bit 1) or the
    Display Zone Tables with Wedge Operation NRZ Symbols option (Parameter 3 bit 0) was
    selected, the following information will be displayed.
    
          "User Partition"
          " LBAs CCCCCCCC-DDDDDDDD"
          " PBAs EEEEEEEE-FFFFFFFF"
          " HdSkew GGGG CylSkew HHHH"
          " ZonesPerHd II"
    
          "  Head J, PhyCyls KKKKKK-LLLLLL, LogCyls MMMMMM-NNNNNN"
    
          "     Physical      Logical       Sec   Sym   Sym      Data"
          "  Zn Cylinders     Cylinders     Track Wedge Track    Rate"
          "  PP QQQQQQ-RRRRRR SSSSSS-TTTTTT UUUU  VVVV  WWWWWWWW XXXXXXXX"
    
          "System Partition"
          " LBAs cccccccc-dddddddd"
          " PBAs eeeeeeee-ffffffff"
          " HdSkew gggg CylSkew hhhh"
          " ZonesPerHd ii"
    
          "  Head j, PhyCyls kkkkkk-llllll, LogCyls mmmmmm-nnnnnn"
    
          "     Physical      Logical       Sec   Sym   Sym      Data"
          "  Zn Cylinders     Cylinders     Track Wedge Track    Rate"
          "  pp qqqqqq-rrrrrr ssssss-tttttt uuuu  vvvv  wwwwwwww xxxxxxxx"
    
       where
    
          CCCCCCCC is the first Logical Block Address (LBA) of the User Partition.
    
          DDDDDDDD is the last Logical Block Address (LBA) of the User Partition.
    
          EEEEEEEE is the first Physical Block Address (PBA) of the User Partition.
    
          FFFFFFFF is the last Physical Block Address (PBA) of the User Partition.
    
          GGGG is the Head Skew in data wedges for the User Partition.
    
          HHHH is the Cylinder Skew in data wedges for the User Partition.
    
          II is the number of zones per head in the User Partition.
    
          J is the Logical Head Address of the User Partition zone information to follow.
       
          RRRRRR is the starting physical cylinder address of the User Partition
                 data zone.
    
          SSSSSS is the ending physical cylinder address of the User Partition
                 data zone.
    
          KKKKKK is the starting physical cylinder address of the User Partition on
                 the specified head.
    
          LLLLLL is the ending physical cylinder address of the User Partition on
                 the specified head.
    
          MMMMMM is the starting logical cylinder address of the User Partition on
                 the specified head.
    
          NNNNNN is the ending logical cylinder address of the User Partition on
                 the specified head.
    
          PP is the User Partition data zone number.
    
          QQQQQQ is the starting physical cylinder address of the User Partition
                 data zone.
    
          RRRRRR is the ending physical cylinder address of the User Partition
                 data zone.
    
          SSSSSS is the starting logical cylinder address of the User Partition
                 data zone.
    
          TTTTTT is the ending logical cylinder address of the User Partition
                 data zone.
    
          UUUU is the number of physical sectors per track in the User Partition data
               zone.
    
          VVVV is the size of a data wedge in NRZ Symbols for the User Partition data zone.
    
          WWWWWWWW is the size of a track in NRZ Symbols for the User Partition data zone.
    
          For the Agere Anaconda read channel,
          XXXXXXXX is the NRZ frequency, in Mbps, for the User Partition data zone.
          
          For all other read channel,
          XXXXXXXX is the channel frequency, in MHz, for the User Partition data zone.
    
          cccccccc is the first Logical Block Address (LBA) of the System Partition.
    
          dddddddd is the last Logical Block Address (LBA) of the System Partition.
    
          eeeeeeee is the first Physical Block Address (PBA) of the System Partition.
    
          ffffffff is the last Physical Block Address (PBA) of the System Partition.
    
          gggg is the Head Skew in data wedges for the System Partition.
    
          hhhh is the Cylinder Skew in data wedges for the System Partition.
    
          ii is the number of zones per head in the System Partition.
    
          j is the Logical Head Address of the System Partition zone information to follow.
    
          kkkkkkkk is the starting physical cylinder address of the System Partition on
                   the specified head.
    
          llllllll is the ending physical cylinder address of the System Partition on
                   the specified head.
    
          mmmmmmmm is the starting logical cylinder address of the System Partition on
                   the specified head.
    
          nnnnnnnn is the ending logical cylinder address of the System Partition on
                   the specified head.
       
          pp is the System Partition data zone number.
    
          qqqqqq is the starting physical cylinder address of the System Partition
                 data zone.
    
          rrrrrr is the ending physical cylinder address of the System Partition
                 data zone.
    
          ssssss is the starting logical cylinder address of the System Partition
                 data zone.
    
          tttttt is the ending logical cylinder address of the System Partition
                 data zone.
    
          uuuu is the number of physical sectors per track in the System Partition data
               zone.
    
          vvvv is the size of a data wedge in NRZ Symbols for the System Partition data zone.
    
          wwwwwwww is the size of a track in NRZ Symbols for the System Partition data zone.
    
          For the Agere Anaconda read channel,
          xxxxxxxx is the NRZ frequency, in Mbps, for the System Partition data zone.
    
          For all other read channels,
          xxxxxxxx is the channel frequency, in MHz, for the System Partition data zone.
    
    If the Display Zone Tables with Wedge Operation NRZ Symbols option (Parameter 3 bit 0)
    was selected, the following additional information will be displayed for each User and
    System partition zone.
    
          "Sym        Sym        Sym      Sym"
          "UnFmtDirWr UnFmtDirRd FmtDirWr FmtDirRd"
          "YYYY       ZZZZ       %%%%     $$$$"
    
       where
    
          YYYY is the number of NRZ Symbols for an Unformatted Direct Wedge Write operation
               in the zone.
    
          ZZZZ is the number of NRZ Symbols for an Unformatted Direct Wedge Read operation
               in the zone.
    
          %%%% is the number of NRZ Symbols for an Formatted Direct Wedge Write operation
               in the zone.
    
          $$$$ is the number of NRZ Symbols for an Formatted Direct Wedge Read operation
               in the zone.
    

    
    Note: The terms zone group and minizone are used in the description of the command
    output. The following is an attempt to define these terms.
    
       A zone group is a collection of zones, one from each head.  The zone group boundary
       is defined to be at a point where one or more heads encounters a frequency switchpoint
       (zone boundary).  Therefore, by definition, all minizones in a zone group have the
       same capacity in PBAs.
    
       The term minizone and serpent are used interchangeably in the code.  "Serpent"
       originates from our serpentine format. If you view the direction of increasing PBAs,
       it looks like a snake or a "serpent".  A minizone is equivalent, and is the
       fundamental building block of a zone group.  Stated another way, a zone group is
       created from a collection of minizones.
    
    If no error occurred and the Display R/W Zone Group Information option (Parameter 3
    bit 2) was selected, the following information will be displayed.
    
          "Dependent User Zone Group Table:"
    
          "Zone Start    Cum      Start    Sec Per  Start    Head               Start"
          "Grp  PBA      Slip     LBA      MiniZone MiniZone Zone               Track"
          "CCCC DDDDDDDD EEEEEEEE FFFFFFFF GGGGGGGG HHHHHHHH IIII JJJJ ... KKKK LLLLLL MMMMMM ... NNNNNN"
          (repeated for all User Partition Zone Groups)
    
          "Dependent System Zone Group Table:"
    
          "Zone Start    Start  Cum      Spare    Num"
          "Grp  LBA      Track  Slips    Sectors  Tracks"
          "cccc dddddddd eeeeee ffffffff gggggggg hhhhhh"
          (repeated for all System Partition Zone Groups)
    
          "NumPBAs: jjjjjjjj"
          "NumLBAs: kkkkkkkk"
    
       where
    
          CCCC     is the Dependent User Partition zone group number. The information that
                   follows on the line is for this zone group. The display will contain a
                   line for each zone group in the User Partition.
    
          DDDDDDDD is the first PBA in the User Partition zone group.  In the PBA-to-CHS
                   translation, the first step is to determine which zone group contains
                   the target PBA, so this is the key field that is searched when finding
                   the greatest less than or equal Dependent User Partition Zone Group Table
                   entry.
    
          EEEEEEEE is the cumulative slip that corresponds to the first LBA in the User
                   Partition zone group. It is used to determine the first LBA in the zone
                   group (PBA = LBA + CSlip) when it is requested.
    
          FFFFFFFF is not part of the Dependent User Partition Zone Group Table but is
                   reported here for convenience as we typically want to associate an
                   LBA with a zone group. The StLba is simply the StPba minus the CSlip.
    
          GGGGGGGG is the accumulation of sectors per track times tracks per minizone for
                   all heads on the drive in the User Partition zone group.  Inorder to
                   calculate the target minizone for a target PBA, we first subtract the
                   Zone Group Start PBA from the target PBA and then divide by SecPerMZ.
                   Note that each minizone in the zone group has the exact same capacity
                   as the zone group boundary is defined to occur when one or more heads
                   changes zones (frequencies).  This results in a different track capacity
                   (sectors per track) and therefore a unique number of PBAs per minizone.
    
          HHHHHHHH is the first minizone index in the User Partition zone group.  Once we
                   find the zone group that contains the target PBA, we need to try to
                   associate that PBA with a position (CHS).  Finding the target minizone
                   is the first step in that process.
    
          IIII to KKKK
                   is an array of User Partition target zones on a per-head basis. When we
                   translate to an LBA in a particular zone group and that LBA exists on
                   a particular head, we reference the target head's offset in this array
                   to determine the channel zone for the target head. This essentially tells
                   us which set of channel and preamp parameters to assert when configuring
                   the hardware for the target LBA. Note that as you look down the column
                   for each head, the index will range from zero to number of zones per head.
    
          LLLLLL to NNNNNN
                   is an array of User Partition zone group starting R/W logical track
                   numbers on a per-head basis. It is valid for both Variable TPI by Head
                   Zone configurations and Non-Variable TPI by Head Zone configurations.
                   For the Non-Variable TPI by Head Zone configuration, this field is not
                   part of the R/W Dependent User Zone Group Table structure, but is given
                   here for consistency and convenience. In this case, the value is simply
                   the product of the StartMZ for the zone group and the TPI scaling factor
                   (logical tracks per minizone) for the head. For the Variable TPI by Head
                   Zone configuration, this value is the accumulation of all logical tracks
                   in previous zone groups for the target head. In this configuration it is
                   part of the R/W Dependent User Zone Group Table for calculation efficiency
                   and convenience. When performing an LBA-to-CHS translation, the target
                   track starts with this track number, plus the tracks per minizone for this
                   zone times the minzone offset, plus the track offset into the target
                   minizone.
    
          cccc     is the System Partition zone group number. The information that follows
                   on the line is for this zone group. The display will contain a line for
                   each zone group in the System Partition.
    
          dddddddd is the starting LBA of the System Partition zone group.
    
          eeeeee   is the starting track of the System Partition zone group.
    
          ffffffff is the cumulative slip that corresponds to the first LBA in the System
                   Partition zone group.
    
          gggggggg is the number of spare sectors in the System Partition zone group.
    
          hhhhhh   is the number of cylinders in the System Partition zone group.
    
          jjjjjjjj is the number of PBAs in the User Partition.
    
          kkkkkkkk is the number of LBAs in the User Partition.
    

    If no error occurred and the Display R/W Zone Information option (Parameter 3 bit 3)
    was selected, the following information will be displayed.
    
          "Dependent User Zone Table:"
    
          "Zone SecsPerTrk SymsPerWedge"
          "CCCC DDDDDDDD   EEEEEEEE"
          (repeated for all User Partition Zones)
    
       where
    
          CCCC     is the User Partition zone number.
    
          DDDDDDDD is the number of sectors (PBAs) per track in the User Partition zone.
                   The track capacity (SPT) is determined based on zone frequency and
                   format budget overhead.
    
          EEEEEEEE is the number of symbols (RClk) periods that are available in the wedge.
                   This parameter is primarily used for supersector operations and is the
                   "direct mode" value.  For "normal" mode, this value should be muliplied
                   by the inverse of the channel coderate (60/61) to determine the number
                   of "gapped" symbols are available in the wedge.  The number of symbols in
                   the wedge is typically the zone frequency applied to the SGATE-to-SGATE
                   time, minus the number of symbols that correspond to the SGATE time, minus
                   the sum of gaps (format budget gap after SGATE plus the gap before SGATE).
    
  Revision History:

    0001.0000   Initial revision.
    0002.0000   Modified to display the logical cylinder range for each head for
                VBAR drives.
    0002.0001   Modified to display the NRZ Symbols per sector for each partition
                for VBAR drives.  Modified to display the NRZ Symbols per Wedge
                for Unformatted Direct Wedge Write and Read and Formatted Direct
                Wedge Write and Read operations on VBAR drives.
    0011.0000   Combined the PSG Diagnostic Error Codes (PSGDEC) and the Diagnostic External
                Test Service Error Codes (DETSEC) into a single set of Diagnostic Error Codes
                (DiagError).
    0012.0000   Change the frequency column head from MHz to Data Rate, which is more appropriate.
    0012.0001   Added support for the OD and ID SMART partitions (if SMART is enabled).
    0013.0000   Added logical cylinder information to the zone information displayed. Added
                option to display the R/W Zone Group information.