1525689f1SJustin T. Gibbs.\" 2f553b7b3SKenneth D. Merry.\" Copyright (c) 1998, 1999, 2000, 2002, 2005, 2006, 2007 Kenneth D. Merry. 3525689f1SJustin T. Gibbs.\" All rights reserved. 4525689f1SJustin T. Gibbs.\" 5525689f1SJustin T. Gibbs.\" Redistribution and use in source and binary forms, with or without 6525689f1SJustin T. Gibbs.\" modification, are permitted provided that the following conditions 7525689f1SJustin T. Gibbs.\" are met: 8525689f1SJustin T. Gibbs.\" 1. Redistributions of source code must retain the above copyright 9525689f1SJustin T. Gibbs.\" notice, this list of conditions and the following disclaimer. 10525689f1SJustin T. Gibbs.\" 2. Redistributions in binary form must reproduce the above copyright 11525689f1SJustin T. Gibbs.\" notice, this list of conditions and the following disclaimer in the 12525689f1SJustin T. Gibbs.\" documentation and/or other materials provided with the distribution. 13525689f1SJustin T. Gibbs.\" 3. The name of the author may not be used to endorse or promote products 14525689f1SJustin T. Gibbs.\" derived from this software without specific prior written permission. 15525689f1SJustin T. Gibbs.\" 16525689f1SJustin T. Gibbs.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17525689f1SJustin T. Gibbs.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18525689f1SJustin T. Gibbs.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19525689f1SJustin T. Gibbs.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20525689f1SJustin T. Gibbs.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21525689f1SJustin T. Gibbs.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22525689f1SJustin T. Gibbs.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23525689f1SJustin T. Gibbs.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24525689f1SJustin T. Gibbs.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25525689f1SJustin T. Gibbs.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26525689f1SJustin T. Gibbs.\" SUCH DAMAGE. 27525689f1SJustin T. Gibbs.\" 287f3dea24SPeter Wemm.\" $FreeBSD$ 29525689f1SJustin T. Gibbs.\" 30*9a6844d5SKenneth D. Merry.Dd May 16, 2016 31525689f1SJustin T. Gibbs.Dt CAMCONTROL 8 3233fab22eSKenneth D. Merry.Os 33525689f1SJustin T. Gibbs.Sh NAME 34525689f1SJustin T. Gibbs.Nm camcontrol 35525689f1SJustin T. Gibbs.Nd CAM control program 36525689f1SJustin T. Gibbs.Sh SYNOPSIS 377c7fb079SRuslan Ermilov.Nm 3833fab22eSKenneth D. Merry.Aq Ar command 39c60e19a8SKenneth D. Merry.Op device id 40525689f1SJustin T. Gibbs.Op generic args 41525689f1SJustin T. Gibbs.Op command args 427c7fb079SRuslan Ermilov.Nm 4333fab22eSKenneth D. Merry.Ic devlist 4456dc4e72SScott Long.Op Fl b 45525689f1SJustin T. Gibbs.Op Fl v 467c7fb079SRuslan Ermilov.Nm 4733fab22eSKenneth D. Merry.Ic periphlist 48c60e19a8SKenneth D. Merry.Op device id 49525689f1SJustin T. Gibbs.Op Fl n Ar dev_name 50525689f1SJustin T. Gibbs.Op Fl u Ar unit_number 517c7fb079SRuslan Ermilov.Nm 5233fab22eSKenneth D. Merry.Ic tur 53c60e19a8SKenneth D. Merry.Op device id 54525689f1SJustin T. Gibbs.Op generic args 557c7fb079SRuslan Ermilov.Nm 5633fab22eSKenneth D. Merry.Ic inquiry 57c60e19a8SKenneth D. Merry.Op device id 58525689f1SJustin T. Gibbs.Op generic args 59525689f1SJustin T. Gibbs.Op Fl D 60525689f1SJustin T. Gibbs.Op Fl S 61525689f1SJustin T. Gibbs.Op Fl R 627c7fb079SRuslan Ermilov.Nm 6352c9ce25SScott Long.Ic identify 6452c9ce25SScott Long.Op device id 6552c9ce25SScott Long.Op generic args 66757e402dSAlexander Motin.Op Fl v 6752c9ce25SScott Long.Nm 6842cb6a80SKenneth D. Merry.Ic reportluns 6942cb6a80SKenneth D. Merry.Op device id 7042cb6a80SKenneth D. Merry.Op generic args 7142cb6a80SKenneth D. Merry.Op Fl c 7242cb6a80SKenneth D. Merry.Op Fl l 7342cb6a80SKenneth D. Merry.Op Fl r Ar reporttype 7442cb6a80SKenneth D. Merry.Nm 75f553b7b3SKenneth D. Merry.Ic readcap 76f553b7b3SKenneth D. Merry.Op device id 77f553b7b3SKenneth D. Merry.Op generic args 78f553b7b3SKenneth D. Merry.Op Fl b 79f553b7b3SKenneth D. Merry.Op Fl h 80f553b7b3SKenneth D. Merry.Op Fl H 81f553b7b3SKenneth D. Merry.Op Fl N 82f553b7b3SKenneth D. Merry.Op Fl q 83f553b7b3SKenneth D. Merry.Op Fl s 84f553b7b3SKenneth D. Merry.Nm 8533fab22eSKenneth D. Merry.Ic start 86c60e19a8SKenneth D. Merry.Op device id 87525689f1SJustin T. Gibbs.Op generic args 887c7fb079SRuslan Ermilov.Nm 8933fab22eSKenneth D. Merry.Ic stop 90c60e19a8SKenneth D. Merry.Op device id 91525689f1SJustin T. Gibbs.Op generic args 927c7fb079SRuslan Ermilov.Nm 93f9cecca2SMatthew N. Dodd.Ic load 94f9cecca2SMatthew N. Dodd.Op device id 95f9cecca2SMatthew N. Dodd.Op generic args 96f9cecca2SMatthew N. Dodd.Nm 9733fab22eSKenneth D. Merry.Ic eject 98c60e19a8SKenneth D. Merry.Op device id 99525689f1SJustin T. Gibbs.Op generic args 1007c7fb079SRuslan Ermilov.Nm 101d68fae58SEdward Tomasz Napierala.Ic reprobe 102d68fae58SEdward Tomasz Napierala.Op device id 103d68fae58SEdward Tomasz Napierala.Nm 10433fab22eSKenneth D. Merry.Ic rescan 1055710d224SKenneth D. Merry.Aq all | bus Ns Op :target:lun 1067c7fb079SRuslan Ermilov.Nm 10733fab22eSKenneth D. Merry.Ic reset 1085710d224SKenneth D. Merry.Aq all | bus Ns Op :target:lun 1097c7fb079SRuslan Ermilov.Nm 11033fab22eSKenneth D. Merry.Ic defects 111c60e19a8SKenneth D. Merry.Op device id 112525689f1SJustin T. Gibbs.Op generic args 113525689f1SJustin T. Gibbs.Aq Fl f Ar format 114525689f1SJustin T. Gibbs.Op Fl P 115525689f1SJustin T. Gibbs.Op Fl G 116a1736be3SKenneth D. Merry.Op Fl q 117a1736be3SKenneth D. Merry.Op Fl s 118a1736be3SKenneth D. Merry.Op Fl S Ar offset 119a1736be3SKenneth D. Merry.Op Fl X 1207c7fb079SRuslan Ermilov.Nm 12133fab22eSKenneth D. Merry.Ic modepage 122c60e19a8SKenneth D. Merry.Op device id 123525689f1SJustin T. Gibbs.Op generic args 1249916c5d2SRuslan Ermilov.Aq Fl m Ar page | Fl l 1251ac2383cSBill Fumerola.Op Fl P Ar pgctl 1267e32b20dSKelly Yancey.Op Fl b | Fl e 127525689f1SJustin T. Gibbs.Op Fl d 1287c7fb079SRuslan Ermilov.Nm 12933fab22eSKenneth D. Merry.Ic cmd 130c60e19a8SKenneth D. Merry.Op device id 131525689f1SJustin T. Gibbs.Op generic args 13280976615SAlexander Motin.Aq Fl a Ar cmd Op args 133525689f1SJustin T. Gibbs.Aq Fl c Ar cmd Op args 134f930c0dbSAlexander Motin.Op Fl d 135f930c0dbSAlexander Motin.Op Fl f 136525689f1SJustin T. Gibbs.Op Fl i Ar len Ar fmt 137525689f1SJustin T. Gibbs.Bk -words 138525689f1SJustin T. Gibbs.Op Fl o Ar len Ar fmt Op args 13980976615SAlexander Motin.Op Fl r Ar fmt 140525689f1SJustin T. Gibbs.Ek 1417c7fb079SRuslan Ermilov.Nm 14206e79492SKenneth D. Merry.Ic smpcmd 14306e79492SKenneth D. Merry.Op device id 14406e79492SKenneth D. Merry.Op generic args 14506e79492SKenneth D. Merry.Aq Fl r Ar len Ar fmt Op args 14606e79492SKenneth D. Merry.Aq Fl R Ar len Ar fmt Op args 14706e79492SKenneth D. Merry.Nm 14806e79492SKenneth D. Merry.Ic smprg 14906e79492SKenneth D. Merry.Op device id 15006e79492SKenneth D. Merry.Op generic args 15106e79492SKenneth D. Merry.Op Fl l 15206e79492SKenneth D. Merry.Nm 15306e79492SKenneth D. Merry.Ic smppc 15406e79492SKenneth D. Merry.Op device id 15506e79492SKenneth D. Merry.Op generic args 15606e79492SKenneth D. Merry.Aq Fl p Ar phy 15706e79492SKenneth D. Merry.Op Fl l 15806e79492SKenneth D. Merry.Op Fl o Ar operation 15906e79492SKenneth D. Merry.Op Fl d Ar name 16006e79492SKenneth D. Merry.Op Fl m Ar rate 16106e79492SKenneth D. Merry.Op Fl M Ar rate 16206e79492SKenneth D. Merry.Op Fl T Ar pp_timeout 16306e79492SKenneth D. Merry.Op Fl a Ar enable|disable 16406e79492SKenneth D. Merry.Op Fl A Ar enable|disable 16506e79492SKenneth D. Merry.Op Fl s Ar enable|disable 16606e79492SKenneth D. Merry.Op Fl S Ar enable|disable 16706e79492SKenneth D. Merry.Nm 16806e79492SKenneth D. Merry.Ic smpphylist 16906e79492SKenneth D. Merry.Op device id 17006e79492SKenneth D. Merry.Op generic args 17106e79492SKenneth D. Merry.Op Fl l 17206e79492SKenneth D. Merry.Op Fl q 17306e79492SKenneth D. Merry.Nm 17406e79492SKenneth D. Merry.Ic smpmaninfo 17506e79492SKenneth D. Merry.Op device id 17606e79492SKenneth D. Merry.Op generic args 17706e79492SKenneth D. Merry.Op Fl l 17806e79492SKenneth D. Merry.Nm 17933fab22eSKenneth D. Merry.Ic debug 180525689f1SJustin T. Gibbs.Op Fl I 181a7e5261eSNate Lawson.Op Fl P 182525689f1SJustin T. Gibbs.Op Fl T 183525689f1SJustin T. Gibbs.Op Fl S 184a7e5261eSNate Lawson.Op Fl X 18594d09127SKenneth D. Merry.Op Fl c 186fbfb753fSAlexander Motin.Op Fl p 187525689f1SJustin T. Gibbs.Aq all|off|bus Ns Op :target Ns Op :lun 1887c7fb079SRuslan Ermilov.Nm 18933fab22eSKenneth D. Merry.Ic tags 190c60e19a8SKenneth D. Merry.Op device id 1919deea857SKenneth D. Merry.Op generic args 1929deea857SKenneth D. Merry.Op Fl N Ar tags 1939deea857SKenneth D. Merry.Op Fl q 1949deea857SKenneth D. Merry.Op Fl v 1957c7fb079SRuslan Ermilov.Nm 19633fab22eSKenneth D. Merry.Ic negotiate 197c60e19a8SKenneth D. Merry.Op device id 1989deea857SKenneth D. Merry.Op generic args 1999deea857SKenneth D. Merry.Op Fl c 2009deea857SKenneth D. Merry.Op Fl D Ar enable|disable 201b447e682SAlexander Motin.Op Fl M Ar mode 2029deea857SKenneth D. Merry.Op Fl O Ar offset 2039deea857SKenneth D. Merry.Op Fl q 2049deea857SKenneth D. Merry.Op Fl R Ar syncrate 2059deea857SKenneth D. Merry.Op Fl T Ar enable|disable 2069deea857SKenneth D. Merry.Op Fl U 2079deea857SKenneth D. Merry.Op Fl W Ar bus_width 2089deea857SKenneth D. Merry.Op Fl v 2097c7fb079SRuslan Ermilov.Nm 21033fab22eSKenneth D. Merry.Ic format 21196a93c63SKenneth D. Merry.Op device id 21296a93c63SKenneth D. Merry.Op generic args 21396a93c63SKenneth D. Merry.Op Fl q 214e9e4d3e4SKenneth D. Merry.Op Fl r 21596a93c63SKenneth D. Merry.Op Fl w 21696a93c63SKenneth D. Merry.Op Fl y 2177c7fb079SRuslan Ermilov.Nm 218ffead710SBryan Venteicher.Ic sanitize 219ffead710SBryan Venteicher.Op device id 220ffead710SBryan Venteicher.Op generic args 221ffead710SBryan Venteicher.Aq Fl a Ar overwrite | block | crypto | exitfailure 222ffead710SBryan Venteicher.Op Fl c Ar passes 223ffead710SBryan Venteicher.Op Fl I 224ffead710SBryan Venteicher.Op Fl P Ar pattern 225ffead710SBryan Venteicher.Op Fl q 226ffead710SBryan Venteicher.Op Fl U 227ffead710SBryan Venteicher.Op Fl r 228ffead710SBryan Venteicher.Op Fl w 229ffead710SBryan Venteicher.Op Fl y 230ffead710SBryan Venteicher.Nm 23150c9a276SAlexander Motin.Ic idle 23250c9a276SAlexander Motin.Op device id 23350c9a276SAlexander Motin.Op generic args 23450c9a276SAlexander Motin.Op Fl t Ar time 23550c9a276SAlexander Motin.Nm 23650c9a276SAlexander Motin.Ic standby 23750c9a276SAlexander Motin.Op device id 23850c9a276SAlexander Motin.Op generic args 23950c9a276SAlexander Motin.Op Fl t Ar time 24050c9a276SAlexander Motin.Nm 24150c9a276SAlexander Motin.Ic sleep 24250c9a276SAlexander Motin.Op device id 24350c9a276SAlexander Motin.Op generic args 24450c9a276SAlexander Motin.Nm 245e7affda5SAlexander Motin.Ic apm 246e7affda5SAlexander Motin.Op device id 247e7affda5SAlexander Motin.Op generic args 248e7affda5SAlexander Motin.Op Fl l Ar level 249e7affda5SAlexander Motin.Nm 250e7affda5SAlexander Motin.Ic aam 251e7affda5SAlexander Motin.Op device id 252e7affda5SAlexander Motin.Op generic args 253e7affda5SAlexander Motin.Op Fl l Ar level 254e7affda5SAlexander Motin.Nm 2551f4782a4SEd Maste.Ic fwdownload 2561f4782a4SEd Maste.Op device id 2571f4782a4SEd Maste.Op generic args 2581f4782a4SEd Maste.Aq Fl f Ar fw_image 2590e358df0SKenneth D. Merry.Op Fl q 2601f4782a4SEd Maste.Op Fl s 2610e358df0SKenneth D. Merry.Op Fl y 2621f4782a4SEd Maste.Nm 2631146874aSSteven Hartland.Ic security 2641146874aSSteven Hartland.Op device id 2651146874aSSteven Hartland.Op generic args 2661146874aSSteven Hartland.Op Fl d Ar pwd 2671146874aSSteven Hartland.Op Fl e Ar pwd 2681146874aSSteven Hartland.Op Fl f 2691146874aSSteven Hartland.Op Fl h Ar pwd 2701146874aSSteven Hartland.Op Fl k Ar pwd 2711146874aSSteven Hartland.Op Fl l Ar high|maximum 2721146874aSSteven Hartland.Op Fl q 2731146874aSSteven Hartland.Op Fl s Ar pwd 2741146874aSSteven Hartland.Op Fl T Ar timeout 2751146874aSSteven Hartland.Op Fl U Ar user|master 2761146874aSSteven Hartland.Op Fl y 2771146874aSSteven Hartland.Nm 2789e68761cSSteven Hartland.Ic hpa 2799e68761cSSteven Hartland.Op device id 2809e68761cSSteven Hartland.Op generic args 2819e68761cSSteven Hartland.Op Fl f 2829e68761cSSteven Hartland.Op Fl l 2839e68761cSSteven Hartland.Op Fl P 2849e68761cSSteven Hartland.Op Fl p Ar pwd 2859e68761cSSteven Hartland.Op Fl q 2869e68761cSSteven Hartland.Op Fl s Ar max_sectors 2879e68761cSSteven Hartland.Op Fl U Ar pwd 2889e68761cSSteven Hartland.Op Fl y 2899e68761cSSteven Hartland.Nm 29008df2e3eSKenneth D. Merry.Ic persist 29108df2e3eSKenneth D. Merry.Op device id 29208df2e3eSKenneth D. Merry.Op generic args 29308df2e3eSKenneth D. Merry.Aq Fl i Ar action | Fl o Ar action 29408df2e3eSKenneth D. Merry.Op Fl a 29508df2e3eSKenneth D. Merry.Op Fl I Ar trans_id 29608df2e3eSKenneth D. Merry.Op Fl k Ar key 29708df2e3eSKenneth D. Merry.Op Fl K Ar sa_key 29808df2e3eSKenneth D. Merry.Op Fl p 29908df2e3eSKenneth D. Merry.Op Fl R Ar rel_tgt_port 30008df2e3eSKenneth D. Merry.Op Fl s Ar scope 30108df2e3eSKenneth D. Merry.Op Fl S 30208df2e3eSKenneth D. Merry.Op Fl T Ar res_type 30308df2e3eSKenneth D. Merry.Op Fl U 30408df2e3eSKenneth D. Merry.Nm 3055672fac9SKenneth D. Merry.Ic attrib 3065672fac9SKenneth D. Merry.Op device id 3075672fac9SKenneth D. Merry.Op generic args 3085672fac9SKenneth D. Merry.Aq Fl r Ar action | Fl w Ar attrib 3095672fac9SKenneth D. Merry.Op Fl a Ar attr_num 3105672fac9SKenneth D. Merry.Op Fl c 3115672fac9SKenneth D. Merry.Op Fl e Ar elem_addr 3125672fac9SKenneth D. Merry.Op Fl F Ar form1,form2 3135672fac9SKenneth D. Merry.Op Fl p Ar part 3145672fac9SKenneth D. Merry.Op Fl s Ar start_addr 3155672fac9SKenneth D. Merry.Op Fl T Ar elem_type 3165672fac9SKenneth D. Merry.Op Fl V Ar lv_num 3175672fac9SKenneth D. Merry.Nm 3180e358df0SKenneth D. Merry.Ic opcodes 3190e358df0SKenneth D. Merry.Op device id 3200e358df0SKenneth D. Merry.Op generic args 3210e358df0SKenneth D. Merry.Op Fl o Ar opcode 3220e358df0SKenneth D. Merry.Op Fl s Ar service_action 3230e358df0SKenneth D. Merry.Op Fl N 3240e358df0SKenneth D. Merry.Op Fl T 3250e358df0SKenneth D. Merry.Nm 326*9a6844d5SKenneth D. Merry.Ic zone 327*9a6844d5SKenneth D. Merry.Aq Fl c Ar cmd 328*9a6844d5SKenneth D. Merry.Op Fl a 329*9a6844d5SKenneth D. Merry.Op Fl l Ar lba 330*9a6844d5SKenneth D. Merry.Op Fl o Ar rep_opts 331*9a6844d5SKenneth D. Merry.Op Fl P Ar print_opts 332*9a6844d5SKenneth D. Merry.Nm 333*9a6844d5SKenneth D. Merry.Ic epc 334*9a6844d5SKenneth D. Merry.Aq Fl c Ar cmd 335*9a6844d5SKenneth D. Merry.Op Fl d 336*9a6844d5SKenneth D. Merry.Op Fl D 337*9a6844d5SKenneth D. Merry.Op Fl e 338*9a6844d5SKenneth D. Merry.Op Fl H 339*9a6844d5SKenneth D. Merry.Op Fl p Ar power_cond 340*9a6844d5SKenneth D. Merry.Op Fl P 341*9a6844d5SKenneth D. Merry.Op Fl r Ar restore_src 342*9a6844d5SKenneth D. Merry.Op Fl s 343*9a6844d5SKenneth D. Merry.Op Fl S Ar power_src 344*9a6844d5SKenneth D. Merry.Op Fl T Ar timer 345*9a6844d5SKenneth D. Merry.Nm 34633fab22eSKenneth D. Merry.Ic help 347525689f1SJustin T. Gibbs.Sh DESCRIPTION 348e1205e80SPhilippe CharnierThe 3497c7fb079SRuslan Ermilov.Nm 350e1205e80SPhilippe Charnierutility is designed to provide a way for users to access and control the 35133fab22eSKenneth D. Merry.Fx 352525689f1SJustin T. GibbsCAM subsystem. 353525689f1SJustin T. Gibbs.Pp 354e1205e80SPhilippe CharnierThe 3557c7fb079SRuslan Ermilov.Nm 356e1205e80SPhilippe Charnierutility 3579806e231SRuslan Ermilovcan cause a loss of data and/or system crashes if used improperly. 3589806e231SRuslan ErmilovEven 3599deea857SKenneth D. Merryexpert users are encouraged to exercise caution when using this command. 360525689f1SJustin T. GibbsNovice users should stay away from this utility. 361525689f1SJustin T. Gibbs.Pp 362e1205e80SPhilippe CharnierThe 3637c7fb079SRuslan Ermilov.Nm 364e1205e80SPhilippe Charnierutility has a number of primary functions, many of which support an optional 3659806e231SRuslan Ermilovdevice identifier. 3669806e231SRuslan ErmilovA device identifier can take one of three forms: 3671252c1bbSRuslan Ermilov.Bl -tag -width 14n 368c60e19a8SKenneth D. Merry.It deviceUNIT 369c60e19a8SKenneth D. MerrySpecify a device name and unit number combination, like "da5" or "cd3". 370c60e19a8SKenneth D. Merry.It bus:target 3719806e231SRuslan ErmilovSpecify a bus number and target id. 3729806e231SRuslan ErmilovThe bus number can be determined from 373c60e19a8SKenneth D. Merrythe output of 374c60e19a8SKenneth D. Merry.Dq camcontrol devlist . 375c60e19a8SKenneth D. MerryThe lun defaults to 0. 376c60e19a8SKenneth D. Merry.It bus:target:lun 3779806e231SRuslan ErmilovSpecify the bus, target and lun for a device. 3789806e231SRuslan Ermilov(e.g.\& 1:2:0) 379c60e19a8SKenneth D. Merry.El 380c60e19a8SKenneth D. Merry.Pp 381c60e19a8SKenneth D. MerryThe device identifier, if it is specified, 382c60e19a8SKenneth D. Merry.Em must 383c60e19a8SKenneth D. Merrycome immediately after the function name, and before any generic or 3849806e231SRuslan Ermilovfunction-specific arguments. 3859806e231SRuslan ErmilovNote that the 386c60e19a8SKenneth D. Merry.Fl n 387c60e19a8SKenneth D. Merryand 388c60e19a8SKenneth D. Merry.Fl u 389c60e19a8SKenneth D. Merryarguments described below will override any device name or unit number 3909806e231SRuslan Ermilovspecified beforehand. 3919806e231SRuslan ErmilovThe 392c60e19a8SKenneth D. Merry.Fl n 393c60e19a8SKenneth D. Merryand 394c60e19a8SKenneth D. Merry.Fl u 395c60e19a8SKenneth D. Merryarguments will 396c60e19a8SKenneth D. Merry.Em not 39796a93c63SKenneth D. Merryoverride a specified bus:target or bus:target:lun, however. 398c60e19a8SKenneth D. Merry.Pp 399c60e19a8SKenneth D. MerryMost of the 4007c7fb079SRuslan Ermilov.Nm 401c60e19a8SKenneth D. Merryprimary functions support these generic arguments: 4021252c1bbSRuslan Ermilov.Bl -tag -width 14n 403525689f1SJustin T. Gibbs.It Fl C Ar count 4049806e231SRuslan ErmilovSCSI command retry count. 4059806e231SRuslan ErmilovIn order for this to work, error recovery 4061252c1bbSRuslan Ermilov.Pq Fl E 407525689f1SJustin T. Gibbsmust be turned on. 408525689f1SJustin T. Gibbs.It Fl E 409525689f1SJustin T. GibbsInstruct the kernel to perform generic SCSI error recovery for the given 4109806e231SRuslan Ermilovcommand. 4119806e231SRuslan ErmilovThis is needed in order for the retry count 4121252c1bbSRuslan Ermilov.Pq Fl C 4139806e231SRuslan Ermilovto be honored. 4149806e231SRuslan ErmilovOther than retrying commands, the generic error recovery in 415525689f1SJustin T. Gibbsthe code will generally attempt to spin up drives that are not spinning. 416525689f1SJustin T. GibbsIt may take some other actions, depending upon the sense code returned from 417525689f1SJustin T. Gibbsthe command. 418525689f1SJustin T. Gibbs.It Fl n Ar dev_name 4199806e231SRuslan ErmilovSpecify the device type to operate on, e.g.\& "da", "cd". 420525689f1SJustin T. Gibbs.It Fl t Ar timeout 4219806e231SRuslan ErmilovSCSI command timeout in seconds. 4229806e231SRuslan ErmilovThis overrides the default timeout for 423525689f1SJustin T. Gibbsany given command. 424525689f1SJustin T. Gibbs.It Fl u Ar unit_number 4259806e231SRuslan ErmilovSpecify the device unit number, e.g.\& "1", "5". 426525689f1SJustin T. Gibbs.It Fl v 427525689f1SJustin T. GibbsBe verbose, print out sense information for failed SCSI commands. 428525689f1SJustin T. Gibbs.El 429525689f1SJustin T. Gibbs.Pp 430d13d1cd2SKenneth D. MerryPrimary command functions: 431525689f1SJustin T. Gibbs.Bl -tag -width periphlist 43233fab22eSKenneth D. Merry.It Ic devlist 433525689f1SJustin T. GibbsList all physical devices (logical units) attached to the CAM subsystem. 434525689f1SJustin T. GibbsThis also includes a list of peripheral drivers attached to each device. 435525689f1SJustin T. GibbsWith the 436525689f1SJustin T. Gibbs.Fl v 437525689f1SJustin T. Gibbsargument, SCSI bus number, adapter name and unit numbers are printed as 438525689f1SJustin T. Gibbswell. 43956dc4e72SScott LongOn the other hand, with the 44056dc4e72SScott Long.Fl b 44156dc4e72SScott Longargument, only the bus adapter, and unit information will be printed, and 44256dc4e72SScott Longdevice information will be omitted. 44333fab22eSKenneth D. Merry.It Ic periphlist 444525689f1SJustin T. GibbsList all peripheral drivers attached to a given physical device (logical 445525689f1SJustin T. Gibbsunit). 44633fab22eSKenneth D. Merry.It Ic tur 447525689f1SJustin T. GibbsSend the SCSI test unit ready (0x00) command to the given device. 448e1205e80SPhilippe CharnierThe 4497c7fb079SRuslan Ermilov.Nm 450e1205e80SPhilippe Charnierutility will report whether the device is ready or not. 45133fab22eSKenneth D. Merry.It Ic inquiry 4529806e231SRuslan ErmilovSend a SCSI inquiry command (0x12) to a device. 4539806e231SRuslan ErmilovBy default, 4547c7fb079SRuslan Ermilov.Nm 455525689f1SJustin T. Gibbswill print out the standard inquiry data, device serial number, and 4569806e231SRuslan Ermilovtransfer rate information. 4579806e231SRuslan ErmilovThe user can specify that only certain types of 458525689f1SJustin T. Gibbsinquiry data be printed: 4591252c1bbSRuslan Ermilov.Bl -tag -width 4n 460525689f1SJustin T. Gibbs.It Fl D 461525689f1SJustin T. GibbsGet the standard inquiry data. 462525689f1SJustin T. Gibbs.It Fl S 4639806e231SRuslan ErmilovPrint out the serial number. 4649806e231SRuslan ErmilovIf this flag is the only one specified, 4657c7fb079SRuslan Ermilov.Nm 466525689f1SJustin T. Gibbswill not print out "Serial Number" before the value returned by the drive. 467525689f1SJustin T. GibbsThis is to aid in script writing. 468525689f1SJustin T. Gibbs.It Fl R 469525689f1SJustin T. GibbsPrint out transfer rate information. 470525689f1SJustin T. Gibbs.El 47152c9ce25SScott Long.It Ic identify 47252c9ce25SScott LongSend a ATA identify command (0xec) to a device. 47342cb6a80SKenneth D. Merry.It Ic reportluns 47442cb6a80SKenneth D. MerrySend the SCSI REPORT LUNS (0xA0) command to the given device. 47542cb6a80SKenneth D. MerryBy default, 47642cb6a80SKenneth D. Merry.Nm 47742cb6a80SKenneth D. Merrywill print out the list of logical units (LUNs) supported by the target device. 47842cb6a80SKenneth D. MerryThere are a couple of options to modify the output: 4798266d476SRuslan Ermilov.Bl -tag -width 14n 48042cb6a80SKenneth D. Merry.It Fl c 48142cb6a80SKenneth D. MerryJust print out a count of LUNs, not the actual LUN numbers. 48242cb6a80SKenneth D. Merry.It Fl l 483b1edef17SJoel DahlJust print out the LUNs, and do not print out the count. 48442cb6a80SKenneth D. Merry.It Fl r Ar reporttype 48542cb6a80SKenneth D. MerrySpecify the type of report to request from the target: 48642cb6a80SKenneth D. Merry.Bl -tag -width 012345678 48742cb6a80SKenneth D. Merry.It default 48842cb6a80SKenneth D. MerryReturn the default report. 48942cb6a80SKenneth D. MerryThis is the 49042cb6a80SKenneth D. Merry.Nm 49142cb6a80SKenneth D. Merrydefault. 49242cb6a80SKenneth D. MerryMost targets will support this report if they support the REPORT LUNS 49342cb6a80SKenneth D. Merrycommand. 49442cb6a80SKenneth D. Merry.It wellknown 49542cb6a80SKenneth D. MerryReturn only well known LUNs. 49642cb6a80SKenneth D. Merry.It all 49742cb6a80SKenneth D. MerryReturn all available LUNs. 49842cb6a80SKenneth D. Merry.El 49942cb6a80SKenneth D. Merry.El 50042cb6a80SKenneth D. Merry.Pp 50142cb6a80SKenneth D. Merry.Nm 50242cb6a80SKenneth D. Merrywill try to print out LUN numbers in a reasonable format. 50342cb6a80SKenneth D. MerryIt can understand the peripheral, flat, LUN and extended LUN formats. 504f553b7b3SKenneth D. Merry.It Ic readcap 505f553b7b3SKenneth D. MerrySend the SCSI READ CAPACITY command to the given device and display 506f553b7b3SKenneth D. Merrythe results. 507f553b7b3SKenneth D. MerryIf the device is larger than 2TB, the SCSI READ CAPACITY (16) service 508f553b7b3SKenneth D. Merryaction will be sent to obtain the full size of the device. 509f553b7b3SKenneth D. MerryBy default, 510f553b7b3SKenneth D. Merry.Nm 511f553b7b3SKenneth D. Merrywill print out the last logical block of the device, and the blocksize of 512f553b7b3SKenneth D. Merrythe device in bytes. 513f553b7b3SKenneth D. MerryTo modify the output format, use the following options: 514f553b7b3SKenneth D. Merry.Bl -tag -width 5n 515f553b7b3SKenneth D. Merry.It Fl b 516f553b7b3SKenneth D. MerryJust print out the blocksize, not the last block or device size. 517f553b7b3SKenneth D. MerryThis cannot be used with 518f553b7b3SKenneth D. Merry.Fl N 519f553b7b3SKenneth D. Merryor 520f553b7b3SKenneth D. Merry.Fl s . 521f553b7b3SKenneth D. Merry.It Fl h 522f553b7b3SKenneth D. MerryPrint out the device size in human readable (base 2, 1K == 1024) format. 523f553b7b3SKenneth D. MerryThis implies 524f553b7b3SKenneth D. Merry.Fl N 525f553b7b3SKenneth D. Merryand cannot be used with 526f553b7b3SKenneth D. Merry.Fl q 527f553b7b3SKenneth D. Merryor 528f553b7b3SKenneth D. Merry.Fl b . 529f553b7b3SKenneth D. Merry.It Fl H 530f553b7b3SKenneth D. MerryPrint out the device size in human readable (base 10, 1K == 1000) format. 531f553b7b3SKenneth D. Merry.It Fl N 532f553b7b3SKenneth D. MerryPrint out the number of blocks in the device instead of the last logical 533f553b7b3SKenneth D. Merryblock. 534f553b7b3SKenneth D. Merry.It Fl q 535f553b7b3SKenneth D. MerryQuiet, print out the numbers only (separated by a comma if 536f553b7b3SKenneth D. Merry.Fl b 537f553b7b3SKenneth D. Merryor 538f553b7b3SKenneth D. Merry.Fl s 539f553b7b3SKenneth D. Merryare not specified). 540f553b7b3SKenneth D. Merry.It Fl s 541f553b7b3SKenneth D. MerryPrint out the last logical block or the size of the device only, and omit 542f553b7b3SKenneth D. Merrythe blocksize. 543f553b7b3SKenneth D. Merry.El 544d68fae58SEdward Tomasz Napierala.Pp 545d68fae58SEdward Tomasz NapieralaNote that this command only displays the information, it does not update 546d68fae58SEdward Tomasz Napieralathe kernel data structures. 547d68fae58SEdward Tomasz NapieralaUse the 548d68fae58SEdward Tomasz Napierala.Nm 549d68fae58SEdward Tomasz Napieralareprobe subcommand to do that. 55033fab22eSKenneth D. Merry.It Ic start 551525689f1SJustin T. GibbsSend the SCSI Start/Stop Unit (0x1B) command to the given device with the 552525689f1SJustin T. Gibbsstart bit set. 55333fab22eSKenneth D. Merry.It Ic stop 554525689f1SJustin T. GibbsSend the SCSI Start/Stop Unit (0x1B) command to the given device with the 555525689f1SJustin T. Gibbsstart bit cleared. 556f9cecca2SMatthew N. Dodd.It Ic load 557f9cecca2SMatthew N. DoddSend the SCSI Start/Stop Unit (0x1B) command to the given device with the 558f9cecca2SMatthew N. Doddstart bit set and the load/eject bit set. 55933fab22eSKenneth D. Merry.It Ic eject 560525689f1SJustin T. GibbsSend the SCSI Start/Stop Unit (0x1B) command to the given device with the 561f9cecca2SMatthew N. Doddstart bit cleared and the load/eject bit set. 56233fab22eSKenneth D. Merry.It Ic rescan 5635710d224SKenneth D. MerryTell the kernel to scan all busses in the system (with the 5645710d224SKenneth D. Merry.Ar all 5655710d224SKenneth D. Merryargument), the given bus (XPT_SCAN_BUS), or bus:target:lun 5669806e231SRuslan Ermilov(XPT_SCAN_LUN) for new devices or devices that have gone away. 5679806e231SRuslan ErmilovThe user 5689806e231SRuslan Ermilovmay specify a scan of all busses, a single bus, or a lun. 5699806e231SRuslan ErmilovScanning all luns 5700227791bSRuslan Ermilovon a target is not supported. 571d68fae58SEdward Tomasz Napierala.It Ic reprobe 572d68fae58SEdward Tomasz NapieralaTell the kernel to refresh the information about the device and 573d68fae58SEdward Tomasz Napieralanotify the upper layer, 574d68fae58SEdward Tomasz Napierala.Xr GEOM 4 . 575d68fae58SEdward Tomasz NapieralaThis includes sending the SCSI READ CAPACITY command and updating 576d68fae58SEdward Tomasz Napieralathe disk size visible to the rest of the system. 57733fab22eSKenneth D. Merry.It Ic reset 5785710d224SKenneth D. MerryTell the kernel to reset all busses in the system (with the 5795710d224SKenneth D. Merry.Ar all 5805710d224SKenneth D. Merryargument) or the given bus (XPT_RESET_BUS) by issuing a SCSI bus 581a2a44836SMatt Jacobreset for that bus, or to reset the given bus:target:lun 582a2a44836SMatt Jacob(XPT_RESET_DEV), typically by issuing a BUS DEVICE RESET message after 583ef8f7ac9SSheldon Hearnconnecting to that device. 584ef8f7ac9SSheldon HearnNote that this can have a destructive impact 585a2a44836SMatt Jacobon the system. 58633fab22eSKenneth D. Merry.It Ic defects 587a1736be3SKenneth D. MerrySend the 588a1736be3SKenneth D. Merry.Tn SCSI 589a1736be3SKenneth D. MerryREAD DEFECT DATA (10) command (0x37) or the 590a1736be3SKenneth D. Merry.Tn SCSI 591a1736be3SKenneth D. MerryREAD DEFECT DATA (12) command (0xB7) to the given device, and 592525689f1SJustin T. Gibbsprint out any combination of: the total number of defects, the primary 593525689f1SJustin T. Gibbsdefect list (PLIST), and the grown defect list (GLIST). 5941252c1bbSRuslan Ermilov.Bl -tag -width 11n 595525689f1SJustin T. Gibbs.It Fl f Ar format 596a1736be3SKenneth D. MerrySpecify the requested format of the defect list. 5979806e231SRuslan ErmilovThe format argument is 5989806e231SRuslan Ermilovrequired. 5999806e231SRuslan ErmilovMost drives support the physical sector format. 6009806e231SRuslan ErmilovSome drives 6019806e231SRuslan Ermilovsupport the logical block format. 6020227791bSRuslan ErmilovMany drives, if they do not support the 603525689f1SJustin T. Gibbsrequested format, return the data in an alternate format, along with sense 6040227791bSRuslan Ermilovinformation indicating that the requested data format is not supported. 605e1205e80SPhilippe CharnierThe 6067c7fb079SRuslan Ermilov.Nm 607e1205e80SPhilippe Charnierutility 608525689f1SJustin T. Gibbsattempts to detect this, and print out whatever format the drive returns. 6090227791bSRuslan ErmilovIf the drive uses a non-standard sense code to report that it does not 610525689f1SJustin T. Gibbssupport the requested format, 6117c7fb079SRuslan Ermilov.Nm 612525689f1SJustin T. Gibbswill probably see the error as a failure to complete the request. 613a1736be3SKenneth D. Merry.Pp 614a1736be3SKenneth D. MerryThe format options are: 615a1736be3SKenneth D. Merry.Bl -tag -width 9n 616a1736be3SKenneth D. Merry.It block 617a1736be3SKenneth D. MerryPrint out the list as logical blocks. 618a1736be3SKenneth D. MerryThis is limited to 32-bit block sizes, and isn't supported by many modern 619a1736be3SKenneth D. Merrydrives. 620a1736be3SKenneth D. Merry.It longblock 621a1736be3SKenneth D. MerryPrint out the list as logical blocks. 622a1736be3SKenneth D. MerryThis option uses a 64-bit block size. 623a1736be3SKenneth D. Merry.It bfi 624a1736be3SKenneth D. MerryPrint out the list in bytes from index format. 625a1736be3SKenneth D. Merry.It extbfi 626a1736be3SKenneth D. MerryPrint out the list in extended bytes from index format. 627a1736be3SKenneth D. MerryThe extended format allows for ranges of blocks to be printed. 628a1736be3SKenneth D. Merry.It phys 629a1736be3SKenneth D. MerryPrint out the list in physical sector format. 630a1736be3SKenneth D. MerryMost drives support this format. 631a1736be3SKenneth D. Merry.It extphys 632a1736be3SKenneth D. MerryPrint out the list in extended physical sector format. 633a1736be3SKenneth D. MerryThe extended format allows for ranges of blocks to be printed. 634a1736be3SKenneth D. Merry.El 635525689f1SJustin T. Gibbs.It Fl G 6369806e231SRuslan ErmilovPrint out the grown defect list. 6379806e231SRuslan ErmilovThis is a list of bad blocks that have 638525689f1SJustin T. Gibbsbeen remapped since the disk left the factory. 639525689f1SJustin T. Gibbs.It Fl P 640525689f1SJustin T. GibbsPrint out the primary defect list. 641a1736be3SKenneth D. MerryThis is the list of defects that were present in the factory. 642a1736be3SKenneth D. Merry.It Fl q 643a1736be3SKenneth D. MerryWhen printing status information with 644a1736be3SKenneth D. Merry.Fl s , 645a1736be3SKenneth D. Merryonly print the number of defects. 646a1736be3SKenneth D. Merry.It Fl s 647a1736be3SKenneth D. MerryJust print the number of defects, not the list of defects. 648a1736be3SKenneth D. Merry.It Fl S Ar offset 649a1736be3SKenneth D. MerrySpecify the starting offset into the defect list. 650a1736be3SKenneth D. MerryThis implies using the 651a1736be3SKenneth D. Merry.Tn SCSI 652a1736be3SKenneth D. MerryREAD DEFECT DATA (12) command, as the 10 byte version of the command 653a1736be3SKenneth D. Merrydoesn't support the address descriptor index field. 654a1736be3SKenneth D. MerryNot all drives support the 12 byte command, and some drives that support 655a1736be3SKenneth D. Merrythe 12 byte command don't support the address descriptor index field. 656a1736be3SKenneth D. Merry.It Fl X 657a1736be3SKenneth D. MerryPrint out defects in hexadecimal (base 16) form instead of base 10 form. 658525689f1SJustin T. Gibbs.El 659525689f1SJustin T. Gibbs.Pp 660525689f1SJustin T. GibbsIf neither 661525689f1SJustin T. Gibbs.Fl P 662525689f1SJustin T. Gibbsnor 663525689f1SJustin T. Gibbs.Fl G 664525689f1SJustin T. Gibbsis specified, 6657c7fb079SRuslan Ermilov.Nm 666525689f1SJustin T. Gibbswill print out the number of defects given in the READ DEFECT DATA header 667525689f1SJustin T. Gibbsreturned from the drive. 6687027b9cdSKenneth D. MerrySome drives will report 0 defects if neither the primary or grown defect 6697027b9cdSKenneth D. Merrylists are requested. 67033fab22eSKenneth D. Merry.It Ic modepage 6719806e231SRuslan ErmilovAllows the user to display and optionally edit a SCSI mode page. 6729806e231SRuslan ErmilovThe mode 673525689f1SJustin T. Gibbspage formats are located in 674525689f1SJustin T. Gibbs.Pa /usr/share/misc/scsi_modes . 675525689f1SJustin T. GibbsThis can be overridden by specifying a different file in the 676525689f1SJustin T. Gibbs.Ev SCSI_MODES 67733fab22eSKenneth D. Merryenvironment variable. 67833fab22eSKenneth D. MerryThe 67933fab22eSKenneth D. Merry.Ic modepage 68033fab22eSKenneth D. Merrycommand takes several arguments: 6811252c1bbSRuslan Ermilov.Bl -tag -width 12n 6829deea857SKenneth D. Merry.It Fl d 683525689f1SJustin T. GibbsDisable block descriptors for mode sense. 6847e32b20dSKelly Yancey.It Fl b 6857e32b20dSKelly YanceyDisplays mode page data in binary format. 686525689f1SJustin T. Gibbs.It Fl e 6879806e231SRuslan ErmilovThis flag allows the user to edit values in the mode page. 6889806e231SRuslan ErmilovThe user may 6897e32b20dSKelly Yanceyeither edit mode page values with the text editor pointed to by his 6907e32b20dSKelly Yancey.Ev EDITOR 6917e32b20dSKelly Yanceyenvironment variable, or supply mode page values via standard input, using 6927e32b20dSKelly Yanceythe same format that 6937c7fb079SRuslan Ermilov.Nm 6949806e231SRuslan Ermilovuses to display mode page values. 6959806e231SRuslan ErmilovThe editor will be invoked if 6967c7fb079SRuslan Ermilov.Nm 6977e32b20dSKelly Yanceydetects that standard input is terminal. 6987e32b20dSKelly Yancey.It Fl l 6997e32b20dSKelly YanceyLists all available mode pages. 700525689f1SJustin T. Gibbs.It Fl m Ar mode_page 701525689f1SJustin T. GibbsThis specifies the number of the mode page the user would like to view 7029806e231SRuslan Ermilovand/or edit. 7039806e231SRuslan ErmilovThis argument is mandatory unless 7049402dd99SKelly Yancey.Fl l 7059402dd99SKelly Yanceyis specified. 7061ac2383cSBill Fumerola.It Fl P Ar pgctl 7079806e231SRuslan ErmilovThis allows the user to specify the page control field. 7089806e231SRuslan ErmilovPossible values are: 709525689f1SJustin T. Gibbs.Bl -tag -width xxx -compact 71046a1f3b4SKenneth D. Merry.It 0 711525689f1SJustin T. GibbsCurrent values 71246a1f3b4SKenneth D. Merry.It 1 713525689f1SJustin T. GibbsChangeable values 71446a1f3b4SKenneth D. Merry.It 2 715525689f1SJustin T. GibbsDefault values 71646a1f3b4SKenneth D. Merry.It 3 717525689f1SJustin T. GibbsSaved values 718525689f1SJustin T. Gibbs.El 719525689f1SJustin T. Gibbs.El 72033fab22eSKenneth D. Merry.It Ic cmd 72180976615SAlexander MotinAllows the user to send an arbitrary ATA or SCSI CDB to any device. 72233fab22eSKenneth D. MerryThe 72333fab22eSKenneth D. Merry.Ic cmd 724525689f1SJustin T. Gibbsfunction requires the 725525689f1SJustin T. Gibbs.Fl c 72680976615SAlexander Motinargument to specify SCSI CDB or the 72780976615SAlexander Motin.Fl a 72880976615SAlexander Motinargument to specify ATA Command Block registers values. 7299806e231SRuslan ErmilovOther arguments are optional, depending on 7309806e231SRuslan Ermilovthe command type. 7319806e231SRuslan ErmilovThe command and data specification syntax is documented 732525689f1SJustin T. Gibbsin 73396a93c63SKenneth D. Merry.Xr cam_cdbparse 3 . 734a53bb70bSJoel DahlNOTE: If the CDB specified causes data to be transferred to or from the 735525689f1SJustin T. GibbsSCSI device in question, you MUST specify either 736525689f1SJustin T. Gibbs.Fl i 737525689f1SJustin T. Gibbsor 738525689f1SJustin T. Gibbs.Fl o . 7391252c1bbSRuslan Ermilov.Bl -tag -width 17n 74080976615SAlexander Motin.It Fl a Ar cmd Op args 74180976615SAlexander MotinThis specifies the content of 12 ATA Command Block registers (command, 74280976615SAlexander Motinfeatures, lba_low, lba_mid, lba_high, device, lba_low_exp, lba_mid_exp. 74380976615SAlexander Motinlba_high_exp, features_exp, sector_count, sector_count_exp). 744525689f1SJustin T. Gibbs.It Fl c Ar cmd Op args 7459806e231SRuslan ErmilovThis specifies the SCSI CDB. 74680976615SAlexander MotinSCSI CDBs may be 6, 10, 12 or 16 bytes. 747f930c0dbSAlexander Motin.It Fl d 748f930c0dbSAlexander MotinSpecifies DMA protocol to be used for ATA command. 749f930c0dbSAlexander Motin.It Fl f 750f930c0dbSAlexander MotinSpecifies FPDMA (NCQ) protocol to be used for ATA command. 751525689f1SJustin T. Gibbs.It Fl i Ar len Ar fmt 752525689f1SJustin T. GibbsThis specifies the amount of data to read, and how it should be displayed. 753525689f1SJustin T. GibbsIf the format is 754525689f1SJustin T. Gibbs.Sq - , 755525689f1SJustin T. Gibbs.Ar len 756525689f1SJustin T. Gibbsbytes of data will be read from the device and written to standard output. 757525689f1SJustin T. Gibbs.It Fl o Ar len Ar fmt Op args 758525689f1SJustin T. GibbsThis specifies the amount of data to be written to a device, and the data 7599806e231SRuslan Ermilovthat is to be written. 7609806e231SRuslan ErmilovIf the format is 761525689f1SJustin T. Gibbs.Sq - , 762525689f1SJustin T. Gibbs.Ar len 763525689f1SJustin T. Gibbsbytes of data will be read from standard input and written to the device. 76480976615SAlexander Motin.It Fl r Ar fmt 76580976615SAlexander MotinThis specifies that 11 result ATA Command Block registers should be displayed 76680976615SAlexander Motin(status, error, lba_low, lba_mid, lba_high, device, lba_low_exp, lba_mid_exp, 76780976615SAlexander Motinlba_high_exp, sector_count, sector_count_exp), and how. 76880976615SAlexander MotinIf the format is 76980976615SAlexander Motin.Sq - , 77080976615SAlexander Motin11 result registers will be written to standard output in hex. 771525689f1SJustin T. Gibbs.El 77206e79492SKenneth D. Merry.It Ic smpcmd 77306e79492SKenneth D. MerryAllows the user to send an arbitrary Serial 77406e79492SKenneth D. MerryManagement Protocol (SMP) command to a device. 77506e79492SKenneth D. MerryThe 77606e79492SKenneth D. Merry.Ic smpcmd 77706e79492SKenneth D. Merryfunction requires the 77806e79492SKenneth D. Merry.Fl r 77906e79492SKenneth D. Merryargument to specify the SMP request to be sent, and the 78006e79492SKenneth D. Merry.Fl R 78106e79492SKenneth D. Merryargument to specify the format of the SMP response. 78206e79492SKenneth D. MerryThe syntax for the SMP request and response arguments is documented in 78306e79492SKenneth D. Merry.Xr cam_cdbparse 3 . 78406e79492SKenneth D. Merry.Pp 78506e79492SKenneth D. MerryNote that SAS adapters that support SMP passthrough (at least the currently 78606e79492SKenneth D. Merryknown adapters) do not accept CRC bytes from the user in the request and do 78706e79492SKenneth D. Merrynot pass CRC bytes back to the user in the response. 78806e79492SKenneth D. MerryTherefore users should not include the CRC bytes in the length of the 78906e79492SKenneth D. Merryrequest and not expect CRC bytes to be returned in the response. 79006e79492SKenneth D. Merry.Bl -tag -width 17n 79106e79492SKenneth D. Merry.It Fl r Ar len Ar fmt Op args 79206e79492SKenneth D. MerryThis specifies the size of the SMP request, without the CRC bytes, and the 7935bb17266SJoel DahlSMP request format. 7945bb17266SJoel DahlIf the format is 79506e79492SKenneth D. Merry.Sq - , 79606e79492SKenneth D. Merry.Ar len 79706e79492SKenneth D. Merrybytes of data will be read from standard input and written as the SMP 79806e79492SKenneth D. Merryrequest. 79906e79492SKenneth D. Merry.It Fl R Ar len Ar fmt Op args 80006e79492SKenneth D. MerryThis specifies the size of the buffer allocated for the SMP response, and 80106e79492SKenneth D. Merrythe SMP response format. 80206e79492SKenneth D. MerryIf the format is 80306e79492SKenneth D. Merry.Sq - , 80406e79492SKenneth D. Merry.Ar len 80506e79492SKenneth D. Merrybytes of data will be allocated for the response and the response will be 80606e79492SKenneth D. Merrywritten to standard output. 80706e79492SKenneth D. Merry.El 80806e79492SKenneth D. Merry.It Ic smprg 80906e79492SKenneth D. MerryAllows the user to send the Serial Management Protocol (SMP) Report General 81006e79492SKenneth D. Merrycommand to a device. 81106e79492SKenneth D. Merry.Nm 81206e79492SKenneth D. Merrywill display the data returned by the Report General command. 81306e79492SKenneth D. MerryIf the SMP target supports the long response format, the additional data 81406e79492SKenneth D. Merrywill be requested and displayed automatically. 81506e79492SKenneth D. Merry.Bl -tag -width 8n 81606e79492SKenneth D. Merry.It Fl l 81706e79492SKenneth D. MerryRequest the long response format only. 81806e79492SKenneth D. MerryNot all SMP targets support the long response format. 81906e79492SKenneth D. MerryThis option causes 82006e79492SKenneth D. Merry.Nm 82106e79492SKenneth D. Merryto skip sending the initial report general request without the long bit set 82206e79492SKenneth D. Merryand only issue a report general request with the long bit set. 82306e79492SKenneth D. Merry.El 82406e79492SKenneth D. Merry.It Ic smppc 82506e79492SKenneth D. MerryAllows the user to issue the Serial Management Protocol (SMP) PHY Control 82606e79492SKenneth D. Merrycommand to a device. 82706e79492SKenneth D. MerryThis function should be used with some caution, as it can render devices 82806e79492SKenneth D. Merryinaccessible, and could potentially cause data corruption as well. 82906e79492SKenneth D. MerryThe 83006e79492SKenneth D. Merry.Fl p 83106e79492SKenneth D. Merryargument is required to specify the PHY to operate on. 83206e79492SKenneth D. Merry.Bl -tag -width 17n 83306e79492SKenneth D. Merry.It Fl p Ar phy 83406e79492SKenneth D. MerrySpecify the PHY to operate on. 83506e79492SKenneth D. MerryThis argument is required. 83606e79492SKenneth D. Merry.It Fl l 83706e79492SKenneth D. MerryRequest the long request/response format. 83806e79492SKenneth D. MerryNot all SMP targets support the long response format. 83906e79492SKenneth D. MerryFor the PHY Control command, this currently only affects whether the 84006e79492SKenneth D. Merryrequest length is set to a value other than 0. 84106e79492SKenneth D. Merry.It Fl o Ar operation 84206e79492SKenneth D. MerrySpecify a PHY control operation. 84306e79492SKenneth D. MerryOnly one 84406e79492SKenneth D. Merry.Fl o 84506e79492SKenneth D. Merryoperation may be specified. 84606e79492SKenneth D. MerryThe operation may be specified numerically (in decimal, hexadecimal, or octal) 84706e79492SKenneth D. Merryor one of the following operation names may be specified: 84806e79492SKenneth D. Merry.Bl -tag -width 16n 84906e79492SKenneth D. Merry.It nop 85006e79492SKenneth D. MerryNo operation. 85106e79492SKenneth D. MerryIt is not necessary to specify this argument. 85206e79492SKenneth D. Merry.It linkreset 85306e79492SKenneth D. MerrySend the LINK RESET command to the phy. 85406e79492SKenneth D. Merry.It hardreset 85506e79492SKenneth D. MerrySend the HARD RESET command to the phy. 85606e79492SKenneth D. Merry.It disable 85706e79492SKenneth D. MerrySend the DISABLE command to the phy. 85806e79492SKenneth D. MerryNote that the LINK RESET or HARD RESET commands should re-enable the phy. 859ee5320f4SKenneth D. Merry.It clearerrlog 86006e79492SKenneth D. MerrySend the CLEAR ERROR LOG command. 86106e79492SKenneth D. MerryThis clears the error log counters for the specified phy. 86206e79492SKenneth D. Merry.It clearaffiliation 86306e79492SKenneth D. MerrySend the CLEAR AFFILIATION command. 86406e79492SKenneth D. MerryThis clears the affiliation from the STP initiator port with the same SAS 86506e79492SKenneth D. Merryaddress as the SMP initiator that requests the clear operation. 86606e79492SKenneth D. Merry.It sataportsel 86706e79492SKenneth D. MerrySend the TRANSMIT SATA PORT SELECTION SIGNAL command to the phy. 86806e79492SKenneth D. MerryThis will cause a SATA port selector to use the given phy as its active phy 86906e79492SKenneth D. Merryand make the other phy inactive. 87006e79492SKenneth D. Merry.It clearitnl 87106e79492SKenneth D. MerrySend the CLEAR STP I_T NEXUS LOSS command to the PHY. 87206e79492SKenneth D. Merry.It setdevname 87306e79492SKenneth D. MerrySend the SET ATTACHED DEVICE NAME command to the PHY. 87406e79492SKenneth D. MerryThis requires the 87506e79492SKenneth D. Merry.Fl d 87606e79492SKenneth D. Merryargument to specify the device name. 87706e79492SKenneth D. Merry.El 87806e79492SKenneth D. Merry.It Fl d Ar name 87906e79492SKenneth D. MerrySpecify the attached device name. 88006e79492SKenneth D. MerryThis option is needed with the 88106e79492SKenneth D. Merry.Fl o Ar setdevname 88206e79492SKenneth D. Merryphy operation. 88306e79492SKenneth D. MerryThe name is a 64-bit number, and can be specified in decimal, hexadecimal 88406e79492SKenneth D. Merryor octal format. 88506e79492SKenneth D. Merry.It Fl m Ar rate 88606e79492SKenneth D. MerrySet the minimum physical link rate for the phy. 88706e79492SKenneth D. MerryThis is a numeric argument. 88806e79492SKenneth D. MerryCurrently known link rates are: 88906e79492SKenneth D. Merry.Bl -tag -width 5n 89006e79492SKenneth D. Merry.It 0x0 89106e79492SKenneth D. MerryDo not change current value. 89206e79492SKenneth D. Merry.It 0x8 89306e79492SKenneth D. Merry1.5 Gbps 89406e79492SKenneth D. Merry.It 0x9 89506e79492SKenneth D. Merry3 Gbps 89606e79492SKenneth D. Merry.It 0xa 89706e79492SKenneth D. Merry6 Gbps 89806e79492SKenneth D. Merry.El 89906e79492SKenneth D. Merry.Pp 90006e79492SKenneth D. MerryOther values may be specified for newer physical link rates. 90106e79492SKenneth D. Merry.It Fl M Ar rate 90206e79492SKenneth D. MerrySet the maximum physical link rate for the phy. 90306e79492SKenneth D. MerryThis is a numeric argument. 90406e79492SKenneth D. MerrySee the 90506e79492SKenneth D. Merry.Fl m 90606e79492SKenneth D. Merryargument description for known link rate arguments. 90706e79492SKenneth D. Merry.It Fl T Ar pp_timeout 90806e79492SKenneth D. MerrySet the partial pathway timeout value, in microseconds. 90906e79492SKenneth D. MerrySee the 91006e79492SKenneth D. Merry.Tn ANSI 91106e79492SKenneth D. Merry.Tn SAS 91219769ec2SJoel DahlProtocol Layer (SPL) 91306e79492SKenneth D. Merryspecification for more information on this field. 91406e79492SKenneth D. Merry.It Fl a Ar enable|disable 91506e79492SKenneth D. MerryEnable or disable SATA slumber phy power conditions. 91606e79492SKenneth D. Merry.It Fl A Ar enable|disable 91706e79492SKenneth D. MerryEnable or disable SATA partial power conditions. 91806e79492SKenneth D. Merry.It Fl s Ar enable|disable 91906e79492SKenneth D. MerryEnable or disable SAS slumber phy power conditions. 92006e79492SKenneth D. Merry.It Fl S Ar enable|disable 92106e79492SKenneth D. MerryEnable or disable SAS partial phy power conditions. 92206e79492SKenneth D. Merry.El 92306e79492SKenneth D. Merry.It Ic smpphylist 92406e79492SKenneth D. MerryList phys attached to a SAS expander, the address of the end device 92506e79492SKenneth D. Merryattached to the phy, and the inquiry data for that device and peripheral 92606e79492SKenneth D. Merrydevices attached to that device. 92706e79492SKenneth D. MerryThe inquiry data and peripheral devices are displayed if available. 92806e79492SKenneth D. Merry.Bl -tag -width 5n 92906e79492SKenneth D. Merry.It Fl l 93006e79492SKenneth D. MerryTurn on the long response format for the underlying SMP commands used for 93106e79492SKenneth D. Merrythis command. 93206e79492SKenneth D. Merry.It Fl q 93306e79492SKenneth D. MerryOnly print out phys that are attached to a device in the CAM EDT (Existing 93406e79492SKenneth D. MerryDevice Table). 93506e79492SKenneth D. Merry.El 93606e79492SKenneth D. Merry.It Ic smpmaninfo 93706e79492SKenneth D. MerrySend the SMP Report Manufacturer Information command to the device and 93806e79492SKenneth D. Merrydisplay the response. 93906e79492SKenneth D. Merry.Bl -tag -width 5n 94006e79492SKenneth D. Merry.It Fl l 94106e79492SKenneth D. MerryTurn on the long response format for the underlying SMP commands used for 94206e79492SKenneth D. Merrythis command. 94306e79492SKenneth D. Merry.El 94433fab22eSKenneth D. Merry.It Ic debug 9459806e231SRuslan ErmilovTurn on CAM debugging printfs in the kernel. 9469806e231SRuslan ErmilovThis requires options CAMDEBUG 9479806e231SRuslan Ermilovin your kernel config file. 9489806e231SRuslan ErmilovWARNING: enabling debugging printfs currently 9499806e231SRuslan Ermilovcauses an EXTREME number of kernel printfs. 9509806e231SRuslan ErmilovYou may have difficulty 951525689f1SJustin T. Gibbsturning off the debugging printfs once they start, since the kernel will be 952525689f1SJustin T. Gibbsbusy printing messages and unable to service other requests quickly. 95333fab22eSKenneth D. MerryThe 95433fab22eSKenneth D. Merry.Ic debug 95533fab22eSKenneth D. Merryfunction takes a number of arguments: 9561252c1bbSRuslan Ermilov.Bl -tag -width 18n 957525689f1SJustin T. Gibbs.It Fl I 958525689f1SJustin T. GibbsEnable CAM_DEBUG_INFO printfs. 959a7e5261eSNate Lawson.It Fl P 960a7e5261eSNate LawsonEnable CAM_DEBUG_PERIPH printfs. 961525689f1SJustin T. Gibbs.It Fl T 962525689f1SJustin T. GibbsEnable CAM_DEBUG_TRACE printfs. 963525689f1SJustin T. Gibbs.It Fl S 964525689f1SJustin T. GibbsEnable CAM_DEBUG_SUBTRACE printfs. 965a7e5261eSNate Lawson.It Fl X 966a7e5261eSNate LawsonEnable CAM_DEBUG_XPT printfs. 967d05caa00SKenneth D. Merry.It Fl c 9689806e231SRuslan ErmilovEnable CAM_DEBUG_CDB printfs. 9699806e231SRuslan ErmilovThis will cause the kernel to print out the 970d05caa00SKenneth D. MerrySCSI CDBs sent to the specified device(s). 971fbfb753fSAlexander Motin.It Fl p 972fbfb753fSAlexander MotinEnable CAM_DEBUG_PROBE printfs. 973525689f1SJustin T. Gibbs.It all 974525689f1SJustin T. GibbsEnable debugging for all devices. 975525689f1SJustin T. Gibbs.It off 976525689f1SJustin T. GibbsTurn off debugging for all devices 977525689f1SJustin T. Gibbs.It bus Ns Op :target Ns Op :lun 9789806e231SRuslan ErmilovTurn on debugging for the given bus, target or lun. 9799806e231SRuslan ErmilovIf the lun or target 9809806e231SRuslan Ermilovand lun are not specified, they are wildcarded. 9819806e231SRuslan Ermilov(i.e., just specifying a 982525689f1SJustin T. Gibbsbus turns on debugging printfs for all devices on that bus.) 983525689f1SJustin T. Gibbs.El 98433fab22eSKenneth D. Merry.It Ic tags 9859deea857SKenneth D. MerryShow or set the number of "tagged openings" or simultaneous transactions 9869806e231SRuslan Ermilovwe attempt to queue to a particular device. 9879806e231SRuslan ErmilovBy default, the 98833fab22eSKenneth D. Merry.Ic tags 9899806e231SRuslan Ermilovcommand, with no command-specific arguments (i.e., only generic arguments) 9909deea857SKenneth D. Merryprints out the "soft" maximum number of transactions that can be queued to 9919806e231SRuslan Ermilovthe device in question. 9929806e231SRuslan ErmilovFor more detailed information, use the 9939deea857SKenneth D. Merry.Fl v 9949deea857SKenneth D. Merryargument described below. 9951252c1bbSRuslan Ermilov.Bl -tag -width 7n 9969deea857SKenneth D. Merry.It Fl N Ar tags 9979806e231SRuslan ErmilovSet the number of tags for the given device. 9989806e231SRuslan ErmilovThis must be between the 9999806e231SRuslan Ermilovminimum and maximum number set in the kernel quirk table. 10009806e231SRuslan ErmilovThe default for 10019deea857SKenneth D. Merrymost devices that support tagged queueing is a minimum of 2 and a maximum 10029806e231SRuslan Ermilovof 255. 10039806e231SRuslan ErmilovThe minimum and maximum values for a given device may be 10049deea857SKenneth D. Merrydetermined by using the 10059deea857SKenneth D. Merry.Fl v 10069806e231SRuslan Ermilovswitch. 10079806e231SRuslan ErmilovThe meaning of the 10089deea857SKenneth D. Merry.Fl v 10099deea857SKenneth D. Merryswitch for this 10107c7fb079SRuslan Ermilov.Nm 10119deea857SKenneth D. Merrysubcommand is described below. 10129deea857SKenneth D. Merry.It Fl q 10130227791bSRuslan ErmilovBe quiet, and do not report the number of tags. 10149806e231SRuslan ErmilovThis is generally used when 10159deea857SKenneth D. Merrysetting the number of tags. 10169deea857SKenneth D. Merry.It Fl v 10179deea857SKenneth D. MerryThe verbose flag has special functionality for the 10189deea857SKenneth D. Merry.Em tags 10199806e231SRuslan Ermilovargument. 10209806e231SRuslan ErmilovIt causes 10217c7fb079SRuslan Ermilov.Nm 10229deea857SKenneth D. Merryto print out the tagged queueing related fields of the XPT_GDEV_TYPE CCB: 10231252c1bbSRuslan Ermilov.Bl -tag -width 13n 10249deea857SKenneth D. Merry.It dev_openings 10259deea857SKenneth D. MerryThis is the amount of capacity for transactions queued to a given device. 10269deea857SKenneth D. Merry.It dev_active 10279deea857SKenneth D. MerryThis is the number of transactions currently queued to a device. 10289deea857SKenneth D. Merry.It devq_openings 10299806e231SRuslan ErmilovThis is the kernel queue space for transactions. 10309806e231SRuslan ErmilovThis count usually mirrors 10319deea857SKenneth D. Merrydev_openings except during error recovery operations when 10329deea857SKenneth D. Merrythe device queue is frozen (device is not allowed to receive 10339deea857SKenneth D. Merrycommands), the number of dev_openings is reduced, or transaction 10349deea857SKenneth D. Merryreplay is occurring. 10359deea857SKenneth D. Merry.It devq_queued 10369deea857SKenneth D. MerryThis is the number of transactions waiting in the kernel queue for capacity 10379806e231SRuslan Ermilovon the device. 10389806e231SRuslan ErmilovThis number is usually zero unless error recovery is in 10399deea857SKenneth D. Merryprogress. 10409deea857SKenneth D. Merry.It held 10419deea857SKenneth D. MerryThe held count is the number of CCBs held by peripheral drivers that have 10429deea857SKenneth D. Merryeither just been completed or are about to be released to the transport 10439806e231SRuslan Ermilovlayer for service by a device. 10449806e231SRuslan ErmilovHeld CCBs reserve capacity on a given 10459deea857SKenneth D. Merrydevice. 10469deea857SKenneth D. Merry.It mintags 10479deea857SKenneth D. MerryThis is the current "hard" minimum number of transactions that can be 10489806e231SRuslan Ermilovqueued to a device at once. 10499806e231SRuslan ErmilovThe 10509deea857SKenneth D. Merry.Ar dev_openings 10519806e231SRuslan Ermilovvalue above cannot go below this number. 10529806e231SRuslan ErmilovThe default value for 10539deea857SKenneth D. Merry.Ar mintags 10549deea857SKenneth D. Merryis 2, although it may be set higher or lower for various devices. 10559deea857SKenneth D. Merry.It maxtags 10569deea857SKenneth D. MerryThis is the "hard" maximum number of transactions that can be queued to a 10579806e231SRuslan Ermilovdevice at one time. 10589806e231SRuslan ErmilovThe 10599deea857SKenneth D. Merry.Ar dev_openings 10609806e231SRuslan Ermilovvalue cannot go above this number. 10619806e231SRuslan ErmilovThe default value for 10629deea857SKenneth D. Merry.Ar maxtags 10639deea857SKenneth D. Merryis 255, although it may be set higher or lower for various devices. 10649deea857SKenneth D. Merry.El 10659deea857SKenneth D. Merry.El 106633fab22eSKenneth D. Merry.It Ic negotiate 10679806e231SRuslan ErmilovShow or negotiate various communication parameters. 10689806e231SRuslan ErmilovSome controllers may 10699806e231SRuslan Ermilovnot support setting or changing some of these values. 10709806e231SRuslan ErmilovFor instance, the 10719deea857SKenneth D. MerryAdaptec 174x controllers do not support changing a device's sync rate or 10729deea857SKenneth D. Merryoffset. 1073e1205e80SPhilippe CharnierThe 10747c7fb079SRuslan Ermilov.Nm 1075e1205e80SPhilippe Charnierutility 10769deea857SKenneth D. Merrywill not attempt to set the parameter if the controller indicates that it 10779806e231SRuslan Ermilovdoes not support setting the parameter. 10789806e231SRuslan ErmilovTo find out what the controller 10799deea857SKenneth D. Merrysupports, use the 10809deea857SKenneth D. Merry.Fl v 10819806e231SRuslan Ermilovflag. 10829806e231SRuslan ErmilovThe meaning of the 10839deea857SKenneth D. Merry.Fl v 10849deea857SKenneth D. Merryflag for the 108533fab22eSKenneth D. Merry.Ic negotiate 10869806e231SRuslan Ermilovcommand is described below. 10870227791bSRuslan ErmilovAlso, some controller drivers do not support 10889deea857SKenneth D. Merrysetting negotiation parameters, even if the underlying controller supports 10899806e231SRuslan Ermilovnegotiation changes. 10909806e231SRuslan ErmilovSome controllers, such as the Advansys wide 10919deea857SKenneth D. Merrycontrollers, support enabling and disabling synchronous negotiation for 10929deea857SKenneth D. Merrya device, but do not support setting the synchronous negotiation rate. 10931252c1bbSRuslan Ermilov.Bl -tag -width 17n 10949deea857SKenneth D. Merry.It Fl a 10959deea857SKenneth D. MerryAttempt to make the negotiation settings take effect immediately by sending 10969deea857SKenneth D. Merrya Test Unit Ready command to the device. 10979deea857SKenneth D. Merry.It Fl c 10989806e231SRuslan ErmilovShow or set current negotiation settings. 10999806e231SRuslan ErmilovThis is the default. 11009deea857SKenneth D. Merry.It Fl D Ar enable|disable 11019deea857SKenneth D. MerryEnable or disable disconnection. 1102b447e682SAlexander Motin.It Fl M Ar mode 1103b447e682SAlexander MotinSet ATA mode. 11049deea857SKenneth D. Merry.It Fl O Ar offset 11059deea857SKenneth D. MerrySet the command delay offset. 11069deea857SKenneth D. Merry.It Fl q 11070227791bSRuslan ErmilovBe quiet, do not print anything. 11089806e231SRuslan ErmilovThis is generally useful when you want to 11090227791bSRuslan Ermilovset a parameter, but do not want any status information. 11109deea857SKenneth D. Merry.It Fl R Ar syncrate 11119806e231SRuslan ErmilovChange the synchronization rate for a device. 11129806e231SRuslan ErmilovThe sync rate is a floating 11139806e231SRuslan Ermilovpoint value specified in MHz. 11149806e231SRuslan ErmilovSo, for instance, 11159deea857SKenneth D. Merry.Sq 20.000 11169deea857SKenneth D. Merryis a legal value, as is 11179deea857SKenneth D. Merry.Sq 20 . 11189deea857SKenneth D. Merry.It Fl T Ar enable|disable 11199deea857SKenneth D. MerryEnable or disable tagged queueing for a device. 11209deea857SKenneth D. Merry.It Fl U 11219806e231SRuslan ErmilovShow or set user negotiation settings. 11229806e231SRuslan ErmilovThe default is to show or set 11239deea857SKenneth D. Merrycurrent negotiation settings. 11249deea857SKenneth D. Merry.It Fl v 11259deea857SKenneth D. MerryThe verbose switch has special meaning for the 112633fab22eSKenneth D. Merry.Ic negotiate 11279806e231SRuslan Ermilovsubcommand. 11289806e231SRuslan ErmilovIt causes 11297c7fb079SRuslan Ermilov.Nm 11309deea857SKenneth D. Merryto print out the contents of a Path Inquiry (XPT_PATH_INQ) CCB sent to the 11319deea857SKenneth D. Merrycontroller driver. 11329deea857SKenneth D. Merry.It Fl W Ar bus_width 11339806e231SRuslan ErmilovSpecify the bus width to negotiate with a device. 11349806e231SRuslan ErmilovThe bus width is 11359806e231SRuslan Ermilovspecified in bits. 11369806e231SRuslan ErmilovThe only useful values to specify are 8, 16, and 32 11379806e231SRuslan Ermilovbits. 11389806e231SRuslan ErmilovThe controller must support the bus width in question in order for 11399deea857SKenneth D. Merrythe setting to take effect. 11409deea857SKenneth D. Merry.El 11419deea857SKenneth D. Merry.Pp 11429deea857SKenneth D. MerryIn general, sync rate and offset settings will not take effect for a 11439806e231SRuslan Ermilovdevice until a command has been sent to the device. 11449806e231SRuslan ErmilovThe 11459deea857SKenneth D. Merry.Fl a 11469deea857SKenneth D. Merryswitch above will automatically send a Test Unit Ready to the device so 11479deea857SKenneth D. Merrynegotiation parameters will take effect. 114833fab22eSKenneth D. Merry.It Ic format 114996a93c63SKenneth D. MerryIssue the 115096a93c63SKenneth D. Merry.Tn SCSI 115196a93c63SKenneth D. MerryFORMAT UNIT command to the named device. 115296a93c63SKenneth D. Merry.Pp 115396a93c63SKenneth D. Merry.Em WARNING! WARNING! WARNING! 115496a93c63SKenneth D. Merry.Pp 11559806e231SRuslan ErmilovLow level formatting a disk will destroy ALL data on the disk. 11569806e231SRuslan ErmilovUse 11579806e231SRuslan Ermilovextreme caution when issuing this command. 11589806e231SRuslan ErmilovMany users low-level format 11599806e231SRuslan Ermilovdisks that do not really need to be low-level formatted. 11609806e231SRuslan ErmilovThere are 116196a93c63SKenneth D. Merryrelatively few scenarios that call for low-level formatting a disk. 116296a93c63SKenneth D. MerryOne reason for 116396a93c63SKenneth D. Merrylow-level formatting a disk is to initialize the disk after changing 11649806e231SRuslan Ermilovits physical sector size. 11659806e231SRuslan ErmilovAnother reason for low-level formatting a disk 116696a93c63SKenneth D. Merryis to revive the disk if you are getting "medium format corrupted" errors 116796a93c63SKenneth D. Merryfrom the disk in response to read and write requests. 116896a93c63SKenneth D. Merry.Pp 11699806e231SRuslan ErmilovSome disks take longer than others to format. 11709806e231SRuslan ErmilovUsers should specify a 11719806e231SRuslan Ermilovtimeout long enough to allow the format to complete. 11729806e231SRuslan ErmilovThe default format 11739806e231SRuslan Ermilovtimeout is 3 hours, which should be long enough for most disks. 11749806e231SRuslan ErmilovSome hard 117596a93c63SKenneth D. Merrydisks will complete a format operation in a very short period of time 11769806e231SRuslan Ermilov(on the order of 5 minutes or less). 11779806e231SRuslan ErmilovThis is often because the drive 11780227791bSRuslan Ermilovdoes not really support the FORMAT UNIT command -- it just accepts the 117996a93c63SKenneth D. Merrycommand, waits a few minutes and then returns it. 118096a93c63SKenneth D. Merry.Pp 118196a93c63SKenneth D. MerryThe 118296a93c63SKenneth D. Merry.Sq format 11839806e231SRuslan Ermilovsubcommand takes several arguments that modify its default behavior. 11849806e231SRuslan ErmilovThe 118596a93c63SKenneth D. Merry.Fl q 118696a93c63SKenneth D. Merryand 118796a93c63SKenneth D. Merry.Fl y 118896a93c63SKenneth D. Merryarguments can be useful for scripts. 11891252c1bbSRuslan Ermilov.Bl -tag -width 6n 119096a93c63SKenneth D. Merry.It Fl q 11910227791bSRuslan ErmilovBe quiet, do not print any status messages. 11929806e231SRuslan ErmilovThis option will not disable 11939806e231SRuslan Ermilovthe questions, however. 11949806e231SRuslan ErmilovTo disable questions, use the 119596a93c63SKenneth D. Merry.Fl y 119696a93c63SKenneth D. Merryargument, below. 1197e9e4d3e4SKenneth D. Merry.It Fl r 1198e9e4d3e4SKenneth D. MerryRun in 1199e9e4d3e4SKenneth D. Merry.Dq report only 1200e9e4d3e4SKenneth D. Merrymode. 1201e9e4d3e4SKenneth D. MerryThis will report status on a format that is already running on the drive. 120296a93c63SKenneth D. Merry.It Fl w 12039806e231SRuslan ErmilovIssue a non-immediate format command. 12049806e231SRuslan ErmilovBy default, 12057c7fb079SRuslan Ermilov.Nm 12069806e231SRuslan Ermilovissues the FORMAT UNIT command with the immediate bit set. 12079806e231SRuslan ErmilovThis tells the 120896a93c63SKenneth D. Merrydevice to immediately return the format command, before the format has 12099806e231SRuslan Ermilovactually completed. 12109806e231SRuslan ErmilovThen, 12117c7fb079SRuslan Ermilov.Nm 121296a93c63SKenneth D. Merrygathers 121396a93c63SKenneth D. Merry.Tn SCSI 121496a93c63SKenneth D. Merrysense information from the device every second to determine how far along 12159806e231SRuslan Ermilovin the format process it is. 12169806e231SRuslan ErmilovIf the 121796a93c63SKenneth D. Merry.Fl w 121896a93c63SKenneth D. Merryargument is specified, 12197c7fb079SRuslan Ermilov.Nm 122096a93c63SKenneth D. Merrywill issue a non-immediate format command, and will be unable to print any 122196a93c63SKenneth D. Merryinformation to let the user know what percentage of the disk has been 122296a93c63SKenneth D. Merryformatted. 122396a93c63SKenneth D. Merry.It Fl y 12240227791bSRuslan ErmilovDo not ask any questions. 12259806e231SRuslan ErmilovBy default, 12267c7fb079SRuslan Ermilov.Nm 122796a93c63SKenneth D. Merrywill ask the user if he/she really wants to format the disk in question, 12289806e231SRuslan Ermilovand also if the default format command timeout is acceptable. 12299806e231SRuslan ErmilovThe user 123096a93c63SKenneth D. Merrywill not be asked about the timeout if a timeout is specified on the 123196a93c63SKenneth D. Merrycommand line. 123296a93c63SKenneth D. Merry.El 1233ffead710SBryan Venteicher.It Ic sanitize 1234ffead710SBryan VenteicherIssue the 1235ffead710SBryan Venteicher.Tn SCSI 1236ffead710SBryan VenteicherSANITIZE command to the named device. 1237ffead710SBryan Venteicher.Pp 1238ffead710SBryan Venteicher.Em WARNING! WARNING! WARNING! 1239ffead710SBryan Venteicher.Pp 1240ffead710SBryan VenteicherALL data in the cache and on the disk will be destroyed or made inaccessible. 1241ffead710SBryan VenteicherRecovery of the data is not possible. 1242ffead710SBryan VenteicherUse extreme caution when issuing this command. 1243ffead710SBryan Venteicher.Pp 1244ffead710SBryan VenteicherThe 1245ffead710SBryan Venteicher.Sq sanitize 1246ffead710SBryan Venteichersubcommand takes several arguments that modify its default behavior. 1247ffead710SBryan VenteicherThe 1248ffead710SBryan Venteicher.Fl q 1249ffead710SBryan Venteicherand 1250ffead710SBryan Venteicher.Fl y 1251ffead710SBryan Venteicherarguments can be useful for scripts. 1252ffead710SBryan Venteicher.Bl -tag -width 6n 1253ffead710SBryan Venteicher.It Fl a Ar operation 1254ffead710SBryan VenteicherSpecify the sanitize operation to perform. 1255ffead710SBryan Venteicher.Bl -tag -width 16n 1256ffead710SBryan Venteicher.It overwrite 1257ffead710SBryan VenteicherPerform an overwrite operation by writing a user supplied 1258ffead710SBryan Venteicherdata pattern to the device one or more times. 1259ffead710SBryan VenteicherThe pattern is given by the 1260ffead710SBryan Venteicher.Fl P 1261ffead710SBryan Venteicherargument. 1262ffead710SBryan VenteicherThe number of times is given by the 1263ffead710SBryan Venteicher.Fl c 1264ffead710SBryan Venteicherargument. 1265ffead710SBryan Venteicher.It block 1266ffead710SBryan VenteicherPerform a block erase operation. 1267ffead710SBryan VenteicherAll the device's blocks are set to a vendor defined 1268ffead710SBryan Venteichervalue, typically zero. 1269ffead710SBryan Venteicher.It crypto 1270ffead710SBryan VenteicherPerform a cryptographic erase operation. 1271ffead710SBryan VenteicherThe encryption keys are changed to prevent the decryption 1272ffead710SBryan Venteicherof the data. 1273ffead710SBryan Venteicher.It exitfailure 1274ffead710SBryan VenteicherExits a previously failed sanitize operation. 1275ffead710SBryan VenteicherA failed sanitize operation can only be exited if it was 1276ffead710SBryan Venteicherrun in the unrestricted completion mode, as provided by the 1277ffead710SBryan Venteicher.Fl U 1278ffead710SBryan Venteicherargument. 1279ffead710SBryan Venteicher.El 1280ffead710SBryan Venteicher.It Fl c Ar passes 1281ffead710SBryan VenteicherThe number of passes when performing an 1282ffead710SBryan Venteicher.Sq overwrite 1283ffead710SBryan Venteicheroperation. 12845bb17266SJoel DahlValid values are between 1 and 31. 12855bb17266SJoel DahlThe default is 1. 1286ffead710SBryan Venteicher.It Fl I 1287ffead710SBryan VenteicherWhen performing an 1288ffead710SBryan Venteicher.Sq overwrite 1289ffead710SBryan Venteicheroperation, the pattern is inverted between consecutive passes. 1290ffead710SBryan Venteicher.It Fl P Ar pattern 1291ffead710SBryan VenteicherPath to the file containing the pattern to use when 1292ffead710SBryan Venteicherperforming an 1293ffead710SBryan Venteicher.Sq overwrite 1294ffead710SBryan Venteicheroperation. 1295ffead710SBryan VenteicherThe pattern is repeated as needed to fill each block. 1296ffead710SBryan Venteicher.It Fl q 1297ffead710SBryan VenteicherBe quiet, do not print any status messages. 1298ffead710SBryan VenteicherThis option will not disable 1299ffead710SBryan Venteicherthe questions, however. 1300ffead710SBryan VenteicherTo disable questions, use the 1301ffead710SBryan Venteicher.Fl y 1302ffead710SBryan Venteicherargument, below. 1303ffead710SBryan Venteicher.It Fl U 1304ffead710SBryan VenteicherPerform the sanitize in the unrestricted completion mode. 1305ffead710SBryan VenteicherIf the operation fails, it can later be exited with the 1306ffead710SBryan Venteicher.Sq exitfailure 1307ffead710SBryan Venteicheroperation. 1308ffead710SBryan Venteicher.It Fl r 1309ffead710SBryan VenteicherRun in 1310ffead710SBryan Venteicher.Dq report only 1311ffead710SBryan Venteichermode. 1312ffead710SBryan VenteicherThis will report status on a sanitize that is already running on the drive. 1313ffead710SBryan Venteicher.It Fl w 1314ffead710SBryan VenteicherIssue a non-immediate sanitize command. 1315ffead710SBryan VenteicherBy default, 1316ffead710SBryan Venteicher.Nm 1317ffead710SBryan Venteicherissues the SANITIZE command with the immediate bit set. 1318ffead710SBryan VenteicherThis tells the 1319ffead710SBryan Venteicherdevice to immediately return the sanitize command, before 1320ffead710SBryan Venteicherthe sanitize has actually completed. 1321ffead710SBryan VenteicherThen, 1322ffead710SBryan Venteicher.Nm 1323ffead710SBryan Venteichergathers 1324ffead710SBryan Venteicher.Tn SCSI 1325ffead710SBryan Venteichersense information from the device every second to determine how far along 1326ffead710SBryan Venteicherin the sanitize process it is. 1327ffead710SBryan VenteicherIf the 1328ffead710SBryan Venteicher.Fl w 1329ffead710SBryan Venteicherargument is specified, 1330ffead710SBryan Venteicher.Nm 1331ffead710SBryan Venteicherwill issue a non-immediate sanitize command, and will be unable to print any 1332ffead710SBryan Venteicherinformation to let the user know what percentage of the disk has been 1333ffead710SBryan Venteichersanitized. 1334ffead710SBryan Venteicher.It Fl y 1335ffead710SBryan VenteicherDo not ask any questions. 1336ffead710SBryan VenteicherBy default, 1337ffead710SBryan Venteicher.Nm 1338ffead710SBryan Venteicherwill ask the user if he/she really wants to sanitize the disk in question, 1339ffead710SBryan Venteicherand also if the default sanitize command timeout is acceptable. 1340ffead710SBryan VenteicherThe user 1341ffead710SBryan Venteicherwill not be asked about the timeout if a timeout is specified on the 1342ffead710SBryan Venteichercommand line. 1343ffead710SBryan Venteicher.El 134450c9a276SAlexander Motin.It Ic idle 13455bb17266SJoel DahlPut ATA device into IDLE state. 13465bb17266SJoel DahlOptional parameter 134772166fbaSAlexander Motin.Pq Fl t 13485bb17266SJoel Dahlspecifies automatic standby timer value in seconds. 13495bb17266SJoel DahlValue 0 disables timer. 135050c9a276SAlexander Motin.It Ic standby 13515bb17266SJoel DahlPut ATA device into STANDBY state. 13525bb17266SJoel DahlOptional parameter 135372166fbaSAlexander Motin.Pq Fl t 13545bb17266SJoel Dahlspecifies automatic standby timer value in seconds. 13555bb17266SJoel DahlValue 0 disables timer. 135650c9a276SAlexander Motin.It Ic sleep 13575bb17266SJoel DahlPut ATA device into SLEEP state. 13585bb17266SJoel DahlNote that the only way get device out of 135950c9a276SAlexander Motinthis state may be reset. 1360e7affda5SAlexander Motin.It Ic apm 1361e7affda5SAlexander MotinIt optional parameter 1362e7affda5SAlexander Motin.Pq Fl l 1363e7affda5SAlexander Motinspecified, enables and sets advanced power management level, where 1364e7affda5SAlexander Motin1 -- minimum power, 127 -- maximum performance with standby, 1365e7affda5SAlexander Motin128 -- minimum power without standby, 254 -- maximum performance. 1366e7affda5SAlexander MotinIf not specified -- APM is disabled. 1367e7affda5SAlexander Motin.It Ic aam 1368e7affda5SAlexander MotinIt optional parameter 1369e7affda5SAlexander Motin.Pq Fl l 1370e7affda5SAlexander Motinspecified, enables and sets automatic acoustic management level, where 1371e7affda5SAlexander Motin1 -- minimum noise, 254 -- maximum performance. 1372e7affda5SAlexander MotinIf not specified -- AAM is disabled. 13731146874aSSteven Hartland.It Ic security 13741146874aSSteven HartlandUpdate or report security settings, using an ATA identify command (0xec). 13751146874aSSteven HartlandBy default, 13761146874aSSteven Hartland.Nm 13771146874aSSteven Hartlandwill print out the security support and associated settings of the device. 13781146874aSSteven HartlandThe 13791146874aSSteven Hartland.Ic security 13801146874aSSteven Hartlandcommand takes several arguments: 13811146874aSSteven Hartland.Bl -tag -width 0n 13821146874aSSteven Hartland.It Fl d Ar pwd 13831146874aSSteven Hartland.Pp 13841146874aSSteven HartlandDisable device security using the given password for the selected user according 13851146874aSSteven Hartlandto the devices configured security level. 13861146874aSSteven Hartland.It Fl e Ar pwd 13871146874aSSteven Hartland.Pp 13881146874aSSteven HartlandErase the device using the given password for the selected user. 13891146874aSSteven Hartland.Pp 13901146874aSSteven Hartland.Em WARNING! WARNING! WARNING! 13911146874aSSteven Hartland.Pp 13921146874aSSteven HartlandIssuing a secure erase will 13931146874aSSteven Hartland.Em ERASE ALL 13941146874aSSteven Hartlanduser data on the device and may take several hours to complete. 13951146874aSSteven Hartland.Pp 13961146874aSSteven HartlandWhen this command is used against an SSD drive all its cells will be marked as 13975bb17266SJoel Dahlempty, restoring it to factory default write performance. 13985bb17266SJoel DahlFor SSD's this action 13991146874aSSteven Hartlandusually takes just a few seconds. 14001146874aSSteven Hartland.It Fl f 14011146874aSSteven Hartland.Pp 14021146874aSSteven HartlandFreeze the security configuration of the specified device. 14031146874aSSteven Hartland.Pp 14041146874aSSteven HartlandAfter command completion any other commands that update the device lock mode 1405e36a4a7eSJoel Dahlshall be command aborted. 1406e36a4a7eSJoel DahlFrozen mode is disabled by power-off or hardware reset. 14071146874aSSteven Hartland.It Fl h Ar pwd 14081146874aSSteven Hartland.Pp 14091146874aSSteven HartlandEnhanced erase the device using the given password for the selected user. 14101146874aSSteven Hartland.Pp 14111146874aSSteven Hartland.Em WARNING! WARNING! WARNING! 14121146874aSSteven Hartland.Pp 14131146874aSSteven HartlandIssuing an enhanced secure erase will 14141146874aSSteven Hartland.Em ERASE ALL 14151146874aSSteven Hartlanduser data on the device and may take several hours to complete. 14161146874aSSteven Hartland.Pp 14171146874aSSteven HartlandAn enhanced erase writes predetermined data patterns to all user data areas, 14181146874aSSteven Hartlandall previously written user data shall be overwritten, including sectors that 14191146874aSSteven Hartlandare no longer in use due to reallocation. 14201146874aSSteven Hartland.It Fl k Ar pwd 14211146874aSSteven Hartland.Pp 14221146874aSSteven HartlandUnlock the device using the given password for the selected user according to 14231146874aSSteven Hartlandthe devices configured security level. 14241146874aSSteven Hartland.It Fl l Ar high|maximum 14251146874aSSteven Hartland.Pp 14261146874aSSteven HartlandSpecifies which security level to set when issuing a 14271146874aSSteven Hartland.Fl s Ar pwd 14285bb17266SJoel Dahlcommand. 14295bb17266SJoel DahlThe security level determines device behavior when the master 14305bb17266SJoel Dahlpassword is used to unlock the device. 14315bb17266SJoel DahlWhen the security level is set to high 14321146874aSSteven Hartlandthe device requires the unlock command and the master password to unlock. 14331146874aSSteven HartlandWhen the security level is set to maximum the device requires a secure erase 14341146874aSSteven Hartlandwith the master password to unlock. 14351146874aSSteven Hartland.Pp 14361146874aSSteven HartlandThis option must be used in conjunction with one of the security action commands. 14371146874aSSteven Hartland.Pp 14381146874aSSteven HartlandDefaults to 14391146874aSSteven Hartland.Em high 14401146874aSSteven Hartland.It Fl q 14411146874aSSteven Hartland.Pp 14421146874aSSteven HartlandBe quiet, do not print any status messages. 14431146874aSSteven HartlandThis option will not disable the questions, however. 14441146874aSSteven HartlandTo disable questions, use the 14451146874aSSteven Hartland.Fl y 14461146874aSSteven Hartlandargument, below. 14471146874aSSteven Hartland.It Fl s Ar pwd 14481146874aSSteven Hartland.Pp 14491146874aSSteven HartlandPassword the device (enable security) using the given password for the selected 14505bb17266SJoel Dahluser. 14515bb17266SJoel DahlThis option can be combined with other options such as 14521146874aSSteven Hartland.Fl e Em pwd 14531146874aSSteven Hartland.Pp 14541146874aSSteven HartlandA master password may be set in a addition to the user password. The purpose of 14551146874aSSteven Hartlandthe master password is to allow an administrator to establish a password that 14561146874aSSteven Hartlandis kept secret from the user, and which may be used to unlock the device if the 14571146874aSSteven Hartlanduser password is lost. 14581146874aSSteven Hartland.Pp 14591146874aSSteven Hartland.Em Note: 14601146874aSSteven HartlandSetting the master password does not enable device security. 14611146874aSSteven Hartland.Pp 14621146874aSSteven HartlandIf the master password is set and the drive supports a Master Revision Code 14631146874aSSteven Hartlandfeature the Master Password Revision Code will be decremented. 14641146874aSSteven Hartland.It Fl T Ar timeout 14651146874aSSteven Hartland.Pp 14661146874aSSteven HartlandOverrides the default timeout, specified in seconds, used for both 14671146874aSSteven Hartland.Fl e 14681146874aSSteven Hartlandand 14691146874aSSteven Hartland.Fl h 14701146874aSSteven Hartlandthis is useful if your system has problems processing long timeouts correctly. 14711146874aSSteven Hartland.Pp 14721146874aSSteven HartlandUsually the timeout is calculated from the information stored on the drive if 14731146874aSSteven Hartlandpresent, otherwise it defaults to 2 hours. 14741146874aSSteven Hartland.It Fl U Ar user|master 14751146874aSSteven Hartland.Pp 14761146874aSSteven HartlandSpecifies which user to set / use for the running action command, valid values 14771146874aSSteven Hartlandare user or master and defaults to master if not set. 14781146874aSSteven Hartland.Pp 14791146874aSSteven HartlandThis option must be used in conjunction with one of the security action commands. 14801146874aSSteven Hartland.Pp 14811146874aSSteven HartlandDefaults to 14821146874aSSteven Hartland.Em master 14831146874aSSteven Hartland.It Fl y 14841146874aSSteven Hartland.Pp 14851146874aSSteven HartlandConfirm yes to dangerous options such as 14861146874aSSteven Hartland.Fl e 14871146874aSSteven Hartlandwithout prompting for confirmation. 14881146874aSSteven Hartland.El 1489f636caf1SJoel Dahl.Pp 14905bb17266SJoel DahlIf the password specified for any action commands does not match the configured 14911146874aSSteven Hartlandpassword for the specified user the command will fail. 14921146874aSSteven Hartland.Pp 14931146874aSSteven HartlandThe password in all cases is limited to 32 characters, longer passwords will 14941146874aSSteven Hartlandfail. 14959e68761cSSteven Hartland.It Ic hpa 14969e68761cSSteven HartlandUpdate or report Host Protected Area details. 14979e68761cSSteven HartlandBy default 14989e68761cSSteven Hartland.Nm 14999e68761cSSteven Hartlandwill print out the HPA support and associated settings of the device. 15009e68761cSSteven HartlandThe 15019e68761cSSteven Hartland.Ic hpa 15029e68761cSSteven Hartlandcommand takes several optional arguments: 15039e68761cSSteven Hartland.Bl -tag -width 0n 15049e68761cSSteven Hartland.It Fl f 15059e68761cSSteven Hartland.Pp 15069e68761cSSteven HartlandFreeze the HPA configuration of the specified device. 15079e68761cSSteven Hartland.Pp 15089e68761cSSteven HartlandAfter command completion any other commands that update the HPA configuration 15099e68761cSSteven Hartlandshall be command aborted. 15109e68761cSSteven HartlandFrozen mode is disabled by power-off or hardware reset. 15119e68761cSSteven Hartland.It Fl l 15129e68761cSSteven Hartland.Pp 15139e68761cSSteven HartlandLock the HPA configuration of the device until a successful call to unlock or 15149e68761cSSteven Hartlandthe next power-on reset occurs. 15159e68761cSSteven Hartland.It Fl P 15169e68761cSSteven Hartland.Pp 15179e68761cSSteven HartlandMake the HPA max sectors persist across power-on reset or a hardware reset. 15189e68761cSSteven HartlandThis must be used in combination with 15199e68761cSSteven Hartland.Fl s Ar max_sectors 15209e68761cSSteven Hartland. 15219e68761cSSteven Hartland.It Fl p Ar pwd 15229e68761cSSteven Hartland.Pp 15239e68761cSSteven HartlandSet the HPA configuration password required for unlock calls. 15249e68761cSSteven Hartland.It Fl q 15259e68761cSSteven Hartland.Pp 15269e68761cSSteven HartlandBe quiet, do not print any status messages. 15279e68761cSSteven HartlandThis option will not disable the questions. 15289e68761cSSteven HartlandTo disable questions, use the 15299e68761cSSteven Hartland.Fl y 15309e68761cSSteven Hartlandargument, below. 15319e68761cSSteven Hartland.It Fl s Ar max_sectors 15329e68761cSSteven Hartland.Pp 15339e68761cSSteven HartlandConfigures the maximum user accessible sectors of the device. 15349e68761cSSteven HartlandThis will change the number of sectors the device reports. 15359e68761cSSteven Hartland.Pp 15369e68761cSSteven Hartland.Em WARNING! WARNING! WARNING! 15379e68761cSSteven Hartland.Pp 15389e68761cSSteven HartlandChanging the max sectors of a device using this option will make the data on 15399e68761cSSteven Hartlandthe device beyond the specified value inaccessible. 15409e68761cSSteven Hartland.Pp 15419e68761cSSteven HartlandOnly one successful 15429e68761cSSteven Hartland.Fl s Ar max_sectors 15439e68761cSSteven Hartlandcall can be made without a power-on reset or a hardware reset of the device. 15449e68761cSSteven Hartland.It Fl U Ar pwd 15459e68761cSSteven Hartland.Pp 15469e68761cSSteven HartlandUnlock the HPA configuration of the specified device using the given password. 15475bb17266SJoel DahlIf the password specified does not match the password configured via 15489e68761cSSteven Hartland.Fl p Ar pwd 15499e68761cSSteven Hartlandthe command will fail. 15509e68761cSSteven Hartland.Pp 15519e68761cSSteven HartlandAfter 5 failed unlock calls, due to password miss-match, the device will refuse 15529e68761cSSteven Hartlandadditional unlock calls until after a power-on reset. 15539e68761cSSteven Hartland.It Fl y 15549e68761cSSteven Hartland.Pp 15559e68761cSSteven HartlandConfirm yes to dangerous options such as 15569e68761cSSteven Hartland.Fl e 15579e68761cSSteven Hartlandwithout prompting for confirmation 15589e68761cSSteven Hartland.El 1559f636caf1SJoel Dahl.Pp 15609e68761cSSteven HartlandThe password for all HPA commands is limited to 32 characters, longer passwords 15619e68761cSSteven Hartlandwill fail. 15621f4782a4SEd Maste.It Ic fwdownload 15630e358df0SKenneth D. MerryProgram firmware of the named 15640e358df0SKenneth D. Merry.Tn SCSI 15650e358df0SKenneth D. Merryor ATA device using the image file provided. 15661f4782a4SEd Maste.Pp 15670e358df0SKenneth D. MerryIf the device is a 15680e358df0SKenneth D. Merry.Tn SCSI 15690e358df0SKenneth D. Merrydevice and it provides a recommended timeout for the WRITE BUFFER command 15700e358df0SKenneth D. Merry(see the 15710e358df0SKenneth D. Merry.Nm 15720e358df0SKenneth D. Merryopcodes subcommand), that timeout will be used for the firmware download. 15730e358df0SKenneth D. MerryThe drive-recommended timeout value may be overridden on the command line 15740e358df0SKenneth D. Merrywith the 15750e358df0SKenneth D. Merry.Fl t 15760e358df0SKenneth D. Merryoption. 15770e358df0SKenneth D. Merry.Pp 15780e358df0SKenneth D. MerryCurrent list of supported vendors for SCSI/SAS drives: 15790e358df0SKenneth D. Merry.Bl -tag -width 10n 15800e358df0SKenneth D. Merry.It HGST 15810e358df0SKenneth D. MerryTested with 4TB SAS drives, model number HUS724040ALS640. 15820e358df0SKenneth D. Merry.It HITACHI 15830e358df0SKenneth D. Merry.It HP 15840e358df0SKenneth D. Merry.It IBM 15850e358df0SKenneth D. MerryTested with LTO-5 (ULTRIUM-HH5) and LTO-6 (ULTRIUM-HH6) tape drives. 15860e358df0SKenneth D. MerryThere is a separate table entry for hard drives, because the update method 15870e358df0SKenneth D. Merryfor hard drives is different than the method for tape drives. 15880e358df0SKenneth D. Merry.It PLEXTOR 15890e358df0SKenneth D. Merry.It QUALSTAR 15900e358df0SKenneth D. Merry.It QUANTUM 15910e358df0SKenneth D. Merry.It SAMSUNG 15920e358df0SKenneth D. MerryTested with SM1625 SSDs. 15930e358df0SKenneth D. Merry.It SEAGATE 15940e358df0SKenneth D. MerryTested with Constellation ES (ST32000444SS), ES.2 (ST33000651SS) and 15950e358df0SKenneth D. MerryES.3 (ST1000NM0023) drives. 15960e358df0SKenneth D. Merry.It SmrtStor 15970e358df0SKenneth D. MerryTested with 400GB Optimus SSDs (TXA2D20400GA6001). 15981f4782a4SEd Maste.El 15991f4782a4SEd Maste.Pp 16001f4782a4SEd Maste.Em WARNING! WARNING! WARNING! 16011f4782a4SEd Maste.Pp 16021f4782a4SEd MasteLittle testing has been done to make sure that different device models from 16031f4782a4SEd Masteeach vendor work correctly with the fwdownload command. 16041f4782a4SEd MasteA vendor name appearing in the supported list means only that firmware of at 16051f4782a4SEd Masteleast one device type from that vendor has successfully been programmed with 16061f4782a4SEd Mastethe fwdownload command. 16071f4782a4SEd MasteExtra caution should be taken when using this command since there is no 16081f4782a4SEd Masteguarantee it will not break a device from the listed vendors. 16091f4782a4SEd MasteEnsure that you have a recent backup of the data on the device before 16101f4782a4SEd Masteperforming a firmware update. 16110e358df0SKenneth D. Merry.Pp 16120e358df0SKenneth D. MerryNote that unknown 16130e358df0SKenneth D. Merry.Tn SCSI 16140e358df0SKenneth D. Merryprotocol devices will not be programmed, since there is little chance of 16150e358df0SKenneth D. Merrythe firmware download succeeding. 16160e358df0SKenneth D. Merry.Pp 16170e358df0SKenneth D. Merry.Nm 16180e358df0SKenneth D. Merrywill currently attempt a firmware download to any 16190e358df0SKenneth D. Merry.Tn ATA 16200e358df0SKenneth D. Merryor 16210e358df0SKenneth D. Merry.Tn SATA 16220e358df0SKenneth D. Merrydevice, since the standard 16230e358df0SKenneth D. Merry.Tn ATA 16240e358df0SKenneth D. MerryDOWNLOAD MICROCODE command may work. 16250e358df0SKenneth D. MerryFirmware downloads to 16260e358df0SKenneth D. Merry.Tn ATA 16270e358df0SKenneth D. Merryand 16280e358df0SKenneth D. Merry.Tn SATA 16290e358df0SKenneth D. Merrydevices are supported for devices connected 16300e358df0SKenneth D. Merryto standard 16310e358df0SKenneth D. Merry.Tn ATA 16320e358df0SKenneth D. Merryand 16330e358df0SKenneth D. Merry.Tn SATA 16340e358df0SKenneth D. Merrycontrollers, and devices connected to SAS controllers 16350e358df0SKenneth D. Merrywith 16360e358df0SKenneth D. Merry.Tn SCSI 16370e358df0SKenneth D. Merryto 16380e358df0SKenneth D. Merry.Tn ATA 16390e358df0SKenneth D. Merrytranslation capability. 16400e358df0SKenneth D. MerryIn the latter case, 16410e358df0SKenneth D. Merry.Nm 16420e358df0SKenneth D. Merryuses the 16430e358df0SKenneth D. Merry.Tn SCSI 16440e358df0SKenneth D. Merry.Tn ATA 16450e358df0SKenneth D. MerryPASS-THROUGH command to send the 16460e358df0SKenneth D. Merry.Tn ATA 16470e358df0SKenneth D. MerryDOWNLOAD MICROCODE command to the drive. 16480e358df0SKenneth D. MerrySome 16490e358df0SKenneth D. Merry.Tn SCSI 16500e358df0SKenneth D. Merryto 16510e358df0SKenneth D. Merry.Tn ATA 16520e358df0SKenneth D. Merrytranslation implementations don't work fully when translating 16530e358df0SKenneth D. Merry.Tn SCSI 16540e358df0SKenneth D. MerryWRITE BUFFER commands to 16550e358df0SKenneth D. Merry.Tn ATA 16560e358df0SKenneth D. MerryDOWNLOAD MICROCODE commands, but do support 16570e358df0SKenneth D. Merry.Tn ATA 16580e358df0SKenneth D. Merrypassthrough well enough to do a firmware download. 16591f4782a4SEd Maste.Bl -tag -width 11n 16601f4782a4SEd Maste.It Fl f Ar fw_image 16611f4782a4SEd MastePath to the firmware image file to be downloaded to the specified device. 16620e358df0SKenneth D. Merry.It Fl q 16630e358df0SKenneth D. MerryDo not print informational messages, only print errors. 16640e358df0SKenneth D. MerryThis option should be used with the 16650e358df0SKenneth D. Merry.Fl y 16660e358df0SKenneth D. Merryoption to suppress all output. 16671f4782a4SEd Maste.It Fl s 16681f4782a4SEd MasteRun in simulation mode. 16690e358df0SKenneth D. MerryDevice checks are run and the confirmation dialog is shown, but no firmware 16700e358df0SKenneth D. Merrydownload will occur. 16711f4782a4SEd Maste.It Fl v 16720e358df0SKenneth D. MerryShow 16730e358df0SKenneth D. Merry.Tn SCSI 16740e358df0SKenneth D. Merryor 16750e358df0SKenneth D. Merry.Tn ATA 16760e358df0SKenneth D. Merryerrors in the event of a failure. 16770e358df0SKenneth D. Merry.Pp 16780e358df0SKenneth D. MerryIn simulation mode, print out the 16790e358df0SKenneth D. Merry.Tn SCSI 16800e358df0SKenneth D. MerryCDB 16810e358df0SKenneth D. Merryor 16820e358df0SKenneth D. Merry.Tn ATA 16830e358df0SKenneth D. Merryregister values that would be used for the firmware download command. 16840e358df0SKenneth D. Merry.It Fl y 16850e358df0SKenneth D. MerryDo not ask for confirmation. 16861f4782a4SEd Maste.El 168708df2e3eSKenneth D. Merry.It Ic persist 168808df2e3eSKenneth D. MerryPersistent reservation support. 168908df2e3eSKenneth D. MerryPersistent reservations are a way to reserve a particular 169008df2e3eSKenneth D. Merry.Tn SCSI 169108df2e3eSKenneth D. MerryLUN for use by one or more 169208df2e3eSKenneth D. Merry.Tn SCSI 169308df2e3eSKenneth D. Merryinitiators. 169408df2e3eSKenneth D. MerryIf the 169508df2e3eSKenneth D. Merry.Fl i 169608df2e3eSKenneth D. Merryoption is specified, 169708df2e3eSKenneth D. Merry.Nm 169808df2e3eSKenneth D. Merrywill issue the 169908df2e3eSKenneth D. Merry.Tn SCSI 170008df2e3eSKenneth D. MerryPERSISTENT RESERVE IN 170108df2e3eSKenneth D. Merrycommand using the requested service action. 170208df2e3eSKenneth D. MerryIf the 170308df2e3eSKenneth D. Merry.Fl o 170408df2e3eSKenneth D. Merryoption is specified, 170508df2e3eSKenneth D. Merry.Nm 170608df2e3eSKenneth D. Merrywill issue the 170708df2e3eSKenneth D. Merry.Tn SCSI 170808df2e3eSKenneth D. MerryPERSISTENT RESERVE OUT 170908df2e3eSKenneth D. Merrycommand using the requested service action. 171008df2e3eSKenneth D. MerryOne of those two options is required. 171108df2e3eSKenneth D. Merry.Pp 171208df2e3eSKenneth D. MerryPersistent reservations are complex, and fully explaining them is outside 171308df2e3eSKenneth D. Merrythe scope of this manual. 171408df2e3eSKenneth D. MerryPlease visit 171508df2e3eSKenneth D. Merryhttp://www.t10.org 171608df2e3eSKenneth D. Merryand download the latest SPC spec for a full explanation of persistent 171708df2e3eSKenneth D. Merryreservations. 171808df2e3eSKenneth D. Merry.Bl -tag -width 8n 171908df2e3eSKenneth D. Merry.It Fl i Ar mode 172008df2e3eSKenneth D. MerrySpecify the service action for the PERSISTENT RESERVE IN command. 172108df2e3eSKenneth D. MerrySupported service actions: 172208df2e3eSKenneth D. Merry.Bl -tag -width 19n 172308df2e3eSKenneth D. Merry.It read_keys 172408df2e3eSKenneth D. MerryReport the current persistent reservation generation (PRgeneration) and any 172508df2e3eSKenneth D. Merryregistered keys. 172608df2e3eSKenneth D. Merry.It read_reservation 172708df2e3eSKenneth D. MerryReport the persistent reservation, if any. 172808df2e3eSKenneth D. Merry.It report_capabilities 172908df2e3eSKenneth D. MerryReport the persistent reservation capabilities of the LUN. 173008df2e3eSKenneth D. Merry.It read_full_status 173108df2e3eSKenneth D. MerryReport the full status of persistent reservations on the LUN. 173208df2e3eSKenneth D. Merry.El 173308df2e3eSKenneth D. Merry.It Fl o Ar mode 173408df2e3eSKenneth D. MerrySpecify the service action for the PERSISTENT RESERVE OUT command. 173508df2e3eSKenneth D. MerryFor service actions like register that are components of other service 173608df2e3eSKenneth D. Merryaction names, the entire name must be specified. 173708df2e3eSKenneth D. MerryOtherwise, enough of the service action name must be specified to 173808df2e3eSKenneth D. Merrydistinguish it from other possible service actions. 173908df2e3eSKenneth D. MerrySupported service actions: 174008df2e3eSKenneth D. Merry.Bl -tag -width 15n 174108df2e3eSKenneth D. Merry.It register 174208df2e3eSKenneth D. MerryRegister a reservation key with the LUN or unregister a reservation key. 174308df2e3eSKenneth D. MerryTo register a key, specify the requested key as the Service Action 174408df2e3eSKenneth D. MerryReservation Key. 174508df2e3eSKenneth D. MerryTo unregister a key, specify the previously registered key as the 174608df2e3eSKenneth D. MerryReservation Key. 174708df2e3eSKenneth D. MerryTo change a key, specify the old key as the Reservation Key and the new 174808df2e3eSKenneth D. Merrykey as the Service Action Reservation Key. 174908df2e3eSKenneth D. Merry.It register_ignore 175008df2e3eSKenneth D. MerryThis is similar to the register subcommand, except that the Reservation Key 175108df2e3eSKenneth D. Merryis ignored. 175208df2e3eSKenneth D. MerryThe Service Action Reservation Key will overwrite any previous key 175308df2e3eSKenneth D. Merryregistered for the initiator. 175408df2e3eSKenneth D. Merry.It reserve 175508df2e3eSKenneth D. MerryCreate a reservation. 175608df2e3eSKenneth D. MerryA key must be registered with the LUN before the LUN can be reserved, and 175708df2e3eSKenneth D. Merryit must be specified as the Reservation Key. 175808df2e3eSKenneth D. MerryThe type of reservation must also be specified. 175908df2e3eSKenneth D. MerryThe scope defaults to LUN scope (LU_SCOPE), but may be changed. 176008df2e3eSKenneth D. Merry.It release 176108df2e3eSKenneth D. MerryRelease a reservation. 176208df2e3eSKenneth D. MerryThe Reservation Key must be specified. 176308df2e3eSKenneth D. Merry.It clear 176408df2e3eSKenneth D. MerryRelease a reservation and remove all keys from the device. 176508df2e3eSKenneth D. MerryThe Reservation Key must be specified. 176608df2e3eSKenneth D. Merry.It preempt 176708df2e3eSKenneth D. MerryRemove a reservation belonging to another initiator. 176808df2e3eSKenneth D. MerryThe Reservation Key must be specified. 176908df2e3eSKenneth D. MerryThe Service Action Reservation Key may be specified, depending on the 177008df2e3eSKenneth D. Merryoperation being performed. 177108df2e3eSKenneth D. Merry.It preempt_abort 177208df2e3eSKenneth D. MerryRemove a reservation belonging to another initiator and abort all 177308df2e3eSKenneth D. Merryoutstanding commands from that initiator. 177408df2e3eSKenneth D. MerryThe Reservation Key must be specified. 177508df2e3eSKenneth D. MerryThe Service Action Reservation Key may be specified, depending on the 177608df2e3eSKenneth D. Merryoperation being performed. 177708df2e3eSKenneth D. Merry.It register_move 177808df2e3eSKenneth D. MerryRegister another initiator with the LUN, and establish a reservation on the 177908df2e3eSKenneth D. MerryLUN for that initiator. 178008df2e3eSKenneth D. MerryThe Reservation Key and Service Action Reservation Key must be specified. 178108df2e3eSKenneth D. Merry.It replace_lost 178208df2e3eSKenneth D. MerryReplace Lost Reservation information. 178308df2e3eSKenneth D. Merry.El 178408df2e3eSKenneth D. Merry.It Fl a 178508df2e3eSKenneth D. MerrySet the All Target Ports (ALL_TG_PT) bit. 178608df2e3eSKenneth D. MerryThis requests that the key registration be applied to all target ports and 178708df2e3eSKenneth D. Merrynot just the particular target port that receives the command. 178808df2e3eSKenneth D. MerryThis only applies to the register and register_ignore actions. 178908df2e3eSKenneth D. Merry.It Fl I Ar tid 179008df2e3eSKenneth D. MerrySpecify a Transport ID. 179108df2e3eSKenneth D. MerryThis only applies to the Register and Register and Move service actions for 179208df2e3eSKenneth D. MerryPersistent Reserve Out. 179308df2e3eSKenneth D. MerryMultiple Transport IDs may be specified with multiple 179408df2e3eSKenneth D. Merry.Fl I 179508df2e3eSKenneth D. Merryarguments. 179608df2e3eSKenneth D. MerryWith the Register service action, specifying one or more Transport IDs 179708df2e3eSKenneth D. Merryimplicitly enables the 179808df2e3eSKenneth D. Merry.Fl S 179908df2e3eSKenneth D. Merryoption which turns on the SPEC_I_PT bit. 180008df2e3eSKenneth D. MerryTransport IDs generally have the format protocol,id. 180108df2e3eSKenneth D. Merry.Bl -tag -width 5n 180208df2e3eSKenneth D. Merry.It SAS 180308df2e3eSKenneth D. MerryA SAS Transport ID consists of 180408df2e3eSKenneth D. Merry.Dq sas, 180508df2e3eSKenneth D. Merryfollowed by a 64-bit SAS address. 180608df2e3eSKenneth D. MerryFor example: 180708df2e3eSKenneth D. Merry.Pp 180808df2e3eSKenneth D. Merry.Dl sas,0x1234567812345678 180908df2e3eSKenneth D. Merry.It FC 181008df2e3eSKenneth D. MerryA Fibre Channel Transport ID consists of 181108df2e3eSKenneth D. Merry.Dq fcp, 181208df2e3eSKenneth D. Merryfollowed by a 64-bit Fibre Channel World Wide Name. 181308df2e3eSKenneth D. MerryFor example: 181408df2e3eSKenneth D. Merry.Pp 181508df2e3eSKenneth D. Merry.Dl fcp,0x1234567812345678 181608df2e3eSKenneth D. Merry.It SPI 181708df2e3eSKenneth D. MerryA Parallel SCSI address consists of 181808df2e3eSKenneth D. Merry.Dq spi, 181908df2e3eSKenneth D. Merryfollowed by a SCSI target ID and a relative target port identifier. 182008df2e3eSKenneth D. MerryFor example: 182108df2e3eSKenneth D. Merry.Pp 182208df2e3eSKenneth D. Merry.Dl spi,4,1 182308df2e3eSKenneth D. Merry.It 1394 182408df2e3eSKenneth D. MerryAn IEEE 1394 (Firewire) Transport ID consists of 182508df2e3eSKenneth D. Merry.Dq sbp, 182608df2e3eSKenneth D. Merryfollowed by a 64-bit EUI-64 IEEE 1394 node unique identifier. 182708df2e3eSKenneth D. MerryFor example: 182808df2e3eSKenneth D. Merry.Pp 182908df2e3eSKenneth D. Merry.Dl sbp,0x1234567812345678 183008df2e3eSKenneth D. Merry.It RDMA 183108df2e3eSKenneth D. MerryA SCSI over RDMA Transport ID consists of 183208df2e3eSKenneth D. Merry.Dq srp, 183308df2e3eSKenneth D. Merryfollowed by a 128-bit RDMA initiator port identifier. 183408df2e3eSKenneth D. MerryThe port identifier must be exactly 32 or 34 (if the leading 0x is 183508df2e3eSKenneth D. Merryincluded) hexadecimal digits. 183608df2e3eSKenneth D. MerryOnly hexadecimal (base 16) numbers are supported. 183708df2e3eSKenneth D. MerryFor example: 183808df2e3eSKenneth D. Merry.Pp 183908df2e3eSKenneth D. Merry.Dl srp,0x12345678123456781234567812345678 184008df2e3eSKenneth D. Merry.It iSCSI 184108df2e3eSKenneth D. MerryAn iSCSI Transport ID consists an iSCSI name and optionally a separator and 184208df2e3eSKenneth D. MerryiSCSI session ID. 184308df2e3eSKenneth D. MerryFor example, if only the iSCSI name is specified: 184408df2e3eSKenneth D. Merry.Pp 184508df2e3eSKenneth D. Merry.Dl iqn.2012-06.com.example:target0 184608df2e3eSKenneth D. Merry.Pp 184708df2e3eSKenneth D. MerryIf the iSCSI separator and initiator session ID are specified: 184808df2e3eSKenneth D. Merry.Pp 184908df2e3eSKenneth D. Merry.Dl iqn.2012-06.com.example:target0,i,0x123 185008df2e3eSKenneth D. Merry.It PCIe 185108df2e3eSKenneth D. MerryA SCSI over PCIe Transport ID consists of 185208df2e3eSKenneth D. Merry.Dq sop, 185308df2e3eSKenneth D. Merryfollowed by a PCIe Routing ID. 185408df2e3eSKenneth D. MerryThe Routing ID consists of a bus, device and function or in the alternate 185508df2e3eSKenneth D. Merryform, a bus and function. 185608df2e3eSKenneth D. MerryThe bus must be in the range of 0 to 255 inclusive and the device must be 185708df2e3eSKenneth D. Merryin the range of 0 to 31 inclusive. 185808df2e3eSKenneth D. MerryThe function must be in the range of 0 to 7 inclusive if the standard form 185908df2e3eSKenneth D. Merryis used, and in the range of 0 to 255 inclusive if the alternate form is 186008df2e3eSKenneth D. Merryused. 186108df2e3eSKenneth D. MerryFor example, if a bus, device and function are specified for the standard 186208df2e3eSKenneth D. MerryRouting ID form: 186308df2e3eSKenneth D. Merry.Pp 186408df2e3eSKenneth D. Merry.Dl sop,4,5,1 186508df2e3eSKenneth D. Merry.Pp 186608df2e3eSKenneth D. MerryIf the alternate Routing ID form is used: 186708df2e3eSKenneth D. Merry.Pp 186808df2e3eSKenneth D. Merry.Dl sop,4,1 186908df2e3eSKenneth D. Merry.El 187008df2e3eSKenneth D. Merry.It Fl k Ar key 187108df2e3eSKenneth D. MerrySpecify the Reservation Key. 187208df2e3eSKenneth D. MerryThis may be in decimal, octal or hexadecimal format. 187308df2e3eSKenneth D. MerryThe value is zero by default if not otherwise specified. 187408df2e3eSKenneth D. MerryThe value must be between 0 and 2^64 - 1, inclusive. 187508df2e3eSKenneth D. Merry.It Fl K Ar key 187608df2e3eSKenneth D. MerrySpecify the Service Action Reservation Key. 187708df2e3eSKenneth D. MerryThis may be in decimal, octal or hexadecimal format. 187808df2e3eSKenneth D. MerryThe value is zero by default if not otherwise specified. 187908df2e3eSKenneth D. MerryThe value must be between 0 and 2^64 - 1, inclusive. 188008df2e3eSKenneth D. Merry.It Fl p 188108df2e3eSKenneth D. MerryEnable the Activate Persist Through Power Loss bit. 188208df2e3eSKenneth D. MerryThis is only used for the register and register_ignore actions. 188308df2e3eSKenneth D. MerryThis requests that the reservation persist across power loss events. 188408df2e3eSKenneth D. Merry.It Fl s Ar scope 188508df2e3eSKenneth D. MerrySpecify the scope of the reservation. 188608df2e3eSKenneth D. MerryThe scope may be specified by name or by number. 188708df2e3eSKenneth D. MerryThe scope is ignored for register, register_ignore and clear. 188808df2e3eSKenneth D. MerryIf the desired scope isn't available by name, you may specify the number. 188908df2e3eSKenneth D. Merry.Bl -tag -width 7n 189008df2e3eSKenneth D. Merry.It lun 189108df2e3eSKenneth D. MerryLUN scope (0x00). 189208df2e3eSKenneth D. MerryThis encompasses the entire LUN. 189308df2e3eSKenneth D. Merry.It extent 189408df2e3eSKenneth D. MerryExtent scope (0x01). 189508df2e3eSKenneth D. Merry.It element 189608df2e3eSKenneth D. MerryElement scope (0x02). 189708df2e3eSKenneth D. Merry.El 189808df2e3eSKenneth D. Merry.It Fl R Ar rtp 189908df2e3eSKenneth D. MerrySpecify the Relative Target Port. 190008df2e3eSKenneth D. MerryThis only applies to the Register and Move service action of the Persistent 190108df2e3eSKenneth D. MerryReserve Out command. 190208df2e3eSKenneth D. Merry.It Fl S 190308df2e3eSKenneth D. MerryEnable the SPEC_I_PT bit. 190408df2e3eSKenneth D. MerryThis only applies to the Register service action of Persistent Reserve Out. 190508df2e3eSKenneth D. MerryYou must also specify at least one Transport ID with 190608df2e3eSKenneth D. Merry.Fl I 190708df2e3eSKenneth D. Merryif this option is set. 190808df2e3eSKenneth D. MerryIf you specify a Transport ID, this option is automatically set. 190908df2e3eSKenneth D. MerryIt is an error to specify this option for any service action other than 191008df2e3eSKenneth D. MerryRegister. 191108df2e3eSKenneth D. Merry.It Fl T Ar type 191208df2e3eSKenneth D. MerrySpecify the reservation type. 191308df2e3eSKenneth D. MerryThe reservation type may be specified by name or by number. 191408df2e3eSKenneth D. MerryIf the desired reservation type isn't available by name, you may specify 191508df2e3eSKenneth D. Merrythe number. 191608df2e3eSKenneth D. MerrySupported reservation type names: 191708df2e3eSKenneth D. Merry.Bl -tag -width 11n 191808df2e3eSKenneth D. Merry.It read_shared 191908df2e3eSKenneth D. MerryRead Shared mode. 192008df2e3eSKenneth D. Merry.It wr_ex 192108df2e3eSKenneth D. MerryWrite Exclusive mode. 192208df2e3eSKenneth D. MerryMay also be specified as 192308df2e3eSKenneth D. Merry.Dq write_exclusive . 192408df2e3eSKenneth D. Merry.It rd_ex 192508df2e3eSKenneth D. MerryRead Exclusive mode. 192608df2e3eSKenneth D. MerryMay also be specified as 192708df2e3eSKenneth D. Merry.Dq read_exclusive . 192808df2e3eSKenneth D. Merry.It ex_ac 192908df2e3eSKenneth D. MerryExclusive access mode. 193008df2e3eSKenneth D. MerryMay also be specified as 193108df2e3eSKenneth D. Merry.Dq exclusive_access . 193208df2e3eSKenneth D. Merry.It wr_ex_ro 193308df2e3eSKenneth D. MerryWrite Exclusive Registrants Only mode. 193408df2e3eSKenneth D. MerryMay also be specified as 193508df2e3eSKenneth D. Merry.Dq write_exclusive_reg_only . 193608df2e3eSKenneth D. Merry.It ex_ac_ro 193708df2e3eSKenneth D. MerryExclusive Access Registrants Only mode. 193808df2e3eSKenneth D. MerryMay also be specified as 193908df2e3eSKenneth D. Merry.Dq exclusive_access_reg_only . 194008df2e3eSKenneth D. Merry.It wr_ex_ar 194108df2e3eSKenneth D. MerryWrite Exclusive All Registrants mode. 194208df2e3eSKenneth D. MerryMay also be specified as 194308df2e3eSKenneth D. Merry.Dq write_exclusive_all_regs . 194408df2e3eSKenneth D. Merry.It ex_ac_ar 194508df2e3eSKenneth D. MerryExclusive Access All Registrants mode. 194608df2e3eSKenneth D. MerryMay also be specified as 194708df2e3eSKenneth D. Merry.Dq exclusive_access_all_regs . 194808df2e3eSKenneth D. Merry.El 194908df2e3eSKenneth D. Merry.It Fl U 195008df2e3eSKenneth D. MerrySpecify that the target should unregister the initiator that sent 195108df2e3eSKenneth D. Merrythe Register and Move request. 195208df2e3eSKenneth D. MerryBy default, the target will not unregister the initiator that sends the 195308df2e3eSKenneth D. MerryRegister and Move request. 195408df2e3eSKenneth D. MerryThis option only applies to the Register and Move service action of the 195508df2e3eSKenneth D. MerryPersistent Reserve Out command. 195608df2e3eSKenneth D. Merry.El 19575672fac9SKenneth D. Merry.It Ic attrib 19585672fac9SKenneth D. MerryIssue the 19595672fac9SKenneth D. Merry.Tn SCSI 19605672fac9SKenneth D. MerryREAD or WRITE ATTRIBUTE commands. 19615672fac9SKenneth D. MerryThese commands are used to read and write attributes in Medium Auxiliary 19625672fac9SKenneth D. MerryMemory (MAM). 19635672fac9SKenneth D. MerryThe most common place Medium Auxiliary Memory is found is small flash chips 19645672fac9SKenneth D. Merryincluded tape cartriges. 19655672fac9SKenneth D. MerryFor instance, 19665672fac9SKenneth D. Merry.Tn LTO 19675672fac9SKenneth D. Merrytapes have MAM. 19685672fac9SKenneth D. MerryEither the 19695672fac9SKenneth D. Merry.Fl r 19705672fac9SKenneth D. Merryoption or the 19715672fac9SKenneth D. Merry.Fl w 19725672fac9SKenneth D. Merryoption must be specified. 19735672fac9SKenneth D. Merry.Bl -tag -width 14n 19745672fac9SKenneth D. Merry.It Fl r Ar action 19755672fac9SKenneth D. MerrySpecify the READ ATTRIBUTE service action. 19765672fac9SKenneth D. Merry.Bl -tag -width 11n 19775672fac9SKenneth D. Merry.It attr_values 19785672fac9SKenneth D. MerryIssue the ATTRIBUTE VALUES service action. 19795672fac9SKenneth D. MerryRead and decode the available attributes and their values. 19805672fac9SKenneth D. Merry.It attr_list 19815672fac9SKenneth D. MerryIssue the ATTRIBUTE LIST service action. 19825672fac9SKenneth D. MerryList the attributes that are available to read and write. 19835672fac9SKenneth D. Merry.It lv_list 19845672fac9SKenneth D. MerryIssue the LOGICAL VOLUME LIST service action. 19855672fac9SKenneth D. MerryList the available logical volumes in the MAM. 19865672fac9SKenneth D. Merry.It part_list 19875672fac9SKenneth D. MerryIssue the PARTITION LIST service action. 19885672fac9SKenneth D. MerryList the available partitions in the MAM. 19895672fac9SKenneth D. Merry.It supp_attr 19905672fac9SKenneth D. MerryIssue the SUPPORTED ATTRIBUTES service action. 19915672fac9SKenneth D. MerryList attributes that are supported for reading or writing. 19925672fac9SKenneth D. MerryThese attributes may or may not be currently present in the MAM. 19935672fac9SKenneth D. Merry.El 19945672fac9SKenneth D. Merry.It Fl w Ar attr 19955672fac9SKenneth D. MerrySpecify an attribute to write to the MAM. 19965672fac9SKenneth D. MerryThis option is not yet implemented. 19975672fac9SKenneth D. Merry.It Fl a Ar num 19985672fac9SKenneth D. MerrySpecify the attribute number to display. 19995672fac9SKenneth D. MerryThis option only works with the attr_values, attr_list and supp_attr 20005672fac9SKenneth D. Merryarguments to 20015672fac9SKenneth D. Merry.Fl r . 20025672fac9SKenneth D. Merry.It Fl c 20035672fac9SKenneth D. MerryDisplay cached attributes. 20045672fac9SKenneth D. MerryIf the device supports this flag, it allows displaying attributes for the 20055672fac9SKenneth D. Merrylast piece of media loaded in the drive. 20065672fac9SKenneth D. Merry.It Fl e Ar num 20075672fac9SKenneth D. MerrySpecify the element address. 20085672fac9SKenneth D. MerryThis is used for specifying which element number in a medium changer to 20095672fac9SKenneth D. Merryaccess when reading attributes. 20105672fac9SKenneth D. MerryThe element number could be for a picker, portal, slot or drive. 20115672fac9SKenneth D. Merry.It Fl F Ar form1,form2 20125672fac9SKenneth D. MerrySpecify the output format for the attribute values (attr_val) display as a 20135672fac9SKenneth D. Merrycomma separated list of options. 20145672fac9SKenneth D. MerryThe default output is currently set to field_all,nonascii_trim,text_raw. 20155672fac9SKenneth D. MerryOnce this code is ported to FreeBSD 10, any text fields will be converted 20165672fac9SKenneth D. Merryfrom their codeset to the user's native codeset with 20175672fac9SKenneth D. Merry.Xr iconv 3 . 20185672fac9SKenneth D. Merry.Pp 20195672fac9SKenneth D. MerryThe text options are mutually exclusive; if you specify more than one, you 20205672fac9SKenneth D. Merrywill get unpredictable results. 20215672fac9SKenneth D. MerryThe nonascii options are also mutually exclusive. 20225672fac9SKenneth D. MerryMost of the field options may be logically ORed together. 20235672fac9SKenneth D. Merry.Bl -tag -width 12n 20245672fac9SKenneth D. Merry.It text_esc 20255672fac9SKenneth D. MerryPrint text fields with non-ASCII characters escaped. 20265672fac9SKenneth D. Merry.It text_raw 20275672fac9SKenneth D. MerryPrint text fields natively, with no codeset conversion. 20285672fac9SKenneth D. Merry.It nonascii_esc 20295672fac9SKenneth D. MerryIf any non-ASCII characters occur in fields that are supposed to be ASCII, 20305672fac9SKenneth D. Merryescape the non-ASCII characters. 20315672fac9SKenneth D. Merry.It nonascii_trim 20325672fac9SKenneth D. MerryIf any non-ASCII characters occur in fields that are supposed to be ASCII, 20335672fac9SKenneth D. Merryomit the non-ASCII characters. 20345672fac9SKenneth D. Merry.It nonascii_raw 20355672fac9SKenneth D. MerryIf any non-ASCII characters occur in fields that are supposed to be ASCII, 20365672fac9SKenneth D. Merryprint them as they are. 20375672fac9SKenneth D. Merry.It field_all 20385672fac9SKenneth D. MerryPrint all of the prefix fields: description, attribute number, attribute 20395672fac9SKenneth D. Merrysize, and the attribute's readonly status. 20405672fac9SKenneth D. MerryIf field_all is specified, specifying any other field options will not have 20415672fac9SKenneth D. Merryan effect. 20425672fac9SKenneth D. Merry.It field_none 20435672fac9SKenneth D. MerryPrint none of the prefix fields, and only print out the attribute value. 20445672fac9SKenneth D. MerryIf field_none is specified, specifying any other field options will result 20455672fac9SKenneth D. Merryin those fields being printed. 20465672fac9SKenneth D. Merry.It field_desc 20475672fac9SKenneth D. MerryPrint out the attribute description. 20485672fac9SKenneth D. Merry.It field_num 20495672fac9SKenneth D. MerryPrint out the attribute number. 20505672fac9SKenneth D. Merry.It field_size 20515672fac9SKenneth D. MerryPrint out the attribute size. 20525672fac9SKenneth D. Merry.It field_rw 20535672fac9SKenneth D. MerryPrint out the attribute's readonly status. 20545672fac9SKenneth D. Merry.El 20555672fac9SKenneth D. Merry.It Fl p Ar part 20565672fac9SKenneth D. MerrySpecify the partition. 20575672fac9SKenneth D. MerryWhen the media has multiple partitions, specifying different partition 20585672fac9SKenneth D. Merrynumbers allows seeing the values for each individual partition. 20595672fac9SKenneth D. Merry.It Fl s Ar start_num 20605672fac9SKenneth D. MerrySpecify the starting attribute number. 20615672fac9SKenneth D. MerryThis requests that the target device return attribute information starting 20625672fac9SKenneth D. Merryat the given number. 20635672fac9SKenneth D. Merry.It Fl T Ar elem_type 20645672fac9SKenneth D. MerrySpecify the element type. 20655672fac9SKenneth D. MerryFor medium changer devices, this allows specifying the type the element 20665672fac9SKenneth D. Merryreferenced in the element address ( 20675672fac9SKenneth D. Merry.Fl e ) . 20685672fac9SKenneth D. MerryValid types are: 20695672fac9SKenneth D. Merry.Dq all , 20705672fac9SKenneth D. Merry.Dq picker , 20715672fac9SKenneth D. Merry.Dq slot , 20725672fac9SKenneth D. Merry.Dq portal , 20735672fac9SKenneth D. Merryand 20745672fac9SKenneth D. Merry.Dq drive . 20755672fac9SKenneth D. Merry.It Fl V Ar vol_num 20765672fac9SKenneth D. MerrySpecify the number of the logical volume to operate on. 20775672fac9SKenneth D. MerryIf the media has multiple logical volumes, this will allow displaying 20785672fac9SKenneth D. Merryor writing attributes on the given logical volume. 2079*9a6844d5SKenneth D. Merry.El 20800e358df0SKenneth D. Merry.It Ic opcodes 20810e358df0SKenneth D. MerryIssue the REPORT SUPPORTED OPCODES service action of the 20820e358df0SKenneth D. Merry.Tn SCSI 20830e358df0SKenneth D. MerryMAINTENANCE IN 20840e358df0SKenneth D. Merrycommand. 20850e358df0SKenneth D. MerryWithout arguments, this command will return a list of all 20860e358df0SKenneth D. Merry.Tn SCSI 20870e358df0SKenneth D. Merrycommands supported by the device, including service actions of commands 20880e358df0SKenneth D. Merrythat support service actions. 20890e358df0SKenneth D. MerryIt will also include the 20900e358df0SKenneth D. Merry.Tn SCSI 20910e358df0SKenneth D. MerryCDB (Command Data Block) length for each command, and the description of 20920e358df0SKenneth D. Merryeach command if it is known. 20930e358df0SKenneth D. Merry.Bl -tag -width 18n 20940e358df0SKenneth D. Merry.It Fl o Ar opcode 20950e358df0SKenneth D. MerryRequest information on a specific opcode instead of the list of supported 20960e358df0SKenneth D. Merrycommands. 20970e358df0SKenneth D. MerryIf supported, the target will return a CDB-like structure that indicates 20980e358df0SKenneth D. Merrythe opcode, service action (if any), and a mask of bits that are supported 20990e358df0SKenneth D. Merryin that CDB. 21000e358df0SKenneth D. Merry.It Fl s Ar service_action 21010e358df0SKenneth D. MerryFor commands that support a service action, specify the service action to 21020e358df0SKenneth D. Merryquery. 21030e358df0SKenneth D. Merry.It Fl N 21040e358df0SKenneth D. MerryIf a service action is specified for a given opcode, and the device does 21050e358df0SKenneth D. Merrynot support the given service action, the device should not return a 21060e358df0SKenneth D. Merry.Tn SCSI 21070e358df0SKenneth D. Merryerror, but rather indicate in the returned parameter data that the command 21080e358df0SKenneth D. Merryis not supported. 21090e358df0SKenneth D. MerryBy default, if a service action is specified for an opcode, and service 21100e358df0SKenneth D. Merryactions are not supported for the opcode in question, the device will 21110e358df0SKenneth D. Merryreturn an error. 21120e358df0SKenneth D. Merry.It Fl T 21130e358df0SKenneth D. MerryInclude timeout values. 21140e358df0SKenneth D. MerryThis option works with the default display, which includes all commands 21150e358df0SKenneth D. Merrysupported by the device, and with the 21160e358df0SKenneth D. Merry.Fl o 21170e358df0SKenneth D. Merryand 21180e358df0SKenneth D. Merry.Fl s 21190e358df0SKenneth D. Merryoptions, which request information on a specific command and service 21200e358df0SKenneth D. Merryaction. 21210e358df0SKenneth D. MerryThis requests that the device report Nominal and Recommended timeout values 21220e358df0SKenneth D. Merryfor the given command or commands. 21230e358df0SKenneth D. MerryThe timeout values are in seconds. 21240e358df0SKenneth D. MerryThe timeout descriptor also includes a command-specific 21250e358df0SKenneth D. Merry.El 2126*9a6844d5SKenneth D. Merry.It Ic zone 2127*9a6844d5SKenneth D. MerryManage 2128*9a6844d5SKenneth D. Merry.Tn SCSI 2129*9a6844d5SKenneth D. Merryand 2130*9a6844d5SKenneth D. Merry.Tn ATA 2131*9a6844d5SKenneth D. MerryZoned Block devices. 2132*9a6844d5SKenneth D. MerryThis allows managing devices that conform to the 2133*9a6844d5SKenneth D. Merry.Tn SCSI 2134*9a6844d5SKenneth D. MerryZoned Block Commands (ZBC) and 2135*9a6844d5SKenneth D. Merry.Tn ATA 2136*9a6844d5SKenneth D. MerryZoned ATA Command Set (ZAC) 2137*9a6844d5SKenneth D. Merryspecifications. 2138*9a6844d5SKenneth D. MerryDevices using these command sets are usually hard drives using Shingled 2139*9a6844d5SKenneth D. MerryMagnetic Recording (SMR). 2140*9a6844d5SKenneth D. MerryThere are three types of SMR drives: 2141*9a6844d5SKenneth D. Merry.Bl -tag -width 13n 2142*9a6844d5SKenneth D. Merry.It Drive Managed 2143*9a6844d5SKenneth D. MerryDrive Managed drives look and act just like a standard random access block 2144*9a6844d5SKenneth D. Merrydevice, but underneath, the drive reads and writes the bulk of its capacity 2145*9a6844d5SKenneth D. Merryusing SMR zones. 2146*9a6844d5SKenneth D. MerrySequential writes will yield better performance, but writing sequentially 2147*9a6844d5SKenneth D. Merryis not required. 2148*9a6844d5SKenneth D. Merry.It Host Aware 2149*9a6844d5SKenneth D. MerryHost Aware drives expose the underlying zone layout via 2150*9a6844d5SKenneth D. Merry.Tn SCSI 2151*9a6844d5SKenneth D. Merryor 2152*9a6844d5SKenneth D. Merry.Tn ATA 2153*9a6844d5SKenneth D. Merrycommands and allow the host to manage the zone conditions. 2154*9a6844d5SKenneth D. MerryThe host is not required to manage the zones on the drive, though. 2155*9a6844d5SKenneth D. MerrySequential writes will yield better performance in Sequential Write 2156*9a6844d5SKenneth D. MerryPreferred zones, but the host can write randomly in those zones. 2157*9a6844d5SKenneth D. Merry.It Host Managed 2158*9a6844d5SKenneth D. MerryHost Managed drives expose the underlying zone layout via 2159*9a6844d5SKenneth D. Merry.Tn SCSI 2160*9a6844d5SKenneth D. Merryor 2161*9a6844d5SKenneth D. Merry.Tn ATA 2162*9a6844d5SKenneth D. Merrycommands. 2163*9a6844d5SKenneth D. MerryThe host is required to access the zones according to the rules described 2164*9a6844d5SKenneth D. Merryby the zone layout. 2165*9a6844d5SKenneth D. MerryAny commands that violate the rules will be returned with an error. 2166*9a6844d5SKenneth D. Merry.El 2167*9a6844d5SKenneth D. Merry.Pp 2168*9a6844d5SKenneth D. MerrySMR drives are divided into zones (typically in the range of 256MB each) 2169*9a6844d5SKenneth D. Merrythat fall into three general categories: 2170*9a6844d5SKenneth D. Merry.Bl -tag -width 20n 2171*9a6844d5SKenneth D. Merry.It Conventional 2172*9a6844d5SKenneth D. MerryThese are also known as Non Write Pointer zones. 2173*9a6844d5SKenneth D. MerryThese zones can be randomly written without an unexpected performance penalty. 2174*9a6844d5SKenneth D. Merry.It Sequential Preferred 2175*9a6844d5SKenneth D. MerryThese zones should be written sequentially starting at the write pointer 2176*9a6844d5SKenneth D. Merryfor the zone. 2177*9a6844d5SKenneth D. MerryThey may be written randomly. 2178*9a6844d5SKenneth D. MerryWrites that do not conform to the zone layout may be significantly slower 2179*9a6844d5SKenneth D. Merrythan expected. 2180*9a6844d5SKenneth D. Merry.It Sequential Required 2181*9a6844d5SKenneth D. MerryThese zones must be written sequentially. 2182*9a6844d5SKenneth D. MerryIf they are not written sequentially, starting at the write pointer, the 2183*9a6844d5SKenneth D. Merrycommand will fail. 2184*9a6844d5SKenneth D. Merry.El 2185*9a6844d5SKenneth D. Merry.Pp 2186*9a6844d5SKenneth D. Merry.Bl -tag -width 12n 2187*9a6844d5SKenneth D. Merry.It Fl c Ar cmd 2188*9a6844d5SKenneth D. MerrySpecify the zone subcommand: 2189*9a6844d5SKenneth D. Merry.Bl -tag -width 6n 2190*9a6844d5SKenneth D. Merry.It rz 2191*9a6844d5SKenneth D. MerryIssue the Report Zones command. 2192*9a6844d5SKenneth D. MerryAll zones are returned by default. 2193*9a6844d5SKenneth D. MerrySpecify report options with 2194*9a6844d5SKenneth D. Merry.Fl o 2195*9a6844d5SKenneth D. Merryand printing options with 2196*9a6844d5SKenneth D. Merry.Fl P . 2197*9a6844d5SKenneth D. MerrySpecify the starting LBA with 2198*9a6844d5SKenneth D. Merry.Fl l . 2199*9a6844d5SKenneth D. MerryNote that 2200*9a6844d5SKenneth D. Merry.Dq reportzones 2201*9a6844d5SKenneth D. Merryis also accepted as a command argument. 2202*9a6844d5SKenneth D. Merry.It open 2203*9a6844d5SKenneth D. MerryExplicitly open the zone specified by the starting LBA. 2204*9a6844d5SKenneth D. Merry.It close 2205*9a6844d5SKenneth D. MerryClose the zone specified by starting LBA. 2206*9a6844d5SKenneth D. Merry.It finish 2207*9a6844d5SKenneth D. MerryFinish the zone specified by the starting LBA. 2208*9a6844d5SKenneth D. Merry.It rwp 2209*9a6844d5SKenneth D. MerryReset the write pointer for the zone specified by the starting LBA. 2210*9a6844d5SKenneth D. Merry.El 2211*9a6844d5SKenneth D. Merry.It Fl a 2212*9a6844d5SKenneth D. MerryFor the Open, Close, Finish, and Reset Write Pointer operations, apply the 2213*9a6844d5SKenneth D. Merryoperation to all zones on the drive. 2214*9a6844d5SKenneth D. Merry.It Fl l Ar lba 2215*9a6844d5SKenneth D. MerrySpecify the starting LBA. 2216*9a6844d5SKenneth D. MerryFor the Report Zones command, this tells the drive to report starting with 2217*9a6844d5SKenneth D. Merrythe zone that starts at the given LBA. 2218*9a6844d5SKenneth D. MerryFor the other commands, this allows the user to identify the zone requested 2219*9a6844d5SKenneth D. Merryby its starting LBA. 2220*9a6844d5SKenneth D. MerryThe LBA may be specified in decimal, hexadecimal or octal notation. 2221*9a6844d5SKenneth D. Merry.It Fl o Ar rep_opt 2222*9a6844d5SKenneth D. MerryFor the Report Zones command, specify a subset of zones to report. 2223*9a6844d5SKenneth D. Merry.Bl -tag -width 8n 2224*9a6844d5SKenneth D. Merry.It all 2225*9a6844d5SKenneth D. MerryReport all zones. 2226*9a6844d5SKenneth D. MerryThis is the default. 2227*9a6844d5SKenneth D. Merry.It emtpy 2228*9a6844d5SKenneth D. MerryReport only empty zones. 2229*9a6844d5SKenneth D. Merry.It imp_open 2230*9a6844d5SKenneth D. MerryReport zones that are implicitly open. 2231*9a6844d5SKenneth D. MerryThis means that the host has sent a write to the zone without explicitly 2232*9a6844d5SKenneth D. Merryopening the zone. 2233*9a6844d5SKenneth D. Merry.It exp_open 2234*9a6844d5SKenneth D. MerryReport zones that are explicitly open. 2235*9a6844d5SKenneth D. Merry.It closed 2236*9a6844d5SKenneth D. MerryReport zones that have been closed by the host. 2237*9a6844d5SKenneth D. Merry.It full 2238*9a6844d5SKenneth D. MerryReport zones that are full. 2239*9a6844d5SKenneth D. Merry.It ro 2240*9a6844d5SKenneth D. MerryReport zones that are in the read only state. 2241*9a6844d5SKenneth D. MerryNote that 2242*9a6844d5SKenneth D. Merry.Dq readonly 2243*9a6844d5SKenneth D. Merryis also accepted as an argument. 2244*9a6844d5SKenneth D. Merry.It offline 2245*9a6844d5SKenneth D. MerryReport zones that are in the offline state. 2246*9a6844d5SKenneth D. Merry.It reset 2247*9a6844d5SKenneth D. MerryReport zones where the device recommends resetting write pointers. 2248*9a6844d5SKenneth D. Merry.It nonseq 2249*9a6844d5SKenneth D. MerryReport zones that have the Non Sequential Resources Active flag set. 2250*9a6844d5SKenneth D. MerryThese are zones that are Sequential Write Preferred, but have been written 2251*9a6844d5SKenneth D. Merrynon-sequentially. 2252*9a6844d5SKenneth D. Merry.It nonwp 2253*9a6844d5SKenneth D. MerryReport Non Write Pointer zones, also known as Conventional zones. 2254*9a6844d5SKenneth D. Merry.El 2255*9a6844d5SKenneth D. Merry.It Fl P Ar print_opt 2256*9a6844d5SKenneth D. MerrySpecify a printing option for Report Zones: 2257*9a6844d5SKenneth D. Merry.Bl -tag -width 7n 2258*9a6844d5SKenneth D. Merry.It normal 2259*9a6844d5SKenneth D. MerryNormal Report Zones output. 2260*9a6844d5SKenneth D. MerryThis is the default. 2261*9a6844d5SKenneth D. MerryThe summary and column headings are printed, fields are separated by spaces 2262*9a6844d5SKenneth D. Merryand the fields themselves may contain spaces. 2263*9a6844d5SKenneth D. Merry.It summary 2264*9a6844d5SKenneth D. MerryJust print the summary: the number of zones, the maximum LBA (LBA of the 2265*9a6844d5SKenneth D. Merrylast logical block on the drive), and the value of the 2266*9a6844d5SKenneth D. Merry.Dq same 2267*9a6844d5SKenneth D. Merryfield. 2268*9a6844d5SKenneth D. MerryThe 2269*9a6844d5SKenneth D. Merry.Dq same 2270*9a6844d5SKenneth D. Merryfield describes whether the zones on the drive are all identical, all 2271*9a6844d5SKenneth D. Merrydifferent, or whether they are the same except for the last zone, etc. 2272*9a6844d5SKenneth D. Merry.It script 2273*9a6844d5SKenneth D. MerryPrint the zones in a script friendly format. 2274*9a6844d5SKenneth D. MerryThe summary and column headings are omitted, the fields are separated by 2275*9a6844d5SKenneth D. Merrycommas, and the fields do not contain spaces. 2276*9a6844d5SKenneth D. MerryThe fields contain underscores where spaces would normally be used. 2277*9a6844d5SKenneth D. Merry.El 2278*9a6844d5SKenneth D. Merry.El 2279*9a6844d5SKenneth D. Merry.It Ic epc 2280*9a6844d5SKenneth D. MerryIssue 2281*9a6844d5SKenneth D. Merry.Tn ATA 2282*9a6844d5SKenneth D. MerryExtended Power Conditions (EPC) feature set commands. 2283*9a6844d5SKenneth D. MerryThis only works on 2284*9a6844d5SKenneth D. Merry.Tn ATA 2285*9a6844d5SKenneth D. Merryprotocol drives, and will not work on 2286*9a6844d5SKenneth D. Merry.Tn SCSI 2287*9a6844d5SKenneth D. Merryprotocol drives. 2288*9a6844d5SKenneth D. MerryIt will work on 2289*9a6844d5SKenneth D. Merry.Tn SATA 2290*9a6844d5SKenneth D. Merrydrives behind a 2291*9a6844d5SKenneth D. Merry.Tn SCSI 2292*9a6844d5SKenneth D. Merryto 2293*9a6844d5SKenneth D. Merry.Tn ATA 2294*9a6844d5SKenneth D. Merrytranslation layer (SAT). 2295*9a6844d5SKenneth D. MerryIt may be helpful to read the ATA Command Set - 4 (ACS-4) description of 2296*9a6844d5SKenneth D. Merrythe Extended Power Conditions feature set, available at t13.org, to 2297*9a6844d5SKenneth D. Merryunderstand the details of this particular 2298*9a6844d5SKenneth D. Merry.Nm 2299*9a6844d5SKenneth D. Merrysubcommand. 2300*9a6844d5SKenneth D. Merry.Bl -tag -width 6n 2301*9a6844d5SKenneth D. Merry.It Fl c Ar cmd 2302*9a6844d5SKenneth D. MerrySpecify the epc subcommand 2303*9a6844d5SKenneth D. Merry.Bl -tag -width 7n 2304*9a6844d5SKenneth D. Merry.It restore 2305*9a6844d5SKenneth D. MerryRestore drive power condition settings. 2306*9a6844d5SKenneth D. Merry.Bl -tag -width 6n 2307*9a6844d5SKenneth D. Merry.It Fl r Ar src 2308*9a6844d5SKenneth D. MerrySpecify the source for the restored power settings, either 2309*9a6844d5SKenneth D. Merry.Dq default 2310*9a6844d5SKenneth D. Merryor 2311*9a6844d5SKenneth D. Merry.Dq saved . 2312*9a6844d5SKenneth D. MerryThis argument is required. 2313*9a6844d5SKenneth D. Merry.It Fl s 2314*9a6844d5SKenneth D. MerrySave the settings. 2315*9a6844d5SKenneth D. MerryThis only makes sense to specify when restoring from defaults. 2316*9a6844d5SKenneth D. Merry.El 2317*9a6844d5SKenneth D. Merry.It goto 2318*9a6844d5SKenneth D. MerryGo to the specified power condition. 2319*9a6844d5SKenneth D. Merry.Bl -tag -width 7n 2320*9a6844d5SKenneth D. Merry.It Fl p Ar cond 2321*9a6844d5SKenneth D. MerrySpecify the power condition: Idle_a, Idle_b, Idle_c, Standby_y, Standby_z. 2322*9a6844d5SKenneth D. MerryThis argument is required. 2323*9a6844d5SKenneth D. Merry.It Fl D 2324*9a6844d5SKenneth D. MerrySpecify delayed entry to the power condition. 2325*9a6844d5SKenneth D. MerryThe drive, if it supports this, can enter the power condition after the 2326*9a6844d5SKenneth D. Merrycommand completes. 2327*9a6844d5SKenneth D. Merry.It Fl H 2328*9a6844d5SKenneth D. MerryHold the power condition. 2329*9a6844d5SKenneth D. MerryIf the drive supports this option, it will hold the power condition and 2330*9a6844d5SKenneth D. Merryreject all commands that would normally cause it to exit that power 2331*9a6844d5SKenneth D. Merrycondition. 2332*9a6844d5SKenneth D. Merry.El 2333*9a6844d5SKenneth D. Merry.It timer 2334*9a6844d5SKenneth D. MerrySet the timer value for a power condition and enable or disable the 2335*9a6844d5SKenneth D. Merrycondition. 2336*9a6844d5SKenneth D. MerrySee the 2337*9a6844d5SKenneth D. Merry.Dq list 2338*9a6844d5SKenneth D. Merrydisplay described below to see what the current timer settings are for each 2339*9a6844d5SKenneth D. MerryIdle and Standby mode supported by the drive. 2340*9a6844d5SKenneth D. Merry.Bl -tag -width 8n 2341*9a6844d5SKenneth D. Merry.It Fl e 2342*9a6844d5SKenneth D. MerryEnable the power condition. 2343*9a6844d5SKenneth D. MerryOne of 2344*9a6844d5SKenneth D. Merry.Fl e 2345*9a6844d5SKenneth D. Merryor 2346*9a6844d5SKenneth D. Merry.Fl d 2347*9a6844d5SKenneth D. Merryis required. 2348*9a6844d5SKenneth D. Merry.It Fl d 2349*9a6844d5SKenneth D. MerryDisable the power condition. 2350*9a6844d5SKenneth D. MerryOne of 2351*9a6844d5SKenneth D. Merry.Fl d 2352*9a6844d5SKenneth D. Merryor 2353*9a6844d5SKenneth D. Merry.Fl e 2354*9a6844d5SKenneth D. Merryis required. 2355*9a6844d5SKenneth D. Merry.It Fl T Ar timer 2356*9a6844d5SKenneth D. MerrySpecify the timer in seconds. 2357*9a6844d5SKenneth D. MerryThe user may specify a timer as a floating point number with a maximum 2358*9a6844d5SKenneth D. Merrysupported resolution of tenths of a second. 2359*9a6844d5SKenneth D. MerryDrives may or may not support sub-second timer values. 2360*9a6844d5SKenneth D. Merry.It Fl p Ar cond 2361*9a6844d5SKenneth D. MerrySpecify the power condition: Idle_a, Idle_b, Idle_c, Standby_y, Standby_z. 2362*9a6844d5SKenneth D. MerryThis argument is required. 2363*9a6844d5SKenneth D. Merry.It Fl s 2364*9a6844d5SKenneth D. MerrySave the timer and power condition enable/disable state. 2365*9a6844d5SKenneth D. MerryBy default, if this option is not specified, only the current values for 2366*9a6844d5SKenneth D. Merrythis power condition will be affected. 2367*9a6844d5SKenneth D. Merry.El 2368*9a6844d5SKenneth D. Merry.It state 2369*9a6844d5SKenneth D. MerryEnable or disable a particular power condition. 2370*9a6844d5SKenneth D. Merry.Bl -tag -width 7n 2371*9a6844d5SKenneth D. Merry.It Fl p Ar cond 2372*9a6844d5SKenneth D. MerrySpecify the power condition: Idle_a, Idle_b, Idle_c, Standby_y, Standby_z. 2373*9a6844d5SKenneth D. MerryThis argument is required. 2374*9a6844d5SKenneth D. Merry.It Fl s 2375*9a6844d5SKenneth D. MerrySave the power condition enable/disable state. 2376*9a6844d5SKenneth D. MerryBy default, if this option is not specified, only the current values for 2377*9a6844d5SKenneth D. Merrythis power condition will be affected. 2378*9a6844d5SKenneth D. Merry.El 2379*9a6844d5SKenneth D. Merry.It enable 2380*9a6844d5SKenneth D. MerryEnable the Extended Power Condition (EPC) feature set. 2381*9a6844d5SKenneth D. Merry.It disable 2382*9a6844d5SKenneth D. MerryDisable the Extended Power Condition (EPC) feature set. 2383*9a6844d5SKenneth D. Merry.It source 2384*9a6844d5SKenneth D. MerrySpecify the EPC power source. 2385*9a6844d5SKenneth D. Merry.Bl -tag -width 6n 2386*9a6844d5SKenneth D. Merry.It Fl S Ar src 2387*9a6844d5SKenneth D. MerrySpecify the power source, either 2388*9a6844d5SKenneth D. Merry.Dq battery 2389*9a6844d5SKenneth D. Merryor 2390*9a6844d5SKenneth D. Merry.Dq nonbattery . 2391*9a6844d5SKenneth D. Merry.El 2392*9a6844d5SKenneth D. Merry.It status 2393*9a6844d5SKenneth D. MerryGet the current status of several parameters related to the Extended Power 2394*9a6844d5SKenneth D. MerryCondition (EPC) feature set, including whether APM and EPC are supported 2395*9a6844d5SKenneth D. Merryand enabled, whether Low Power Standby is supported, whether setting the 2396*9a6844d5SKenneth D. MerryEPC power source is supported, whether Low Power Standby is supported and 2397*9a6844d5SKenneth D. Merrythe current power condition. 2398*9a6844d5SKenneth D. Merry.Bl -tag -width 3n 2399*9a6844d5SKenneth D. Merry.It Fl P 2400*9a6844d5SKenneth D. MerryOnly report the current power condition. 2401*9a6844d5SKenneth D. MerrySome drives will exit their current power condition if a command other than 2402*9a6844d5SKenneth D. Merrythe 2403*9a6844d5SKenneth D. Merry.Tn ATA 2404*9a6844d5SKenneth D. MerryCHECK POWER MODE command is received. 2405*9a6844d5SKenneth D. MerryIf this flag is specified, 2406*9a6844d5SKenneth D. Merry.Nm 2407*9a6844d5SKenneth D. Merrywill only issue the 2408*9a6844d5SKenneth D. Merry.Tn ATA 2409*9a6844d5SKenneth D. MerryCHECK POWER MODE command to the drive. 2410*9a6844d5SKenneth D. Merry.El 2411*9a6844d5SKenneth D. Merry.It list 2412*9a6844d5SKenneth D. MerryDisplay the 2413*9a6844d5SKenneth D. Merry.Tn ATA 2414*9a6844d5SKenneth D. MerryPower Conditions log (Log Address 0x08). 2415*9a6844d5SKenneth D. MerryThis shows the list of Idle and Standby power conditions the drive 2416*9a6844d5SKenneth D. Merrysupports, and a number of parameters about each condition, including 2417*9a6844d5SKenneth D. Merrywhether it is enabled and what the timer value is. 2418*9a6844d5SKenneth D. Merry.El 2419*9a6844d5SKenneth D. Merry.El 242033fab22eSKenneth D. Merry.It Ic help 24215a251d70SKenneth D. MerryPrint out verbose usage information. 2422525689f1SJustin T. Gibbs.El 2423525689f1SJustin T. Gibbs.Sh ENVIRONMENT 2424525689f1SJustin T. GibbsThe 2425525689f1SJustin T. Gibbs.Ev SCSI_MODES 2426525689f1SJustin T. Gibbsvariable allows the user to specify an alternate mode page format file. 2427525689f1SJustin T. Gibbs.Pp 2428525689f1SJustin T. GibbsThe 2429525689f1SJustin T. Gibbs.Ev EDITOR 2430525689f1SJustin T. Gibbsvariable determines which text editor 24317c7fb079SRuslan Ermilov.Nm 2432525689f1SJustin T. Gibbsstarts when editing mode pages. 2433525689f1SJustin T. Gibbs.Sh FILES 2434525689f1SJustin T. Gibbs.Bl -tag -width /usr/share/misc/scsi_modes -compact 2435525689f1SJustin T. Gibbs.It Pa /usr/share/misc/scsi_modes 2436525689f1SJustin T. Gibbsis the SCSI mode format database. 2437525689f1SJustin T. Gibbs.It Pa /dev/xpt0 2438525689f1SJustin T. Gibbsis the transport layer device. 2439525689f1SJustin T. Gibbs.It Pa /dev/pass* 2440525689f1SJustin T. Gibbsare the CAM application passthrough devices. 2441525689f1SJustin T. Gibbs.El 2442525689f1SJustin T. Gibbs.Sh EXAMPLES 2443525689f1SJustin T. Gibbs.Dl camcontrol eject -n cd -u 1 -v 2444525689f1SJustin T. Gibbs.Pp 2445525689f1SJustin T. GibbsEject the CD from cd1, and print SCSI sense information if the command 2446525689f1SJustin T. Gibbsfails. 2447525689f1SJustin T. Gibbs.Pp 2448b3550398SKenneth D. Merry.Dl camcontrol tur da0 2449525689f1SJustin T. Gibbs.Pp 2450525689f1SJustin T. GibbsSend the SCSI test unit ready command to da0. 2451e1205e80SPhilippe CharnierThe 24527c7fb079SRuslan Ermilov.Nm 2453e1205e80SPhilippe Charnierutility will report whether the disk is ready, but will not display sense 2454525689f1SJustin T. Gibbsinformation if the command fails since the 2455525689f1SJustin T. Gibbs.Fl v 2456525689f1SJustin T. Gibbsswitch was not specified. 2457c7938743SMike Pritchard.Bd -literal -offset indent 2458c60e19a8SKenneth D. Merrycamcontrol tur da1 -E -C 4 -t 50 -v 2459525689f1SJustin T. Gibbs.Ed 2460525689f1SJustin T. Gibbs.Pp 24619806e231SRuslan ErmilovSend a test unit ready command to da1. 24629806e231SRuslan ErmilovEnable kernel error recovery. 24639806e231SRuslan ErmilovSpecify a retry count of 4, and a timeout of 50 seconds. 24649806e231SRuslan ErmilovEnable sense 2465525689f1SJustin T. Gibbsprinting (with the 2466525689f1SJustin T. Gibbs.Fl v 24679806e231SRuslan Ermilovflag) if the command fails. 24689806e231SRuslan ErmilovSince error recovery is turned on, the 2469525689f1SJustin T. Gibbsdisk will be spun up if it is not currently spinning. 2470e1205e80SPhilippe CharnierThe 24717c7fb079SRuslan Ermilov.Nm 2472e1205e80SPhilippe Charnierutility will report whether the disk is ready. 2473c7938743SMike Pritchard.Bd -literal -offset indent 2474525689f1SJustin T. Gibbscamcontrol cmd -n cd -u 1 -v -c "3C 00 00 00 00 00 00 00 0e 00" \e 2475525689f1SJustin T. Gibbs -i 0xe "s1 i3 i1 i1 i1 i1 i1 i1 i1 i1 i1 i1" 2476525689f1SJustin T. Gibbs.Ed 2477525689f1SJustin T. Gibbs.Pp 24789806e231SRuslan ErmilovIssue a READ BUFFER command (0x3C) to cd1. 24799806e231SRuslan ErmilovDisplay the buffer size of cd1, 24809806e231SRuslan Ermilovand display the first 10 bytes from the cache on cd1. 24819806e231SRuslan ErmilovDisplay SCSI sense 2482525689f1SJustin T. Gibbsinformation if the command fails. 2483c7938743SMike Pritchard.Bd -literal -offset indent 24848604fe2eSSADA Kenjicamcontrol cmd -n cd -u 1 -v -c "3B 00 00 00 00 00 00 00 0e 00" \e 2485525689f1SJustin T. Gibbs -o 14 "00 00 00 00 1 2 3 4 5 6 v v v v" 7 8 9 8 2486525689f1SJustin T. Gibbs.Ed 2487525689f1SJustin T. Gibbs.Pp 24889806e231SRuslan ErmilovIssue a WRITE BUFFER (0x3B) command to cd1. 24899806e231SRuslan ErmilovWrite out 10 bytes of data, 24909806e231SRuslan Ermilovnot including the (reserved) 4 byte header. 24919806e231SRuslan ErmilovPrint out sense information if 24929806e231SRuslan Ermilovthe command fails. 24939806e231SRuslan ErmilovBe very careful with this command, improper use may 2494525689f1SJustin T. Gibbscause data corruption. 2495c7938743SMike Pritchard.Bd -literal -offset indent 2496c60e19a8SKenneth D. Merrycamcontrol modepage da3 -m 1 -e -P 3 249794d09127SKenneth D. Merry.Ed 2498525689f1SJustin T. Gibbs.Pp 2499525689f1SJustin T. GibbsEdit mode page 1 (the Read-Write Error Recover page) for da3, and save the 25009806e231SRuslan Ermilovsettings on the drive. 25019806e231SRuslan ErmilovMode page 1 contains a disk drive's auto read and 2502525689f1SJustin T. Gibbswrite reallocation settings, among other things. 2503525689f1SJustin T. Gibbs.Pp 25045710d224SKenneth D. Merry.Dl camcontrol rescan all 25055710d224SKenneth D. Merry.Pp 25065710d224SKenneth D. MerryRescan all SCSI busses in the system for devices that have been added, 25075710d224SKenneth D. Merryremoved or changed. 25085710d224SKenneth D. Merry.Pp 2509525689f1SJustin T. Gibbs.Dl camcontrol rescan 0 2510525689f1SJustin T. Gibbs.Pp 2511525689f1SJustin T. GibbsRescan SCSI bus 0 for devices that have been added, removed or changed. 2512525689f1SJustin T. Gibbs.Pp 2513525689f1SJustin T. Gibbs.Dl camcontrol rescan 0:1:0 2514525689f1SJustin T. Gibbs.Pp 2515525689f1SJustin T. GibbsRescan SCSI bus 0, target 1, lun 0 to see if it has been added, removed, or 2516525689f1SJustin T. Gibbschanged. 25179deea857SKenneth D. Merry.Pp 2518c60e19a8SKenneth D. Merry.Dl camcontrol tags da5 -N 24 25199deea857SKenneth D. Merry.Pp 25209deea857SKenneth D. MerrySet the number of concurrent transactions for da5 to 24. 2521c7938743SMike Pritchard.Bd -literal -offset indent 25229deea857SKenneth D. Merrycamcontrol negotiate -n da -u 4 -T disable 25239deea857SKenneth D. Merry.Ed 25249deea857SKenneth D. Merry.Pp 25259deea857SKenneth D. MerryDisable tagged queueing for da4. 2526c7938743SMike Pritchard.Bd -literal -offset indent 25279deea857SKenneth D. Merrycamcontrol negotiate -n da -u 3 -R 20.000 -O 15 -a 25289deea857SKenneth D. Merry.Ed 25299deea857SKenneth D. Merry.Pp 25309806e231SRuslan ErmilovNegotiate a sync rate of 20MHz and an offset of 15 with da3. 25319806e231SRuslan ErmilovThen send a 25329deea857SKenneth D. MerryTest Unit Ready command to make the settings take effect. 253306e79492SKenneth D. Merry.Bd -literal -offset indent 253406e79492SKenneth D. Merrycamcontrol smpcmd ses0 -v -r 4 "40 0 00 0" -R 1020 "s9 i1" 253506e79492SKenneth D. Merry.Ed 253606e79492SKenneth D. Merry.Pp 253706e79492SKenneth D. MerrySend the SMP REPORT GENERAL command to ses0, and display the number of PHYs 253806e79492SKenneth D. Merryit contains. 253906e79492SKenneth D. MerryDisplay SMP errors if the command fails. 25401146874aSSteven Hartland.Bd -literal -offset indent 25411146874aSSteven Hartlandcamcontrol security ada0 25421146874aSSteven Hartland.Ed 25431146874aSSteven Hartland.Pp 25441146874aSSteven HartlandReport security support and settings for ada0 25451146874aSSteven Hartland.Bd -literal -offset indent 254691804910SGavin Atkinsoncamcontrol security ada0 -U user -s MyPass 25471146874aSSteven Hartland.Ed 25481146874aSSteven Hartland.Pp 25491146874aSSteven HartlandEnable security on device ada0 with the password MyPass 25501146874aSSteven Hartland.Bd -literal -offset indent 255191804910SGavin Atkinsoncamcontrol security ada0 -U user -e MyPass 25521146874aSSteven Hartland.Ed 25531146874aSSteven Hartland.Pp 25541146874aSSteven HartlandSecure erase ada0 which has had security enabled with user password MyPass 25551146874aSSteven Hartland.Pp 25561146874aSSteven Hartland.Em WARNING! WARNING! WARNING! 25571146874aSSteven Hartland.Pp 25581146874aSSteven HartlandThis will 25591146874aSSteven Hartland.Em ERASE ALL 25601146874aSSteven Hartlanddata from the device, so backup your data before using! 25611146874aSSteven Hartland.Pp 25625bb17266SJoel DahlThis command can be used against an SSD drive to restoring it to 25631146874aSSteven Hartlandfactory default write performance. 25649e68761cSSteven Hartland.Bd -literal -offset indent 25659e68761cSSteven Hartlandcamcontrol hpa ada0 25669e68761cSSteven Hartland.Ed 25679e68761cSSteven Hartland.Pp 25689e68761cSSteven HartlandReport HPA support and settings for ada0 (also reported via 25699e68761cSSteven Hartlandidentify). 25709e68761cSSteven Hartland.Bd -literal -offset indent 25719e68761cSSteven Hartlandcamcontrol hpa ada0 -s 10240 25729e68761cSSteven Hartland.Ed 25739e68761cSSteven Hartland.Pp 25749e68761cSSteven HartlandEnables HPA on ada0 setting the maximum reported sectors to 10240. 25759e68761cSSteven Hartland.Pp 25769e68761cSSteven Hartland.Em WARNING! WARNING! WARNING! 25779e68761cSSteven Hartland.Pp 25789e68761cSSteven HartlandThis will 25799e68761cSSteven Hartland.Em PREVENT ACCESS 25809e68761cSSteven Hartlandto all data on the device beyond this limit until HPA is disabled by setting 25819e68761cSSteven HartlandHPA to native max sectors of the device, which can only be done after a 25829e68761cSSteven Hartlandpower-on or hardware reset! 25839e68761cSSteven Hartland.Pp 25849e68761cSSteven Hartland.Em DO NOT 25859e68761cSSteven Hartlanduse this on a device which has an active filesystem! 258608df2e3eSKenneth D. Merry.Bd -literal -offset indent 258708df2e3eSKenneth D. Merrycamcontrol persist da0 -v -i read_keys 258808df2e3eSKenneth D. Merry.Ed 258908df2e3eSKenneth D. Merry.Pp 259008df2e3eSKenneth D. MerryThis will read any persistent reservation keys registered with da0, and 259108df2e3eSKenneth D. Merrydisplay any errors encountered when sending the PERSISTENT RESERVE IN 259208df2e3eSKenneth D. Merry.Tn SCSI 259308df2e3eSKenneth D. Merrycommand. 259408df2e3eSKenneth D. Merry.Bd -literal -offset indent 259508df2e3eSKenneth D. Merrycamcontrol persist da0 -v -o register -a -K 0x12345678 259608df2e3eSKenneth D. Merry.Ed 259708df2e3eSKenneth D. Merry.Pp 259808df2e3eSKenneth D. MerryThis will register the persistent reservation key 0x12345678 with da0, 259908df2e3eSKenneth D. Merryapply that registration to all ports on da0, and display any errors that 260008df2e3eSKenneth D. Merryoccur when sending the PERSISTENT RESERVE OUT command. 260108df2e3eSKenneth D. Merry.Bd -literal -offset indent 260208df2e3eSKenneth D. Merrycamcontrol persist da0 -v -o reserve -s lun -k 0x12345678 -T ex_ac 260308df2e3eSKenneth D. Merry.Ed 260408df2e3eSKenneth D. Merry.Pp 260508df2e3eSKenneth D. MerryThis will reserve da0 for the exlusive use of the initiator issuing the 260608df2e3eSKenneth D. Merrycommand. 260708df2e3eSKenneth D. MerryThe scope of the reservation is the entire LUN. 260808df2e3eSKenneth D. MerryAny errors sending the PERSISTENT RESERVE OUT command will be displayed. 260908df2e3eSKenneth D. Merry.Bd -literal -offset indent 261008df2e3eSKenneth D. Merrycamcontrol persist da0 -v -i read_full 261108df2e3eSKenneth D. Merry.Ed 261208df2e3eSKenneth D. Merry.Pp 261308df2e3eSKenneth D. MerryThis will display the full status of all reservations on da0 and print out 261408df2e3eSKenneth D. Merrystatus if there are any errors. 261508df2e3eSKenneth D. Merry.Bd -literal -offset indent 261608df2e3eSKenneth D. Merrycamcontrol persist da0 -v -o release -k 0x12345678 -T ex_ac 261708df2e3eSKenneth D. Merry.Ed 261808df2e3eSKenneth D. Merry.Pp 261908df2e3eSKenneth D. MerryThis will release a reservation on da0 of the type ex_ac 262008df2e3eSKenneth D. Merry(Exclusive Access). 262108df2e3eSKenneth D. MerryThe Reservation Key for this registration is 0x12345678. 262208df2e3eSKenneth D. MerryAny errors that occur will be displayed. 262308df2e3eSKenneth D. Merry.Bd -literal -offset indent 262408df2e3eSKenneth D. Merrycamcontrol persist da0 -v -o register -K 0x12345678 -S \e 262508df2e3eSKenneth D. Merry -I sas,0x1234567812345678 -I sas,0x8765432187654321 262608df2e3eSKenneth D. Merry.Ed 262708df2e3eSKenneth D. Merry.Pp 262808df2e3eSKenneth D. MerryThis will register the key 0x12345678 with da0, specifying that it applies 262908df2e3eSKenneth D. Merryto the SAS initiators with SAS addresses 0x1234567812345678 and 263008df2e3eSKenneth D. Merry0x8765432187654321. 263108df2e3eSKenneth D. Merry.Bd -literal -offset indent 263208df2e3eSKenneth D. Merrycamcontrol persist da0 -v -o register_move -k 0x87654321 \e 263308df2e3eSKenneth D. Merry -K 0x12345678 -U -p -R 2 -I fcp,0x1234567812345678 263408df2e3eSKenneth D. Merry.Ed 263508df2e3eSKenneth D. Merry.Pp 263608df2e3eSKenneth D. MerryThis will move the registration from the current initiator, whose 263708df2e3eSKenneth D. MerryRegistration Key is 0x87654321, to the Fibre Channel initiator with the 263808df2e3eSKenneth D. MerryFiber Channel World Wide Node Name 0x1234567812345678. 263908df2e3eSKenneth D. MerryA new registration key, 0x12345678, will be registered for the initiator 264008df2e3eSKenneth D. Merrywith the Fibre Channel World Wide Node Name 0x1234567812345678, and the 264108df2e3eSKenneth D. Merrycurrent initiator will be unregistered from the target. 264208df2e3eSKenneth D. MerryThe reservation will be moved to relative target port 2 on the target 264308df2e3eSKenneth D. Merrydevice. 264408df2e3eSKenneth D. MerryThe registration will persist across power losses. 26455672fac9SKenneth D. Merry.Bd -literal -offset indent 26465672fac9SKenneth D. Merrycamcontrol attrib sa0 -v -i attr_values -p 1 26475672fac9SKenneth D. Merry.Ed 26485672fac9SKenneth D. Merry.Pp 26495672fac9SKenneth D. MerryThis will read and decode the attribute values from partition 1 on the tape 26505672fac9SKenneth D. Merryin tape drive sa0, and will display any 26515672fac9SKenneth D. Merry.Tn SCSI 26525672fac9SKenneth D. Merryerrors that result. 2653*9a6844d5SKenneth D. Merry.Pp 2654*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2655*9a6844d5SKenneth D. Merrycamcontrol zone da0 -v -c rz -P summary 2656*9a6844d5SKenneth D. Merry.Ed 2657*9a6844d5SKenneth D. Merry.Pp 2658*9a6844d5SKenneth D. MerryThis will request the SMR zone list from disk da0, and print out a 2659*9a6844d5SKenneth D. Merrysummary of the zone parameters, and display any 2660*9a6844d5SKenneth D. Merry.Tn SCSI 2661*9a6844d5SKenneth D. Merryor 2662*9a6844d5SKenneth D. Merry.Tn ATA 2663*9a6844d5SKenneth D. Merryerrors that result. 2664*9a6844d5SKenneth D. Merry.Pp 2665*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2666*9a6844d5SKenneth D. Merrycamcontrol zone da0 -v -c rz -o reset 2667*9a6844d5SKenneth D. Merry.Ed 2668*9a6844d5SKenneth D. Merry.Pp 2669*9a6844d5SKenneth D. MerryThis will request the list of SMR zones that should have their write 2670*9a6844d5SKenneth D. Merrypointer reset from the disk da0, and display any 2671*9a6844d5SKenneth D. Merry.Tn SCSI 2672*9a6844d5SKenneth D. Merryor 2673*9a6844d5SKenneth D. Merry.Tn ATA 2674*9a6844d5SKenneth D. Merryerrors that result. 2675*9a6844d5SKenneth D. Merry.Pp 2676*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2677*9a6844d5SKenneth D. Merrycamcontrol zone da0 -v -c rwp -l 0x2c80000 2678*9a6844d5SKenneth D. Merry.Ed 2679*9a6844d5SKenneth D. Merry.Pp 2680*9a6844d5SKenneth D. MerryThis will issue the Reset Write Pointer command to disk da0 for the zone 2681*9a6844d5SKenneth D. Merrythat starts at LBA 0x2c80000 and display any 2682*9a6844d5SKenneth D. Merry.Tn SCSI 2683*9a6844d5SKenneth D. Merryor 2684*9a6844d5SKenneth D. Merry.Tn ATA 2685*9a6844d5SKenneth D. Merryerrors that result. 2686*9a6844d5SKenneth D. Merry.Pp 2687*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2688*9a6844d5SKenneth D. Merrycamcontrol epc ada0 -c timer -T 60.1 -p Idle_a -e -s 2689*9a6844d5SKenneth D. Merry.Ed 2690*9a6844d5SKenneth D. Merry.Pp 2691*9a6844d5SKenneth D. MerrySet the timer for the Idle_a power condition on drive 2692*9a6844d5SKenneth D. Merry.Pa ada0 2693*9a6844d5SKenneth D. Merryto 60.1 seconds, enable that particular power condition, and save the timer 2694*9a6844d5SKenneth D. Merryvalue and the enabled state of the power condition. 2695*9a6844d5SKenneth D. Merry.Pp 2696*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2697*9a6844d5SKenneth D. Merrycamcontrol epc da4 -c goto -p Standby_z -H 2698*9a6844d5SKenneth D. Merry.Ed 2699*9a6844d5SKenneth D. Merry.Pp 2700*9a6844d5SKenneth D. MerryTell drive 2701*9a6844d5SKenneth D. Merry.Pa da4 2702*9a6844d5SKenneth D. Merryto go to the Standby_z power state (which is 2703*9a6844d5SKenneth D. Merrythe drive's lowest power state) and hold in that state until it is 2704*9a6844d5SKenneth D. Merryexplicitly released by another 2705*9a6844d5SKenneth D. Merry.Cm goto 2706*9a6844d5SKenneth D. Merrycommand. 2707*9a6844d5SKenneth D. Merry.Pp 2708*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2709*9a6844d5SKenneth D. Merrycamcontrol epc da2 -c status -P 2710*9a6844d5SKenneth D. Merry.Ed 2711*9a6844d5SKenneth D. Merry.Pp 2712*9a6844d5SKenneth D. MerryReport only the power state of 2713*9a6844d5SKenneth D. Merrydrive 2714*9a6844d5SKenneth D. Merry.Pa da2 . 2715*9a6844d5SKenneth D. MerrySome drives will power up in response to the commands sent by the 2716*9a6844d5SKenneth D. Merry.Pa status 2717*9a6844d5SKenneth D. Merrysubcommand, and the 2718*9a6844d5SKenneth D. Merry.Fl P 2719*9a6844d5SKenneth D. Merryoption causes 2720*9a6844d5SKenneth D. Merry.Nm 2721*9a6844d5SKenneth D. Merryto only send the 2722*9a6844d5SKenneth D. Merry.Tn ATA 2723*9a6844d5SKenneth D. MerryCHECK POWER MODE command, which should not trigger a change in the drive's 2724*9a6844d5SKenneth D. Merrypower state. 2725*9a6844d5SKenneth D. Merry.Pp 2726*9a6844d5SKenneth D. Merry.Bd -literal -offset indent 2727*9a6844d5SKenneth D. Merrycamcontrol epc ada0 -c list 2728*9a6844d5SKenneth D. Merry.Ed 2729*9a6844d5SKenneth D. Merry.Pp 2730*9a6844d5SKenneth D. MerryDisplay the ATA Power Conditions log (Log Address 0x08) for 2731*9a6844d5SKenneth D. Merrydrive 2732*9a6844d5SKenneth D. Merry.Pa ada0 . 2733525689f1SJustin T. Gibbs.Sh SEE ALSO 2734525689f1SJustin T. Gibbs.Xr cam 3 , 27359deea857SKenneth D. Merry.Xr cam_cdbparse 3 , 2736c0bdb22bSMatthew Hunt.Xr cam 4 , 2737525689f1SJustin T. Gibbs.Xr pass 4 , 2738c0bdb22bSMatthew Hunt.Xr xpt 4 2739525689f1SJustin T. Gibbs.Sh HISTORY 2740525689f1SJustin T. GibbsThe 27417c7fb079SRuslan Ermilov.Nm 2742e1205e80SPhilippe Charnierutility first appeared in 2743525689f1SJustin T. Gibbs.Fx 3.0 . 2744525689f1SJustin T. Gibbs.Pp 2745525689f1SJustin T. GibbsThe mode page editing code and arbitrary SCSI command code are based upon 2746525689f1SJustin T. Gibbscode in the old 2747525689f1SJustin T. Gibbs.Xr scsi 8 2748525689f1SJustin T. Gibbsutility and 2749525689f1SJustin T. Gibbs.Xr scsi 3 27509806e231SRuslan Ermilovlibrary, written by Julian Elischer and Peter Dufault. 27519806e231SRuslan ErmilovThe 2752525689f1SJustin T. Gibbs.Xr scsi 8 2753753d686dSRuslan Ermilovprogram first appeared in 2754753d686dSRuslan Ermilov.Bx 386 0.1.2.4 , 2755753d686dSRuslan Ermilovand first appeared in 275633fab22eSKenneth D. Merry.Fx 2757525689f1SJustin T. Gibbsin 2758525689f1SJustin T. Gibbs.Fx 2.0.5 . 2759525689f1SJustin T. Gibbs.Sh AUTHORS 2760bd0891ceSBaptiste Daroussin.An Kenneth Merry Aq Mt ken@FreeBSD.org 2761525689f1SJustin T. Gibbs.Sh BUGS 27620227791bSRuslan ErmilovThe code that parses the generic command line arguments does not know that 27639806e231SRuslan Ermilovsome of the subcommands take multiple arguments. 27649806e231SRuslan ErmilovSo if, for instance, you 2765525689f1SJustin T. Gibbstried something like this: 2766c7938743SMike Pritchard.Bd -literal -offset indent 2767b9e3972aSKenneth D. Merrycamcontrol cmd -n da -u 1 -c "00 00 00 00 00 v" 0x00 -v 2768525689f1SJustin T. Gibbs.Ed 2769525689f1SJustin T. Gibbs.Pp 2770525689f1SJustin T. GibbsThe sense information from the test unit ready command would not get 2771525689f1SJustin T. Gibbsprinted out, since the first 2772525689f1SJustin T. Gibbs.Xr getopt 3 2773525689f1SJustin T. Gibbscall in 27747c7fb079SRuslan Ermilov.Nm 2775525689f1SJustin T. Gibbsbails out when it sees the second argument to 2776525689f1SJustin T. Gibbs.Fl c 2777c4d9468eSRuslan Ermilov(0x00), 27789806e231SRuslan Ermilovabove. 27799806e231SRuslan ErmilovFixing this behavior would take some gross code, or changes to the 2780525689f1SJustin T. Gibbs.Xr getopt 3 27819806e231SRuslan Ermilovinterface. 27829806e231SRuslan ErmilovThe best way to circumvent this problem is to always make sure 2783525689f1SJustin T. Gibbsto specify generic 27847c7fb079SRuslan Ermilov.Nm 2785525689f1SJustin T. Gibbsarguments before any command-specific arguments. 2786