summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md49
1 files changed, 49 insertions, 0 deletions
diff --git a/README.md b/README.md
index 8240584..a1441f4 100644
--- a/README.md
+++ b/README.md
@@ -26,3 +26,52 @@ UART:
- pin2: gpio1: RX (so connect it to your FTDI's TX)
- pin3: gnd (so connect it to your FTDI's GND)
- picocom --baud=115200 /dev/ttyUSB0
+
+# Usage
+
+The harness uses DHCP to acquire an IPv4 address, then serves the 9P
+protocol over TCP:
+
+ - TCP port: 564 (9P does not have a standard TCP port number, but
+ this is the default port number used by most 9P-over-TCP clients,
+ including the Linux kernel's v9fs driver).
+ - Supported protocol versions:
+ - `9P2000` (base protocol): Yes
+ - `9P2000.u` (Unix extension): Yes, with Linux kernel
+ architecture-"generic" errnos. This will match the Linux kernel
+ errnos on most architectures (but notably not on Alpha, MIPS,
+ PA-RISC, PowerPC, or SPARC; I am unsure whether on these
+ platforms the kernel's v9fs filesystem driver will map the
+ "generic" errnos to the architecture-specific errnos for you).
+ - `9P2000.L` (Linux extension): No, it's an abomination and
+ unlikely to ever be supported
+ - `9P2000.e` (Erlang extension): No, but if you want it and ask
+ nicely I'd be happy to add it (I'm not sure why you'd want it
+ though).
+ - Authentication: None
+
+There are lots of 9P clients that you can use. 9P is a filesystem
+protocol; and you can mount it directly with the the Linux kernel's
+v9fs filesystem driver, with plan9port's `9pfuse`; or interact with it
+without mounting it using the shell commands `9p` (from plan9port),
+`wmiir`, `ixpc`; or interact with it without mounting it by using a
+library for your programming language of choice.
+
+Some notes on choosing a client:
+ - On x86-32, the Linux kernel v9fs driver is known to drop entries
+ from directory listings; I advise using 9pfuse instead of you want
+ to mount it on 32-bit systems.
+ - I generally like mounting it as a real filesystem, but this means
+ that you only get errno errors, and the more-helpful error strings
+ are discarded.
+ - The sbc-harness only supports 8 concurrent connections to the 9P
+ server, so while shell commands are handy for poking around, for
+ real use where you're doing things in parallel you'll likely want
+ to mount it or use a library that can reuse existing connections.
+
+# Bugs/Limitations
+
+ - Only supports 8 concurrent TCP connectsions to the 9P server (due
+ to limitations in the W5500 TCP-offload chip)
+ - Only supports IPv4, not IPv6 (due to limitations in the W5500
+ TCP-offload chip)