9front - general discussion about 9front
 help / color / mirror / Atom feed
* [9front] bring sd(3) from 9atom
@ 2021-09-29 21:12 Stuart Morrow
  0 siblings, 0 replies; only message in thread
From: Stuart Morrow @ 2021-09-29 21:12 UTC (permalink / raw)
  To: 9front

The allusion by bootrc to an 'led' file prompted looking into this.
Sd stuff was brought in from 9atom in 2011, but the documentation was not.
What follows is true and factual AFAICS.
The change from short-form AoE path to long-form seems to be personal
preference. I dunno.
References to 9load(8) are no more.

diff bd63aeb60d1c38cd04e2f64c809685814c5607d7 uncommitted
--- a/sys/man/3/sd
+++ b/sys/man/3/sd
@@ -21,16 +21,19 @@
 .IR C  ,
 and by its unit number
 .IR u .
-The controller naming convention for ATA(PI) units starts
-with the first controller being named
+The controller naming convention for legacy IDE units
+names the first controller
 .LR C ,
-the second
-.LR D ,
-etc. up to a maximum of 4 controllers
-.RB ([ C-F ]);
-legacy controllers are always 'C' and 'D'.
-There can be a maximum of 2 units per ATA(PI) controller
+and the second
+.LR D .
+There can be a maximum of 4 IDE controllers and a
+maximum of 2 units per IDE controller
 .RB ([ 01 ]).
+Other ATA controllers start with
+the first controller being named
+.LR E
+There can be a maximum of 16 units per non-legacy ATA controller
+.RB ([ 0-9a-f ]).
 The controller naming convention for SCSI units starts with
 the first controller being named
 .LR 0 ,
@@ -106,7 +109,7 @@
 A line prefixed by
 .B config
 will be returned for appropriate media,
-e.g. for ATA(PI) units the remainder of the line contains
+e.g. for IDE units the remainder of the line contains
 configuration information from the device's
 .I identify
 command (config and capabilities)
@@ -170,10 +173,19 @@
 .B raw
-file is used to execute an arbitrary command on the unit at
-a low level.
+file is used to execute an arbitrary SCSI or ATA
+commands on the unit at a low level.  SCSI commands
+are submitted as raw CDBs up to 16 bytes long.
+ATA commands are formatted as ATA8-AST FISes
+prefixed by two bytes \- an ata escape
+.B 0xff
+and a byte specifying the ATA protcol.  All devices
+respond to basic SCSI commands such as
+.B inquiry .
 This is used by programs such as
 .IR scuzz (8)
+.IR atazz (8)
 to manipulate devices that do not fit the simple storage model
 or for maintenance purposes.
 The following steps may be taken to execute a command
@@ -187,7 +199,9 @@
 Read the
 .I raw
 file to retrieve the status of the command,
-returned as a text integer.
+returned as a text integer for SCSI commands.
+ATA commands return the one byte status and
+response FIS.
 .B /dev/sdctl
@@ -237,18 +251,21 @@
 .B /sys/src/9/port/devsd.c
 .B /sys/src/9/*/sd*.[hc]
+.IR atazz (8),
+.IR sdahci (3),
+.IR sdaoe (3),
 .IR scuzz (8)
 LUNs (logical unit numbers) are not implemented.
-For (S)ATA drives,
+For ATA drives,
 LUNs are not merely ignored but are actively
 prevented from working except for INQUIRY commands.
-The 4 controller limit for ATA(PI) is not enforced.
+The 4 controller limit for IDE is not enforced.
-No account is taken of some buggy ATA PCI controllers
+No account is taken of some buggy IDE PCI controllers
 such as the CMD640.
-ATA(PI) units come up with DMA and multi-sector read/write
+IDE units come up with DMA and multi-sector read/write
 capability disabled.
--- a/sys/man/3/sdahci
+++ b/sys/man/3/sdahci
@@ -5,7 +5,7 @@
 .B bind -a #S /dev
 .sp 0.3v
-.BI /dev/sdctl
+.B /dev/sdctl
 .sp 0.3v
 .BI /dev/sd En /ctl
 .BI /dev/sd En /raw
@@ -17,7 +17,7 @@
 .I sdahci
 driver provides access to AHCI devices via the
 .IR sd (3)
+interface.  AHCI devices use the ATA command set.
 The AHCI programming interface supports up to 32
 hot-swappable ATAPI or hard disk-like devices per controller.
 The legacy IDE interface provided by
@@ -28,15 +28,14 @@
 AHCI controllers are detected automatically.
-Currently Intel and AMD controllers are detected.
+Currently ALi, AMD, Intel, JMicron, Marvell, SiS, VIA, and nVidia
controllers are detected.
 Intel controllers need to have AHCI enabled in the BIOS.
-.L ich
+For ICH (I/O Controller Hub)
 parts this typically means enabling
 enhanced mode and AHCI.
 For ESB (Enterprise South Bridge) -based
 parts, only enhanced mode needs to be enabled.
+Due to hardware errata, Intel
 .BR ich9 -based
 AHCI does not support hot swapping and
 drives must be connected to the lowest-numbered free port.
@@ -45,16 +44,16 @@
 .BR /dev/sdctl ,
 supports the following control messages for
 .IR sdahci :
-.TF "\fLahci idprint"
+.TF "\fLiahci idprint"
-.B ahci debug
+.B iahci debug
 Toggle debug messages.  Default is off.
-.B ahci idprint
+.B iahci idprint
 Toggle printing of drive identification messages.  Default is on.
 Prints short messages when a drive is identified or removed.
-.B ahci aprint
+.B iahci aprint
 Print verbose ATAPI debugging messages.  Default is off.
@@ -61,57 +60,18 @@
 The device-level
 .B ctl
 file supports:
-.TF \fLsmartdisable
+.TF \fLmode
-.B flushcache
-Send the ATA/ATAPI
-.RB ( 0xe7
-.BR 0xea ).
-This command may take up to 60 seconds to complete.
-.B identify
-Send the ATA/ATAPI
-.RB ( 0xec ).
-If device information has changed, the new size,
-features and serial will be noted.
-If changed, I/O on existing file
-descriptors will result in the error string
-.LR "media or partition has changed" .
 .BI "mode " speed
 Change the connection
 .I speed
 to one of
 .BR auto ,
-.BR satai
+.BR satai ,
+.BR sataii ,
-.BR sataii .
+.BR sataiii .
-.B nop
-Send the ATA
-.RB ( 0 )
-if the device supports it. Per standard, the result is always an error.
-.B smart
-Send the ATA/ATAPI
-.RB ( 0xda ).
-This will fail unless SMART is enabled on the drive.
-.B smartdisable
-Disable SMART on the drive.  SMART is a persistent property of the drive.
-.B smartenable
-Enable SMART on the drive.
 .BI "state " state
 Force a transition to the named
 .IR state .
@@ -151,10 +111,11 @@
 .B /sys/src/9/pc/sdiahci.c
+.IR atazz (8),
 .IR sd (3)
-.BR http://download.intel.com/technology/serialata/pdf/rev1_2.pdf .
+.BR http://download.intel.com/technology/serialata/pdf/rev1_3.pdf .
-None of enclosure management, LED control and port multipliers are supported.
+Enclosure management, LED control and port multipliers are supported.
 ATAPI devices may not be reset when they have outstanding commands.
--- a/sys/man/3/sdaoe
+++ b/sys/man/3/sdaoe
@@ -1,6 +1,6 @@
-sdaoe \- ATA-over-Ethernet (AoE) storage device interface
+sdaoe, addaoe \- ATA-over-Ethernet (AoE) storage device interface
 .B bind -a #S /dev
@@ -59,7 +59,13 @@
 echo config switch off spec e >/dev/sdctl
-To boot using target
+To boot from an AoE root, the
+.B sd
+device must be configured on boot.  To accomplish this,
+one must either PXE boot or boot from direct-attached
+storage and add two configuration lines to
+.IR plan9.ini (8).
+For example, to boot using target
 .B 42.0
 .B #S/sde0
@@ -68,16 +74,15 @@
 aoeif=ether0 ether1
 .B /sys/src/9/port/sdaoe.c
-.\" .IR vblade (1),
 .IR aoe (3),
 .IR sd (3),
-.\" .IR cec (8),
-.IR snoopy (8)
+.IR snoopy (8),
+.IR vblade (8)
 It is not currently possible to boot from an AoE target without an
 external bootstrap like PXE.
--- a/sys/man/3/sdloop
+++ b/sys/man/3/sdloop
@@ -4,7 +4,7 @@
 .B bind -a #S /dev
-.BI "echo config switch on spec " l " type
loop/\fIpath\fP[!\fIsectsize\fP] >/dev/sdctl"
+.BI "echo config switch on spec " l " type
loop/\fIpath\fP[[!\fIsectors\fP]!\fIsectsize\fP] >/dev/sdctl"

 .BI /dev/sd l 0/ctl
 .BI /dev/sd l 0/raw
@@ -13,7 +13,8 @@
 .I Sdloop
-allows a file to be used as a sd device.
+allows a file to be used as a sd device.  By specifying a number
+of sectors, the device may be be a different size than the file.
 To configure
 .B /tmp/data
@@ -45,7 +46,6 @@
 .B /sys/src/9/port/sdloop.c
 .IR sd (3),
-.IR sdaoe (3),
-.IR partfs (8)
+.IR sdaoe (3)

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-29 21:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29 21:12 [9front] bring sd(3) from 9atom Stuart Morrow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).