Author: thompsa
Date: Tue Jan 13 21:18:14 2009
New Revision: 187192
URL: http://svn.freebsd.org/changeset/base/187192

Log:
  Restore the if_*var.h and if_*reg.h to their original names, they dont need to
  be different.

Added:
  head/sys/dev/usb2/ethernet/if_auereg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_auereg.h
  head/sys/dev/usb2/ethernet/if_axereg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_axereg.h
  head/sys/dev/usb2/ethernet/if_cdcereg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_cdcereg.h
  head/sys/dev/usb2/ethernet/if_cuereg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_cuereg.h
  head/sys/dev/usb2/ethernet/if_kuefw.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_kuefw.h
  head/sys/dev/usb2/ethernet/if_kuereg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_kuereg.h
  head/sys/dev/usb2/ethernet/if_ruereg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_ruereg.h
  head/sys/dev/usb2/ethernet/if_udavreg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_udavreg.h
  head/sys/dev/usb2/wlan/if_rumfw.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_rumfw.h
  head/sys/dev/usb2/wlan/if_rumreg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_rumreg.h
  head/sys/dev/usb2/wlan/if_rumvar.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_rumvar.h
  head/sys/dev/usb2/wlan/if_uralreg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_uralreg.h
  head/sys/dev/usb2/wlan/if_uralvar.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_uralvar.h
  head/sys/dev/usb2/wlan/if_zydfw.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_zydfw.h
  head/sys/dev/usb2/wlan/if_zydreg.h
     - copied unchanged from r187190, 
user/thompsa/usb/sys/dev/usb2/wlan/if_zydreg.h
Deleted:
  head/sys/dev/usb2/ethernet/if_aue2_reg.h
  head/sys/dev/usb2/ethernet/if_axe2_reg.h
  head/sys/dev/usb2/ethernet/if_cdce2_reg.h
  head/sys/dev/usb2/ethernet/if_cue2_reg.h
  head/sys/dev/usb2/ethernet/if_kue2_fw.h
  head/sys/dev/usb2/ethernet/if_kue2_reg.h
  head/sys/dev/usb2/ethernet/if_rue2_reg.h
  head/sys/dev/usb2/ethernet/if_udav2_reg.h
  head/sys/dev/usb2/wlan/if_rum2_fw.h
  head/sys/dev/usb2/wlan/if_rum2_reg.h
  head/sys/dev/usb2/wlan/if_rum2_var.h
  head/sys/dev/usb2/wlan/if_ural2_reg.h
  head/sys/dev/usb2/wlan/if_ural2_var.h
  head/sys/dev/usb2/wlan/if_zyd2_fw.h
  head/sys/dev/usb2/wlan/if_zyd2_reg.h
Modified:
  head/sys/   (props changed)
  head/sys/arm/arm/cpufunc_asm_sheeva.S   (props changed)
  head/sys/contrib/pf/   (props changed)
  head/sys/dev/usb/ehci_ixp4xx.c   (props changed)
  head/sys/dev/usb2/ethernet/if_aue2.c
  head/sys/dev/usb2/ethernet/if_axe2.c
  head/sys/dev/usb2/ethernet/if_cdce2.c
  head/sys/dev/usb2/ethernet/if_cue2.c
  head/sys/dev/usb2/ethernet/if_kue2.c
  head/sys/dev/usb2/ethernet/if_rue2.c
  head/sys/dev/usb2/ethernet/if_udav2.c
  head/sys/dev/usb2/wlan/if_rum2.c
  head/sys/dev/usb2/wlan/if_ural2.c
  head/sys/dev/usb2/wlan/if_zyd2.c
  head/sys/mips/mips/elf64_machdep.c   (props changed)

Modified: head/sys/dev/usb2/ethernet/if_aue2.c
==============================================================================
--- head/sys/dev/usb2/ethernet/if_aue2.c        Tue Jan 13 21:13:35 2009        
(r187191)
+++ head/sys/dev/usb2/ethernet/if_aue2.c        Tue Jan 13 21:18:14 2009        
(r187192)
@@ -87,7 +87,7 @@ __FBSDID("$FreeBSD$");
 #include <dev/usb2/core/usb2_util.h>
 
 #include <dev/usb2/ethernet/usb2_ethernet.h>
-#include <dev/usb2/ethernet/if_aue2_reg.h>
+#include <dev/usb2/ethernet/if_auereg.h>
 
 MODULE_DEPEND(aue, usb2_ethernet, 1, 1, 1);
 MODULE_DEPEND(aue, usb2_core, 1, 1, 1);

Copied: head/sys/dev/usb2/ethernet/if_auereg.h (from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_auereg.h)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/usb2/ethernet/if_auereg.h      Tue Jan 13 21:18:14 2009        
(r187192, copy of r187190, user/thompsa/usb/sys/dev/usb2/ethernet/if_auereg.h)
@@ -0,0 +1,232 @@
+/*-
+ * Copyright (c) 1997, 1998, 1999
+ *     Bill Paul <wp...@ee.columbia.edu>.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by Bill Paul.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Register definitions for ADMtek Pegasus AN986 USB to Ethernet
+ * chip. The Pegasus uses a total of four USB endpoints: the control
+ * endpoint (0), a bulk read endpoint for receiving packets (1),
+ * a bulk write endpoint for sending packets (2) and an interrupt
+ * endpoint for passing RX and TX status (3). Endpoint 0 is used
+ * to read and write the ethernet module's registers. All registers
+ * are 8 bits wide.
+ *
+ * Packet transfer is done in 64 byte chunks. The last chunk in a
+ * transfer is denoted by having a length less that 64 bytes.  For
+ * the RX case, the data includes an optional RX status word.
+ */
+
+#define        AUE_UR_READREG          0xF0
+#define        AUE_UR_WRITEREG         0xF1
+
+#define        AUE_CONFIG_INDEX        0       /* config number 1 */
+#define        AUE_IFACE_IDX           0
+
+/*
+ * Note that while the ADMtek technically has four endpoints, the control
+ * endpoint (endpoint 0) is regarded as special by the USB code and drivers
+ * don't have direct access to it (we access it using usb2_do_request()
+ * when reading/writing registers.  Consequently, our endpoint indexes
+ * don't match those in the ADMtek Pegasus manual: we consider the RX data
+ * endpoint to be index 0 and work up from there.
+ */
+#define        AUE_ENDPT_MAX           6
+
+#define        AUE_INTR_PKTLEN         0x8
+
+#define        AUE_CTL0                0x00
+#define        AUE_CTL1                0x01
+#define        AUE_CTL2                0x02
+#define        AUE_MAR0                0x08
+#define        AUE_MAR1                0x09
+#define        AUE_MAR2                0x0A
+#define        AUE_MAR3                0x0B
+#define        AUE_MAR4                0x0C
+#define        AUE_MAR5                0x0D
+#define        AUE_MAR6                0x0E
+#define        AUE_MAR7                0x0F
+#define        AUE_MAR                 AUE_MAR0
+#define        AUE_PAR0                0x10
+#define        AUE_PAR1                0x11
+#define        AUE_PAR2                0x12
+#define        AUE_PAR3                0x13
+#define        AUE_PAR4                0x14
+#define        AUE_PAR5                0x15
+#define        AUE_PAR                 AUE_PAR0
+#define        AUE_PAUSE0              0x18
+#define        AUE_PAUSE1              0x19
+#define        AUE_PAUSE               AUE_PAUSE0
+#define        AUE_RX_FLOWCTL_CNT      0x1A
+#define        AUE_RX_FLOWCTL_FIFO     0x1B
+#define        AUE_REG_1D              0x1D
+#define        AUE_EE_REG              0x20
+#define        AUE_EE_DATA0            0x21
+#define        AUE_EE_DATA1            0x22
+#define        AUE_EE_DATA             AUE_EE_DATA0
+#define        AUE_EE_CTL              0x23
+#define        AUE_PHY_ADDR            0x25
+#define        AUE_PHY_DATA0           0x26
+#define        AUE_PHY_DATA1           0x27
+#define        AUE_PHY_DATA            AUE_PHY_DATA0
+#define        AUE_PHY_CTL             0x28
+#define        AUE_USB_STS             0x2A
+#define        AUE_TXSTAT0             0x2B
+#define        AUE_TXSTAT1             0x2C
+#define        AUE_TXSTAT              AUE_TXSTAT0
+#define        AUE_RXSTAT              0x2D
+#define        AUE_PKTLOST0            0x2E
+#define        AUE_PKTLOST1            0x2F
+#define        AUE_PKTLOST             AUE_PKTLOST0
+
+#define        AUE_REG_7B              0x7B
+#define        AUE_GPIO0               0x7E
+#define        AUE_GPIO1               0x7F
+#define        AUE_REG_81              0x81
+
+#define        AUE_CTL0_INCLUDE_RXCRC  0x01
+#define        AUE_CTL0_ALLMULTI       0x02
+#define        AUE_CTL0_STOP_BACKOFF   0x04
+#define        AUE_CTL0_RXSTAT_APPEND  0x08
+#define        AUE_CTL0_WAKEON_ENB     0x10
+#define        AUE_CTL0_RXPAUSE_ENB    0x20
+#define        AUE_CTL0_RX_ENB         0x40
+#define        AUE_CTL0_TX_ENB         0x80
+
+#define        AUE_CTL1_HOMELAN        0x04
+#define        AUE_CTL1_RESETMAC       0x08
+#define        AUE_CTL1_SPEEDSEL       0x10    /* 0 = 10mbps, 1 = 100mbps */
+#define        AUE_CTL1_DUPLEX         0x20    /* 0 = half, 1 = full */
+#define        AUE_CTL1_DELAYHOME      0x40
+
+#define        AUE_CTL2_EP3_CLR        0x01    /* reading EP3 clrs status regs 
*/
+#define        AUE_CTL2_RX_BADFRAMES   0x02
+#define        AUE_CTL2_RX_PROMISC     0x04
+#define        AUE_CTL2_LOOPBACK       0x08
+#define        AUE_CTL2_EEPROMWR_ENB   0x10
+#define        AUE_CTL2_EEPROM_LOAD    0x20
+
+#define        AUE_EECTL_WRITE         0x01
+#define        AUE_EECTL_READ          0x02
+#define        AUE_EECTL_DONE          0x04
+
+#define        AUE_PHYCTL_PHYREG       0x1F
+#define        AUE_PHYCTL_WRITE        0x20
+#define        AUE_PHYCTL_READ         0x40
+#define        AUE_PHYCTL_DONE         0x80
+
+#define        AUE_USBSTS_SUSPEND      0x01
+#define        AUE_USBSTS_RESUME       0x02
+
+#define        AUE_TXSTAT0_JABTIMO     0x04
+#define        AUE_TXSTAT0_CARLOSS     0x08
+#define        AUE_TXSTAT0_NOCARRIER   0x10
+#define        AUE_TXSTAT0_LATECOLL    0x20
+#define        AUE_TXSTAT0_EXCESSCOLL  0x40
+#define        AUE_TXSTAT0_UNDERRUN    0x80
+
+#define        AUE_TXSTAT1_PKTCNT      0x0F
+#define        AUE_TXSTAT1_FIFO_EMPTY  0x40
+#define        AUE_TXSTAT1_FIFO_FULL   0x80
+
+#define        AUE_RXSTAT_OVERRUN      0x01
+#define        AUE_RXSTAT_PAUSE        0x02
+
+#define        AUE_GPIO_IN0            0x01
+#define        AUE_GPIO_OUT0           0x02
+#define        AUE_GPIO_SEL0           0x04
+#define        AUE_GPIO_IN1            0x08
+#define        AUE_GPIO_OUT1           0x10
+#define        AUE_GPIO_SEL1           0x20
+
+#define        AUE_TIMEOUT             100     /* 10*ms */
+#define        AUE_MIN_FRAMELEN        60
+
+#define        AUE_RXSTAT_MCAST        0x01
+#define        AUE_RXSTAT_GIANT        0x02
+#define        AUE_RXSTAT_RUNT         0x04
+#define        AUE_RXSTAT_CRCERR       0x08
+#define        AUE_RXSTAT_DRIBBLE      0x10
+#define        AUE_RXSTAT_MASK         0x1E
+
+#define        GET_MII(sc)     ((sc)->sc_miibus ?                              
\
+                           device_get_softc((sc)->sc_miibus) : NULL)
+
+struct aue_intrpkt {
+       uint8_t aue_txstat0;
+       uint8_t aue_txstat1;
+       uint8_t aue_rxstat;
+       uint8_t aue_rxlostpkt0;
+       uint8_t aue_rxlostpkt1;
+       uint8_t aue_wakeupstat;
+       uint8_t aue_rsvd;
+} __packed;
+
+struct aue_rxpkt {
+       uint16_t aue_pktlen;
+       uint8_t aue_rxstat;
+} __packed;
+
+
+struct aue_softc {
+       void   *sc_evilhack;            /* XXX this pointer must be first */
+
+       struct usb2_config_td sc_config_td;
+       struct usb2_callout sc_watchdog;
+       struct mtx sc_mtx;
+       struct aue_rxpkt sc_rxpkt;
+
+       struct ifnet *sc_ifp;
+       struct usb2_device *sc_udev;
+       struct usb2_xfer *sc_xfer[AUE_ENDPT_MAX];
+       device_t sc_miibus;
+       device_t sc_dev;
+
+       uint32_t sc_unit;
+       uint32_t sc_media_active;
+       uint32_t sc_media_status;
+
+       uint16_t sc_flags;
+#define        AUE_FLAG_LSYS           0x0001  /* use Linksys reset */
+#define        AUE_FLAG_PNA            0x0002  /* has Home PNA */
+#define        AUE_FLAG_PII            0x0004  /* Pegasus II chip */
+#define        AUE_FLAG_WAIT_LINK      0x0008  /* wait for link to come up */
+#define        AUE_FLAG_READ_STALL     0x0010  /* wait for clearing of stall */
+#define        AUE_FLAG_WRITE_STALL    0x0020  /* wait for clearing of stall */
+#define        AUE_FLAG_LL_READY       0x0040  /* Lower Layer Ready */
+#define        AUE_FLAG_HL_READY       0x0080  /* Higher Layer Ready */
+#define        AUE_FLAG_INTR_STALL     0x0100  /* wait for clearing of stall */
+#define        AUE_FLAG_VER_2          0x0200  /* chip is version 2 */
+#define        AUE_FLAG_DUAL_PHY       0x0400  /* chip has two transcivers */
+
+       uint8_t sc_name[16];
+};

Modified: head/sys/dev/usb2/ethernet/if_axe2.c
==============================================================================
--- head/sys/dev/usb2/ethernet/if_axe2.c        Tue Jan 13 21:13:35 2009        
(r187191)
+++ head/sys/dev/usb2/ethernet/if_axe2.c        Tue Jan 13 21:18:14 2009        
(r187192)
@@ -101,7 +101,7 @@ __FBSDID("$FreeBSD$");
 #include <dev/usb2/core/usb2_util.h>
 
 #include <dev/usb2/ethernet/usb2_ethernet.h>
-#include <dev/usb2/ethernet/if_axe2_reg.h>
+#include <dev/usb2/ethernet/if_axereg.h>
 
 MODULE_DEPEND(axe, usb2_ethernet, 1, 1, 1);
 MODULE_DEPEND(axe, usb2_core, 1, 1, 1);

Copied: head/sys/dev/usb2/ethernet/if_axereg.h (from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_axereg.h)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/usb2/ethernet/if_axereg.h      Tue Jan 13 21:18:14 2009        
(r187192, copy of r187190, user/thompsa/usb/sys/dev/usb2/ethernet/if_axereg.h)
@@ -0,0 +1,208 @@
+/*-
+ * Copyright (c) 1997, 1998, 1999, 2000-2003
+ *     Bill Paul <wp...@windriver.com>.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by Bill Paul.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Definitions for the ASIX Electronics AX88172, AX88178
+ * and AX88772 to ethernet controllers.
+ */
+
+/*
+ * Vendor specific commands.  ASIX conveniently doesn't document the 'set
+ * NODEID' command in their datasheet (thanks a lot guys).
+ * To make handling these commands easier, I added some extra data which is
+ * decided by the axe_cmd() routine. Commands are encoded in 16 bits, with
+ * the format: LDCC. L and D are both nibbles in the high byte.  L represents
+ * the data length (0 to 15) and D represents the direction (0 for vendor read,
+ * 1 for vendor write).  CC is the command byte, as specified in the manual.
+ */
+
+#define        AXE_CMD_IS_WRITE(x)     (((x) & 0x0F00) >> 8)
+#define        AXE_CMD_LEN(x)          (((x) & 0xF000) >> 12)
+#define        AXE_CMD_CMD(x)          ((x) & 0x00FF)
+
+#define        AXE_172_CMD_READ_RXTX_SRAM              0x2002
+#define        AXE_182_CMD_READ_RXTX_SRAM              0x8002
+#define        AXE_172_CMD_WRITE_RX_SRAM               0x0103
+#define        AXE_182_CMD_WRITE_RXTX_SRAM             0x8103
+#define        AXE_172_CMD_WRITE_TX_SRAM               0x0104
+#define        AXE_CMD_MII_OPMODE_SW                   0x0106
+#define        AXE_CMD_MII_READ_REG                    0x2007
+#define        AXE_CMD_MII_WRITE_REG                   0x2108
+#define        AXE_CMD_MII_READ_OPMODE                 0x1009
+#define        AXE_CMD_MII_OPMODE_HW                   0x010A
+#define        AXE_CMD_SROM_READ                       0x200B
+#define        AXE_CMD_SROM_WRITE                      0x010C
+#define        AXE_CMD_SROM_WR_ENABLE                  0x010D
+#define        AXE_CMD_SROM_WR_DISABLE                 0x010E
+#define        AXE_CMD_RXCTL_READ                      0x200F
+#define        AXE_CMD_RXCTL_WRITE                     0x0110
+#define        AXE_CMD_READ_IPG012                     0x3011
+#define        AXE_172_CMD_WRITE_IPG0                  0x0112
+#define        AXE_178_CMD_WRITE_IPG012                0x0112
+#define        AXE_172_CMD_WRITE_IPG1                  0x0113
+#define        AXE_178_CMD_READ_NODEID                 0x6013
+#define        AXE_172_CMD_WRITE_IPG2                  0x0114
+#define        AXE_178_CMD_WRITE_NODEID                0x6114
+#define        AXE_CMD_READ_MCAST                      0x8015
+#define        AXE_CMD_WRITE_MCAST                     0x8116
+#define        AXE_172_CMD_READ_NODEID                 0x6017
+#define        AXE_172_CMD_WRITE_NODEID                0x6118
+
+#define        AXE_CMD_READ_PHYID                      0x2019
+#define        AXE_172_CMD_READ_MEDIA                  0x101A
+#define        AXE_178_CMD_READ_MEDIA                  0x201A
+#define        AXE_CMD_WRITE_MEDIA                     0x011B
+#define        AXE_CMD_READ_MONITOR_MODE               0x101C
+#define        AXE_CMD_WRITE_MONITOR_MODE              0x011D
+#define        AXE_CMD_READ_GPIO                       0x101E
+#define        AXE_CMD_WRITE_GPIO                      0x011F
+
+#define        AXE_CMD_SW_RESET_REG                    0x0120
+#define        AXE_CMD_SW_PHY_STATUS                   0x0021
+#define        AXE_CMD_SW_PHY_SELECT                   0x0122
+
+#define        AXE_SW_RESET_CLEAR                      0x00
+#define        AXE_SW_RESET_RR                         0x01
+#define        AXE_SW_RESET_RT                         0x02
+#define        AXE_SW_RESET_PRTE                       0x04
+#define        AXE_SW_RESET_PRL                        0x08
+#define        AXE_SW_RESET_BZ                         0x10
+#define        AXE_SW_RESET_IPRL                       0x20
+#define        AXE_SW_RESET_IPPD                       0x40
+
+/* AX88178 documentation says to always write this bit... */
+#define        AXE_178_RESET_MAGIC                     0x40
+
+#define        AXE_178_MEDIA_GMII                      0x0001
+#define        AXE_MEDIA_FULL_DUPLEX                   0x0002
+#define        AXE_172_MEDIA_TX_ABORT_ALLOW            0x0004
+
+/* AX88178/88772 documentation says to always write 1 to bit 2 */
+#define        AXE_178_MEDIA_MAGIC                     0x0004
+/* AX88772 documentation says to always write 0 to bit 3 */
+#define        AXE_178_MEDIA_ENCK                      0x0008
+#define        AXE_172_MEDIA_FLOW_CONTROL_EN           0x0010
+#define        AXE_178_MEDIA_RXFLOW_CONTROL_EN         0x0010
+#define        AXE_178_MEDIA_TXFLOW_CONTROL_EN         0x0020
+#define        AXE_178_MEDIA_JUMBO_EN                  0x0040
+#define        AXE_178_MEDIA_LTPF_ONLY                 0x0080
+#define        AXE_178_MEDIA_RX_EN                     0x0100
+#define        AXE_178_MEDIA_100TX                     0x0200
+#define        AXE_178_MEDIA_SBP                       0x0800
+#define        AXE_178_MEDIA_SUPERMAC                  0x1000
+
+#define        AXE_RXCMD_PROMISC                       0x0001
+#define        AXE_RXCMD_ALLMULTI                      0x0002
+#define        AXE_172_RXCMD_UNICAST                   0x0004
+#define        AXE_178_RXCMD_KEEP_INVALID_CRC          0x0004
+#define        AXE_RXCMD_BROADCAST                     0x0008
+#define        AXE_RXCMD_MULTICAST                     0x0010
+#define        AXE_RXCMD_ENABLE                        0x0080
+#define        AXE_178_RXCMD_MFB_MASK                  0x0300
+#define        AXE_178_RXCMD_MFB_2048                  0x0000
+#define        AXE_178_RXCMD_MFB_4096                  0x0100
+#define        AXE_178_RXCMD_MFB_8192                  0x0200
+#define        AXE_178_RXCMD_MFB_16384                 0x0300
+
+#define        AXE_PHY_SEL_PRI         1
+#define        AXE_PHY_SEL_SEC         0
+#define        AXE_PHY_TYPE_MASK       0xE0
+#define        AXE_PHY_TYPE_SHIFT      5
+#define        AXE_PHY_TYPE(x)         \
+       (((x) & AXE_PHY_TYPE_MASK) >> AXE_PHY_TYPE_SHIFT)
+
+#define        PHY_TYPE_100_HOME       0       /* 10/100 or 1M HOME PHY */
+#define        PHY_TYPE_GIG            1       /* Gigabit PHY */
+#define        PHY_TYPE_SPECIAL        4       /* Special case */
+#define        PHY_TYPE_RSVD           5       /* Reserved */
+#define        PHY_TYPE_NON_SUP        7       /* Non-supported PHY */
+
+#define        AXE_PHY_NO_MASK         0x1F
+#define        AXE_PHY_NO(x)           ((x) & AXE_PHY_NO_MASK)
+
+#define        AXE_772_PHY_NO_EPHY     0x10    /* Embedded 10/100 PHY of 
AX88772 */
+
+#define        AXE_BULK_BUF_SIZE       16384   /* bytes */
+
+#define        AXE_CTL_READ            0x01
+#define        AXE_CTL_WRITE           0x02
+
+#define        AXE_CONFIG_IDX          0       /* config number 1 */
+#define        AXE_IFACE_IDX           0
+
+/* The interrupt endpoint is currently unused by the ASIX part. */
+#define        AXE_ENDPT_MAX           6
+
+struct axe_sframe_hdr {
+       uint16_t len;
+       uint16_t ilen;
+} __packed;
+
+#define        GET_MII(sc)     ((sc)->sc_miibus ?                              
\
+                           device_get_softc((sc)->sc_miibus) : NULL)
+
+struct axe_softc {
+       void   *sc_evilhack;            /* XXX this pointer must be first */
+
+       struct usb2_config_td sc_config_td;
+       struct usb2_callout sc_watchdog;
+       struct mtx sc_mtx;
+
+       struct ifnet *sc_ifp;
+       struct usb2_device *sc_udev;
+       struct usb2_xfer *sc_xfer[AXE_ENDPT_MAX];
+       device_t sc_miibus;
+       device_t sc_dev;
+
+       int sc_phyno;
+
+       uint32_t sc_unit;
+       uint32_t sc_media_active;
+       uint32_t sc_media_status;
+
+       uint16_t sc_flags;
+#define        AXE_FLAG_LINK           0x0001
+#define        AXE_FLAG_INTR_STALL     0x0002
+#define        AXE_FLAG_READ_STALL     0x0004
+#define        AXE_FLAG_WRITE_STALL    0x0008
+#define        AXE_FLAG_LL_READY       0x0010
+#define        AXE_FLAG_HL_READY       0x0020
+#define        AXE_FLAG_772            0x0040  /* AX88772 */
+#define        AXE_FLAG_178            0x0080  /* AX88178 */
+
+       uint8_t sc_ipgs[3];
+       uint8_t sc_phyaddrs[2];
+
+       uint8_t sc_name[16];
+};

Modified: head/sys/dev/usb2/ethernet/if_cdce2.c
==============================================================================
--- head/sys/dev/usb2/ethernet/if_cdce2.c       Tue Jan 13 21:13:35 2009        
(r187191)
+++ head/sys/dev/usb2/ethernet/if_cdce2.c       Tue Jan 13 21:18:14 2009        
(r187192)
@@ -66,7 +66,7 @@ __FBSDID("$FreeBSD$");
 #include <dev/usb2/core/usb2_device.h>
 
 #include <dev/usb2/ethernet/usb2_ethernet.h>
-#include <dev/usb2/ethernet/if_cdce2_reg.h>
+#include <dev/usb2/ethernet/if_cdcereg.h>
 
 static device_probe_t cdce_probe;
 static device_attach_t cdce_attach;

Copied: head/sys/dev/usb2/ethernet/if_cdcereg.h (from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_cdcereg.h)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/usb2/ethernet/if_cdcereg.h     Tue Jan 13 21:18:14 2009        
(r187192, copy of r187190, user/thompsa/usb/sys/dev/usb2/ethernet/if_cdcereg.h)
@@ -0,0 +1,87 @@
+/*-
+ * Copyright (c) 2003-2005 Craig Boston
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by Bill Paul.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul, THE VOICES IN HIS HEAD OR
+ * THE CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+#ifndef _USB_IF_CDCEREG_H_
+#define        _USB_IF_CDCEREG_H_
+
+#define        CDCE_N_TRANSFER 3               /* units */
+#define        CDCE_IND_SIZE_MAX 32            /* bytes */
+#define        CDCE_512X4_IFQ_MAXLEN MAX((2*CDCE_512X4_FRAMES_MAX), IFQ_MAXLEN)
+
+union cdce_eth_rx {                    /* multiframe header */
+       struct usb2_cdc_mf_eth_512x4_header hdr;
+       uint8_t data[MCLBYTES];
+} __aligned(USB_HOST_ALIGN);
+
+union cdce_eth_tx {                    /* multiframe header */
+       struct usb2_cdc_mf_eth_512x4_header hdr;
+} __aligned(USB_HOST_ALIGN);
+
+struct cdce_mq {                       /* mini-queue */
+       struct mbuf *ifq_head;
+       struct mbuf *ifq_tail;
+       uint16_t ifq_len;
+};
+
+struct cdce_softc {
+       void   *sc_evilhack;            /* XXX this pointer must be first */
+
+       union cdce_eth_tx sc_tx;
+       union cdce_eth_rx sc_rx;
+       struct ifmedia sc_ifmedia;
+       struct mtx sc_mtx;
+       struct cdce_mq sc_rx_mq;
+       struct cdce_mq sc_tx_mq;
+
+       struct ifnet *sc_ifp;
+       struct usb2_xfer *sc_xfer[CDCE_N_TRANSFER];
+       struct usb2_device *sc_udev;
+       device_t sc_dev;
+
+       uint32_t sc_unit;
+
+       uint16_t sc_flags;
+#define        CDCE_FLAG_ZAURUS        0x0001
+#define        CDCE_FLAG_NO_UNION      0x0002
+#define        CDCE_FLAG_LL_READY      0x0004
+#define        CDCE_FLAG_HL_READY      0x0008
+#define        CDCE_FLAG_RX_DATA       0x0010
+
+       uint8_t sc_name[16];
+       uint8_t sc_data_iface_no;
+       uint8_t sc_ifaces_index[2];
+       uint8_t sc_iface_protocol;
+};
+
+#endif                                 /* _USB_IF_CDCEREG_H_ */

Modified: head/sys/dev/usb2/ethernet/if_cue2.c
==============================================================================
--- head/sys/dev/usb2/ethernet/if_cue2.c        Tue Jan 13 21:13:35 2009        
(r187191)
+++ head/sys/dev/usb2/ethernet/if_cue2.c        Tue Jan 13 21:18:14 2009        
(r187192)
@@ -76,7 +76,7 @@ __FBSDID("$FreeBSD$");
 #include <dev/usb2/core/usb2_util.h>
 
 #include <dev/usb2/ethernet/usb2_ethernet.h>
-#include <dev/usb2/ethernet/if_cue2_reg.h>
+#include <dev/usb2/ethernet/if_cuereg.h>
 
 /*
  * Various supported device vendors/products.

Copied: head/sys/dev/usb2/ethernet/if_cuereg.h (from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_cuereg.h)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/usb2/ethernet/if_cuereg.h      Tue Jan 13 21:18:14 2009        
(r187192, copy of r187190, user/thompsa/usb/sys/dev/usb2/ethernet/if_cuereg.h)
@@ -0,0 +1,138 @@
+/*-
+ * Copyright (c) 1997, 1998, 1999, 2000
+ *     Bill Paul <wp...@ee.columbia.edu>.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by Bill Paul.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * Definitions for the CATC Netmate II USB to ethernet controller.
+ */
+
+/* Vendor specific control commands. */
+#define        CUE_CMD_RESET                   0xF4
+#define        CUE_CMD_GET_MACADDR             0xF2
+#define        CUE_CMD_WRITEREG                0xFA
+#define        CUE_CMD_READREG                 0xFB
+#define        CUE_CMD_READSRAM                0xF1
+#define        CUE_CMD_WRITESRAM               0xFC
+/* Internal registers. */
+#define        CUE_TX_BUFCNT                   0x20
+#define        CUE_RX_BUFCNT                   0x21
+#define        CUE_ADVANCED_OPMODES            0x22
+#define        CUE_TX_BUFPKTS                  0x23
+#define        CUE_RX_BUFPKTS                  0x24
+#define        CUE_RX_MAXCHAIN                 0x25
+#define        CUE_ETHCTL                      0x60
+#define        CUE_ETHSTS                      0x61
+#define        CUE_PAR5                        0x62
+#define        CUE_PAR4                        0x63
+#define        CUE_PAR3                        0x64
+#define        CUE_PAR2                        0x65
+#define        CUE_PAR1                        0x66
+#define        CUE_PAR0                        0x67
+/* Error counters, all 16 bits wide. */
+#define        CUE_TX_SINGLECOLL               0x69
+#define        CUE_TX_MULTICOLL                0x6B
+#define        CUE_TX_EXCESSCOLL               0x6D
+#define        CUE_RX_FRAMEERR                 0x6F
+#define        CUE_LEDCTL                      0x81
+/* Advenced operating mode register. */
+#define        CUE_AOP_SRAMWAITS               0x03
+#define        CUE_AOP_EMBED_RXLEN             0x08
+#define        CUE_AOP_RXCOMBINE               0x10
+#define        CUE_AOP_TXCOMBINE               0x20
+#define        CUE_AOP_EVEN_PKT_READS          0x40
+#define        CUE_AOP_LOOPBK                  0x80
+/* Ethernet control register. */
+#define        CUE_ETHCTL_RX_ON                0x01
+#define        CUE_ETHCTL_LINK_POLARITY        0x02
+#define        CUE_ETHCTL_LINK_FORCE_OK        0x04
+#define        CUE_ETHCTL_MCAST_ON             0x08
+#define        CUE_ETHCTL_PROMISC              0x10
+/* Ethernet status register. */
+#define        CUE_ETHSTS_NO_CARRIER           0x01
+#define        CUE_ETHSTS_LATECOLL             0x02
+#define        CUE_ETHSTS_EXCESSCOLL           0x04
+#define        CUE_ETHSTS_TXBUF_AVAIL          0x08
+#define        CUE_ETHSTS_BAD_POLARITY         0x10
+#define        CUE_ETHSTS_LINK_OK              0x20
+/* LED control register. */
+#define        CUE_LEDCTL_BLINK_1X             0x00
+#define        CUE_LEDCTL_BLINK_2X             0x01
+#define        CUE_LEDCTL_BLINK_QUARTER_ON     0x02
+#define        CUE_LEDCTL_BLINK_QUARTER_OFF    0x03
+#define        CUE_LEDCTL_OFF                  0x04
+#define        CUE_LEDCTL_FOLLOW_LINK          0x08
+
+/*
+ * Address in ASIC's internal SRAM where the multicast hash table lives.
+ * The table is 64 bytes long, giving us a 512-bit table.  We have to set
+ * the bit that corresponds to the broadcast address in order to enable
+ * reception of broadcast frames.
+ */
+#define        CUE_MCAST_TABLE_ADDR    0xFA80
+#define        CUE_MCAST_TABLE_LEN     64
+
+#define        CUE_TIMEOUT             1000
+#define        CUE_MIN_FRAMELEN        60
+#define        CUE_RX_FRAMES           1
+#define        CUE_TX_FRAMES           1
+
+#define        CUE_CTL_READ            0x01
+#define        CUE_CTL_WRITE           0x02
+
+#define        CUE_CONFIG_IDX          0       /* config number 1 */
+#define        CUE_IFACE_IDX           0
+
+/* The interrupt endpoint is currently unused by the KLSI part. */
+#define        CUE_ENDPT_MAX           4
+
+struct cue_softc {
+       void   *sc_evilhack;            /* XXX this pointer must be first */
+
+       struct usb2_config_td sc_config_td;
+       struct usb2_callout sc_watchdog;
+       struct mtx sc_mtx;
+
+       struct ifnet *sc_ifp;
+       device_t sc_dev;
+       struct usb2_device *sc_udev;
+       struct usb2_xfer *sc_xfer[CUE_ENDPT_MAX];
+
+       uint32_t sc_unit;
+
+       uint16_t sc_flags;
+#define        CUE_FLAG_READ_STALL     0x0010  /* wait for clearing of stall */
+#define        CUE_FLAG_WRITE_STALL    0x0020  /* wait for clearing of stall */
+#define        CUE_FLAG_LL_READY       0x0040  /* Lower Layer Ready */
+#define        CUE_FLAG_HL_READY       0x0080  /* Higher Layer Ready */
+#define        CUE_FLAG_INTR_STALL     0x0100  /* wait for clearing of stall */
+};

Modified: head/sys/dev/usb2/ethernet/if_kue2.c
==============================================================================
--- head/sys/dev/usb2/ethernet/if_kue2.c        Tue Jan 13 21:13:35 2009        
(r187191)
+++ head/sys/dev/usb2/ethernet/if_kue2.c        Tue Jan 13 21:18:14 2009        
(r187192)
@@ -90,8 +90,8 @@ __FBSDID("$FreeBSD$");
 #include <dev/usb2/core/usb2_util.h>
 
 #include <dev/usb2/ethernet/usb2_ethernet.h>
-#include <dev/usb2/ethernet/if_kue2_reg.h>
-#include <dev/usb2/ethernet/if_kue2_fw.h>
+#include <dev/usb2/ethernet/if_kuereg.h>
+#include <dev/usb2/ethernet/if_kuefw.h>
 
 /*
  * Various supported device vendors/products.

Copied: head/sys/dev/usb2/ethernet/if_kuefw.h (from r187190, 
user/thompsa/usb/sys/dev/usb2/ethernet/if_kuefw.h)
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/usb2/ethernet/if_kuefw.h       Tue Jan 13 21:18:14 2009        
(r187192, copy of r187190, user/thompsa/usb/sys/dev/usb2/ethernet/if_kuefw.h)
@@ -0,0 +1,685 @@
+/*-
+ * Copyright (c) 1997, 1998, 1999, 2000
+ *     Bill Paul <wp...@ee.columbia.edu>.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by Bill Paul.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/*
+ * This file contains the firmware needed to make the KLSI chip work,
+ * along with a few constants related to the QT Engine microcontroller
+ * embedded in the KLSI part.
+ *
+ * Firmware is loaded using the vendor-specific 'send scan data'
+ * command (0xFF). The basic operation is that we must load the
+ * firmware, then issue some trigger commands to fix it up and start
+ * it running. There are three transfers: load the binary code,
+ * load the 'fixup' (data segment?), then issue a command to
+ * start the code firmware running. The data itself is prefixed by
+ * a 16-bit signature word, a 16-bit length value, a type byte
+ * and an interrupt (command) byte. The code segment is of type
+ * 0x02 (replacement interrupt vector data) and the fixup segment
+ * is of type 0x03 (replacement interrupt fixup data). The interrupt
+ * code is 0x64 (load new code). The length word is the total length
+ * of the segment minus 7. I precomputed the values and stuck them
+ * into the appropriate locations within the segments to save some
+ * work in the driver.
+ */
+
+/* QT controller data block types. */
+/* Write data into specific memory location. */
+#define        KUE_QTBTYPE_WRITE_DATA          0x00
+/* Write data into interrupt vector location */
+#define        KUE_QTBTYPE_WRITE_INTVEC        0x01
+/* Replace interrupt vector with this data */
+#define        KUE_QTBTYPE_REPL_INTVEC         0x02
+/* Fixup interrupt vector code with this data */
+#define        KUE_QTBTYPE_FIXUP_INTVEC        0x03
+/* Force jump to location */
+#define        KUE_QTBTYPE_JUMP                0x04
+/* Force call to location */
+#define        KUE_QTBTYPE_CALL                0x05
+/* Force interrupt call */
+#define        KUE_QTBTYPE_CALLINTR            0x06
+/*
+ * Cause data to be written using the specified QT engine
+ * interrupt, from starting location in memory for a specified
+ * number of bytes.
+ */
+#define        KUE_QTBTYPE_WRITE_WITH_INTR     0x07
+/* Cause data from stream to be written using specified QT interrupt. */
+#define        KUE_QTBTYPE_WRITE_STR_WITH_INTR 0x08
+/* Cause data to be written to config locations. */
+/* Addresses assume 0xc000 offset. */
+#define        KUE_QTBTYPE_WRITE_CONFIG        0x09
+
+#define        KUE_QTINTR_LOAD_CODE            0x64
+#define        KUE_QTINTR_TRIGGER_CODE         0x3B
+#define        KUE_QTINTR_LOAD_CODE_HIGH       0x9C
+
+/* Firmware code segment */
+static unsigned char kue_code_seg[] =
+{
+       /******************************************/
+       /* NOTE: B6/C3 is data header signature   */
+       /* 0xAA/0xBB is data length = total */
+       /* bytes - 7, 0xCC is type, 0xDD is */
+       /* interrupt to use.                */
+       /******************************************/
+       0xB6, 0xC3, 0xf7, 0x0e, 0x02, 0x64,
+       0x9f, 0xcf, 0xbc, 0x08, 0xe7, 0x57, 0x00, 0x00,
+       0x9a, 0x08, 0x97, 0xc1, 0xe7, 0x67, 0xff, 0x1f,
+       0x28, 0xc0, 0xe7, 0x87, 0x00, 0x04, 0x24, 0xc0,
+       0xe7, 0x67, 0xff, 0xf9, 0x22, 0xc0, 0x97, 0xcf,
+       0xe7, 0x09, 0xa2, 0xc0, 0x94, 0x08, 0xd7, 0x09,
+       0x00, 0xc0, 0xe7, 0x59, 0xba, 0x08, 0x94, 0x08,
+       0x03, 0xc1, 0xe7, 0x67, 0xff, 0xf7, 0x24, 0xc0,
+       0xe7, 0x05, 0x00, 0xc0, 0xa7, 0xcf, 0x92, 0x08,
+       0xe7, 0x57, 0x00, 0x00, 0x8e, 0x08, 0xa7, 0xa1,
+       0x8e, 0x08, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
+       0xf2, 0x09, 0x0a, 0xc0, 0xe7, 0x57, 0x00, 0x00,
+       0xa4, 0xc0, 0xa7, 0xc0, 0x56, 0x08, 0x9f, 0xaf,
+       0x70, 0x09, 0xe7, 0x07, 0x00, 0x00, 0xf2, 0x09,
+       0xe7, 0x57, 0xff, 0xff, 0x90, 0x08, 0x9f, 0xa0,
+       0x40, 0x00, 0xe7, 0x59, 0x90, 0x08, 0x94, 0x08,
+       0x9f, 0xa0, 0x40, 0x00, 0xc8, 0x09, 0xa2, 0x08,
+       0x08, 0x62, 0x9f, 0xa1, 0x14, 0x0a, 0xe7, 0x57,
+       0x00, 0x00, 0x52, 0x08, 0xa7, 0xc0, 0x56, 0x08,
+       0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x57, 0x00, 0x00,
+       0x8e, 0x08, 0xa7, 0xc1, 0x56, 0x08, 0xc0, 0x09,
+       0xa8, 0x08, 0x00, 0x60, 0x05, 0xc4, 0xc0, 0x59,
+       0x94, 0x08, 0x02, 0xc0, 0x9f, 0xaf, 0xee, 0x00,
+       0xe7, 0x59, 0xae, 0x08, 0x94, 0x08, 0x02, 0xc1,
+       0x9f, 0xaf, 0xf6, 0x00, 0x9f, 0xaf, 0x9e, 0x03,
+       0xef, 0x57, 0x00, 0x00, 0xf0, 0x09, 0x9f, 0xa1,
+       0xde, 0x01, 0xe7, 0x57, 0x00, 0x00, 0x78, 0x08,
+       0x9f, 0xa0, 0xe4, 0x03, 0x9f, 0xaf, 0x2c, 0x04,
+       0xa7, 0xcf, 0x56, 0x08, 0x48, 0x02, 0xe7, 0x09,
+       0x94, 0x08, 0xa8, 0x08, 0xc8, 0x37, 0x04, 0x00,
+       0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf, 0xe7, 0x57,
+       0x00, 0x00, 0xa6, 0x08, 0x97, 0xc0, 0xd7, 0x09,
+       0x00, 0xc0, 0xc1, 0xdf, 0xc8, 0x09, 0x9c, 0x08,
+       0x08, 0x62, 0x1d, 0xc0, 0x27, 0x04, 0x9c, 0x08,
+       0x10, 0x94, 0xf0, 0x07, 0xee, 0x09, 0x02, 0x00,
+       0xc1, 0x07, 0x01, 0x00, 0x70, 0x00, 0x04, 0x00,
+       0xf0, 0x07, 0x44, 0x01, 0x06, 0x00, 0x50, 0xaf,
+       0xe7, 0x09, 0x94, 0x08, 0xae, 0x08, 0xe7, 0x17,
+       0x14, 0x00, 0xae, 0x08, 0xe7, 0x67, 0xff, 0x07,
+       0xae, 0x08, 0xe7, 0x07, 0xff, 0xff, 0xa8, 0x08,
+       0xe7, 0x07, 0x00, 0x00, 0xa6, 0x08, 0xe7, 0x05,
+       0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
+       0xc1, 0xdf, 0x48, 0x02, 0xd0, 0x09, 0x9c, 0x08,
+       0x27, 0x02, 0x9c, 0x08, 0xe7, 0x09, 0x20, 0xc0,
+       0xee, 0x09, 0xe7, 0xd0, 0xee, 0x09, 0xe7, 0x05,
+       0x00, 0xc0, 0x97, 0xcf, 0x48, 0x02, 0xc8, 0x37,
+       0x04, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x60,
+       0x21, 0xc0, 0xc0, 0x37, 0x3e, 0x00, 0x23, 0xc9,
+       0xc0, 0x57, 0xb4, 0x05, 0x1b, 0xc8, 0xc0, 0x17,
+       0x3f, 0x00, 0xc0, 0x67, 0xc0, 0xff, 0x30, 0x00,
+       0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
+       0x00, 0x02, 0xc0, 0x17, 0x4c, 0x00, 0x30, 0x00,
+       0x06, 0x00, 0xf0, 0x07, 0xbe, 0x01, 0x0a, 0x00,
+       0x48, 0x02, 0xc1, 0x07, 0x02, 0x00, 0xd7, 0x09,
+       0x00, 0xc0, 0xc1, 0xdf, 0x51, 0xaf, 0xe7, 0x05,
+       0x00, 0xc0, 0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04,
+       0x9f, 0xaf, 0xe4, 0x03, 0x97, 0xcf, 0x9f, 0xaf,
+       0xe4, 0x03, 0xc9, 0x37, 0x04, 0x00, 0xc1, 0xdf,
+       0xc8, 0x09, 0x70, 0x08, 0x50, 0x02, 0x67, 0x02,
+       0x70, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc0, 0xdf,
+       0x9f, 0xaf, 0xde, 0x01, 0x97, 0xcf, 0xe7, 0x57,
+       0x00, 0x00, 0xaa, 0x08, 0x97, 0xc1, 0xe7, 0x57,
+       0x01, 0x00, 0x7a, 0x08, 0x97, 0xc0, 0xc8, 0x09,
+       0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x00, 0x02,
+       0xc0, 0x17, 0x0e, 0x00, 0x27, 0x00, 0x34, 0x01,
+       0x27, 0x0c, 0x0c, 0x00, 0x36, 0x01, 0xef, 0x57,
+       0x00, 0x00, 0xf0, 0x09, 0x9f, 0xc0, 0xbe, 0x02,
+       0xe7, 0x57, 0x00, 0x00, 0xb0, 0x08, 0x97, 0xc1,
+       0xe7, 0x07, 0x09, 0x00, 0x12, 0xc0, 0xe7, 0x77,
+       0x00, 0x08, 0x20, 0xc0, 0x9f, 0xc1, 0xb6, 0x02,
+       0xe7, 0x57, 0x09, 0x00, 0x12, 0xc0, 0x77, 0xc9,
+       0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x77,
+       0x00, 0x08, 0x20, 0xc0, 0x2f, 0xc1, 0xe7, 0x07,
+       0x00, 0x00, 0x42, 0xc0, 0xe7, 0x07, 0x05, 0x00,
+       0x90, 0xc0, 0xc8, 0x07, 0x0a, 0x00, 0xe7, 0x77,
+       0x04, 0x00, 0x20, 0xc0, 0x09, 0xc1, 0x08, 0xda,
+       0x7a, 0xc1, 0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0,
+       0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0, 0x1a, 0xcf,
+       0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08, 0x00, 0xd8,
+       0x27, 0x50, 0x34, 0x01, 0x17, 0xc1, 0xe7, 0x77,
+       0x02, 0x00, 0x20, 0xc0, 0x79, 0xc1, 0x27, 0x50,
+       0x34, 0x01, 0x10, 0xc1, 0xe7, 0x77, 0x02, 0x00,
+       0x20, 0xc0, 0x79, 0xc0, 0x9f, 0xaf, 0xd8, 0x02,
+       0xe7, 0x05, 0x00, 0xc0, 0x00, 0x60, 0x9f, 0xc0,
+       0xde, 0x01, 0x97, 0xcf, 0xe7, 0x07, 0x01, 0x00,
+       0xb8, 0x08, 0x06, 0xcf, 0xe7, 0x07, 0x30, 0x0e,
+       0x02, 0x00, 0xe7, 0x07, 0x50, 0xc3, 0x12, 0xc0,
+       0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xe7, 0x07,
+       0x01, 0x00, 0xb8, 0x08, 0x97, 0xcf, 0xe7, 0x07,
+       0x50, 0xc3, 0x12, 0xc0, 0xe7, 0x07, 0x30, 0x0e,
+       0x02, 0x00, 0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08,
+       0xe7, 0x07, 0x05, 0x00, 0x90, 0xc0, 0x97, 0xcf,
+       0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0, 0xe7, 0x07,
+       0x04, 0x00, 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x00,
+       0x7a, 0x08, 0xe7, 0x57, 0x0f, 0x00, 0xb2, 0x08,
+       0x13, 0xc1, 0x9f, 0xaf, 0x2e, 0x08, 0xca, 0x09,
+       0xac, 0x08, 0xf2, 0x17, 0x01, 0x00, 0x5c, 0x00,
+       0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00, 0xe7, 0x07,
+       0x00, 0x00, 0xb2, 0x08, 0xe7, 0x07, 0x01, 0x00,
+       0xb4, 0x08, 0xc0, 0x07, 0xff, 0xff, 0x97, 0xcf,
+       0x9f, 0xaf, 0x4c, 0x03, 0xc0, 0x69, 0xb4, 0x08,
+       0x57, 0x00, 0x9f, 0xde, 0x33, 0x00, 0xc1, 0x05,
+       0x27, 0xd8, 0xb2, 0x08, 0x27, 0xd2, 0xb4, 0x08,
+       0xe7, 0x87, 0x01, 0x00, 0xb4, 0x08, 0xe7, 0x67,
+       0xff, 0x03, 0xb4, 0x08, 0x00, 0x60, 0x97, 0xc0,
+       0xe7, 0x07, 0x01, 0x00, 0xb0, 0x08, 0x27, 0x00,
+       0x12, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0xb6, 0x08,
+       0x00, 0xd2, 0x02, 0xc3, 0xc0, 0x97, 0x05, 0x80,
+       0x27, 0x00, 0xb6, 0x08, 0xc0, 0x99, 0x82, 0x08,
+       0xc0, 0x99, 0xa2, 0xc0, 0x97, 0xcf, 0xe7, 0x07,
+       0x00, 0x00, 0xb0, 0x08, 0xc0, 0xdf, 0x97, 0xcf,
+       0xc8, 0x09, 0x72, 0x08, 0x08, 0x62, 0x02, 0xc0,
+       0x10, 0x64, 0x07, 0xc1, 0xe7, 0x07, 0x00, 0x00,
+       0x64, 0x08, 0xe7, 0x07, 0xc8, 0x05, 0x24, 0x00,
+       0x97, 0xcf, 0x27, 0x04, 0x72, 0x08, 0xc8, 0x17,
+       0x0e, 0x00, 0x27, 0x02, 0x64, 0x08, 0xe7, 0x07,
+       0xd6, 0x05, 0x24, 0x00, 0x97, 0xcf, 0xd7, 0x09,
+       0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00,
+       0x62, 0x08, 0x13, 0xc1, 0x9f, 0xaf, 0x70, 0x03,
+       0xe7, 0x57, 0x00, 0x00, 0x64, 0x08, 0x13, 0xc0,
+       0xe7, 0x09, 0x64, 0x08, 0x30, 0x01, 0xe7, 0x07,
+       0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07, 0x10, 0x00,
+       0x96, 0xc0, 0xe7, 0x09, 0x64, 0x08, 0x62, 0x08,
+       0x04, 0xcf, 0xe7, 0x57, 0x00, 0x00, 0x64, 0x08,
+       0x02, 0xc1, 0x9f, 0xaf, 0x70, 0x03, 0xe7, 0x05,
+       0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
+       0xc1, 0xdf, 0xc8, 0x09, 0x72, 0x08, 0x27, 0x02,
+       0x78, 0x08, 0x08, 0x62, 0x03, 0xc1, 0xe7, 0x05,
+       0x00, 0xc0, 0x97, 0xcf, 0x27, 0x04, 0x72, 0x08,
+       0xe7, 0x05, 0x00, 0xc0, 0xf0, 0x07, 0x40, 0x00,
+       0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
+       0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
+       0x06, 0x00, 0xf0, 0x07, 0x64, 0x01, 0x0a, 0x00,
+       0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x02, 0x00,
+       0x51, 0xaf, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
+       0x6a, 0x08, 0x97, 0xc0, 0xc1, 0xdf, 0xc8, 0x09,
+       0x6a, 0x08, 0x27, 0x04, 0x6a, 0x08, 0x27, 0x52,
+       0x6c, 0x08, 0x03, 0xc1, 0xe7, 0x07, 0x6a, 0x08,
+       0x6c, 0x08, 0xc0, 0xdf, 0x17, 0x02, 0xc8, 0x17,
+       0x0e, 0x00, 0x9f, 0xaf, 0x16, 0x05, 0xc8, 0x05,
+       0x00, 0x60, 0x03, 0xc0, 0x9f, 0xaf, 0x80, 0x04,
+       0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf,
+       0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x08, 0x62,
+       0x1c, 0xc0, 0xd0, 0x09, 0x72, 0x08, 0x27, 0x02,
+       0x72, 0x08, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
+       0x97, 0x02, 0xca, 0x09, 0xac, 0x08, 0xf2, 0x17,
+       0x01, 0x00, 0x04, 0x00, 0xf2, 0x27, 0x00, 0x00,
+       0x06, 0x00, 0xca, 0x17, 0x2c, 0x00, 0xf8, 0x77,
+       0x01, 0x00, 0x0e, 0x00, 0x06, 0xc0, 0xca, 0xd9,
+       0xf8, 0x57, 0xff, 0x00, 0x0e, 0x00, 0x01, 0xc1,
+       0xca, 0xd9, 0x22, 0x1c, 0x0c, 0x00, 0xe2, 0x27,
+       0x00, 0x00, 0xe2, 0x17, 0x01, 0x00, 0xe2, 0x27,
+       0x00, 0x00, 0xca, 0x05, 0x00, 0x0c, 0x0c, 0x00,
+       0xc0, 0x17, 0x41, 0x00, 0xc0, 0x67, 0xc0, 0xff,
+       0x30, 0x00, 0x08, 0x00, 0x00, 0x02, 0xc0, 0x17,
+       0x0c, 0x00, 0x30, 0x00, 0x06, 0x00, 0xf0, 0x07,
+       0xdc, 0x00, 0x0a, 0x00, 0xf0, 0x07, 0x00, 0x00,
+       0x04, 0x00, 0x00, 0x0c, 0x08, 0x00, 0x40, 0xd1,
+       0x01, 0x00, 0xc0, 0x19, 0xa6, 0x08, 0xc0, 0x59,
+       0x98, 0x08, 0x04, 0xc9, 0x49, 0xaf, 0x9f, 0xaf,
+       0xee, 0x00, 0x4a, 0xaf, 0x67, 0x10, 0xa6, 0x08,
+       0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x01, 0x00,
+       0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x50, 0xaf,
+       0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xc0, 0x07,
+       0x01, 0x00, 0xc1, 0x09, 0x7c, 0x08, 0xc1, 0x77,
+       0x01, 0x00, 0x97, 0xc1, 0xd8, 0x77, 0x01, 0x00,
+       0x12, 0xc0, 0xc9, 0x07, 0x4c, 0x08, 0x9f, 0xaf,
+       0x64, 0x05, 0x04, 0xc1, 0xc1, 0x77, 0x08, 0x00,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to