summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2007-04-05 02:38:28 +0000
committerdlg <dlg@openbsd.org>2007-04-05 02:38:28 +0000
commit936f8bb2f79c9a4a7c3723a84aaf27e7496b3949 (patch)
tree791d47e92796a74a7a328c1bd49175cf42b8a0d4
parentregen (diff)
downloadwireguard-openbsd-936f8bb2f79c9a4a7c3723a84aaf27e7496b3949.tar.xz
wireguard-openbsd-936f8bb2f79c9a4a7c3723a84aaf27e7496b3949.zip
start defining the scatter/gather bits and the port request blocks (PRBs).
-rw-r--r--sys/dev/ic/silireg.h51
-rw-r--r--sys/dev/pci/sili_pci.c5
2 files changed, 54 insertions, 2 deletions
diff --git a/sys/dev/ic/silireg.h b/sys/dev/ic/silireg.h
index e050dcbc717..754abc97827 100644
--- a/sys/dev/ic/silireg.h
+++ b/sys/dev/ic/silireg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: silireg.h,v 1.14 2007/04/04 11:38:35 dlg Exp $ */
+/* $OpenBSD: silireg.h,v 1.15 2007/04/05 02:38:28 dlg Exp $ */
/*
* Copyright (c) 2007 David Gwynne <dlg@openbsd.org>
@@ -133,3 +133,52 @@
#define SILI_MAX_CMDS 31
+
+
+struct sili_sge {
+ u_int32_t addr_lo;
+ u_int32_t addr_hi;
+ u_int32_t data_count;
+ u_int32_t flags;
+#define SILI_SGE_TRM (1<<31)
+#define SILI_SGE_LNK (1<<30)
+#define SILI_SGE_DRD (1<<29)
+#define SILI_SGE_XCF (1<<28)
+} __packed;
+
+struct sili_prb_ata {
+ u_int16_t control;
+ u_int16_t protocol_override;
+ u_int32_t rx_count;
+
+ u_int8_t fis[ATA_FIS_LENGTH];
+
+ u_int32_t reserved;
+
+ struct sili_sge sgl[2];
+} __packed;
+
+struct sili_prb_packet {
+ u_int16_t control;
+ u_int16_t protocol_override;
+ u_int32_t rx_count;
+
+ u_int8_t fis[ATA_FIS_LENGTH];
+
+ u_int32_t reserved;
+
+ u_int8_t cdb[16];
+
+ struct sili_sge sgl[1];
+} __packed;
+
+struct sili_prb_softreset {
+ u_int16_t control;
+ u_int16_t reserved1;
+ u_int32_t reserved2;
+
+ u_int8_t fis[ATA_FIS_LENGTH];
+
+ u_int32_t reserved3[9];
+} __packed;
+
diff --git a/sys/dev/pci/sili_pci.c b/sys/dev/pci/sili_pci.c
index d0a6ecdeac2..217642e91f5 100644
--- a/sys/dev/pci/sili_pci.c
+++ b/sys/dev/pci/sili_pci.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sili_pci.c,v 1.4 2007/03/31 23:42:18 jsg Exp $ */
+/* $OpenBSD: sili_pci.c,v 1.5 2007/04/05 02:38:28 dlg Exp $ */
/*
* Copyright (c) 2007 David Gwynne <dlg@openbsd.org>
@@ -21,6 +21,7 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/device.h>
+#include <sys/timeout.h>
#include <machine/bus.h>
@@ -28,6 +29,8 @@
#include <dev/pci/pcivar.h>
#include <dev/pci/pcidevs.h>
+#include <dev/ata/atascsi.h>
+
#include <dev/ic/silireg.h>
#include <dev/ic/silivar.h>