From owner-svn-src-stable-7@FreeBSD.ORG Sun Jan 8 21:01:52 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 519151065670; Sun, 8 Jan 2012 21:01:52 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3B4BE8FC1C; Sun, 8 Jan 2012 21:01:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q08L1qx4007458; Sun, 8 Jan 2012 21:01:52 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q08L1qB2007454; Sun, 8 Jan 2012 21:01:52 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201082101.q08L1qB2007454@svn.freebsd.org> From: Eitan Adler Date: Sun, 8 Jan 2012 21:01:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229825 - in stable/7: include lib/libc/gen X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Jan 2012 21:01:52 -0000 Author: eadler (ports committer) Date: Sun Jan 8 21:01:51 2012 New Revision: 229825 URL: http://svn.freebsd.org/changeset/base/229825 Log: MFC r228754: - Add restrict keyword to glob(3) PR: kern/161958 Approved by: jilles Modified: stable/7/include/glob.h stable/7/lib/libc/gen/glob.c Directory Properties: stable/7/include/ (props changed) stable/7/lib/libc/ (props changed) Modified: stable/7/include/glob.h ============================================================================== --- stable/7/include/glob.h Sun Jan 8 21:01:21 2012 (r229824) +++ stable/7/include/glob.h Sun Jan 8 21:01:51 2012 (r229825) @@ -102,7 +102,8 @@ typedef struct { #endif /* __BSD_VISIBLE */ __BEGIN_DECLS -int glob(const char *, int, int (*)(const char *, int), glob_t *); +int glob(const char * __restrict, int, + int (*)(const char *, int), glob_t * __restrict); void globfree(glob_t *); __END_DECLS Modified: stable/7/lib/libc/gen/glob.c ============================================================================== --- stable/7/lib/libc/gen/glob.c Sun Jan 8 21:01:21 2012 (r229824) +++ stable/7/lib/libc/gen/glob.c Sun Jan 8 21:01:51 2012 (r229825) @@ -163,7 +163,8 @@ static void qprintf(const char *, Char #endif int -glob(const char *pattern, int flags, int (*errfunc)(const char *, int), glob_t *pglob) +glob(const char * __restrict pattern, int flags, + int (*errfunc)(const char *, int), glob_t * __restrict pglob) { const char *patnext; size_t limit; From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 02:00:33 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B1B310656A6; Mon, 9 Jan 2012 02:00:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CCD278FC2B; Mon, 9 Jan 2012 02:00:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0920VRq017408; Mon, 9 Jan 2012 02:00:31 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0920VH1017406; Mon, 9 Jan 2012 02:00:31 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201201090200.q0920VH1017406@svn.freebsd.org> From: Glen Barber Date: Mon, 9 Jan 2012 02:00:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229835 - stable/7/sys/conf X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 02:00:33 -0000 Author: gjb (doc committer) Date: Mon Jan 9 02:00:31 2012 New Revision: 229835 URL: http://svn.freebsd.org/changeset/base/229835 Log: MFC r229353: - Trivial standardization to a few comments in kern.pre.mk. Modified: stable/7/sys/conf/kern.pre.mk Directory Properties: stable/7/sys/ (props changed) Modified: stable/7/sys/conf/kern.pre.mk ============================================================================== --- stable/7/sys/conf/kern.pre.mk Mon Jan 9 01:59:50 2012 (r229834) +++ stable/7/sys/conf/kern.pre.mk Mon Jan 9 02:00:31 2012 (r229835) @@ -71,10 +71,10 @@ INCLUDES+= -I$S/dev/ath -I$S/dev/ath/ath # ... and the same for the NgATM stuff INCLUDES+= -I$S/contrib/ngatm -# .. and the same for twa +# ... and the same for twa INCLUDES+= -I$S/dev/twa -# ... and XFS +# ... and the same for XFS INCLUDES+= -I$S/gnu/fs/xfs/FreeBSD -I$S/gnu/fs/xfs/FreeBSD/support -I$S/gnu/fs/xfs # ... and the same for cxgb From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 03:03:44 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1943D106566C; Mon, 9 Jan 2012 03:03:44 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE0678FC0A; Mon, 9 Jan 2012 03:03:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0933hqr019629; Mon, 9 Jan 2012 03:03:43 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0933h7i019627; Mon, 9 Jan 2012 03:03:43 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201090303.q0933h7i019627@svn.freebsd.org> From: Eitan Adler Date: Mon, 9 Jan 2012 03:03:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229837 - stable/7/sys/kern X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 03:03:44 -0000 Author: eadler (ports committer) Date: Mon Jan 9 03:03:43 2012 New Revision: 229837 URL: http://svn.freebsd.org/changeset/base/229837 Log: MFC r228233: - Fix typos s/(more|less) then|\1 than/ Approved by: brucec Modified: stable/7/sys/kern/subr_blist.c Directory Properties: stable/7/sys/ (props changed) Modified: stable/7/sys/kern/subr_blist.c ============================================================================== --- stable/7/sys/kern/subr_blist.c Mon Jan 9 03:03:43 2012 (r229836) +++ stable/7/sys/kern/subr_blist.c Mon Jan 9 03:03:43 2012 (r229837) @@ -29,7 +29,7 @@ * * This module implements a general bitmap allocator/deallocator. The * allocator eats around 2 bits per 'block'. The module does not - * try to interpret the meaning of a 'block' other then to return + * try to interpret the meaning of a 'block' other than to return * SWAPBLK_NONE on an allocation failure. * * A radix tree is used to maintain the bitmap. Two radix constants are @@ -57,7 +57,7 @@ * the memory subsystem. In contrast, the rlist code may allocate memory * on an rlist_free() call. The non-blocking features of the blist code * are used to great advantage in the swap code (vm/nswap_pager.c). The - * rlist code uses a little less overall memory then the blist code (but + * rlist code uses a little less overall memory than the blist code (but * due to swap interleaving not all that much less), but the blist code * scales much, much better. * @@ -72,7 +72,7 @@ * to cover the number of blocks requested at creation time even if it * must be encompassed in larger root-node radix. * - * NOTE: the allocator cannot currently allocate more then + * NOTE: the allocator cannot currently allocate more than * BLIST_BMAP_RADIX blocks per call. It will panic with 'allocation too * large' if you try. This is an area that could use improvement. The * radix is large enough that this restriction does not effect the swap @@ -152,7 +152,7 @@ static MALLOC_DEFINE(M_SWAP, "SWAP", "Sw * blist_create() - create a blist capable of handling up to the specified * number of blocks * - * blocks - must be greater then 0 + * blocks - must be greater than 0 * flags - malloc flags * * The smallest blist consists of a single leaf node capable of @@ -841,7 +841,7 @@ blst_meta_fill( * * Initialize our meta structures and bitmaps and calculate the exact * amount of space required to manage 'count' blocks - this space may - * be considerably less then the calculated radix due to the large + * be considerably less than the calculated radix due to the large * RADIX values we use. */ From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 18:33:54 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 921B6106564A; Mon, 9 Jan 2012 18:33:54 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7EFF48FC12; Mon, 9 Jan 2012 18:33:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09IXsIF052673; Mon, 9 Jan 2012 18:33:54 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09IXsLS052669; Mon, 9 Jan 2012 18:33:54 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201091833.q09IXsLS052669@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 18:33:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229860 - in stable/7/sys: conf dev/bce X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 18:33:54 -0000 Author: yongari Date: Mon Jan 9 18:33:54 2012 New Revision: 229860 URL: http://svn.freebsd.org/changeset/base/229860 Log: MFC r210522,213489,218423,218527: r210522: Fix an apparent typo. r213489: Add the capability to read the complete contents of the NVRAM via sysctl dev.bce..nvram_dump Add the capability to write the complete contents of the NVRAM via sysctl dev.bce..nvram_write These are only available if the kernel option BCE_DEBUG is enabled. The nvram_write sysctl also requires the kernel option BCE_NVRAM_WRITE_SUPPORT to be enabled. These are to be used at your own caution. Since the MAC addresses are stored in the NVRAM, if you dump one NIC and restore it on another NIC the destination NIC's MAC addresses will not be preserved. A tool can be made using these sysctl's to manage the on-chip firmware. r218423: - Added systcls for header splitting, RX/TX buffer count, interrupt coalescing, strict RX MTU, verbose output, and shared memory debug. - Added additional debug counters (VLAN tags and split header frames). - Updated debug counters to 64 bit definitions. - Updated l2fhdr bit definitions. - Combined RX buffer sizing into a single function. - Added buffer size and interrupt coalescing settings to adapter info printout. r218527: - Added error checking to nvram read functions. - Minor style updates. Modified: stable/7/sys/conf/options stable/7/sys/dev/bce/if_bce.c stable/7/sys/dev/bce/if_bcereg.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/conf/options ============================================================================== --- stable/7/sys/conf/options Mon Jan 9 18:32:45 2012 (r229859) +++ stable/7/sys/conf/options Mon Jan 9 18:33:54 2012 (r229860) @@ -670,6 +670,7 @@ ED_SIC opt_ed.h # bce driver BCE_DEBUG opt_bce.h +BCE_NVRAM_WRITE_SUPPORT opt_bce.h # wi driver WI_SYMBOL_FIRMWARE opt_wi.h Modified: stable/7/sys/dev/bce/if_bce.c ============================================================================== --- stable/7/sys/dev/bce/if_bce.c Mon Jan 9 18:32:45 2012 (r229859) +++ stable/7/sys/dev/bce/if_bce.c Mon Jan 9 18:33:54 2012 (r229860) @@ -89,12 +89,6 @@ __FBSDID("$FreeBSD$"); #endif /****************************************************************************/ -/* BCE Build Time Options */ -/****************************************************************************/ -/* #define BCE_NVRAM_WRITE_SUPPORT 1 */ - - -/****************************************************************************/ /* PCI Device ID Table */ /* */ /* Used by bce_probe() to identify the devices supported by this driver. */ @@ -287,48 +281,43 @@ static int bce_shutdown (device_t); /* BCE Debug Data Structure Dump Routines */ /****************************************************************************/ #ifdef BCE_DEBUG -static u32 bce_reg_rd (struct bce_softc *, u32); -static void bce_reg_wr (struct bce_softc *, u32, u32); -static void bce_reg_wr16 (struct bce_softc *, u32, u16); -static u32 bce_ctx_rd (struct bce_softc *, u32, u32); -static void bce_dump_enet (struct bce_softc *, struct mbuf *); -static void bce_dump_mbuf (struct bce_softc *, struct mbuf *); +static u32 bce_reg_rd (struct bce_softc *, u32); +static void bce_reg_wr (struct bce_softc *, u32, u32); +static void bce_reg_wr16 (struct bce_softc *, u32, u16); +static u32 bce_ctx_rd (struct bce_softc *, u32, u32); +static void bce_dump_enet (struct bce_softc *, struct mbuf *); +static void bce_dump_mbuf (struct bce_softc *, struct mbuf *); static void bce_dump_tx_mbuf_chain (struct bce_softc *, u16, int); static void bce_dump_rx_mbuf_chain (struct bce_softc *, u16, int); -#ifdef BCE_JUMBO_HDRSPLIT static void bce_dump_pg_mbuf_chain (struct bce_softc *, u16, int); -#endif -static void bce_dump_txbd (struct bce_softc *, +static void bce_dump_txbd (struct bce_softc *, int, struct tx_bd *); -static void bce_dump_rxbd (struct bce_softc *, +static void bce_dump_rxbd (struct bce_softc *, int, struct rx_bd *); -#ifdef BCE_JUMBO_HDRSPLIT -static void bce_dump_pgbd (struct bce_softc *, +static void bce_dump_pgbd (struct bce_softc *, int, struct rx_bd *); -#endif static void bce_dump_l2fhdr (struct bce_softc *, int, struct l2_fhdr *); -static void bce_dump_ctx (struct bce_softc *, u16); -static void bce_dump_ftqs (struct bce_softc *); +static void bce_dump_ctx (struct bce_softc *, u16); +static void bce_dump_ftqs (struct bce_softc *); static void bce_dump_tx_chain (struct bce_softc *, u16, int); static void bce_dump_rx_bd_chain (struct bce_softc *, u16, int); -#ifdef BCE_JUMBO_HDRSPLIT static void bce_dump_pg_chain (struct bce_softc *, u16, int); -#endif static void bce_dump_status_block (struct bce_softc *); static void bce_dump_stats_block (struct bce_softc *); static void bce_dump_driver_state (struct bce_softc *); static void bce_dump_hw_state (struct bce_softc *); +static void bce_dump_shmem_state (struct bce_softc *); static void bce_dump_mq_regs (struct bce_softc *); static void bce_dump_bc_state (struct bce_softc *); static void bce_dump_txp_state (struct bce_softc *, int); static void bce_dump_rxp_state (struct bce_softc *, int); -static void bce_dump_tpat_state (struct bce_softc *, int); +static void bce_dump_tpat_state (struct bce_softc *, int); static void bce_dump_cp_state (struct bce_softc *, int); static void bce_dump_com_state (struct bce_softc *, int); -static void bce_dump_rv2p_state (struct bce_softc *); -static void bce_breakpoint (struct bce_softc *); -#endif +static void bce_dump_rv2p_state (struct bce_softc *); +static void bce_breakpoint (struct bce_softc *); +#endif /*BCE_DEBUG */ /****************************************************************************/ @@ -343,21 +332,27 @@ static int bce_miibus_read_reg (device static int bce_miibus_write_reg (device_t, int, int, int); static void bce_miibus_statchg (device_t); +#ifdef BCE_DEBUG +static int bce_sysctl_nvram_dump(SYSCTL_HANDLER_ARGS); +#ifdef BCE_NVRAM_WRITE_SUPPORT +static int bce_sysctl_nvram_write(SYSCTL_HANDLER_ARGS); +#endif +#endif /****************************************************************************/ /* BCE NVRAM Access Routines */ /****************************************************************************/ static int bce_acquire_nvram_lock (struct bce_softc *); static int bce_release_nvram_lock (struct bce_softc *); -static void bce_enable_nvram_access (struct bce_softc *); -static void bce_disable_nvram_access (struct bce_softc *); +static void bce_enable_nvram_access(struct bce_softc *); +static void bce_disable_nvram_access(struct bce_softc *); static int bce_nvram_read_dword (struct bce_softc *, u32, u8 *, u32); -static int bce_init_nvram (struct bce_softc *); -static int bce_nvram_read (struct bce_softc *, u32, u8 *, int); -static int bce_nvram_test (struct bce_softc *); +static int bce_init_nvram (struct bce_softc *); +static int bce_nvram_read (struct bce_softc *, u32, u8 *, int); +static int bce_nvram_test (struct bce_softc *); #ifdef BCE_NVRAM_WRITE_SUPPORT static int bce_enable_nvram_write (struct bce_softc *); -static void bce_disable_nvram_write (struct bce_softc *); +static void bce_disable_nvram_write(struct bce_softc *); static int bce_nvram_erase_page (struct bce_softc *, u32); static int bce_nvram_write_dword (struct bce_softc *, u32, u8 *, u32); static int bce_nvram_write (struct bce_softc *, u32, u8 *, int); @@ -366,12 +361,12 @@ static int bce_nvram_write (struct bce /****************************************************************************/ /* */ /****************************************************************************/ -static void bce_get_media (struct bce_softc *); -static void bce_init_media (struct bce_softc *); -static void bce_dma_map_addr (void *, - bus_dma_segment_t *, int, int); -static int bce_dma_alloc (device_t); -static void bce_dma_free (struct bce_softc *); +static void bce_get_rx_buffer_sizes(struct bce_softc *, int); +static void bce_get_media (struct bce_softc *); +static void bce_init_media (struct bce_softc *); +static void bce_dma_map_addr (void *, bus_dma_segment_t *, int, int); +static int bce_dma_alloc (device_t); +static void bce_dma_free (struct bce_softc *); static void bce_release_resources (struct bce_softc *); /****************************************************************************/ @@ -381,69 +376,67 @@ static int bce_fw_sync (struct bce_so static void bce_load_rv2p_fw (struct bce_softc *, u32 *, u32, u32); static void bce_load_cpu_fw (struct bce_softc *, struct cpu_reg *, struct fw_info *); -static void bce_start_cpu (struct bce_softc *, struct cpu_reg *); -static void bce_halt_cpu (struct bce_softc *, struct cpu_reg *); +static void bce_start_cpu (struct bce_softc *, struct cpu_reg *); +static void bce_halt_cpu (struct bce_softc *, struct cpu_reg *); static void bce_start_rxp_cpu (struct bce_softc *); static void bce_init_rxp_cpu (struct bce_softc *); static void bce_init_txp_cpu (struct bce_softc *); static void bce_init_tpat_cpu (struct bce_softc *); static void bce_init_cp_cpu (struct bce_softc *); static void bce_init_com_cpu (struct bce_softc *); -static void bce_init_cpus (struct bce_softc *); +static void bce_init_cpus (struct bce_softc *); -static void bce_print_adapter_info (struct bce_softc *); +static void bce_print_adapter_info (struct bce_softc *); static void bce_probe_pci_caps (device_t, struct bce_softc *); -static void bce_stop (struct bce_softc *); -static int bce_reset (struct bce_softc *, u32); -static int bce_chipinit (struct bce_softc *); -static int bce_blockinit (struct bce_softc *); +static void bce_stop (struct bce_softc *); +static int bce_reset (struct bce_softc *, u32); +static int bce_chipinit (struct bce_softc *); +static int bce_blockinit (struct bce_softc *); static int bce_init_tx_chain (struct bce_softc *); static void bce_free_tx_chain (struct bce_softc *); -static int bce_get_rx_buf (struct bce_softc *, +static int bce_get_rx_buf (struct bce_softc *, struct mbuf *, u16 *, u16 *, u32 *); static int bce_init_rx_chain (struct bce_softc *); static void bce_fill_rx_chain (struct bce_softc *); static void bce_free_rx_chain (struct bce_softc *); -#ifdef BCE_JUMBO_HDRSPLIT -static int bce_get_pg_buf (struct bce_softc *, +static int bce_get_pg_buf (struct bce_softc *, struct mbuf *, u16 *, u16 *); static int bce_init_pg_chain (struct bce_softc *); static void bce_fill_pg_chain (struct bce_softc *); static void bce_free_pg_chain (struct bce_softc *); -#endif static struct mbuf *bce_tso_setup (struct bce_softc *, struct mbuf **, u16 *); -static int bce_tx_encap (struct bce_softc *, struct mbuf **); +static int bce_tx_encap (struct bce_softc *, struct mbuf **); static void bce_start_locked (struct ifnet *); -static void bce_start (struct ifnet *); -static int bce_ioctl (struct ifnet *, u_long, caddr_t); -static void bce_watchdog (struct bce_softc *); +static void bce_start (struct ifnet *); +static int bce_ioctl (struct ifnet *, u_long, caddr_t); +static void bce_watchdog (struct bce_softc *); static int bce_ifmedia_upd (struct ifnet *); static int bce_ifmedia_upd_locked (struct ifnet *); static void bce_ifmedia_sts (struct ifnet *, struct ifmediareq *); static void bce_init_locked (struct bce_softc *); -static void bce_init (void *); +static void bce_init (void *); static void bce_mgmt_init_locked (struct bce_softc *sc); -static int bce_init_ctx (struct bce_softc *); +static int bce_init_ctx (struct bce_softc *); static void bce_get_mac_addr (struct bce_softc *); static void bce_set_mac_addr (struct bce_softc *); -static void bce_phy_intr (struct bce_softc *); +static void bce_phy_intr (struct bce_softc *); static inline u16 bce_get_hw_rx_cons (struct bce_softc *); static void bce_rx_intr (struct bce_softc *); static void bce_tx_intr (struct bce_softc *); static void bce_disable_intr (struct bce_softc *); static void bce_enable_intr (struct bce_softc *, int); -static void bce_intr (void *); +static void bce_intr (void *); static void bce_set_rx_mode (struct bce_softc *); static void bce_stats_update (struct bce_softc *); -static void bce_tick (void *); -static void bce_pulse (void *); +static void bce_tick (void *); +static void bce_pulse (void *); static void bce_add_sysctls (struct bce_softc *); @@ -499,23 +492,148 @@ DRIVER_MODULE(miibus, bce, miibus_driver SYSCTL_NODE(_hw, OID_AUTO, bce, CTLFLAG_RD, 0, "bce driver parameters"); /* Allowable values are TRUE or FALSE */ +static int bce_verbose = TRUE; +TUNABLE_INT("hw.bce.verbose", &bce_verbose); +SYSCTL_INT(_hw_bce, OID_AUTO, verbose, CTLFLAG_RDTUN, &bce_verbose, 0, + "Verbose output enable/disable"); + +/* Allowable values are TRUE or FALSE */ static int bce_tso_enable = TRUE; TUNABLE_INT("hw.bce.tso_enable", &bce_tso_enable); SYSCTL_UINT(_hw_bce, OID_AUTO, tso_enable, CTLFLAG_RDTUN, &bce_tso_enable, 0, -"TSO Enable/Disable"); + "TSO Enable/Disable"); /* Allowable values are 0 (IRQ), 1 (MSI/IRQ), and 2 (MSI-X/MSI/IRQ) */ /* ToDo: Add MSI-X support. */ static int bce_msi_enable = 1; TUNABLE_INT("hw.bce.msi_enable", &bce_msi_enable); SYSCTL_UINT(_hw_bce, OID_AUTO, msi_enable, CTLFLAG_RDTUN, &bce_msi_enable, 0, -"MSI-X|MSI|INTx selector"); + "MSI-X|MSI|INTx selector"); + +/* Allowable values are 1, 2, 4, 8. */ +static int bce_rx_pages = DEFAULT_RX_PAGES; +TUNABLE_INT("hw.bce.rx_pages", &bce_rx_pages); +SYSCTL_UINT(_hw_bce, OID_AUTO, rx_pages, CTLFLAG_RDTUN, &bce_rx_pages, 0, + "Receive buffer descriptor pages (1 page = 255 buffer descriptors)"); + +/* Allowable values are 1, 2, 4, 8. */ +static int bce_tx_pages = DEFAULT_TX_PAGES; +TUNABLE_INT("hw.bce.tx_pages", &bce_tx_pages); +SYSCTL_UINT(_hw_bce, OID_AUTO, tx_pages, CTLFLAG_RDTUN, &bce_tx_pages, 0, + "Transmit buffer descriptor pages (1 page = 255 buffer descriptors)"); + +/* Allowable values are TRUE or FALSE. */ +static int bce_hdr_split = TRUE; +TUNABLE_INT("hw.bce.hdr_split", &bce_hdr_split); +SYSCTL_UINT(_hw_bce, OID_AUTO, hdr_split, CTLFLAG_RDTUN, &bce_hdr_split, 0, + "Frame header/payload splitting Enable/Disable"); + +/* Allowable values are TRUE or FALSE. */ +static int bce_strict_rx_mtu = FALSE; +TUNABLE_INT("hw.bce.strict_rx_mtu", &bce_strict_rx_mtu); +SYSCTL_UINT(_hw_bce, OID_AUTO, loose_rx_mtu, CTLFLAG_RDTUN, + &bce_strict_rx_mtu, 0, + "Enable/Disable strict RX frame size checking"); -/* ToDo: Add tunable to enable/disable strict MTU handling. */ -/* Currently allows "loose" RX MTU checking (i.e. sets the */ -/* H/W RX MTU to the size of the largest receive buffer, or */ -/* 2048 bytes). This will cause a UNH failure but is more */ -/* desireable from a functional perspective. */ +/* Allowable values are 0 ... 100 */ +#ifdef BCE_DEBUG +/* Generate 1 interrupt for every transmit completion. */ +static int bce_tx_quick_cons_trip_int = 1; +#else +/* Generate 1 interrupt for every 20 transmit completions. */ +static int bce_tx_quick_cons_trip_int = DEFAULT_TX_QUICK_CONS_TRIP_INT; +#endif +TUNABLE_INT("hw.bce.tx_quick_cons_trip_int", &bce_tx_quick_cons_trip_int); +SYSCTL_UINT(_hw_bce, OID_AUTO, tx_quick_cons_trip_int, CTLFLAG_RDTUN, + &bce_tx_quick_cons_trip_int, 0, + "Transmit BD trip point during interrupts"); + +/* Allowable values are 0 ... 100 */ +/* Generate 1 interrupt for every transmit completion. */ +#ifdef BCE_DEBUG +static int bce_tx_quick_cons_trip = 1; +#else +/* Generate 1 interrupt for every 20 transmit completions. */ +static int bce_tx_quick_cons_trip = DEFAULT_TX_QUICK_CONS_TRIP; +#endif +TUNABLE_INT("hw.bce.tx_quick_cons_trip", &bce_tx_quick_cons_trip); +SYSCTL_UINT(_hw_bce, OID_AUTO, tx_quick_cons_trip, CTLFLAG_RDTUN, + &bce_tx_quick_cons_trip, 0, + "Transmit BD trip point"); + +/* Allowable values are 0 ... 100 */ +#ifdef BCE_DEBUG +/* Generate an interrupt if 0us have elapsed since the last TX completion. */ +static int bce_tx_ticks_int = 0; +#else +/* Generate an interrupt if 80us have elapsed since the last TX completion. */ +static int bce_tx_ticks_int = DEFAULT_TX_TICKS_INT; +#endif +TUNABLE_INT("hw.bce.tx_ticks_int", &bce_tx_ticks_int); +SYSCTL_UINT(_hw_bce, OID_AUTO, tx_ticks_int, CTLFLAG_RDTUN, + &bce_tx_ticks_int, 0, "Transmit ticks count during interrupt"); + +/* Allowable values are 0 ... 100 */ +#ifdef BCE_DEBUG +/* Generate an interrupt if 0us have elapsed since the last TX completion. */ +static int bce_tx_ticks = 0; +#else +/* Generate an interrupt if 80us have elapsed since the last TX completion. */ +static int bce_tx_ticks = DEFAULT_TX_TICKS; +#endif +TUNABLE_INT("hw.bce.tx_ticks", &bce_tx_ticks); +SYSCTL_UINT(_hw_bce, OID_AUTO, tx_ticks, CTLFLAG_RDTUN, + &bce_tx_ticks, 0, "Transmit ticks count"); + +/* Allowable values are 1 ... 100 */ +#ifdef BCE_DEBUG +/* Generate 1 interrupt for every received frame. */ +static int bce_rx_quick_cons_trip_int = 1; +#else +/* Generate 1 interrupt for every 6 received frames. */ +static int bce_rx_quick_cons_trip_int = DEFAULT_RX_QUICK_CONS_TRIP_INT; +#endif +TUNABLE_INT("hw.bce.rx_quick_cons_trip_int", &bce_rx_quick_cons_trip_int); +SYSCTL_UINT(_hw_bce, OID_AUTO, rx_quick_cons_trip_int, CTLFLAG_RDTUN, + &bce_rx_quick_cons_trip_int, 0, + "Receive BD trip point duirng interrupts"); + +/* Allowable values are 1 ... 100 */ +#ifdef BCE_DEBUG +/* Generate 1 interrupt for every received frame. */ +static int bce_rx_quick_cons_trip = 1; +#else +/* Generate 1 interrupt for every 6 received frames. */ +static int bce_rx_quick_cons_trip = DEFAULT_RX_QUICK_CONS_TRIP; +#endif +TUNABLE_INT("hw.bce.rx_quick_cons_trip", &bce_rx_quick_cons_trip); +SYSCTL_UINT(_hw_bce, OID_AUTO, rx_quick_cons_trip, CTLFLAG_RDTUN, + &bce_rx_quick_cons_trip, 0, + "Receive BD trip point"); + +/* Allowable values are 0 ... 100 */ +#ifdef BCE_DEBUG +/* Generate an int. if 0us have elapsed since the last received frame. */ +static int bce_rx_ticks_int = 0; +#else +/* Generate an int. if 18us have elapsed since the last received frame. */ +static int bce_rx_ticks_int = DEFAULT_RX_TICKS_INT; +#endif +TUNABLE_INT("hw.bce.rx_ticks_int", &bce_rx_ticks_int); +SYSCTL_UINT(_hw_bce, OID_AUTO, rx_ticks_int, CTLFLAG_RDTUN, + &bce_rx_ticks_int, 0, "Receive ticks count during interrupt"); + +/* Allowable values are 0 ... 100 */ +#ifdef BCE_DEBUG +/* Generate an int. if 0us have elapsed since the last received frame. */ +static int bce_rx_ticks = 0; +#else +/* Generate an int. if 18us have elapsed since the last received frame. */ +static int bce_rx_ticks = DEFAULT_RX_TICKS; +#endif +TUNABLE_INT("hw.bce.rx_ticks", &bce_rx_ticks); +SYSCTL_UINT(_hw_bce, OID_AUTO, rx_ticks, CTLFLAG_RDTUN, + &bce_rx_ticks, 0, "Receive ticks count"); /****************************************************************************/ @@ -597,7 +715,7 @@ bce_print_adapter_info(struct bce_softc DBENTER(BCE_VERBOSE_LOAD); - if (bootverbose) { + if (bce_verbose || bootverbose) { BCE_PRINTF("ASIC (0x%08X); ", sc->bce_chipid); printf("Rev (%c%d); ", ((BCE_CHIP_ID(sc) & 0xf000) >> 12) + 'A', ((BCE_CHIP_ID(sc) & 0x0ff0) >> 4)); @@ -619,12 +737,14 @@ bce_print_adapter_info(struct bce_softc } /* Firmware version and device features. */ - printf("B/C (%s); Flags (", sc->bce_bc_ver); + printf("B/C (%s); Bufs (RX:%d;TX:%d;PG:%d); Flags (", + sc->bce_bc_ver, sc->rx_pages, sc->tx_pages, + (bce_hdr_split == TRUE ? sc->pg_pages: 0)); - #ifdef BCE_JUMBO_HDRSPLIT - printf("SPLT"); - i++; - #endif + if (bce_hdr_split == TRUE) { + printf("SPLT"); + i++; + } if (sc->bce_flags & BCE_USING_MSI_FLAG) { if (i > 0) printf("|"); @@ -647,6 +767,17 @@ bce_print_adapter_info(struct bce_softc } else { printf(")\n"); } + + printf("Coal (RX:%d,%d,%d,%d; TX:%d,%d,%d,%d)\n", + sc->bce_rx_quick_cons_trip_int, + sc->bce_rx_quick_cons_trip, + sc->bce_rx_ticks_int, + sc->bce_rx_ticks, + sc->bce_tx_quick_cons_trip_int, + sc->bce_tx_quick_cons_trip, + sc->bce_tx_ticks_int, + sc->bce_tx_ticks); + } DBEXIT(BCE_VERBOSE_LOAD); @@ -705,6 +836,189 @@ bce_probe_pci_caps(device_t dev, struct /****************************************************************************/ +/* Load and validate user tunable settings. */ +/* */ +/* Returns: */ +/* Nothing. */ +/****************************************************************************/ +static void +bce_set_tunables(struct bce_softc *sc) +{ + /* Set sysctl values for RX page count. */ + switch (bce_rx_pages) { + case 1: + /* fall-through */ + case 2: + /* fall-through */ + case 4: + /* fall-through */ + case 8: + sc->rx_pages = bce_rx_pages; + break; + default: + sc->rx_pages = DEFAULT_RX_PAGES; + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.rx_pages! Setting default of %d.\n", + __FILE__, __LINE__, bce_rx_pages, DEFAULT_RX_PAGES); + } + + /* ToDo: Consider allowing user setting for pg_pages. */ + sc->pg_pages = min((sc->rx_pages * 4), MAX_PG_PAGES); + + /* Set sysctl values for TX page count. */ + switch (bce_tx_pages) { + case 1: + /* fall-through */ + case 2: + /* fall-through */ + case 4: + /* fall-through */ + case 8: + sc->tx_pages = bce_tx_pages; + break; + default: + sc->tx_pages = DEFAULT_TX_PAGES; + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.tx_pages! Setting default of %d.\n", + __FILE__, __LINE__, bce_tx_pages, DEFAULT_TX_PAGES); + } + + /* + * Validate the TX trip point (i.e. the number of + * TX completions before a status block update is + * generated and an interrupt is asserted. + */ + if (bce_tx_quick_cons_trip_int <= 100) { + sc->bce_tx_quick_cons_trip_int = + bce_tx_quick_cons_trip_int; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.tx_quick_cons_trip_int! Setting default of %d.\n", + __FILE__, __LINE__, bce_tx_quick_cons_trip_int, + DEFAULT_TX_QUICK_CONS_TRIP_INT); + sc->bce_tx_quick_cons_trip_int = + DEFAULT_TX_QUICK_CONS_TRIP_INT; + } + + if (bce_tx_quick_cons_trip <= 100) { + sc->bce_tx_quick_cons_trip = + bce_tx_quick_cons_trip; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.tx_quick_cons_trip! Setting default of %d.\n", + __FILE__, __LINE__, bce_tx_quick_cons_trip, + DEFAULT_TX_QUICK_CONS_TRIP); + sc->bce_tx_quick_cons_trip = + DEFAULT_TX_QUICK_CONS_TRIP; + } + + /* + * Validate the TX ticks count (i.e. the maximum amount + * of time to wait after the last TX completion has + * occurred before a status block update is generated + * and an interrupt is asserted. + */ + if (bce_tx_ticks_int <= 100) { + sc->bce_tx_ticks_int = + bce_tx_ticks_int; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.tx_ticks_int! Setting default of %d.\n", + __FILE__, __LINE__, bce_tx_ticks_int, + DEFAULT_TX_TICKS_INT); + sc->bce_tx_ticks_int = + DEFAULT_TX_TICKS_INT; + } + + if (bce_tx_ticks <= 100) { + sc->bce_tx_ticks = + bce_tx_ticks; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.tx_ticks! Setting default of %d.\n", + __FILE__, __LINE__, bce_tx_ticks, + DEFAULT_TX_TICKS); + sc->bce_tx_ticks = + DEFAULT_TX_TICKS; + } + + /* + * Validate the RX trip point (i.e. the number of + * RX frames received before a status block update is + * generated and an interrupt is asserted. + */ + if (bce_rx_quick_cons_trip_int <= 100) { + sc->bce_rx_quick_cons_trip_int = + bce_rx_quick_cons_trip_int; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.rx_quick_cons_trip_int! Setting default of %d.\n", + __FILE__, __LINE__, bce_rx_quick_cons_trip_int, + DEFAULT_RX_QUICK_CONS_TRIP_INT); + sc->bce_rx_quick_cons_trip_int = + DEFAULT_RX_QUICK_CONS_TRIP_INT; + } + + if (bce_rx_quick_cons_trip <= 100) { + sc->bce_rx_quick_cons_trip = + bce_rx_quick_cons_trip; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.rx_quick_cons_trip! Setting default of %d.\n", + __FILE__, __LINE__, bce_rx_quick_cons_trip, + DEFAULT_RX_QUICK_CONS_TRIP); + sc->bce_rx_quick_cons_trip = + DEFAULT_RX_QUICK_CONS_TRIP; + } + + /* + * Validate the RX ticks count (i.e. the maximum amount + * of time to wait after the last RX frame has been + * received before a status block update is generated + * and an interrupt is asserted. + */ + if (bce_rx_ticks_int <= 100) { + sc->bce_rx_ticks_int = bce_rx_ticks_int; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.rx_ticks_int! Setting default of %d.\n", + __FILE__, __LINE__, bce_rx_ticks_int, + DEFAULT_RX_TICKS_INT); + sc->bce_rx_ticks_int = DEFAULT_RX_TICKS_INT; + } + + if (bce_rx_ticks <= 100) { + sc->bce_rx_ticks = bce_rx_ticks; + } else { + BCE_PRINTF("%s(%d): Illegal value (%d) specified for " + "hw.bce.rx_ticks! Setting default of %d.\n", + __FILE__, __LINE__, bce_rx_ticks, + DEFAULT_RX_TICKS); + sc->bce_rx_ticks = DEFAULT_RX_TICKS; + } + + /* Disabling both RX ticks and RX trips will prevent interrupts. */ + if ((bce_rx_quick_cons_trip == 0) && (bce_rx_ticks == 0)) { + BCE_PRINTF("%s(%d): Cannot set both hw.bce.rx_ticks and " + "hw.bce.rx_quick_cons_trip to 0. Setting default values.\n", + __FILE__, __LINE__); + sc->bce_rx_ticks = DEFAULT_RX_TICKS; + sc->bce_rx_quick_cons_trip = DEFAULT_RX_QUICK_CONS_TRIP; + } + + /* Disabling both TX ticks and TX trips will prevent interrupts. */ + if ((bce_tx_quick_cons_trip == 0) && (bce_tx_ticks == 0)) { + BCE_PRINTF("%s(%d): Cannot set both hw.bce.tx_ticks and " + "hw.bce.tx_quick_cons_trip to 0. Setting default values.\n", + __FILE__, __LINE__); + sc->bce_tx_ticks = DEFAULT_TX_TICKS; + sc->bce_tx_quick_cons_trip = DEFAULT_TX_QUICK_CONS_TRIP; + } + +} + + +/****************************************************************************/ /* Device attach function. */ /* */ /* Allocates device resources, performs secondary chip identification, */ @@ -733,6 +1047,8 @@ bce_attach(device_t dev) sc->bce_flags = 0; sc->bce_phy_flags = 0; + bce_set_tunables(sc); + pci_enable_busmaster(dev); /* Allocate PCI memory resources. */ @@ -1021,37 +1337,13 @@ bce_attach(device_t dev) * values for the RX and TX chains. */ -#ifdef BCE_DEBUG - /* Force more frequent interrupts. */ - sc->bce_tx_quick_cons_trip_int = 1; - sc->bce_tx_quick_cons_trip = 1; - sc->bce_tx_ticks_int = 0; - sc->bce_tx_ticks = 0; - - sc->bce_rx_quick_cons_trip_int = 1; - sc->bce_rx_quick_cons_trip = 1; - sc->bce_rx_ticks_int = 0; - sc->bce_rx_ticks = 0; -#else - /* Improve throughput at the expense of increased latency. */ - sc->bce_tx_quick_cons_trip_int = 20; - sc->bce_tx_quick_cons_trip = 20; - sc->bce_tx_ticks_int = 80; - sc->bce_tx_ticks = 80; - - sc->bce_rx_quick_cons_trip_int = 6; - sc->bce_rx_quick_cons_trip = 6; - sc->bce_rx_ticks_int = 18; - sc->bce_rx_ticks = 18; -#endif - /* Not used for L2. */ - sc->bce_comp_prod_trip_int = 0; - sc->bce_comp_prod_trip = 0; - sc->bce_com_ticks_int = 0; - sc->bce_com_ticks = 0; - sc->bce_cmd_ticks_int = 0; - sc->bce_cmd_ticks = 0; + sc->bce_comp_prod_trip_int = 0; + sc->bce_comp_prod_trip = 0; + sc->bce_com_ticks_int = 0; + sc->bce_com_ticks = 0; + sc->bce_cmd_ticks_int = 0; + sc->bce_cmd_ticks = 0; /* Update statistics once every second. */ sc->bce_stats_ticks = 1000000 & 0xffff00; @@ -1105,23 +1397,11 @@ bce_attach(device_t dev) * This may change later if the MTU size is set to * something other than 1500. */ -#ifdef BCE_JUMBO_HDRSPLIT - sc->rx_bd_mbuf_alloc_size = MHLEN; - /* Make sure offset is 16 byte aligned for hardware. */ - sc->rx_bd_mbuf_align_pad = - roundup2((MSIZE - MHLEN), 16) - (MSIZE - MHLEN); - sc->rx_bd_mbuf_data_len = sc->rx_bd_mbuf_alloc_size - - sc->rx_bd_mbuf_align_pad; - sc->pg_bd_mbuf_alloc_size = MCLBYTES; -#else - sc->rx_bd_mbuf_alloc_size = MCLBYTES; - sc->rx_bd_mbuf_align_pad = - roundup2(MCLBYTES, 16) - MCLBYTES; - sc->rx_bd_mbuf_data_len = sc->rx_bd_mbuf_alloc_size - - sc->rx_bd_mbuf_align_pad; -#endif + bce_get_rx_buffer_sizes(sc, + (ETHER_MAX_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN)); - ifp->if_snd.ifq_drv_maxlen = USABLE_TX_BD; + /* Recalculate our buffer allocation sizes. */ + ifp->if_snd.ifq_drv_maxlen = USABLE_TX_BD_ALLOC; IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen); IFQ_SET_READY(&ifp->if_snd); @@ -2594,9 +2874,9 @@ bce_nvram_write(struct bce_softc *sc, u3 goto bce_nvram_write_exit; bce_nvram_write_locked_exit: - bce_disable_nvram_write(sc); - bce_disable_nvram_access(sc); - bce_release_nvram_lock(sc); + bce_disable_nvram_write(sc); + bce_disable_nvram_access(sc); + bce_release_nvram_lock(sc); bce_nvram_write_exit: if (align_start || align_end) @@ -2641,7 +2921,7 @@ bce_nvram_test(struct bce_softc *sc) * Verify that offset 0 of the NVRAM contains * a valid magic number. */ - magic = bce_be32toh(buf[0]); + magic = bce_be32toh(buf[0]); if (magic != BCE_NVRAM_MAGIC) { rc = ENODEV; BCE_PRINTF("%s(%d): Invalid NVRAM magic value! " @@ -2685,6 +2965,58 @@ bce_nvram_test_exit: /****************************************************************************/ +/* Calculates the size of the buffers to allocate based on the MTU. */ +/* */ +/* Returns: */ +/* Nothing. */ +/****************************************************************************/ +static void +bce_get_rx_buffer_sizes(struct bce_softc *sc, int mtu) +{ + DBENTER(BCE_VERBOSE_LOAD); + + /* Use a single allocation type when header splitting enabled. */ + if (bce_hdr_split == TRUE) { + sc->rx_bd_mbuf_alloc_size = MHLEN; + /* Make sure offset is 16 byte aligned for hardware. */ + sc->rx_bd_mbuf_align_pad = + roundup2((MSIZE - MHLEN), 16) - (MSIZE - MHLEN); + sc->rx_bd_mbuf_data_len = sc->rx_bd_mbuf_alloc_size - + sc->rx_bd_mbuf_align_pad; + sc->pg_bd_mbuf_alloc_size = MCLBYTES; + } else { + if ((mtu + ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN + + ETHER_CRC_LEN) > MCLBYTES) { + /* Setup for jumbo RX buffer allocations. */ + sc->rx_bd_mbuf_alloc_size = MJUM9BYTES; + sc->rx_bd_mbuf_align_pad = + roundup2(MJUM9BYTES, 16) - MJUM9BYTES; + sc->rx_bd_mbuf_data_len = + sc->rx_bd_mbuf_alloc_size - + sc->rx_bd_mbuf_align_pad; + } else { + /* Setup for standard RX buffer allocations. */ + sc->rx_bd_mbuf_alloc_size = MCLBYTES; + sc->rx_bd_mbuf_align_pad = + roundup2(MCLBYTES, 16) - MCLBYTES; + sc->rx_bd_mbuf_data_len = + sc->rx_bd_mbuf_alloc_size - + sc->rx_bd_mbuf_align_pad; + } + } + +// DBPRINT(sc, BCE_INFO_LOAD, + DBPRINT(sc, BCE_WARN, + "%s(): rx_bd_mbuf_alloc_size = %d, rx_bd_mbuf_data_len = %d, " + "rx_bd_mbuf_align_pad = %d\n", __FUNCTION__, + sc->rx_bd_mbuf_alloc_size, sc->rx_bd_mbuf_data_len, + sc->rx_bd_mbuf_align_pad); + + DBEXIT(BCE_VERBOSE_LOAD); + +} + +/****************************************************************************/ /* Identifies the current media type of the controller and sets the PHY */ /* address. */ /* */ @@ -2918,7 +3250,7 @@ bce_dma_free(struct bce_softc *sc) /* Free, unmap and destroy all TX buffer descriptor chain pages. */ - for (i = 0; i < TX_PAGES; i++ ) { + for (i = 0; i < sc->tx_pages; i++ ) { if (sc->tx_bd_chain[i] != NULL) { bus_dmamem_free( sc->tx_bd_chain_tag, @@ -2946,7 +3278,7 @@ bce_dma_free(struct bce_softc *sc) /* Free, unmap and destroy all RX buffer descriptor chain pages. */ - for (i = 0; i < RX_PAGES; i++ ) { + for (i = 0; i < sc->rx_pages; i++ ) { if (sc->rx_bd_chain[i] != NULL) { bus_dmamem_free( sc->rx_bd_chain_tag, @@ -2973,38 +3305,38 @@ bce_dma_free(struct bce_softc *sc) } -#ifdef BCE_JUMBO_HDRSPLIT /* Free, unmap and destroy all page buffer descriptor chain pages. */ - for (i = 0; i < PG_PAGES; i++ ) { - if (sc->pg_bd_chain[i] != NULL) { - bus_dmamem_free( - sc->pg_bd_chain_tag, - sc->pg_bd_chain[i], - sc->pg_bd_chain_map[i]); - sc->pg_bd_chain[i] = NULL; - } + if (bce_hdr_split == TRUE) { + for (i = 0; i < sc->pg_pages; i++ ) { + if (sc->pg_bd_chain[i] != NULL) { + bus_dmamem_free( + sc->pg_bd_chain_tag, + sc->pg_bd_chain[i], + sc->pg_bd_chain_map[i]); + sc->pg_bd_chain[i] = NULL; + } - if (sc->pg_bd_chain_map[i] != NULL) { - bus_dmamap_unload( - sc->pg_bd_chain_tag, - sc->pg_bd_chain_map[i]); - bus_dmamap_destroy( - sc->pg_bd_chain_tag, - sc->pg_bd_chain_map[i]); - sc->pg_bd_chain_map[i] = NULL; + if (sc->pg_bd_chain_map[i] != NULL) { + bus_dmamap_unload( + sc->pg_bd_chain_tag, + sc->pg_bd_chain_map[i]); + bus_dmamap_destroy( + sc->pg_bd_chain_tag, + sc->pg_bd_chain_map[i]); + sc->pg_bd_chain_map[i] = NULL; + } } - } - /* Destroy the page buffer descriptor tag. */ - if (sc->pg_bd_chain_tag != NULL) { - bus_dma_tag_destroy(sc->pg_bd_chain_tag); - sc->pg_bd_chain_tag = NULL; + /* Destroy the page buffer descriptor tag. */ + if (sc->pg_bd_chain_tag != NULL) { + bus_dma_tag_destroy(sc->pg_bd_chain_tag); + sc->pg_bd_chain_tag = NULL; + } } -#endif /* Unload and destroy the TX mbuf maps. */ - for (i = 0; i < TOTAL_TX_BD; i++) { + for (i = 0; i < MAX_TX_BD_AVAIL; i++) { if (sc->tx_mbuf_map[i] != NULL) { bus_dmamap_unload(sc->tx_mbuf_tag, sc->tx_mbuf_map[i]); @@ -3021,7 +3353,7 @@ bce_dma_free(struct bce_softc *sc) } /* Unload and destroy the RX mbuf maps. */ - for (i = 0; i < TOTAL_RX_BD; i++) { + for (i = 0; i < MAX_RX_BD_AVAIL; i++) { if (sc->rx_mbuf_map[i] != NULL) { bus_dmamap_unload(sc->rx_mbuf_tag, sc->rx_mbuf_map[i]); @@ -3037,24 +3369,24 @@ bce_dma_free(struct bce_softc *sc) sc->rx_mbuf_tag = NULL; } -#ifdef BCE_JUMBO_HDRSPLIT /* Unload and destroy the page mbuf maps. */ - for (i = 0; i < TOTAL_PG_BD; i++) { - if (sc->pg_mbuf_map[i] != NULL) { - bus_dmamap_unload(sc->pg_mbuf_tag, - sc->pg_mbuf_map[i]); - bus_dmamap_destroy(sc->pg_mbuf_tag, - sc->pg_mbuf_map[i]); - sc->pg_mbuf_map[i] = NULL; + if (bce_hdr_split == TRUE) { + for (i = 0; i < MAX_PG_BD_AVAIL; i++) { + if (sc->pg_mbuf_map[i] != NULL) { + bus_dmamap_unload(sc->pg_mbuf_tag, + sc->pg_mbuf_map[i]); + bus_dmamap_destroy(sc->pg_mbuf_tag, + sc->pg_mbuf_map[i]); + sc->pg_mbuf_map[i] = NULL; + } } - } - /* Destroy the page mbuf tag. */ - if (sc->pg_mbuf_tag != NULL) { - bus_dma_tag_destroy(sc->pg_mbuf_tag); - sc->pg_mbuf_tag = NULL; + /* Destroy the page mbuf tag. */ + if (sc->pg_mbuf_tag != NULL) { + bus_dma_tag_destroy(sc->pg_mbuf_tag); + sc->pg_mbuf_tag = NULL; + } } -#endif /* Destroy the parent tag */ if (sc->parent_tag != NULL) { @@ -3296,7 +3628,7 @@ bce_dma_alloc(device_t dev) goto bce_dma_alloc_exit; } - for (i = 0; i < TX_PAGES; i++) { + for (i = 0; i < sc->tx_pages; i++) { if(bus_dmamem_alloc(sc->tx_bd_chain_tag, (void **)&sc->tx_bd_chain[i], @@ -3347,7 +3679,7 @@ bce_dma_alloc(device_t dev) } /* Create DMA maps for the TX mbufs clusters. */ - for (i = 0; i < TOTAL_TX_BD; i++) { + for (i = 0; i < TOTAL_TX_BD_ALLOC; i++) { if (bus_dmamap_create(sc->tx_mbuf_tag, BUS_DMA_NOWAIT, &sc->tx_mbuf_map[i])) { BCE_PRINTF("%s(%d): Unable to create TX mbuf DMA " @@ -3373,7 +3705,7 @@ bce_dma_alloc(device_t dev) goto bce_dma_alloc_exit; } - for (i = 0; i < RX_PAGES; i++) { + for (i = 0; i < sc->rx_pages; i++) { if (bus_dmamem_alloc(sc->rx_bd_chain_tag, (void **)&sc->rx_bd_chain[i], @@ -3405,12 +3737,11 @@ bce_dma_alloc(device_t dev) /* * Create a DMA tag for RX mbufs. */ -#ifdef BCE_JUMBO_HDRSPLIT - max_size = max_seg_size = ((sc->rx_bd_mbuf_alloc_size < MCLBYTES) ? - MCLBYTES : sc->rx_bd_mbuf_alloc_size); -#else - max_size = max_seg_size = MJUM9BYTES; -#endif + if (bce_hdr_split == TRUE) + max_size = max_seg_size = ((sc->rx_bd_mbuf_alloc_size < MCLBYTES) ? + MCLBYTES : sc->rx_bd_mbuf_alloc_size); + else + max_size = max_seg_size = MJUM9BYTES; max_segments = 1; DBPRINT(sc, BCE_INFO_LOAD, "%s(): Creating rx_mbuf_tag " @@ -3429,7 +3760,7 @@ bce_dma_alloc(device_t dev) } /* Create DMA maps for the RX mbuf clusters. */ - for (i = 0; i < TOTAL_RX_BD; i++) { + for (i = 0; i < TOTAL_RX_BD_ALLOC; i++) { if (bus_dmamap_create(sc->rx_mbuf_tag, BUS_DMA_NOWAIT, &sc->rx_mbuf_map[i])) { BCE_PRINTF("%s(%d): Unable to create RX mbuf " @@ -3439,78 +3770,77 @@ bce_dma_alloc(device_t dev) } } -#ifdef BCE_JUMBO_HDRSPLIT - /* - * Create a DMA tag for the page buffer descriptor chain, - * allocate and clear the memory, and fetch the physical - * address of the blocks. - */ - if (bus_dma_tag_create(sc->parent_tag, BCM_PAGE_SIZE, - BCE_DMA_BOUNDARY, BUS_SPACE_MAXADDR, sc->max_bus_addr, - NULL, NULL, BCE_PG_CHAIN_PAGE_SZ, 1, BCE_PG_CHAIN_PAGE_SZ, - 0, NULL, NULL, &sc->pg_bd_chain_tag)) { - BCE_PRINTF("%s(%d): Could not allocate page descriptor " - "chain DMA tag!\n", __FILE__, __LINE__); - rc = ENOMEM; - goto bce_dma_alloc_exit; - } - - for (i = 0; i < PG_PAGES; i++) { - - if (bus_dmamem_alloc(sc->pg_bd_chain_tag, - (void **)&sc->pg_bd_chain[i], - BUS_DMA_NOWAIT | BUS_DMA_ZERO | BUS_DMA_COHERENT, - &sc->pg_bd_chain_map[i])) { - BCE_PRINTF("%s(%d): Could not allocate page " - "descriptor chain DMA memory!\n", - __FILE__, __LINE__); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 18:55:29 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A756106564A; Mon, 9 Jan 2012 18:55:29 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 466588FC15; Mon, 9 Jan 2012 18:55:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09ItTVx053524; Mon, 9 Jan 2012 18:55:29 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09ItSFm053522; Mon, 9 Jan 2012 18:55:28 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201091855.q09ItSFm053522@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 18:55:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229863 - stable/7/sys/dev/bce X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 18:55:29 -0000 Author: yongari Date: Mon Jan 9 18:55:28 2012 New Revision: 229863 URL: http://svn.freebsd.org/changeset/base/229863 Log: MFC r218529: - Updated firmware which improves small packet performance. Modified: stable/7/sys/dev/bce/if_bcefw.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/bce/if_bcefw.h ============================================================================== --- stable/7/sys/dev/bce/if_bcefw.h Mon Jan 9 18:52:47 2012 (r229862) +++ stable/7/sys/dev/bce/if_bcefw.h Mon Jan 9 18:55:28 2012 (r229863) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2006-2010 Broadcom Corporation + * Copyright (c) 2006-2011 Broadcom Corporation * David Christensen . All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,1310 +31,1254 @@ /* * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004, 2005, 2007, 2008 Broadcom Corporation. + * source code, Copyright (c) 2004-2011 Broadcom Corporation. * * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. + * in hexadecimal or equivalent format, provided this copyright notice also + * accompanies it. */ -/* Firmware release 4.6.17 for BCM5706 and BCM5708 (b06). */ -/* Firmware release 4.6.16 for BCM5709 and BCM5716 (b09). */ -int bce_COM_b06FwReleaseMajor = 0x1; -int bce_COM_b06FwReleaseMinor = 0x0; -int bce_COM_b06FwReleaseFix = 0x0; -u32 bce_COM_b06FwStartAddr = 0x080000f8; -u32 bce_COM_b06FwTextAddr = 0x08000000; -int bce_COM_b06FwTextLen = 0x4df0; -u32 bce_COM_b06FwDataAddr = 0x00000000; -int bce_COM_b06FwDataLen = 0x0; -u32 bce_COM_b06FwRodataAddr = 0x08004df0; -int bce_COM_b06FwRodataLen = 0x14; -u32 bce_COM_b06FwBssAddr = 0x08004e58; -int bce_COM_b06FwBssLen = 0xbc; -u32 bce_COM_b06FwSbssAddr = 0x08004e20; -int bce_COM_b06FwSbssLen = 0x38; -u32 bce_COM_b06FwSDataAddr = 0x00000000; -int bce_COM_b06FwSDataLen = 0x0; -u32 bce_COM_b06FwText[(0x4df0/4) + 1] = { -0xa00003e, 0x0, 0x0, -0xd, 0x636f6d34, 0x2e362e31, 0x37000000, -0x4061102, 0x0, 0x3, 0x14, -0x32, 0x3, 0x0, 0x0, -0x0, 0x0, 0x0, 0x10, -0x136, 0xea60, 0x1, 0x0, -0x0, 0x0, 0x8, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x2, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x10, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x10000003, 0x0, 0xd, 0xd, -0x3c020800, 0x24424e20, 0x3c030800, 0x24634f14, -0xac400000, 0x43202b, 0x1480fffd, 0x24420004, -0x3c1d0800, 0x37bd7ffc, 0x3a0f021, 0x3c100800, -0x261000f8, 0x3c1c0800, 0x279c4e20, 0xe0002bd, -0x0, 0xd, 0x3c036010, 0x8c645000, -0x2402ff7f, 0x3c1a8000, 0x822024, 0x3484380c, -0x24020037, 0xac645000, 0xaf420008, 0x24020c80, -0xaf420024, 0x3c1b8008, 0x3c060800, 0x24c607e8, -0x3c020800, 0x24424e58, 0x2404001b, 0x2484ffff, -0xac460000, 0x481fffd, 0x24420004, 0x3c020800, -0x24420380, 0x3c010800, 0xac224e60, 0x3c020800, -0x24420680, 0x3c010800, 0xac224e64, 0x3c020800, -0x24420dcc, 0x3c010800, 0xac224ea0, 0x3c020800, -0x24420a5c, 0x3c030800, 0x24630954, 0x3c040800, -0x24840990, 0x3c050800, 0x24a53c70, 0x3c010800, -0xac224ea8, 0x3c020800, 0x24420570, 0x3c010800, -0xac264ea4, 0x3c010800, 0xac254eb4, 0x3c010800, -0xac234ebc, 0x3c010800, 0xac224ec0, 0x3c010800, -0xac244ec4, 0x3c010800, 0xac234e5c, 0x3c010800, -0xac204e68, 0x3c010800, 0xac204e6c, 0x3c010800, -0xac204e70, 0x3c010800, 0xac204e74, 0x3c010800, -0xac204e78, 0x3c010800, 0xac204e7c, 0x3c010800, -0xac204e80, 0x3c010800, 0xac244e84, 0x3c010800, -0xac204e88, 0x3c010800, 0xac204e8c, 0x3c010800, -0xac204e90, 0x3c010800, 0xac204e94, 0x3c010800, -0xac204e98, 0x3c010800, 0xac264e9c, 0x3c010800, -0xac204eac, 0x3c010800, 0xac254eb0, 0x3c010800, -0xac234eb8, 0xa000707, 0x0, 0x3c030800, -0x8c630020, 0x8f820008, 0x10430003, 0x0, -0xa00053f, 0xaf830008, 0x3e00008, 0x0, -0x27bdffe8, 0xafb00010, 0xafbf0014, 0x27500100, -0x92020009, 0x1040001a, 0x24030001, 0x3c020800, -0x8c420020, 0x10400016, 0x1821, 0xe000577, -0x0, 0x96030008, 0x3c060800, 0x94c64ed6, -0x8e040018, 0x8f820020, 0x9605000c, 0x31c00, -0x661825, 0xac440000, 0xac450004, 0x24040001, -0xac400008, 0xac40000c, 0xac400010, 0xac400014, -0xac400018, 0xe00059c, 0xac43001c, 0x1821, -0x8fbf0014, 0x8fb00010, 0x601021, 0x3e00008, -0x27bd0018, 0x27bdffe8, 0xafbf0010, 0x97420108, -0x30437000, 0x24022000, 0x1062000a, 0x28642001, -0x54800012, 0x8fbf0010, 0x24024000, 0x10620008, -0x24026000, 0x1062000a, 0x8fbf0010, 0xa0000fb, -0x1021, 0x8fbf0010, 0xa0000bb, 0x27bd0018, -0xe000409, 0x0, 0xa0000fa, 0x8fbf0010, -0xe000fc9, 0x0, 0x8fbf0010, 0x1021, -0x3e00008, 0x27bd0018, 0x3c020800, 0x8c420020, -0x27bdffe8, 0x10400027, 0xafbf0010, 0xe000577, -0x0, 0x97420108, 0x9743010c, 0x8f850020, -0x3042003e, 0x3063ffff, 0x21400, 0x431025, -0xaca20000, 0x8f420100, 0x3c060800, 0x94c64ed6, -0x8fbf0010, 0xaca20004, 0x97430116, 0x9744010e, -0x3c022000, 0x31c00, 0x3084ffff, 0x641825, -0xaca30008, 0xc23025, 0x97420110, 0x97430112, -0x24040001, 0x21400, 0x3063ffff, 0x431025, -0xaca2000c, 0x97420114, 0x27bd0018, 0x3042ffff, -0xaca20010, 0xaca00014, 0xaca00018, 0xa00059c, -0xaca6001c, 0x8fbf0010, 0x3e00008, 0x27bd0018, -0x3c020800, 0x8c420020, 0x27bdffe8, 0x1040002a, -0xafbf0010, 0xe000577, 0x0, 0x97420108, -0x9743010c, 0x8f850020, 0x3042003e, 0x3063ffff, -0x21400, 0x431025, 0xaca20000, 0x8f420100, -0x3c060800, 0x94c64ed6, 0x8fbf0010, 0xaca20004, -0x97430116, 0x9744010e, 0x3c022000, 0x31c00, -0x3084ffff, 0x641825, 0xaca30008, 0xc23025, -0x97420110, 0x97430112, 0x24040001, 0x21400, -0x3063ffff, 0x431025, 0xaca2000c, 0x97420114, -0x27bd0018, 0x3042ffff, 0xaca20010, 0x8f420118, -0xaca20014, 0x9342010b, 0x304200ff, 0xaca20018, -0xa00059c, 0xaca6001c, 0x8fbf0010, 0x3e00008, -0x27bd0018, 0x27bdffe0, 0xafb00010, 0xafbf0018, -0xafb10014, 0x27500100, 0x9203000b, 0x2402001a, -0x96110008, 0x14620035, 0x2021, 0x32220001, -0x10400009, 0x0, 0x8e020000, 0x96030014, -0x211c2, 0x21040, 0x5a1021, 0xa4430080, -0xa000179, 0x32220002, 0xe00012b, 0x0, -0x3c020800, 0x8c420040, 0x24420001, 0x3c010800, -0xac220040, 0x32220002, 0x2202b, 0x3c020800, -0x8c420044, 0x32230004, 0x24420001, 0x3c010800, -0xac220044, 0x1060001a, 0x8fbf0018, 0x8f4202b8, -0x4410008, 0x24040001, 0x3c020800, 0x8c420060, -0x24420001, 0x3c010800, 0xac220060, 0xa00019c, -0x8fb10014, 0x8e020020, 0x96030016, 0x2021, -0xaf420280, 0x8e020004, 0xa7430284, 0xaf420288, -0x3c021000, 0xaf4202b8, 0x3c020800, 0x8c42005c, -0x24420001, 0x3c010800, 0xac22005c, 0x8fbf0018, -0x8fb10014, 0x8fb00010, 0x801021, 0x3e00008, -0x27bd0020, 0x27bdffe0, 0xafb00010, 0xafbf0018, -0xafb10014, 0x27500100, 0x9203000b, 0x24020003, -0x96110008, 0x14620048, 0x2021, 0x32220001, -0x10400008, 0x0, 0x8e020000, 0x96030014, -0x211c2, 0x21040, 0x5a1021, 0xa0001bb, -0xa4430080, 0xe0000fd, 0x0, 0x3c020800, -0x8c420040, 0x24420001, 0x3c010800, 0xac220040, -0x3c020800, 0x8c420044, 0x32230004, 0x24420001, -0x3c010800, 0xac220044, 0x1060001a, 0x32220002, -0x8f4202b8, 0x4430008, 0x8e020020, 0x3c020800, -0x8c420060, 0x24420001, 0x3c010800, 0xac220060, -0xa0001f1, 0x24040001, 0x96030016, 0x2021, -0xaf420280, 0x8e020004, 0xa7430284, 0xaf420288, -0x3c021000, 0xaf4202b8, 0x3c020800, 0x8c42005c, -0x24420001, 0x3c010800, 0xac22005c, 0xa0001f2, -0x8fbf0018, 0x10400014, 0x2021, 0x8f430104, -0x3c026020, 0xac430014, 0x8c420004, 0x240301fe, -0x304203ff, 0x1443000c, 0x2021, 0x8f420100, -0x219c2, 0x2462fffc, 0x2c420008, 0x10400003, -0x24040002, 0x2462fffd, 0x442004, 0x3c026000, -0xac446914, 0x2021, 0x8fbf0018, 0x8fb10014, -0x8fb00010, 0x801021, 0x3e00008, 0x27bd0020, -0x93620000, 0x3e00008, 0xaf800004, 0x3e00008, -0x1021, 0x27bdffe8, 0xafbf0014, 0xafb00010, -0x8f420100, 0xaf420020, 0x8f420104, 0xaf4200a8, -0x9350010b, 0xe0001f7, 0x321000ff, 0x3c020800, -0x24424e58, 0x101880, 0x2e10001c, 0x16000004, -0x621021, 0xe0001fa, 0xa000212, 0x0, -0x8c420000, 0x40f809, 0x0, 0x10400005, -0x3c024000, 0x8f430104, 0x3c026020, 0xac430014, -0x3c024000, 0xaf420138, 0x3c020800, 0x8c420034, -0x8fbf0014, 0x8fb00010, 0x24420001, 0x3c010800, -0xac220034, 0x3e00008, 0x27bd0018, 0x27bdffe8, -0xafbf0010, 0x8f420140, 0xe0001f7, 0xaf420020, -0xe000393, 0x0, 0x3c024000, 0xaf420178, -0x3c030800, 0x24630038, 0x8c620000, 0x8fbf0010, -0x27bd0018, 0x24420001, 0x3e00008, 0xac620000, -0x27bdffe8, 0xafbf0010, 0x8f420180, 0xe0001f7, -0xaf420020, 0x8f430180, 0x24020f00, 0x14620005, -0x0, 0x8f420188, 0xa742009c, 0xa00024c, -0x3c024000, 0x93620000, 0x24030050, 0x304200ff, -0x14430008, 0x3c024000, 0xe000377, 0x0, -0x14400004, 0x3c024000, 0xe000e55, 0x0, -0x3c024000, 0xaf4201b8, 0x3c020800, 0x8c42003c, -0x8fbf0010, 0x24420001, 0x3c010800, 0xac22003c, -0x3e00008, 0x27bd0018, 0x3e00008, 0x1021, -0x8f430104, 0x8f820010, 0x10430008, 0x0, -0x3c020800, 0x8c420084, 0x24420001, 0x3c010800, -0xac220084, 0x8f420104, 0xaf820010, 0x3e00008, -0x0, 0x27bdffe8, 0xafbf0010, 0x27440100, -0x94820008, 0x30430002, 0x30420004, 0x1040001b, -0x0, 0x8f4202b8, 0x4410008, 0x24050001, -0x3c020800, 0x8c420060, 0x24420001, 0x3c010800, -0xac220060, 0xa000294, 0x8fbf0010, 0x8c820020, -0x94830016, 0x2821, 0xaf420280, 0x8c820004, -0xa7430284, 0xaf420288, 0x3c021000, 0xaf4202b8, -0x3c020800, 0x8c42005c, 0x24420001, 0x3c010800, -0xac22005c, 0xa000294, 0x8fbf0010, 0x10600008, -0x24050001, 0x3c020800, 0x8c420084, 0x24420001, -0x3c010800, 0xac220084, 0xa000294, 0x8fbf0010, -0x8f440100, 0xe000257, 0x0, 0x2821, -0x8fbf0010, 0xa01021, 0x3e00008, 0x27bd0018, -0x3c020800, 0x8c420088, 0x27430100, 0x9465000c, -0x24420001, 0x3c010800, 0xac220088, 0x8c640018, -0x3451021, 0x90454000, 0xaf440038, 0x8c62001c, -0x2403fff8, 0x52e00, 0x431024, 0x34420004, -0xaf42003c, 0x3c020005, 0xaf420030, 0x0, -0x0, 0x0, 0xaf450404, 0x0, -0x0, 0x0, 0x3c020006, 0x34420001, -0xaf420030, 0x0, 0x0, 0x0, -0x8f420000, 0x30420010, 0x1040fffd, 0x1021, -0x3e00008, 0x0, 0x27bdffe0, 0xafbf0018, -0xafb10014, 0xe000055, 0xafb00010, 0x3c028000, -0x34420070, 0x8c420000, 0xaf820014, 0xe0000b2, -0x0, 0x3c028000, 0x34460070, 0x3c030800, -0x8c6300a0, 0x3c020800, 0x8c4200a4, 0x10430004, -0x8f840014, 0x3c010800, 0xac2300a4, 0xa743009e, -0x8cca0000, 0x3c030800, 0x8c6300bc, 0x3c020800, -0x8c4200b8, 0x1442023, 0x641821, 0x4021, -0x64202b, 0x481021, 0x441021, 0x3c010800, -0xac2300bc, 0x3c010800, 0xac2200b8, 0x8f510000, -0x32220007, 0x1040ffe1, 0xaf8a0014, 0x8cc60000, -0x3c050800, 0x8ca500bc, 0x3c040800, 0x8c8400b8, -0xca3023, 0xa62821, 0x1021, 0xa6302b, -0x822021, 0x862021, 0x32270001, 0x3c010800, -0xac2500bc, 0x3c010800, 0xac2400b8, 0x10e00021, -0x32220002, 0x8f420100, 0xaf420020, 0x8f420104, -0xaf4200a8, 0x9342010b, 0xe0001f7, 0x305000ff, -0x2e02001c, 0x54400004, 0x101080, 0xe0001fa, -0xa00030b, 0x0, 0x3c030800, 0x24634e58, -0x431021, 0x8c420000, 0x40f809, 0x0, -0x10400005, 0x3c024000, 0x8f430104, 0x3c026020, -0xac430014, 0x3c024000, 0xaf420138, 0x3c020800, -0x8c420034, 0x24420001, 0x3c010800, 0xac220034, -0x32220002, 0x1040000e, 0x32220004, 0x8f420140, -0xe0001f7, 0xaf420020, 0xe000393, 0x0, -0x3c024000, 0xaf420178, 0x3c020800, 0x8c420038, -0x24420001, 0x3c010800, 0xac220038, 0x32220004, -0x1040ff9b, 0x3c028000, 0x8f420180, 0xe0001f7, -0xaf420020, 0x8f430180, 0x24020f00, 0x14620005, -0x0, 0x8f420188, 0xa742009c, 0xa000340, -0x3c024000, 0x93620000, 0x24030050, 0x304200ff, -0x14430008, 0x3c024000, 0xe000377, 0x0, -0x54400004, 0x3c024000, 0xe000e55, 0x0, -0x3c024000, 0xaf4201b8, 0x3c020800, 0x8c42003c, -0x24420001, 0x3c010800, 0xac22003c, 0xa0002c3, -0x3c028000, 0x3c029000, 0x34420001, 0x822025, -0xaf440020, 0x8f420020, 0x440fffe, 0x0, -0x3e00008, 0x0, 0x3c028000, 0x34420001, -0x822025, 0x3e00008, 0xaf440020, 0x27bdffe0, -0xafb10014, 0xafb00010, 0x808821, 0xafbf0018, -0xe000348, 0x30b000ff, 0x9362007d, 0x2202021, -0x2028025, 0xa370007d, 0x8f700074, 0x3c028000, -0xe000351, 0x2028024, 0x16000009, 0x8fbf0018, -0x8f4201f8, 0x440fffe, 0x24020002, 0xaf5101c0, -0xa34201c4, 0x3c021000, 0xaf4201f8, 0x8fbf0018, -0x8fb10014, 0x8fb00010, 0x3e00008, 0x27bd0020, -0x27bdffd0, 0x1021, 0x3e00008, 0x27bd0030, -0x27bdffe8, 0xafbf0010, 0x97420184, 0x30420200, -0x10400005, 0x2021, 0xe00108c, 0x0, -0xa00038b, 0x24040001, 0x8f420188, 0x4400009, -0x8fbf0010, 0x8f420188, 0x3c03ff00, 0x431024, -0x3c030400, 0x14430003, 0x24040001, 0x9362003e, -0x8fbf0010, 0x801021, 0x3e00008, 0x27bd0018, -0xa3600022, 0x8f440140, 0xa000356, 0x24050001, -0x27bdffe8, 0xafbf0014, 0xafb00010, 0x93620000, -0x24030020, 0x304200ff, 0x1043000b, 0x0, -0x93620000, 0x24030030, 0x304200ff, 0x10430006, -0x0, 0x93620000, 0x24030050, 0x304200ff, -0x14430062, 0x8fbf0014, 0x93420148, 0x304200ff, -0x2443ffff, 0x2c620005, 0x1040005c, 0x8fbf0014, -0x31080, 0x3c030800, 0x24634df0, 0x431021, -0x8c420000, 0x400008, 0x0, 0xe000348, -0x8f440140, 0x8f70000c, 0x8f420144, 0x16020002, -0x24020001, 0xaf62000c, 0xe000351, 0x8f440140, -0x8f420144, 0x14500004, 0x8fbf0014, 0x8fb00010, -0xa001000, 0x27bd0018, 0x8f62000c, 0xa0003ff, -0x0, 0x97620010, 0x8f430144, 0x3042ffff, -0x14620009, 0x0, 0x24020001, 0xa7620010, -0x8f420140, 0xaf420200, 0x3c021000, 0xaf420238, -0xa000406, 0x8fbf0014, 0x97620010, 0xa0003ff, -0x0, 0xe000348, 0x8f440140, 0x97620012, -0x8f430144, 0x3050ffff, 0x16030002, 0x24020001, -0xa7620012, 0xe000351, 0x8f440140, 0x8f420144, -0x16020004, 0x8fbf0014, 0x8fb00010, 0xa00038f, -0x27bd0018, 0x97620012, 0xa0003ff, 0x0, -0x97620014, 0x8f430144, 0x3042ffff, 0x14620006, -0x8fbf0014, 0x24020001, 0x8fb00010, 0xa7620014, -0xa00132c, 0x27bd0018, 0x97620014, 0xa0003ff, -0x0, 0x97620016, 0x8f430144, 0x3042ffff, -0x14620006, 0x24020001, 0x8fbf0014, 0x8fb00010, -0xa7620016, 0xa000bf3, 0x27bd0018, 0x97620016, -0x14400006, 0x8fbf0014, 0x3c020800, 0x8c420070, -0x24420001, 0x3c010800, 0xac220070, 0x8fb00010, -0x3e00008, 0x27bd0018, 0x27bdffe8, 0xafbf0014, -0xafb00010, 0x93430109, 0x2402001f, 0x8f500100, -0x106200a5, 0x28620020, 0x10400018, 0x24020038, -0x2862000a, 0x1040000c, 0x2402000b, 0x28620008, -0x1040002c, 0x0, 0x46000e7, 0x28620002, -0x14400028, 0x24020006, 0x10620026, 0x8fbf0014, -0xa000503, 0x8fb00010, 0x1062005e, 0x2862000b, -0x144000de, 0x8fbf0014, 0x2402000e, 0x10620073, -0x8fb00010, 0xa000503, 0x0, 0x106200c2, -0x28620039, 0x1040000a, 0x24020080, 0x24020036, -0x106200cc, 0x28620037, 0x104000b6, 0x24020035, -0x106200c3, 0x8fbf0014, 0xa000503, 0x8fb00010, -0x1062002b, 0x28620081, 0x10400006, 0x240200c8, -0x24020039, 0x106200b6, 0x8fbf0014, 0xa000503, -0x8fb00010, 0x10620099, 0x8fbf0014, 0xa000503, -0x8fb00010, 0x3c020800, 0x8c420020, 0x104000bb, -0x8fbf0014, 0xe000577, 0x0, 0x8f420100, -0x8f830020, 0x9745010c, 0x97460108, 0xac620000, -0x8f420104, 0x3c040800, 0x94844ed6, 0x52c00, -0xac620004, 0x8f420118, 0x63400, 0xc43025, -0xac620008, 0x8f42011c, 0x24040001, 0xac62000c, -0x9342010a, 0xa22825, 0xac650010, 0xac600014, -0xac600018, 0xac66001c, 0xa0004d7, 0x8fbf0014, -0x3c020800, 0x8c420020, 0x1040009c, 0x8fbf0014, -0xe000577, 0x0, 0x97440108, 0x3c030800, -0x94634ed6, 0x9745010c, 0x42202, 0x9746010e, -0x8f820020, 0x42600, 0x832025, 0x52c00, -0x3c030080, 0xa62825, 0x832025, 0xac400000, -0xac400004, 0xac400008, 0xac40000c, 0xac450010, -0xac400014, 0xac400018, 0xac44001c, 0xa0004d6, -0x24040001, 0x9742010c, 0x14400015, 0x0, -0x93620005, 0x30420010, 0x14400011, 0x0, -0xe000348, 0x2002021, 0x93620005, 0x2002021, -0x34420010, 0xe000351, 0xa3620005, 0x93620000, -0x24030020, 0x304200ff, 0x1043006f, 0x2002021, -0x8fbf0014, 0x8fb00010, 0xa0010a2, 0x27bd0018, -0xd, 0xa000502, 0x8fbf0014, 0x3c020800, -0x8c420020, 0x10400065, 0x8fbf0014, 0xe000577, -0x0, 0x8f420104, 0x8f830020, 0x9744010c, -0x3c050800, 0x94a54ed6, 0xac620000, 0x9762002c, -0x42400, 0x3042ffff, 0x822025, 0x3c02400e, -0xa22825, 0xac640004, 0xac600008, 0xac60000c, -0xac600010, 0xac600014, 0xac600018, 0xac65001c, -0xa0004d6, 0x24040001, 0xe000348, 0x2002021, -0xa7600008, 0xe000351, 0x2002021, 0x2002021, -0xe000356, 0x24050001, 0x3c020800, 0x8c420020, -0x10400042, 0x8fbf0014, 0xe000577, 0x0, -0x9742010c, 0x8f830020, 0x3c050800, 0x94a54ed6, -0x21400, 0xac700000, 0xac620004, 0xac600008, -0x8f64004c, 0x3c02401f, 0xa22825, 0xac64000c, -0x8f620050, 0x24040001, 0xac620010, 0x8f620054, -0xac620014, 0xac600018, 0xac65001c, 0x8fbf0014, -0x8fb00010, 0xa00059c, 0x27bd0018, 0x93620000, -0x24030020, 0x304200ff, 0x10430024, 0x8fbf0014, -0xe000fea, 0x2002021, 0x10400020, 0x8fbf0014, -0x2002021, 0x8fb00010, 0x2821, 0xa000356, -0x27bd0018, 0x2002021, 0x8fbf0014, 0x8fb00010, -0xa000664, 0x27bd0018, 0x9745010c, 0x2002021, -0x8fbf0014, 0x8fb00010, 0xa000684, 0x27bd0018, -0x2002021, 0x8fb00010, 0xa0006a9, 0x27bd0018, -0x9345010d, 0x2002021, 0x8fb00010, 0xa0006f3, -0x27bd0018, 0x2002021, 0x8fbf0014, 0x8fb00010, -0xa0006cf, 0x27bd0018, 0x8fbf0014, 0x8fb00010, -0x3e00008, 0x27bd0018, 0x8f420278, 0x440fffe, -0x34820080, 0xaf420240, 0x24020002, 0xa3420244, -0x3c021000, 0x3e00008, 0xaf420278, 0x3c040800, -0x94844ee2, 0x3c020800, 0x8c424eec, 0x3083ffff, -0x318c0, 0x431021, 0xaf42003c, 0x3c020800, -0x8c424ee8, 0xaf420038, 0x3c020050, 0x34420008, -0xaf420030, 0x0, 0x0, 0x0, -0x8f420000, 0x30420020, 0x1040fffd, 0x0, -0x8f420400, 0x3c010800, 0xac224ed8, 0x8f420404, -0x3c010800, 0xac224edc, 0x3c020020, 0xaf420030, -0x0, 0x3c020800, 0x94424ee0, 0x3c030800, -0x94634ee4, 0x3c050800, 0x94a54ee6, 0x24840001, -0x431021, 0x3083ffff, 0x3c010800, 0xa4224ee0, -0x3c010800, 0xa4244ee2, 0x14650003, 0x0, -0x3c010800, 0xa4204ee2, 0x3e00008, 0x0, -0x3c05000a, 0x27bdffe8, 0x3452821, 0x3c040800, -0x24844ec8, 0xafbf0010, 0xe000601, 0x2406000a, -0x3c020800, 0x94424eca, 0x3c030800, 0x94634ee6, -0x3042000f, 0x24420003, 0x431804, 0x24027fff, -0x43102b, 0x10400002, 0xaf83001c, 0xd, -0xe00050e, 0x0, 0x3c020800, 0x94424ed2, -0x8fbf0010, 0x27bd0018, 0x3e00008, 0xa74200a2, -0x3c02000a, 0x3421021, 0x94430006, 0x3c020800, -0x94424ed2, 0x3c010800, 0xa4234ece, 0x431023, -0x8f83001c, 0x21400, 0x21403, 0x43102b, -0x3e00008, 0x38420001, 0x27bdffe8, 0xafbf0010, -0x3c02000a, 0x3421021, 0x94420006, 0x3c010800, -0xa4224ece, 0xe00055b, 0x0, 0x5440fff9, -0x3c02000a, 0x8fbf0010, 0x3e00008, 0x27bd0018, -0x27bdffe8, 0xafbf0010, 0xe00055b, 0x0, -0x10400003, 0x0, 0xe000569, 0x0, -0x3c020800, 0x8c424ed8, 0x8fbf0010, 0x27430400, -0xaf420038, 0x3c020800, 0x8c424edc, 0x27bd0018, -0xaf830020, 0xaf42003c, 0x3c020005, 0xaf420030, -0x3e00008, 0xaf800018, 0x8f820018, 0x3c030006, -0x21140, 0x431025, 0xaf420030, 0x0, -0x0, 0x0, 0x8f420000, 0x30420010, -0x1040fffd, 0x27420400, 0xaf820020, 0x3e00008, -0xaf800018, 0x3c060800, 0x8cc64edc, 0x8f850018, -0x8f830020, 0x3c020800, 0x94424ed2, 0x27bdffe0, -0x24a50001, 0x24630020, 0x24420001, 0x24c70020, -0xafb10014, 0xafb00010, 0xafbf0018, 0xaf850018, -0xaf830020, 0x3c010800, 0xa4224ed2, 0x309000ff, -0x3c010800, 0xac274edc, 0x4c10008, 0x8821, -0x4e00006, 0x0, 0x3c020800, 0x8c424ed8, -0x24420001, 0x3c010800, 0xac224ed8, 0x3c020800, -0x94424ed2, 0x3c030800, 0x94634ee0, 0x10202b, -0x431026, 0x2c420001, 0x441025, 0x14400004, -0x8f830018, 0x24020010, 0x1462000f, 0x0, -0xe00058d, 0x24110001, 0x3c030800, 0x94634ed2, -0x3c020800, 0x94424ee0, 0x14620003, 0x0, -0xe00050e, 0x0, 0x16000003, 0x0, -0xe000577, 0x0, 0x3c030800, 0x94634ed6, -0x3c020800, 0x94424ed4, 0x24630001, 0x3064ffff, -0x3c010800, 0xa4234ed6, 0x14820003, 0x0, -0x3c010800, 0xa4204ed6, 0x12000006, 0x0, -0x3c020800, 0x94424ed2, 0xa74200a2, 0xa0005ef, -0x2201021, 0xe00055b, 0x0, 0x10400004, -0x2201021, 0xe000569, 0x0, 0x2201021, -0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x3e00008, -0x27bd0020, 0x3084ffff, 0x30a5ffff, 0x1821, -0x10800007, 0x0, 0x30820001, 0x10400002, -0x42042, 0x651821, 0xa0005f7, 0x52840, -0x3e00008, 0x601021, 0x10c00006, 0x24c6ffff, -0x8ca20000, 0x24a50004, 0xac820000, 0xa000601, -0x24840004, 0x3e00008, 0x0, 0x10a00008, -0x24a3ffff, 0xac860000, 0x0, 0x0, -0x2402ffff, 0x2463ffff, 0x1462fffa, 0x24840004, -0x3e00008, 0x0, 0x24020001, 0xaf62000c, -0xa7620010, 0xa7620012, 0xa7620014, 0x3e00008, -0xa7620016, 0x3082007f, 0x3421021, 0x3c08000e, -0x481821, 0x3c020800, 0x8c420020, 0x27bdffd8, -0x2407ff80, 0xafb3001c, 0xafb20018, 0xafb10014, -0xafb00010, 0xafbf0020, 0x808021, 0x30b100ff, -0x872024, 0x30d200ff, 0x1040002f, 0x9821, -0xaf44002c, 0x90620000, 0x24030050, 0x304200ff, -0x1443000e, 0x0, 0x3c020800, 0x8c4200e0, -0x2021021, 0x471024, 0xaf42002c, 0x3c020800, -0x8c4200e0, 0x2021021, 0x3042007f, 0x3421021, -0x481021, 0x944200d4, 0x3053ffff, 0xe000577, -0x0, 0x3c020800, 0x94424ed6, 0x8f830020, -0x113400, 0xc23025, 0x122c00, 0x3c024000, -0xc23025, 0x34a50001, 0xac700000, 0x8fbf0020, -0xac600004, 0x8fb20018, 0xac730008, 0x8fb10014, -0xac60000c, 0x8fb3001c, 0xac650010, 0x8fb00010, -0xac600014, 0x24040001, 0xac600018, 0x27bd0028, -0xa00059c, 0xac66001c, 0x8fbf0020, 0x8fb3001c, -0x8fb20018, 0x8fb10014, 0x8fb00010, 0x3e00008, -0x27bd0028, 0x9343010f, 0x24020010, 0x1062000e, -0x28650011, 0x10a00007, 0x24020012, 0x24020008, -0x2405003a, 0x10620006, 0x3021, 0x3e00008, -0x0, 0x24050035, 0x1462fffc, 0x3021, -0xa00061c, 0x0, 0x8f420074, 0x24420fa0, -0x3e00008, 0xaf62000c, 0x27bdffe8, 0xafbf0010, -0xe000356, 0x24050001, 0x8fbf0010, 0x24020001, -0xa7620012, 0x27bd0018, 0x24020001, 0x3e00008, -0xa3600022, 0x27bdffe0, 0xafb10014, 0xafb00010, -0xafbf0018, 0x30b1ffff, 0xe000348, 0x808021, -0x9362003f, 0x24030004, 0x304200ff, 0x1443000c, -0x2002021, 0x12200008, 0x2402000a, 0xe000615, -0x0, 0x93620005, 0x2403fffe, 0x431024, -0xa3620005, 0x24020012, 0xa362003f, 0x2002021, -0xe000351, 0xa3600081, 0x16200003, 0x2002021, -0xe000679, 0x0, 0x2002021, 0x322600ff, -0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x24050038, -0xa00061c, 0x27bd0020, 0x27bdffe0, 0xafbf001c, -0xafb20018, 0xafb10014, 0xafb00010, 0xe000348, -0x808021, 0xe000615, 0x0, 0x9362003f, -0x24120018, 0x305100ff, 0x12320003, 0x2002021, -0x24020012, 0xa362003f, 0x93620005, 0x2403fffe, -0x431024, 0xe000351, 0xa3620005, 0x2002021, -0x24050020, 0x16320007, 0x3021, 0x8fbf001c, -0x8fb20018, 0x8fb10014, 0x8fb00010, 0xa000356, -0x27bd0020, 0x8fbf001c, 0x8fb20018, 0x8fb10014, -0x8fb00010, 0x24050039, 0xa00061c, 0x27bd0020, -0x27bdffe8, 0xafb00010, 0xafbf0014, 0x9742010c, -0x24050036, 0x808021, 0x14400010, 0x304600ff, -0xe000348, 0x0, 0x24020012, 0xa362003f, -0x93620005, 0x34420010, 0xe000615, 0xa3620005, -0xe000351, 0x2002021, 0x2002021, 0xe000356, -0x24050020, 0xa0006e8, 0x0, 0xe00061c, -0x0, 0xe000348, 0x2002021, 0x93620023, -0x2403ff9f, 0x2002021, 0x431024, 0x8fbf0014, -0x8fb00010, 0xa3620023, 0xa000351, 0x27bd0018, -0x27bdffe0, 0xafbf0018, 0xafb10014, 0xafb00010, -0x30b100ff, 0xe000348, 0x808021, 0x24020012, -0xe000615, 0xa362003f, 0xe000351, 0x2002021, -0x2002021, 0x2203021, 0x8fbf0018, 0x8fb10014, -0x8fb00010, 0x24050035, 0xa00061c, 0x27bd0020, -0xa380002c, 0x3e00008, 0xa380002d, 0x8f420278, -0x440fffe, 0x8f820034, 0xaf420240, 0x24020002, -0xa3420244, 0x3c021000, 0x3e00008, 0xaf420278, -0x3c036000, 0x8c625400, 0x30420008, 0x1440fffd, -0x0, 0x8c625408, 0xaf820000, 0x24020052, -0xac605408, 0xac645430, 0xac625434, 0x24020008, -0x3e00008, 0xac625400, 0x3c026000, 0x8c425400, -0x30420008, 0x10400005, 0x3c036000, 0x8c625400, -0x30420008, 0x1440fffd, 0x0, 0x8f830000, -0x3c026000, 0x3e00008, 0xac435408, 0x90a30000, -0x24020005, 0x804021, 0x3063003f, 0x4821, -0x14620005, 0x5021, 0x90a2001c, 0x94a3001e, -0x304900ff, 0x306affff, 0xad00000c, 0xad000010, -0xad000024, 0x95020014, 0x8d05001c, 0x8d040018, -0x3042ffff, 0x491023, 0x21100, 0x237c3, -0x403821, 0x862023, 0xa2102b, 0x822023, -0xa72823, 0xad05001c, 0xad040018, 0xa5090014, -0xa5090020, 0xa50a0016, 0x3e00008, 0xa50a0022, -0x8f4201f8, 0x440fffe, 0x24020002, 0xaf4401c0, -0xa34201c4, 0x3c021000, 0x3e00008, 0xaf4201f8, -0x3c020800, 0x8c4200b4, 0x27bdffe8, 0xafbf0014, -0x24420001, 0xafb00010, 0x3c010800, 0xac2200b4, -0x8f430024, 0x3c02001f, 0x30aa00ff, 0x3442ff80, -0x30d800ff, 0x628024, 0x80f821, 0x30ef00ff, -0x1158003b, 0x1405821, 0x240cff80, 0x3c19000a, -0x3163007f, 0x310c0, 0x31940, 0x621821, -0x3c020800, 0x8c4200dc, 0x25680001, 0x310d007f, -0x3e21021, 0x431021, 0x3043007f, 0x3431821, -0x4c1024, 0x794821, 0xaf420024, 0x8d220024, -0x16c1824, 0x6c7026, 0xad22000c, 0x8d220024, -0x310800ff, 0xad220010, 0x95220014, 0x95230020, -0x8d27001c, 0x3042ffff, 0x3063ffff, 0x8d260018, -0x431023, 0x21100, 0x227c3, 0x402821, -0xc43023, 0xe2102b, 0xc23023, 0xe53823, -0xad27001c, 0xad260018, 0x95220020, 0xa5220014, -0x95220022, 0x154b000a, 0xa5220016, 0x8d230024, -0x8d220008, 0x25460001, 0x31450080, 0x14620004, -0x30c4007f, 0x108f0002, 0x38aa0080, 0xc05021, -0x51af0001, 0x31c800ff, 0x1518ffc9, 0x1005821, -0x8f840034, 0x3082007f, 0x3421821, 0x3c02000a, -0x621821, 0x2402ff80, 0x822024, 0xaf440024, -0xa06a0079, 0xa06a0083, 0x8c620050, 0x8f840034, -0xac620070, 0x8c650074, 0x3c027fff, 0x3442ffff, -0xa22824, 0xe00074f, 0xac650074, 0xaf500024, -0x8fbf0014, 0x8fb00010, 0x3e00008, 0x27bd0018, -0x27bdffc0, 0xafbe0038, 0xafb70034, 0xafb5002c, -0xafb20020, 0xafb1001c, 0xafb00018, 0xafbf003c, -0xafb60030, 0xafb40028, 0xafb30024, 0x8f450024, -0x8f460028, 0x8f43002c, 0x3c02001f, 0x3442ff80, -0x621824, 0xc23024, 0x80a821, 0xafa30014, -0xa2f024, 0xe000713, 0xafa60010, 0x3c020800, -0x8c4200e0, 0x2410ff80, 0x3608821, 0x2a21021, -0x501024, 0xaf420024, 0x3c020800, 0x8c4200e0, -0x2a21021, 0x3042007f, 0x3421821, 0x3c02000a, -0x629021, 0x924200d2, 0x93630084, 0x305700ff, -0x306300ff, 0x24020001, 0x10620034, 0x3602021, -0x24020002, 0x14620036, 0x0, 0xe0012f8, -0x2402821, 0x92230083, 0x92220083, 0x3063007f, -0x3042007f, 0x210c0, 0x31940, 0x621821, -0x3c020800, 0x8c4200dc, 0x2a21021, 0x433821, -0xf01024, 0xaf420028, 0x92250078, 0x92240083, -0x30e2007f, 0x3421821, 0x3c02000c, 0x14850007, -0x628021, 0x2402ffff, 0xa24200f1, 0x2402ffff, -0xa64200f2, 0xa00080b, 0x2402ffff, 0x96020020, -0xa24200f1, 0x96020022, 0xa64200f2, 0x8e020024, -0xae4200f4, 0x92220083, 0xa24200f0, 0x8e4200c8, -0xae4200fc, 0x8e4200c4, 0xae4200f8, 0x8e220050, -0xae420100, 0x8e4200cc, 0xae420104, 0x92220085, -0x3042003f, 0xa000866, 0x34420040, 0xe00131b, -0x2402821, 0x92220085, 0xa000866, 0x3042003f, -0x93620085, 0x2403ffdf, 0x3042003f, 0xa3620085, -0x93620085, 0x431024, 0xa3620085, 0x93630083, -0x93620078, 0x307400ff, 0x304200ff, 0x10540036, -0x240aff80, 0x3c0c000c, 0x3283007f, 0x310c0, -0x31940, 0x621821, 0x3c020800, 0x8c4200dc, -0x26880001, 0x3109007f, 0x2a21021, 0x433821, -0x30e2007f, 0x3421821, 0xea1024, 0xaf420028, -0x6c8021, 0x8e020024, 0x28a1824, 0x6a5826, -0xae02000c, 0x8e020024, 0x310800ff, 0xae020010, -0x96020014, 0x96030020, 0x8e07001c, 0x3042ffff, -0x3063ffff, 0x8e060018, 0x431023, 0x21100, -0x227c3, 0x402821, 0xc43023, 0xe2102b, -0xc23023, 0xe53823, 0xae07001c, 0xae060018, -0x96020020, 0xa6020014, 0x96020022, 0xa6020016, -0x92220079, 0x304200ff, 0x10540007, 0x0, -0x51370001, 0x316800ff, 0x92220078, 0x304200ff, -0x1448ffcd, 0x100a021, 0x92220083, 0xa2220079, -0x8e220050, 0xa0008c6, 0xae220070, 0xa2220085, -0x8e22004c, 0x2405ff80, 0xae42010c, 0x92220085, -0x34420020, 0xa2220085, 0x924200d1, 0x3c030800, -0x8c6300dc, 0x305400ff, 0x3c020800, 0x8c4200e4, -0x143140, 0x1420c0, 0x2a31821, 0xc42021, -0x2a21021, 0x643821, 0x461021, 0x451824, -0xe52824, 0xaf450028, 0xaf43002c, 0x3042007f, -0x924400d0, 0x30e3007f, 0x3422821, 0x3431821, -0x3c02000c, 0x628021, 0x3c02000e, 0x309600ff, -0xa29821, 0x1296002a, 0x0, 0x8e02000c, -0x2002021, 0x2602821, 0x10400025, 0x26100028, -0xe00072e, 0x0, 0x9262000d, 0x26830001, -0x307400ff, 0x3042007f, 0xa262000d, 0x2404ff80, -0x1697fff0, 0x26730020, 0x3c020800, 0x8c4200dc, -0xa021, 0x2a21021, 0x441024, 0xaf420028, -0x3c020800, 0x8c4200e4, 0x3c030800, 0x8c6300dc, -0x2a21021, 0x441024, 0xaf42002c, 0x3c020800, -0x8c4200e4, 0x2a31821, 0x3063007f, 0x2a21021, -0x3042007f, 0x3422021, 0x3431821, 0x3c02000c, -0x628021, 0x3c02000e, 0xa000888, 0x829821, -0x8e4200d8, 0xae220050, 0x8e4200d8, 0xae220070, -0x92250083, 0x924600d1, 0x92230083, 0x924400d1, -0x2402ff80, 0xa22824, 0x3063007f, 0x308400ff, -0xa62825, 0x64182a, 0x10600002, 0x30a500ff, -0x38a50080, 0xa2250083, 0xa2250079, 0xe000721, -0x0, 0x9222007e, 0x2a02021, 0xa222007a, -0x8e230074, 0x3c027fff, 0x3442ffff, 0x621824, -0xe00074f, 0xae230074, 0x8fa20010, 0xaf5e0024, -0x8fbf003c, 0xaf420028, 0x8fbe0038, 0x8fa20014, -0x8fb70034, 0x8fb60030, 0x8fb5002c, 0x8fb40028, -0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018, -0x27bd0040, 0x3e00008, 0xaf42002c, 0x90a20000, -0x24420001, 0xa0a20000, 0x3c030800, 0x8c6300f4, -0x304200ff, 0x1443000f, 0x803021, 0xa0a00000, -0x3c020800, 0x8c4200e4, 0x8f840034, 0x822021, -0x3082007f, 0x3421821, 0x3c02000c, 0x621821, -0x2402ff80, 0x822024, 0xacc30000, 0x3e00008, -0xaf440028, 0x8c820000, 0x24420020, 0x3e00008, -0xac820000, 0x94c20000, 0x3c080800, 0x950800ca, -0x30e7ffff, 0x804821, 0x1021021, 0xa4c20000, -0x94c20000, 0x3042ffff, 0xe2102b, 0x54400001, -0xa4c70000, 0x94a20000, 0x3c030800, 0x8c6300cc, -0x24420001, 0xa4a20000, 0x94a20000, 0x3042ffff, -0x54430007, 0x8f860028, 0x107102b, 0xa4a00000, -0x54400001, 0x1003821, 0xa4c70000, 0x8f860028, -0x8cc4001c, 0xaf44003c, 0x94a20000, 0x8f43003c, -0x3042ffff, 0x210c0, 0x621821, 0xaf43003c, -0x8f42003c, 0x822023, 0x18800004, 0x0, -0x8cc20018, 0xa000927, 0x24420001, 0x8cc20018, -0xaf420038, 0x3c020050, 0x34420010, 0xaf420030, -0x0, 0x0, 0x0, 0x8f420000, -0x30420020, 0x1040fffd, 0x0, 0x8f420404, -0xad220004, 0x8f420400, 0xad220000, 0x3c020020, -0xaf420030, 0x3e00008, 0x0, 0x27bdffe0, -0xafb20018, 0xafb10014, 0xafb00010, 0xafbf001c, -0x94c20000, 0xc08021, 0x3c120800, 0x965200c6, -0x24420001, 0xa6020000, 0x96030000, 0x94e20000, -0xe03021, 0x14430005, 0x8fb10030, 0xe0008fc, -0x2403821, 0xa000959, 0x0, 0x8c830004, -0x8c820004, 0x24420040, 0x4610007, 0xac820004, -0x8c820004, 0x4400004, 0x0, 0x8c820000, -0x24420001, 0xac820000, 0x96020000, 0x3042ffff, -0x50520001, 0xa6000000, 0x96220000, 0x24420001, -0xa6220000, 0x8f820028, 0x96230000, 0x94420016, -0x14430004, 0x8fbf001c, 0x24020001, 0xa6220000, -0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, -0x3e00008, 0x27bd0020, 0x8f890028, 0x27bdffe0, -0xafbf0018, 0x8d220028, 0x27480400, 0x30e700ff, -0xaf420038, 0x8d22002c, 0xaf880030, 0xaf42003c, -0x3c020005, 0xaf420030, 0x0, 0x0, -0x0, 0x0, 0x0, 0x0, -0x8c82000c, 0x8c82000c, 0xad020000, 0x8c820010, -0xad020004, 0x8c820018, 0xad020008, 0x8c82001c, -0xad02000c, 0x8ca20014, 0xad020010, 0x8c820020, -0xad020014, 0x90820005, 0x304200ff, 0x21200, -0xad020018, 0x8ca20018, 0xad02001c, 0x8ca2000c, -0xad020020, 0x8ca20010, 0xad020024, 0x8ca2001c, -0xad020028, 0x8ca20020, 0xad02002c, 0xad060030, -0xad000034, 0x97830026, 0x3402ffff, 0x14620002, -0x602021, 0x3404ffff, 0x10e00011, 0xad040038, -0x95230036, 0x95240036, 0x24020001, 0x3063ffff, -0x318c2, 0x691821, 0x90650040, 0x30840007, -0x821004, 0x451025, 0xa0620040, 0x8f820028, -0x94420056, 0x3042ffff, 0xa0009c0, 0xad02003c, -0x95230036, 0x95240036, 0x24020001, 0x3063ffff, -0x318c2, 0x691821, 0x90650040, 0x30840007, -0x821004, 0x21027, 0x451024, 0xa0620040, -0xad00003c, 0x0, 0x0, 0x0, -0x3c020006, 0x34420040, 0xaf420030, 0x0, -0x0, 0x0, 0x8f420000, 0x30420010, -0x1040fffd, 0x8f860028, 0xaf880030, 0x24c20056, -0x24c7003c, 0x24c40028, 0x24c50032, 0x24c60036, -0xe00093a, 0xafa20010, 0x8fbf0018, 0x3e00008, -0x27bd0020, 0x8f830024, 0x3c050800, 0x8ca500e8, -0x8f820034, 0x30633fff, 0x31980, 0x451021, -0x431021, 0x2403ff80, 0x3045007f, 0x431024, -0xaf420028, 0x3451821, 0x3c02000c, 0x623021, -0x90c2000d, 0x3821, 0x34420010, 0xa0c2000d, -0x8f890028, 0x8f8a0024, 0x95230036, 0xa1382, -0x30480003, 0x24020001, 0xa4c3000e, 0x1102000b, -0x29020002, 0x10400005, 0x24020002, 0x1100000c, -0x24030001, 0xa000a03, 0x1821, 0x11020006, -0x0, 0xa000a03, 0x1821, 0x8cc2002c, -0xa000a03, 0x24430001, 0x8cc20014, 0x24430001, -0x8cc20018, 0x43102b, 0x14400003, 0x0, -0xa000a0c, 0x24070001, 0x9522003e, 0x24420001, -0xa522003e, 0xa1382, 0x30430003, 0x2c620002, -0x10400009, 0x802821, 0x14600004, 0x0, -0x94c20036, 0xa000a1c, 0x3046ffff, 0x8cc60038, -0xa000a1c, 0x802821, 0x3021, 0x3c040800, -0x24844ef0, 0xa00096d, 0x0, 0x27490100, -0x8d22000c, 0x95230006, 0x1202021, 0x21602, -0x3045003f, 0x3063ffff, 0x24020027, 0x28a60028, -0x10a2000e, 0xaf830024, 0x10c00008, 0x24020031, -0x24020021, 0x10a20009, 0x24020025, 0x10a20007, -0x9382002d, 0xa000a3a, 0x0, 0x10a20005, -0x9382002d, 0xa000a3a, 0x0, 0xa0009d8, -0x0, 0xa00070a, 0x0, 0x95230006, -0x91240005, 0x8d25000c, 0x8d260010, 0x8d270018, -0x8d28001c, 0x8d290020, 0x24420001, 0x3c010800, -0xa4234ef6, 0x3c010800, 0xa0244ef5, 0x3c010800, -0xac254efc, 0x3c010800, 0xac264f00, 0x3c010800, -0xac274f08, 0x3c010800, 0xac284f0c, 0x3c010800, -0xac294f10, 0x3e00008, 0xa382002d, 0x8f870028, -0x27bdffc0, 0xafb30034, 0xafb20030, 0xafb1002c, -0xafb00028, 0xafbf0038, 0x3c020800, 0x8c4200d0, -0x94e30030, 0x30b0ffff, 0x501007, 0x3045ffff, -0x3063ffff, 0xc09821, 0xa7a20010, 0x3c110800, -0x963100c6, 0x14a30006, 0x3092ffff, 0x8ce20024, -0x24420030, 0xaf42003c, 0xa000a73, 0x8ce20020, -0x94e20032, 0x3042ffff, 0x54a20008, 0x27a40018, -0x8ce2002c, 0x24420030, 0xaf42003c, 0x8ce20028, -0xaf420038, 0xa000a81, 0x8f840028, 0x27a50010, -0x27a60020, 0x2203821, 0xe0008fc, 0xa7a00020, -0x8fa20018, 0x24420030, 0xaf420038, 0x8fa2001c, -0xaf42003c, 0x8f840028, 0x3c020005, 0xaf420030, -0x94820034, 0x27430400, 0x3042ffff, 0x202102b, -0x14400007, 0xaf830030, 0x94820054, 0x94830034, -0x2021021, 0x431023, 0xa000a95, 0x3043ffff, -0x94830054, 0x94820034, 0x2231821, 0x501023, -0x621823, 0x3063ffff, 0x94820016, 0x3042ffff, -0x14430003, 0x0, 0xa000aa3, 0x24030001, -0x94820016, 0x3042ffff, 0x43102b, 0x10400005, -0x8f820030, 0x94820016, 0x621023, 0x3043ffff, -0x8f820030, 0xac530000, 0xac400004, 0xac520008, -0xac43000c, 0x3c020006, 0x34420010, 0xaf420030, -0x0, 0x0, 0x0, 0x8f420000, -0x30420010, 0x1040fffd, 0x1018c2, 0x641821, -0x90650040, 0x32040007, 0x24020001, 0x8fbf0038, -0x8fb30034, 0x8fb20030, 0x8fb1002c, 0x8fb00028, -0x821004, 0x451025, 0x27bd0040, 0x3e00008, -0xa0620040, 0x27bdffa8, 0xafb60050, 0xafb5004c, -0xafb40048, 0xafb30044, 0xafb1003c, 0xafbf0054, -0xafb20040, 0xafb00038, 0x8c900000, 0x3c020800, -0x8c4200e8, 0x8f860034, 0x96030002, 0x2413ff80, -0xc23021, 0x30633fff, 0x31980, 0xc33821, -0xf31024, 0x90b20000, 0xaf42002c, 0x92030002, -0x30e2007f, 0x3423021, 0x3c02000e, 0xc28821, -0x306300c0, 0x24020040, 0x80a821, 0xa0b021, -0x14620026, 0xa021, 0x8e340038, 0x8e220018, -0x14400002, 0x24020001, 0xae220018, 0x9202000d, -0x30420020, 0x14400015, 0x8f820034, 0x3c030800, -0x8c6300dc, 0x1238c0, 0x123140, 0x431021, -0xc73021, 0x463821, 0x30e30007, 0x3c020080, -0x30e60078, 0xc23025, 0x3431821, 0xf31024, -0xaf420800, 0x24630900, 0xaf460810, 0x8e220018, -0x8c630008, 0x431021, 0xae220018, 0x8e22002c, -0x8e230018, 0x24420001, 0x62182b, 0x1060003d, -0x0, 0xa000b57, 0x0, 0x92030002, -0x2402ffc0, 0x431024, 0x304200ff, 0x14400005, -0x24020001, 0xae220018, 0x96220036, 0xa000b40, -0x3054ffff, 0x8e220014, 0x24420001, 0xae220018, -0x92020000, 0x21600, 0x21603, 0x4410029, -0x0, 0x96020002, 0x27a40010, 0x802821, -0xa7a20016, 0x96020002, 0x24070001, 0x3021, -0x3042ffff, 0xaf820024, 0xe00096d, 0xafa0001c, -0x96030002, 0x3c040800, 0x8c8400e8, 0x8f820034, -0x30633fff, 0x31980, 0x441021, 0x431021, -0x3043007f, 0x3c05000c, 0x531024, 0x3431821, -0xaf420028, 0x651821, 0x9062000d, 0x122140, -0x3042007f, 0xa062000d, 0x3c030800, 0x8c6300e4, -0x8f820034, 0x431021, 0x443821, 0x30e2007f, -0x3421021, 0x451021, 0xf31824, 0xaf430028, -0xaea20000, 0x9222000d, 0x30420010, 0x10400013, -0x2a02021, 0x8f830028, 0x8ea40000, 0x2803021, -0x9462003e, 0x2442ffff, 0xa462003e, 0x94840002, -0x9625000e, 0x3084ffff, 0xe000a52, 0x30a5ffff, -0x8f820028, 0x94430034, 0x9622000e, 0x14430003, -0x2a02021, 0x24020001, 0xa382002c, 0x2c02821, -0xe0008e2, 0x0, 0x8fbf0054, 0x8fb60050, -0x8fb5004c, 0x8fb40048, 0x8fb30044, 0x8fb20040, -0x8fb1003c, 0x8fb00038, 0x3e00008, 0x27bd0058, -0x8f850028, 0x27bdffd0, 0xafb40028, 0xafb20020, -0xafbf002c, 0xafb30024, 0xafb1001c, 0xafb00018, -0x90a800d0, 0x90a600d1, 0x3c020800, 0x8c4200e4, -0x8f830034, 0x30c700ff, 0xa3a60010, 0x621821, -0x71140, 0x621821, 0x3062007f, 0x3422021, -0x3c02000c, 0x822021, 0x2402ff80, 0x621824, -0x311200ff, 0x8cb100d8, 0xafa40014, 0x8cb300dc, -0xa021, 0xaf430028, 0x10f2001f, 0x24020001, -0x8fa60014, 0x27a40014, 0x27a50010, 0x8cc20004, -0x2228021, 0x2701023, 0x4400017, 0x24020001, -0x90c3000d, 0x2402ff80, 0x431024, 0x304200ff, -0x14400007, 0x2008821, 0x90c2000d, 0x34420040, -0xe0008e2, 0xa0c2000d, 0xa000b9e, 0x93a20010, -0xe000ac0, 0x24140001, 0x8f830028, 0xac7000d8, -0x93a20010, 0xa06200d1, 0x93a20010, 0x1452ffe5, -0x8fa60014, 0x24020001, 0x16820004, 0x8fbf002c, -0xe00070a, 0x0, 0x8fbf002c, 0x8fb40028, -0x8fb30024, 0x8fb20020, 0x8fb1001c, 0x8fb00018, -0x3e00008, 0x27bd0030, 0x27bdffd8, 0xafb3001c, -0xafb20018, 0xafb10014, 0xafb00010, 0xafbf0020, -0x809821, 0xe08021, 0x30b1ffff, 0xe000577, -0x30d200ff, 0x0, 0x0, 0x0, -0x8f820020, 0xac510000, 0xac520004, 0xac530008, -0xac40000c, 0xac400010, 0xac400014, 0xac400018, -0x3c030800, 0x94634ed6, 0x2038025, 0xac50001c, -0x0, 0x0, 0x0, 0x24040001, -0x8fbf0020, 0x8fb3001c, 0x8fb20018, 0x8fb10014, -0x8fb00010, 0xa00059c, 0x27bd0028, 0x27bdffe8, -0xafb00010, 0xafbf0014, 0x30a5ffff, 0x30c600ff, -0x808021, 0x24020c80, 0xaf420024, 0x0, -0x0, 0x0, 0x0, 0x0, -0xe000bad, 0x0, 0x3c040800, 0x248400e0, -0x8c820000, 0x2403ff80, 0x8fbf0014, 0x2021021, -0x431024, 0xaf420024, 0x8c820000, 0x3c03000a, -0x2028021, 0x3210007f, 0x3501021, 0x8fb00010, -0x431021, 0x27bd0018, 0x3e00008, 0xaf820028, -0x27bdffe8, 0xafbf0010, 0x8f440140, 0x3c030800, -0x8c6300e0, 0x2402ff80, 0xaf840034, 0x831821, -0x621024, 0xaf420024, 0x3c020008, 0x3424021, -0x95050002, 0x3063007f, 0x3c02000a, 0x3431821, -0x621821, 0x30a5ffff, 0x3402ffff, 0x3021, -0x3c076020, 0x10a20006, 0xaf830028, 0x2402ffff, -0xa5020002, 0x946500d4, 0xe000bd2, 0x30a5ffff, -0x8fbf0010, 0x24020c80, 0x27bd0018, 0x3e00008, -0xaf420024, 0x3c020008, 0x3424021, 0x95020002, -0x3c0a0800, 0x954a00c6, 0x3046ffff, 0x14c00007, -0x3402ffff, 0x8f820028, 0x8f840034, 0x3c076020, -0x944500d4, 0xa000c3b, 0x30a5ffff, 0x10c20024, -0x8f870028, 0x94e20054, 0x94e40016, 0x3045ffff, -0xa61023, 0xa6182b, 0x3089ffff, 0x10600004, -0x3044ffff, 0xc51023, 0x1221023, 0x3044ffff, -0x8a102b, 0x1040000c, 0x12a1023, 0x24020001, -0xa5020016, 0x2402ffff, 0xa5020002, 0x94e500d4, -0x8f840034, 0x3021, 0x30a5ffff, 0x3c076020, -0xa000bd2, 0x0, 0x44102a, 0x10400008, -0x0, 0x95020016, 0x30420001, 0x10400004, -0x0, 0x9742007e, 0x24420014, 0xa5020016, -0x3e00008, 0x0, 0x8f840028, 0x27bdffe0, -0xafbf0018, 0x94820034, 0x9483003e, 0x1060001a, -0x3048ffff, 0x9383002c, 0x24020001, 0x14620027, -0x8fbf0018, 0x8f820028, 0x818c2, 0x31080007, -0x621821, 0x2447003a, 0x24490054, 0x24440020, -0x24450030, 0x24460034, 0x90620040, 0x304200ff, -0x1021007, 0x30420001, 0x10400016, 0x8fbf0018, -0xe00093a, 0xafa90010, 0x8f820028, 0x94420034, -0xa000c54, 0x3048ffff, 0x94830036, 0x94820034, -0x1043000e, 0x8fbf0018, 0x94820036, 0xa4820034, -0x94820056, 0xa4820054, 0x8c82002c, 0xac820024, -0x94820032, 0xa4820030, 0x9482003c, 0xa482003a, -0x8fbf0018, 0xa000c14, 0x27bd0020, 0x3e00008, -0x27bd0020, 0x27bdffe8, 0xafbf0010, 0x8f4a0100, -0x3c050800, 0x8ca500e0, 0x3c020800, 0x90424efc, -0x3c0c0800, 0x958c4ef6, 0x1452821, 0x304b003f, -0x30a2007f, 0x3424021, 0x39690032, 0x3c02000a, -0x3963003f, 0x2c630001, 0x1024021, 0x2d290001, -0x2402ff80, 0xa22824, 0x1234825, 0xaf8a0034, -0x801821, 0xaf450024, 0x3021, 0x802821, -0x24070001, 0xaf880028, 0x3c040800, 0x24844ef0, -0xaf8c0024, 0x15200006, 0xa380002d, 0x24020020, -0x1562000e, 0x3402ffff, 0x1582000c, 0x0, -0x24020020, 0x15620005, 0x0, 0x8c630014, -0x2402ffff, 0x10620007, 0x0, 0xe00096d, -0x0, 0xa000cb0, 0x0, 0xe0009d8, -0x602021, 0xe000c49, 0x0, 0x8fbf0010, -0x24020c80, 0x27bd0018, 0x3e00008, 0xaf420024, -0x3c020800, 0x8c4200e0, 0x27bdffa0, 0xafb1003c, -0x821021, 0x2411ff80, 0xafbe0058, 0xafb70054, -0xafb20040, 0xafb00038, 0xafbf005c, 0xafb60050, -0xafb5004c, 0xafb40048, 0xafb30044, 0x511024, -0x8f480024, 0x8f490028, 0x8f470028, 0xaf420024, -0x3c020800, 0x8c4200e0, 0x809021, 0x24060006, -0x821021, 0x3042007f, 0x3421821, 0x3c02000a, -0x628021, 0x3c02001f, 0x3442ff80, 0xe23824, -0x27a40010, 0x260500f0, 0x122f024, 0x102b824, -0xe000601, 0xafa70030, 0x8fa20018, 0xae0200c4, -0x8fa2001c, 0xae0200c8, 0x8fa20024, 0xae0200cc, -0x93a40010, 0x920300d1, 0x2402ff80, 0x821024, -0x431025, 0x304900ff, 0x3083007f, 0x3122007f, -0x62102a, 0x10400004, 0x310c0, 0x1311026, -0x304900ff, 0x310c0, 0x31940, 0x621821, -0x3c020800, 0x8c4200dc, 0x920400d2, 0x2421021, -0x431021, 0x511024, 0xaf420028, 0x93a30010, -0x3063007f, 0x310c0, 0x31940, 0x621821, -0x3c020800, 0x8c4200dc, 0x2421021, 0x431021, -0x3042007f, 0x3421821, 0x3c02000c, 0x624021, -0x8fa30014, 0x2402ffff, 0x10620030, 0x309500ff, -0x93a20011, 0x95030014, 0x304400ff, 0x3063ffff, -0x64182b, 0x1060000d, 0x0, 0x95040014, -0x8d07001c, 0x8d060018, 0x3084ffff, 0x442023, -0x42100, 0x1021, 0xe43821, 0xe4202b, -0xc23021, 0xa000d2a, 0xc43021, 0x95040014, -0x8d07001c, 0x8d060018, 0x3084ffff, 0x822023, -0x42100, 0x1021, 0x801821, 0xc23023, -0xe4202b, 0xc43023, 0xe33823, 0xad07001c, -0xad060018, 0x93a20011, 0xa5020014, 0x97a20012, -0xa5020016, 0x8fa20014, 0xad020010, 0x8fa20014, -0xad02000c, 0x93a20011, 0xa5020020, 0x97a20012, -0xa5020022, 0x8fa20014, 0xad020024, 0x2406ff80, -0x2461024, 0x3256007f, 0xaf420024, 0x3561821, -0x3c02000a, 0x628021, 0x8e02004c, 0x8fa20020, -0x3124007f, 0x428c0, 0xae020050, 0x8fa20020, -0x42140, 0x852821, 0xae020070, 0x93a20010, -0x1208821, 0xa2020083, 0x93a20010, 0xa2020079, -0x92020085, 0x3042003f, 0xa2020085, 0x3c020800, -0x8c4200dc, 0x2421021, 0x451021, 0x461024, -0xaf42002c, 0x3c020800, 0x8c4200e4, 0x3c030800, -0x8c6300dc, 0x2421021, 0x441021, 0x461024, -0xaf420028, 0x3c020800, 0x8c4200e4, 0x2431821, -0x651821, 0x2421021, 0x441021, 0x3042007f, -0x3063007f, 0x93a50010, 0x3422021, 0x3431821, -0x3c02000e, 0x624021, 0x3c02000c, 0x10b1008c, -0x824821, 0x3233007f, 0x16600019, 0x2404ff80, -0x3c020800, 0x8c4200dc, 0x2421021, 0x441024, -0xaf42002c, 0x3c020800, 0x8c4200e4, 0x3c030800, -0x8c6300dc, 0x2421021, 0x441024, 0xaf420028, -0x3c020800, 0x8c4200e4, 0x2431821, 0x3063007f, -0x2421021, 0x3042007f, 0x3422021, 0x3431821, -0x3c02000e, 0x624021, 0x3c02000c, 0x824821, -0x9124000d, 0x2414ff80, 0x1021, 0x942025, -0xa124000d, 0x95040002, 0x95050014, 0x8d07001c, -0x3084ffff, 0x30a5ffff, 0x8d060018, 0x852023, -0x42100, 0xe43821, 0xc23021, 0xe4202b, -0xc43021, 0xad07001c, 0xad060018, 0x95020002, -0xa5020014, 0xa5000016, 0x8d020008, 0xad020010, -0x8d020008, 0xad02000c, 0x95020002, 0xa5020020, -0xa5000022, 0x8d020008, 0xad020024, 0x9122000d, -0x30420040, 0x10400042, 0x26220001, 0x3c020800, -0x8c4200e0, 0xa3b30028, 0x3c10000a, 0x2421021, -0x541024, 0xaf420024, 0x3c020800, 0x8c4200e0, -0xa380002c, 0x27a4002c, 0x2421021, 0x3042007f, -0x3421821, 0x701821, 0x8c6200d8, 0x8d260004, -0x27a50028, 0xafa9002c, 0x461021, 0xac6200d8, -0xe000ac0, 0xaf830028, 0x93a30028, 0x8f820028, -0xe00070a, 0xa04300d1, 0xe000c49, 0x0, -0x2541024, 0xaf420024, 0x3c020800, 0x8c4200dc, -0x132940, 0x1320c0, 0xa42021, 0x2421021, -0x441021, 0x541024, 0xaf42002c, 0x3c020800, -0x8c4200e4, 0x3c030800, 0x8c6300dc, 0x3563021, -0x2421021, 0x451021, 0x541024, 0xaf420028, -0x3c020800, 0x8c4200e4, 0x2431821, 0x641821, -0x2421021, 0x451021, 0x3042007f, 0x3063007f, -0x3422021, 0x3431821, 0x3c02000e, 0x624021, -0x3c02000c, 0xd08021, 0x824821, 0x26220001, -0x3043007f, 0x14750005, 0x304400ff, 0x2403ff80, -0x2231024, 0x431026, 0x304400ff, 0x93a20010, -0x808821, 0x25080028, 0x1444ff76, 0x25290020, -0x93a40010, 0x8fa30014, 0x2402ffff, 0x1062000a, -0x308900ff, 0x24820001, 0x24830001, 0x3042007f, -0x14550005, 0x306900ff, 0x2403ff80, 0x831024, -0x431026, 0x304900ff, 0x92020078, 0x305300ff, -0x11330032, 0x1208821, 0x3c020800, 0x8c4200dc, -0x3225007f, 0x520c0, 0x52940, 0xa42021, -0x2421021, 0x2406ff80, 0x441021, 0x461024, -0xaf42002c, 0x3c030800, 0x8c6300dc, 0x3c020800, -0x8c4200e4, 0x2431821, 0x2421021, 0x451021, -0x641821, 0x461024, 0x3063007f, 0xaf420028, -0x3431821, 0x3c02000e, 0x624021, 0x3c020800, -0x8c4200e4, 0x8d06000c, 0x1002021, 0x2421021, -0x451021, 0x3042007f, 0x3421821, 0x3c02000c, -0x624821, 0x10c0000d, 0x1202821, 0xe00072e, -0x0, 0x2402ff80, 0x2221824, 0x26240001, -0x622826, 0x3082007f, 0x14550002, 0x308300ff, -0x30a300ff, 0x1473ffd0, 0x608821, 0x8e030074, -0x3c027fff, 0x3442ffff, 0x621824, 0xae030074, -0xe00074f, 0x2402021, 0xaf570024, 0x8fa20030, -0xaf5e0028, 0x8fbf005c, 0x8fbe0058, 0x8fb70054, -0x8fb60050, 0x8fb5004c, 0x8fb40048, 0x8fb30044, -0x8fb20040, 0x8fb1003c, 0x8fb00038, 0x27bd0060, -0x3e00008, 0xaf42002c, 0x27bdffd8, 0xafb1001c, -0xafbf0020, 0xafb00018, 0x27510188, 0x92220003, -0x2408ff80, 0x3c03000a, 0x3047007f, 0xa3a70010, -0x8f460180, 0x3c020800, 0x8c4200e0, 0xaf860034, -0xc22821, 0xa81024, 0xaf420024, 0x92240000, -0x30a2007f, 0x3421021, 0x431021, 0xaf820028, -0x3084007f, 0x24020002, 0x14820025, 0x71940, -0x3c020800, 0x8c4200e4, 0xc21021, 0x432821, -0x30a2007f, 0x3421821, 0xa81024, 0xaf420028, -0x3c02000c, 0x621821, 0x9062000d, 0xafa30014, -0x481025, 0xa062000d, 0x8fa30014, 0x9062000d, -0x30420040, 0x5040006a, 0x8fbf0020, 0x8f860028, -0xa380002c, 0x27a40014, 0x8cc200d8, 0x8c630004, -0x27a50010, 0x431021, 0xe000ac0, 0xacc200d8, -0x93a30010, 0x8f820028, 0xe00070a, 0xa04300d1, -0xe000c49, 0x0, 0xa000eeb, 0x8fbf0020, -0xe000713, 0xc02021, 0xe000721, 0x0, -0x3c020008, 0x3428021, 0x92230001, 0x9202007b, -0x1443004f, 0x8fbf0020, 0x92220000, 0x3044007f, -0x24020004, 0x10820017, 0x28820005, 0x10400006, -0x24020005, 0x24020003, 0x10820007, 0x8fb1001c, -0xa000eec, 0x0, 0x10820012, 0x8fbf0020, -0xa000eec, 0x8fb1001c, 0x92050083, 0x92060078, -0x8e070074, 0x8f840034, 0x30a500ff, 0x73e02, -0x30c600ff, 0xe000757, 0x30e7007f, 0xa000eeb, -0x8fbf0020, 0xe000cb7, 0x8f840034, 0xa000eeb, -0x8fbf0020, 0x24020c80, 0xaf420024, 0x9202003e, -0x30420040, 0x10400020, 0x0, 0x9202003e, -0x21600, 0x21603, 0x4410006, 0x0, -0x8f840034, 0xe000684, 0x24050093, 0xa000eeb, -0x8fbf0020, 0x9202003f, 0x24030018, 0x304200ff, -0x1443000c, 0x8f840034, 0x24050039, 0xe00061c, -0x3021, 0xe000348, 0x8f840034, 0x24020012, -0xa202003f, 0xe000351, 0x8f840034, 0xa000eeb, -0x8fbf0020, 0x24050036, 0xe00061c, 0x3021, -0xa000eeb, 0x8fbf0020, 0xe000348, 0x8f840034, -0x92020005, 0x34420020, 0xa2020005, 0xe000351, -0x8f840034, 0xe0010a2, 0x8f840034, 0x8fbf0020, -0x8fb1001c, 0x8fb00018, 0x24020c80, 0x27bd0028, -0x3e00008, 0xaf420024, 0x27bdffe8, 0xafb00010, -0xafbf0014, 0x27430100, 0x94620008, 0x21400, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 19:10:12 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 007C8106564A; Mon, 9 Jan 2012 19:10:12 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E22728FC0A; Mon, 9 Jan 2012 19:10:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09JABw5054089; Mon, 9 Jan 2012 19:10:11 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09JABV8054086; Mon, 9 Jan 2012 19:10:11 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201091910.q09JABV8054086@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 19:10:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229866 - stable/7/sys/dev/bce X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 19:10:12 -0000 Author: yongari Date: Mon Jan 9 19:10:11 2012 New Revision: 229866 URL: http://svn.freebsd.org/changeset/base/229866 Log: MFC r228476: Rework link state tracking and remove superfluous link UP/DOWN messages. o Add check for actually resolved speed in miibus_statchg callback instead of blindly reprogramming BCE_EMAC_MODE register. The callback may be called multiple times(e.g. link UP, link transition, auto-negotiate complete etc) while auto-negotiation is in progress. All unresolved link state changes are ignored now and setting BCE_EMAC_MODE after link establishment is done once. o bce(4) is careful enough not to drive MII_TICK if driver got a valid link. To detect lost link, bce(4) relied on link state change interrupt and if driver see the interrupt, it forced to drive MII_TICK by calling bce_tick() in interrupt handler. Because bce(4) generates multiple link state change interrupts while auto-negotiation is in progress, bce_tick() would be called multiple times and this resulted in generating multiple link UP/DOWN messages. With this change, bce_tick() is not called in interrupt handler anymore such that miibus_statchg callback handles link state changes with consistent manner. Modified: stable/7/sys/dev/bce/if_bce.c stable/7/sys/dev/bce/if_bcereg.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/bce/if_bce.c ============================================================================== --- stable/7/sys/dev/bce/if_bce.c Mon Jan 9 19:08:52 2012 (r229865) +++ stable/7/sys/dev/bce/if_bce.c Mon Jan 9 19:10:11 2012 (r229866) @@ -1986,6 +1986,7 @@ static void bce_miibus_statchg(device_t dev) { struct bce_softc *sc; + struct ifnet *ifp; struct mii_data *mii; int val; @@ -1993,42 +1994,57 @@ bce_miibus_statchg(device_t dev) DBENTER(BCE_VERBOSE_PHY); + ifp = sc->bce_ifp; mii = device_get_softc(sc->bce_miibus); + if (mii == NULL || ifp == NULL || + (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return; + sc->bce_link_up = FALSE; val = REG_RD(sc, BCE_EMAC_MODE); val &= ~(BCE_EMAC_MODE_PORT | BCE_EMAC_MODE_HALF_DUPLEX | BCE_EMAC_MODE_MAC_LOOP | BCE_EMAC_MODE_FORCE_LINK | BCE_EMAC_MODE_25G); /* Set MII or GMII interface based on the PHY speed. */ - switch (IFM_SUBTYPE(mii->mii_media_active)) { - case IFM_10_T: - if (BCE_CHIP_NUM(sc) != BCE_CHIP_NUM_5706) { - DBPRINT(sc, BCE_INFO_PHY, - "Enabling 10Mb interface.\n"); - val |= BCE_EMAC_MODE_PORT_MII_10; + if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == + (IFM_ACTIVE | IFM_AVALID)) { + switch (IFM_SUBTYPE(mii->mii_media_active)) { + case IFM_10_T: + if (BCE_CHIP_NUM(sc) != BCE_CHIP_NUM_5706) { + DBPRINT(sc, BCE_INFO_PHY, + "Enabling 10Mb interface.\n"); + val |= BCE_EMAC_MODE_PORT_MII_10; + sc->bce_link_up = TRUE; + break; + } + /* FALLTHROUGH */ + case IFM_100_TX: + DBPRINT(sc, BCE_INFO_PHY, "Enabling MII interface.\n"); + val |= BCE_EMAC_MODE_PORT_MII; + sc->bce_link_up = TRUE; + break; + case IFM_2500_SX: + DBPRINT(sc, BCE_INFO_PHY, "Enabling 2.5G MAC mode.\n"); + val |= BCE_EMAC_MODE_25G; + /* FALLTHROUGH */ + case IFM_1000_T: + case IFM_1000_SX: + DBPRINT(sc, BCE_INFO_PHY, "Enabling GMII interface.\n"); + val |= BCE_EMAC_MODE_PORT_GMII; + sc->bce_link_up = TRUE; + if (bce_verbose || bootverbose) + BCE_PRINTF("Gigabit link up!\n"); + break; + default: + DBPRINT(sc, BCE_INFO_PHY, "Unknown link speed.\n"); break; } - /* fall-through */ - case IFM_100_TX: - DBPRINT(sc, BCE_INFO_PHY, "Enabling MII interface.\n"); - val |= BCE_EMAC_MODE_PORT_MII; - break; - case IFM_2500_SX: - DBPRINT(sc, BCE_INFO_PHY, "Enabling 2.5G MAC mode.\n"); - val |= BCE_EMAC_MODE_25G; - /* fall-through */ - case IFM_1000_T: - case IFM_1000_SX: - DBPRINT(sc, BCE_INFO_PHY, "Enabling GMII interface.\n"); - val |= BCE_EMAC_MODE_PORT_GMII; - break; - default: - DBPRINT(sc, BCE_INFO_PHY, "Unknown link speed, enabling " - "default GMII interface.\n"); - val |= BCE_EMAC_MODE_PORT_GMII; } + if (sc->bce_link_up == FALSE) + return; + /* Set half or full duplex based on PHY settings. */ if ((mii->mii_media_active & IFM_GMASK) == IFM_HDX) { DBPRINT(sc, BCE_INFO_PHY, @@ -2040,7 +2056,7 @@ bce_miibus_statchg(device_t dev) REG_WR(sc, BCE_EMAC_MODE, val); - if ((mii->mii_media_active & IFM_ETH_RXPAUSE) != 0) { + if ((mii->mii_media_active & IFM_ETH_RXPAUSE) != 0) { DBPRINT(sc, BCE_INFO_PHY, "%s(): Enabling RX flow control.\n", __FUNCTION__); BCE_SETBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN); @@ -2050,7 +2066,7 @@ bce_miibus_statchg(device_t dev) BCE_CLRBIT(sc, BCE_EMAC_RX_MODE, BCE_EMAC_RX_MODE_FLOW_EN); } - if ((mii->mii_media_active & IFM_ETH_TXPAUSE) != 0) { + if ((mii->mii_media_active & IFM_ETH_TXPAUSE) != 0) { DBPRINT(sc, BCE_INFO_PHY, "%s(): Enabling TX flow control.\n", __FUNCTION__); BCE_SETBIT(sc, BCE_EMAC_TX_MODE, BCE_EMAC_TX_MODE_FLOW_EN); @@ -6210,15 +6226,11 @@ bce_phy_intr(struct bce_softc *sc) DBPRINT(sc, BCE_INFO_PHY, "%s(): Link is now DOWN.\n", __FUNCTION__); } - /* - * Assume link is down and allow - * tick routine to update the state - * based on the actual media state. + * Link state changed, allow tick routine to update + * the state baased on actual media state. */ - sc->bce_link_up = FALSE; - callout_stop(&sc->bce_tick_callout); - bce_tick(sc); + sc->bce_link_tick = TRUE; } /* Acknowledge the link change interrupt. */ @@ -6902,12 +6914,13 @@ bce_init_locked(struct bce_softc *sc) /* Enable host interrupts. */ bce_enable_intr(sc, 1); - bce_ifmedia_upd_locked(ifp); - /* Let the OS know the driver is up and running. */ ifp->if_drv_flags |= IFF_DRV_RUNNING; ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + sc->bce_link_tick = TRUE; + bce_ifmedia_upd_locked(ifp); + callout_reset(&sc->bce_tick_callout, hz, bce_tick, sc); bce_init_locked_exit: @@ -8203,31 +8216,19 @@ bce_tick(void *xsc) bce_watchdog(sc); /* If link is up already up then we're done. */ - if (sc->bce_link_up == TRUE) + if (sc->bce_link_tick == FALSE && sc->bce_link_up == TRUE) goto bce_tick_exit; /* Link is down. Check what the PHY's doing. */ mii = device_get_softc(sc->bce_miibus); mii_tick(mii); - /* Check if the link has come up. */ - if ((mii->mii_media_status & IFM_ACTIVE) && - (IFM_SUBTYPE(mii->mii_media_active) != IFM_NONE)) { + sc->bce_link_tick = FALSE; + /* Now that link is up, handle any outstanding TX traffic. */ + if (sc->bce_link_up == TRUE && !IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { DBPRINT(sc, BCE_VERBOSE_MISC, - "%s(): Link up!\n", __FUNCTION__); - sc->bce_link_up = TRUE; - if ((IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T || - IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_SX || - IFM_SUBTYPE(mii->mii_media_active) == IFM_2500_SX) && - (bce_verbose || bootverbose)) - BCE_PRINTF("Gigabit link up!\n"); - - /* Now that link is up, handle any outstanding TX traffic. */ - if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { - DBPRINT(sc, BCE_VERBOSE_MISC, "%s(): Found " - "pending TX traffic.\n", __FUNCTION__); - bce_start_locked(ifp); - } + "%s(): Found pending TX traffic.\n", __FUNCTION__); + bce_start_locked(ifp); } bce_tick_exit: Modified: stable/7/sys/dev/bce/if_bcereg.h ============================================================================== --- stable/7/sys/dev/bce/if_bcereg.h Mon Jan 9 19:08:52 2012 (r229865) +++ stable/7/sys/dev/bce/if_bcereg.h Mon Jan 9 19:10:11 2012 (r229866) @@ -6557,6 +6557,7 @@ struct bce_softc u16 pg_prod; u16 pg_cons; + int bce_link_tick; int bce_link_up; struct callout bce_tick_callout; struct callout bce_pulse_callout; From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 19:23:29 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79D90106566B; Mon, 9 Jan 2012 19:23:29 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5ED458FC08; Mon, 9 Jan 2012 19:23:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09JNTOF054688; Mon, 9 Jan 2012 19:23:29 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09JNThS054685; Mon, 9 Jan 2012 19:23:29 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201091923.q09JNThS054685@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 19:23:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229869 - stable/7/sys/dev/bge X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 19:23:29 -0000 Author: yongari Date: Mon Jan 9 19:23:29 2012 New Revision: 229869 URL: http://svn.freebsd.org/changeset/base/229869 Log: MFC r228479-228480: r228479: BCM5720 performance tweak from Broadcom. o Allow multiple outstanding read requests from non-LSO read DMA engine. o Allow 4KB burst length reads for non-LSO frames. o Enable 512B burst length reads for buffer descriptors. r228480: Destroy DMA tag for jumbo RX buffer in device detach. Modified: stable/7/sys/dev/bge/if_bge.c stable/7/sys/dev/bge/if_bgereg.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/bge/if_bge.c ============================================================================== --- stable/7/sys/dev/bge/if_bge.c Mon Jan 9 19:20:46 2012 (r229868) +++ stable/7/sys/dev/bge/if_bge.c Mon Jan 9 19:23:29 2012 (r229869) @@ -2084,9 +2084,15 @@ bge_blockinit(struct bge_softc *sc) val |= BGE_RDMAMODE_TSO6_ENABLE; } - if (sc->bge_asicrev == BGE_ASICREV_BCM5720) + if (sc->bge_asicrev == BGE_ASICREV_BCM5720) { val |= CSR_READ_4(sc, BGE_RDMA_MODE) & BGE_RDMAMODE_H2BNC_VLAN_DET; + /* + * Allow multiple outstanding read requests from + * non-LSO read DMA engine. + */ + val &= ~BGE_RDMAMODE_MULT_DMA_RD_DIS; + } if (sc->bge_asicrev == BGE_ASICREV_BCM5761 || sc->bge_asicrev == BGE_ASICREV_BCM5784 || @@ -2116,12 +2122,20 @@ bge_blockinit(struct bge_softc *sc) BGE_RDMA_RSRVCTRL_FIFO_OFLW_FIX); } - if (sc->bge_asicrev == BGE_ASICREV_BCM5719 || - sc->bge_asicrev == BGE_ASICREV_BCM5720) { + if (sc->bge_asicrev == BGE_ASICREV_BCM5719) { CSR_WRITE_4(sc, BGE_RDMA_LSO_CRPTEN_CTRL, CSR_READ_4(sc, BGE_RDMA_LSO_CRPTEN_CTRL) | BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_BD_4K | BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_LSO_4K); + } else if (sc->bge_asicrev == BGE_ASICREV_BCM5720) { + /* + * Allow 4KB burst length reads for non-LSO frames. + * Enable 512B burst length reads for buffer descriptors. + */ + CSR_WRITE_4(sc, BGE_RDMA_LSO_CRPTEN_CTRL, + CSR_READ_4(sc, BGE_RDMA_LSO_CRPTEN_CTRL) | + BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_BD_512 | + BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_LSO_4K); } CSR_WRITE_4(sc, BGE_RDMA_MODE, val); @@ -2348,6 +2362,8 @@ bge_dma_free(struct bge_softc *sc) if (sc->bge_cdata.bge_rx_mtag) bus_dma_tag_destroy(sc->bge_cdata.bge_rx_mtag); + if (sc->bge_cdata.bge_mtag_jumbo) + bus_dma_tag_destroy(sc->bge_cdata.bge_mtag_jumbo); if (sc->bge_cdata.bge_tx_mtag) bus_dma_tag_destroy(sc->bge_cdata.bge_tx_mtag); Modified: stable/7/sys/dev/bge/if_bgereg.h ============================================================================== --- stable/7/sys/dev/bge/if_bgereg.h Mon Jan 9 19:20:46 2012 (r229868) +++ stable/7/sys/dev/bge/if_bgereg.h Mon Jan 9 19:23:29 2012 (r229869) @@ -1573,6 +1573,7 @@ #define BGE_RDMA_RSRVCTRL_FIFO_HWM_MASK 0x000FF000 #define BGE_RDMA_RSRVCTRL_TXMRGN_MASK 0xFFE00000 +#define BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_BD_512 0x00020000 #define BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_BD_4K 0x00030000 #define BGE_RDMA_LSO_CRPTEN_CTRL_BLEN_LSO_4K 0x000C0000 From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 19:31:36 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47738106566B; Mon, 9 Jan 2012 19:31:36 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 35FD68FC1C; Mon, 9 Jan 2012 19:31:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09JVa81055067; Mon, 9 Jan 2012 19:31:36 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09JVaBs055065; Mon, 9 Jan 2012 19:31:36 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201091931.q09JVaBs055065@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 19:31:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229872 - stable/7/sys/dev/fxp X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 19:31:36 -0000 Author: yongari Date: Mon Jan 9 19:31:35 2012 New Revision: 229872 URL: http://svn.freebsd.org/changeset/base/229872 Log: MFC r228716: TCP header size is represented by number of 32bits words. Fix the TCP header size calculation such that makes TSO engine cache all header(ethernet/IP/TCP) bytes to its internal buffer. While here, remove extra pull up for TCP payload. Unlike some em(4) controllers, fxp(4) does not require such work around for TSO. The two limitations are ethernet/IP/TCP header size should be less than or equal to the size of controller's internal buffer(80 bytes) and these header information should be found in the first fragment of a TSO frame. Modified: stable/7/sys/dev/fxp/if_fxp.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Mon Jan 9 19:30:23 2012 (r229871) +++ stable/7/sys/dev/fxp/if_fxp.c Mon Jan 9 19:31:35 2012 (r229872) @@ -1455,7 +1455,7 @@ fxp_encap(struct fxp_softc *sc, struct m return (ENOBUFS); } tcp = (struct tcphdr *)(mtod(m, char *) + poff); - m = m_pullup(m, poff + sizeof(struct tcphdr) + tcp->th_off); + m = m_pullup(m, poff + (tcp->th_off << 2)); if (m == NULL) { *m_head = NULL; return (ENOBUFS); From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 19:59:53 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9585C106567D; Mon, 9 Jan 2012 19:59:53 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8414D8FC22; Mon, 9 Jan 2012 19:59:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09Jxr3v056111; Mon, 9 Jan 2012 19:59:53 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09Jxr8O056109; Mon, 9 Jan 2012 19:59:53 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201091959.q09Jxr8O056109@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 19:59:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229876 - stable/7/sys/dev/msk X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 19:59:53 -0000 Author: yongari Date: Mon Jan 9 19:59:53 2012 New Revision: 229876 URL: http://svn.freebsd.org/changeset/base/229876 Log: MFC r228717: Increase wait time for OP_TCPSTART command processing. It seems 100us is not enough to ensure prefetch unit work. Modified: stable/7/sys/dev/msk/if_msk.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/msk/if_msk.c ============================================================================== --- stable/7/sys/dev/msk/if_msk.c Mon Jan 9 19:58:41 2012 (r229875) +++ stable/7/sys/dev/msk/if_msk.c Mon Jan 9 19:59:53 2012 (r229876) @@ -656,8 +656,8 @@ msk_rx_fill(struct msk_if_softc *sc_if, if ((sc_if->msk_flags & MSK_FLAG_DESCV2) == 0 && (sc_if->msk_ifp->if_capenable & IFCAP_RXCSUM) != 0) { /* Wait until controller executes OP_TCPSTART command. */ - for (i = 10; i > 0; i--) { - DELAY(10); + for (i = 100; i > 0; i--) { + DELAY(100); idx = CSR_READ_2(sc_if->msk_softc, Y2_PREF_Q_ADDR(sc_if->msk_rxq, PREF_UNIT_GET_IDX_REG)); From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 20:08:57 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E09B1106566C; Mon, 9 Jan 2012 20:08:57 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B48988FC0C; Mon, 9 Jan 2012 20:08:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09K8vbC056587; Mon, 9 Jan 2012 20:08:57 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09K8vE3056584; Mon, 9 Jan 2012 20:08:57 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201092008.q09K8vE3056584@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 20:08:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229878 - in stable/7/sys: dev/msk sparc64/pci X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 20:08:58 -0000 Author: yongari Date: Mon Jan 9 20:08:57 2012 New Revision: 229878 URL: http://svn.freebsd.org/changeset/base/229878 Log: MFC r212378: Catch up to rename of the constant for the Master Data Parity Error bit in the PCI status register. Modified: stable/7/sys/dev/msk/if_msk.c stable/7/sys/sparc64/pci/schizo.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/msk/if_msk.c ============================================================================== --- stable/7/sys/dev/msk/if_msk.c Mon Jan 9 20:07:38 2012 (r229877) +++ stable/7/sys/dev/msk/if_msk.c Mon Jan 9 20:08:57 2012 (r229878) @@ -1392,7 +1392,7 @@ mskc_reset(struct msk_softc *sc) pci_write_config(sc->msk_dev, PCIR_STATUS, status | PCIM_STATUS_PERR | PCIM_STATUS_SERR | PCIM_STATUS_RMABORT | - PCIM_STATUS_RTABORT | PCIM_STATUS_PERRREPORT, 2); + PCIM_STATUS_RTABORT | PCIM_STATUS_MDPERR, 2); CSR_WRITE_2(sc, B0_CTST, CS_MRST_CLR); switch (sc->msk_bustype) { @@ -3518,7 +3518,7 @@ msk_intr_hwerr(struct msk_softc *sc) CSR_WRITE_1(sc, B2_TST_CTRL1, TST_CFG_WRITE_ON); pci_write_config(sc->msk_dev, PCIR_STATUS, v16 | PCIM_STATUS_PERR | PCIM_STATUS_SERR | PCIM_STATUS_RMABORT | - PCIM_STATUS_RTABORT | PCIM_STATUS_PERRREPORT, 2); + PCIM_STATUS_RTABORT | PCIM_STATUS_MDPERR, 2); CSR_WRITE_1(sc, B2_TST_CTRL1, TST_CFG_WRITE_OFF); } Modified: stable/7/sys/sparc64/pci/schizo.c ============================================================================== --- stable/7/sys/sparc64/pci/schizo.c Mon Jan 9 20:07:38 2012 (r229877) +++ stable/7/sys/sparc64/pci/schizo.c Mon Jan 9 20:08:57 2012 (r229878) @@ -882,7 +882,7 @@ schizo_pci_bus(void *arg) fatal = 1; if ((status & (PCIM_STATUS_PERR | PCIM_STATUS_SERR | PCIM_STATUS_RMABORT | PCIM_STATUS_RTABORT | - PCIM_STATUS_PERRREPORT)) != 0 || + PCIM_STATUS_MDPERR)) != 0 || (csr & (SCZ_PCI_CTRL_BUS_UNUS | TOM_PCI_CTRL_DTO_ERR | STX_PCI_CTRL_TTO_ERR | STX_PCI_CTRL_RTRY_ERR | SCZ_PCI_CTRL_SBH_ERR | STX_PCI_CTRL_SERR)) != 0 || From owner-svn-src-stable-7@FreeBSD.ORG Mon Jan 9 20:16:06 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AC1381065678; Mon, 9 Jan 2012 20:16:06 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9A8EB8FC17; Mon, 9 Jan 2012 20:16:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q09KG64o056976; Mon, 9 Jan 2012 20:16:06 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q09KG6fL056974; Mon, 9 Jan 2012 20:16:06 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201201092016.q09KG6fL056974@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 9 Jan 2012 20:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229880 - stable/7/sys/dev/msk X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jan 2012 20:16:06 -0000 Author: yongari Date: Mon Jan 9 20:16:06 2012 New Revision: 229880 URL: http://svn.freebsd.org/changeset/base/229880 Log: MFC r198999: Take a step towards removing if_watchdog/if_timer. Don't explicitly set if_watchdog/if_timer to NULL/0 when initializing an ifnet. if_alloc() sets those members to NULL/0 already. Modified: stable/7/sys/dev/msk/if_msk.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/msk/if_msk.c ============================================================================== --- stable/7/sys/dev/msk/if_msk.c Mon Jan 9 20:14:52 2012 (r229879) +++ stable/7/sys/dev/msk/if_msk.c Mon Jan 9 20:16:06 2012 (r229880) @@ -1661,8 +1661,6 @@ msk_attach(device_t dev) ifp->if_capenable = ifp->if_capabilities; ifp->if_ioctl = msk_ioctl; ifp->if_start = msk_start; - ifp->if_timer = 0; - ifp->if_watchdog = NULL; ifp->if_init = msk_init; IFQ_SET_MAXLEN(&ifp->if_snd, MSK_TX_RING_CNT - 1); ifp->if_snd.ifq_drv_maxlen = MSK_TX_RING_CNT - 1; From owner-svn-src-stable-7@FreeBSD.ORG Tue Jan 10 00:20:29 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4014C1065675; Tue, 10 Jan 2012 00:20:29 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2A7AF8FC1A; Tue, 10 Jan 2012 00:20:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0A0KThX069323; Tue, 10 Jan 2012 00:20:29 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0A0KTA8069321; Tue, 10 Jan 2012 00:20:29 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201100020.q0A0KTA8069321@svn.freebsd.org> From: Eitan Adler Date: Tue, 10 Jan 2012 00:20:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229891 - stable/7/sys/dev/puc X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2012 00:20:29 -0000 Author: eadler (ports committer) Date: Tue Jan 10 00:20:28 2012 New Revision: 229891 URL: http://svn.freebsd.org/changeset/base/229891 Log: MFC 226404: - add support for I-O DATA RSA-PCI2/R PR: kern/142999 Approved by: jhb Modified: stable/7/sys/dev/puc/pucdata.c Directory Properties: stable/7/sys/ (props changed) Modified: stable/7/sys/dev/puc/pucdata.c ============================================================================== --- stable/7/sys/dev/puc/pucdata.c Tue Jan 10 00:19:18 2012 (r229890) +++ stable/7/sys/dev/puc/pucdata.c Tue Jan 10 00:20:28 2012 (r229891) @@ -601,6 +601,12 @@ const struct puc_cfg puc_pci_devices[] = * As sold by Kouwell . * I/O Flex PCI I/O Card Model-223 with 4 serial and 1 parallel ports. */ + { + 0x1415, 0x9501, 0x10fc ,0xc070, + "I-O DATA RSA-PCI2/R", + DEFAULT_RCLK * 8, + PUC_PORT_2S, 0x10, 0, 8, + }, { 0x1415, 0x9501, 0x131f, 0x2050, "SIIG Cyber 4 PCI 16550", From owner-svn-src-stable-7@FreeBSD.ORG Tue Jan 10 00:27:37 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E518D106567C; Tue, 10 Jan 2012 00:27:37 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CFD8A8FC19; Tue, 10 Jan 2012 00:27:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0A0RbFW069987; Tue, 10 Jan 2012 00:27:37 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0A0RbeN069985; Tue, 10 Jan 2012 00:27:37 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201100027.q0A0RbeN069985@svn.freebsd.org> From: Eitan Adler Date: Tue, 10 Jan 2012 00:27:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229894 - stable/7/sys/dev/sio X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2012 00:27:38 -0000 Author: eadler (ports committer) Date: Tue Jan 10 00:27:37 2012 New Revision: 229894 URL: http://svn.freebsd.org/changeset/base/229894 Log: MFC r227532: - add support for Broadcom 802.11bg/EDGE/GPRS CardBus (Serial) - correct mislabeling of 0x432214e4 device PR: kern/119606 Approved by: jhb Modified: stable/7/sys/dev/sio/sio_pci.c Directory Properties: stable/7/sys/ (props changed) Modified: stable/7/sys/dev/sio/sio_pci.c ============================================================================== --- stable/7/sys/dev/sio/sio_pci.c Tue Jan 10 00:27:16 2012 (r229893) +++ stable/7/sys/dev/sio/sio_pci.c Tue Jan 10 00:27:37 2012 (r229894) @@ -77,7 +77,8 @@ static struct pci_ids pci_ids[] = { { 0x7101135e, "SeaLevel Ultra 530.PCI Single Port Serial", 0x18 }, { 0x0000151f, "SmartLink 5634PCV SurfRider", 0x10 }, { 0x0103115d, "Xircom Cardbus modem", 0x10 }, - { 0x432214e4, "Broadcom 802.11g/GPRS CardBus (Serial)", 0x10 }, + { 0x432214e4, "Broadcom 802.11b/GPRS CardBus (Serial)", 0x10 }, + { 0x434414e4, "Broadcom 802.11bg/EDGE/GPRS CardBus (Serial)", 0x10 }, { 0x01c0135c, "Quatech SSCLP-200/300", 0x18 /* * NB: You must mount the "SPAD" jumper to correctly detect From owner-svn-src-stable-7@FreeBSD.ORG Tue Jan 10 00:35:25 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A34881065675; Tue, 10 Jan 2012 00:35:25 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8E6FC8FC20; Tue, 10 Jan 2012 00:35:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0A0ZPxT070699; Tue, 10 Jan 2012 00:35:25 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0A0ZPmd070697; Tue, 10 Jan 2012 00:35:25 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201100035.q0A0ZPmd070697@svn.freebsd.org> From: Eitan Adler Date: Tue, 10 Jan 2012 00:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229897 - stable/7/sys/dev/puc X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2012 00:35:25 -0000 Author: eadler (ports committer) Date: Tue Jan 10 00:35:25 2012 New Revision: 229897 URL: http://svn.freebsd.org/changeset/base/229897 Log: MFC r227535: - add support for Titan VScom PCIex-800H PR: kern/124128 Approved by: jhb Modified: stable/7/sys/dev/puc/pucdata.c Directory Properties: stable/7/sys/ (props changed) Modified: stable/7/sys/dev/puc/pucdata.c ============================================================================== --- stable/7/sys/dev/puc/pucdata.c Tue Jan 10 00:35:01 2012 (r229896) +++ stable/7/sys/dev/puc/pucdata.c Tue Jan 10 00:35:25 2012 (r229897) @@ -724,6 +724,18 @@ const struct puc_cfg puc_pci_devices[] = PUC_PORT_2S, 0x10, 4, 0, }, + { 0x14d2, 0xa007, 0xffff, 0, + "Titan VScom PCIex-800H", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, 8, + }, + + { 0x14d2, 0xa008, 0xffff, 0, + "Titan VScom PCIex-800H", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, 8, + }, + { 0x14db, 0x2130, 0xffff, 0, "Avlab Technology, PCI IO 2S", DEFAULT_RCLK, From owner-svn-src-stable-7@FreeBSD.ORG Tue Jan 10 01:02:41 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 213261065782; Tue, 10 Jan 2012 01:02:41 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0BDC68FC21; Tue, 10 Jan 2012 01:02:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0A12eBV072791; Tue, 10 Jan 2012 01:02:40 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0A12eXp072788; Tue, 10 Jan 2012 01:02:40 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201100102.q0A12eXp072788@svn.freebsd.org> From: Eitan Adler Date: Tue, 10 Jan 2012 01:02:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229901 - stable/7/usr.sbin/fwcontrol X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2012 01:02:41 -0000 Author: eadler (ports committer) Date: Tue Jan 10 01:02:40 2012 New Revision: 229901 URL: http://svn.freebsd.org/changeset/base/229901 Log: - Remove extraneous null ptr deref checks - Fix memory leak Approved by: jhb Modified: stable/7/usr.sbin/fwcontrol/fwcontrol.c Directory Properties: stable/7/usr.sbin/fwcontrol/ (props changed) Modified: stable/7/usr.sbin/fwcontrol/fwcontrol.c ============================================================================== --- stable/7/usr.sbin/fwcontrol/fwcontrol.c Tue Jan 10 01:02:19 2012 (r229900) +++ stable/7/usr.sbin/fwcontrol/fwcontrol.c Tue Jan 10 01:02:40 2012 (r229901) @@ -152,8 +152,7 @@ str2node(int fd, const char *nodestr) fweui2eui64(&data->dev[i].eui, &tmpeui); if (memcmp(&eui, &tmpeui, sizeof(struct eui64)) == 0) { node = data->dev[i].dst; - if (data != NULL) - free(data); + free(data); goto gotnode; } } From owner-svn-src-stable-7@FreeBSD.ORG Wed Jan 11 13:59:49 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B85561065670; Wed, 11 Jan 2012 13:59:49 +0000 (UTC) (envelope-from nyan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A605F8FC14; Wed, 11 Jan 2012 13:59:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0BDxnUq062305; Wed, 11 Jan 2012 13:59:49 GMT (envelope-from nyan@svn.freebsd.org) Received: (from nyan@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0BDxnJD062303; Wed, 11 Jan 2012 13:59:49 GMT (envelope-from nyan@svn.freebsd.org) Message-Id: <201201111359.q0BDxnJD062303@svn.freebsd.org> From: Takahashi Yoshihiro Date: Wed, 11 Jan 2012 13:59:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229960 - stable/7/sys/boot/pc98/boot2 X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jan 2012 13:59:49 -0000 Author: nyan Date: Wed Jan 11 13:59:49 2012 New Revision: 229960 URL: http://svn.freebsd.org/changeset/base/229960 Log: MFC: revision 229462 Fix 230MB MO support. Submitted by: Kaho Toshikazu Modified: stable/7/sys/boot/pc98/boot2/boot1.S Directory Properties: stable/7/sys/ (props changed) Modified: stable/7/sys/boot/pc98/boot2/boot1.S ============================================================================== --- stable/7/sys/boot/pc98/boot2/boot1.S Wed Jan 11 13:57:48 2012 (r229959) +++ stable/7/sys/boot/pc98/boot2/boot1.S Wed Jan 11 13:59:49 2012 (r229960) @@ -219,7 +219,7 @@ read: xor %ax,%ax jc read_load and $0xff7f,%si /* SCSI MO */ mov %di,%cx - shr $16,%di + shr $16,%edi mov %di,%dx jmp read_load read_fd: or $0xd000,%si From owner-svn-src-stable-7@FreeBSD.ORG Wed Jan 11 17:21:23 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1ED741065676; Wed, 11 Jan 2012 17:21:23 +0000 (UTC) (envelope-from pluknet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0CBB88FC1B; Wed, 11 Jan 2012 17:21:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0BHLMB6069067; Wed, 11 Jan 2012 17:21:22 GMT (envelope-from pluknet@svn.freebsd.org) Received: (from pluknet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0BHLMXT069065; Wed, 11 Jan 2012 17:21:22 GMT (envelope-from pluknet@svn.freebsd.org) Message-Id: <201201111721.q0BHLMXT069065@svn.freebsd.org> From: Sergey Kandaurov Date: Wed, 11 Jan 2012 17:21:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229969 - stable/7/etc/defaults X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jan 2012 17:21:23 -0000 Author: pluknet Date: Wed Jan 11 17:21:22 2012 New Revision: 229969 URL: http://svn.freebsd.org/changeset/base/229969 Log: MFC r211801: fix typo. Spotted by: Ildar Hizbulin (stable/7) Modified: stable/7/etc/defaults/rc.conf Directory Properties: stable/7/etc/ (props changed) Modified: stable/7/etc/defaults/rc.conf ============================================================================== --- stable/7/etc/defaults/rc.conf Wed Jan 11 17:10:27 2012 (r229968) +++ stable/7/etc/defaults/rc.conf Wed Jan 11 17:21:22 2012 (r229969) @@ -196,7 +196,7 @@ ifconfig_lo0="inet 127.0.0.1" # default #ifconfig_ed0_ipx="ipx 0x00010010" # Sample IPX address family entry. #ifconfig_fxp0_name="net0" # Change interface name from fxp0 to net0. #vlans_fxp0="101 vlan0" # vlan(4) interfaces for fxp0 device -#create_arg_vlan0="vlan 102" # vlan tag for vlan0 device +#create_args_vlan0="vlan 102" # vlan tag for vlan0 device #ipv4_addrs_fxp0="192.168.0.1/24 192.168.1.1-5/28" # example IPv4 address entry. # #autobridge_interfaces="bridge0" # List of bridges to check From owner-svn-src-stable-7@FreeBSD.ORG Wed Jan 11 23:11:48 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61D2D106566B; Wed, 11 Jan 2012 23:11:48 +0000 (UTC) (envelope-from wblock@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FB7F8FC08; Wed, 11 Jan 2012 23:11:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0BNBmMa081086; Wed, 11 Jan 2012 23:11:48 GMT (envelope-from wblock@svn.freebsd.org) Received: (from wblock@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0BNBm5u081084; Wed, 11 Jan 2012 23:11:48 GMT (envelope-from wblock@svn.freebsd.org) Message-Id: <201201112311.q0BNBm5u081084@svn.freebsd.org> From: Warren Block Date: Wed, 11 Jan 2012 23:11:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229991 - stable/7/usr.sbin/cron/crontab X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jan 2012 23:11:48 -0000 Author: wblock (doc committer) Date: Wed Jan 11 23:11:48 2012 New Revision: 229991 URL: http://svn.freebsd.org/changeset/base/229991 Log: MFC r227981: Point out that @reboot runs at every cron startup, not just system startup. Approved by: gjb (mentor) Modified: stable/7/usr.sbin/cron/crontab/crontab.5 Directory Properties: stable/7/usr.sbin/cron/ (props changed) Modified: stable/7/usr.sbin/cron/crontab/crontab.5 ============================================================================== --- stable/7/usr.sbin/cron/crontab/crontab.5 Wed Jan 11 23:11:27 2012 (r229990) +++ stable/7/usr.sbin/cron/crontab/crontab.5 Wed Jan 11 23:11:48 2012 (r229991) @@ -224,7 +224,7 @@ one of eight special strings may appear: .Bd -literal -offset indent string meaning ------ ------- -@reboot Run once, at startup. +@reboot Run once, at startup of cron. @yearly Run once a year, "0 0 1 1 *". @annually (same as @yearly) @monthly Run once a month, "0 0 1 * *". From owner-svn-src-stable-7@FreeBSD.ORG Thu Jan 12 00:05:36 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50CF41065670; Thu, 12 Jan 2012 00:05:36 +0000 (UTC) (envelope-from eadler@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3D6FF8FC0C; Thu, 12 Jan 2012 00:05:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0C05a9I083076; Thu, 12 Jan 2012 00:05:36 GMT (envelope-from eadler@svn.freebsd.org) Received: (from eadler@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0C05ae2083074; Thu, 12 Jan 2012 00:05:36 GMT (envelope-from eadler@svn.freebsd.org) Message-Id: <201201120005.q0C05ae2083074@svn.freebsd.org> From: Eitan Adler Date: Thu, 12 Jan 2012 00:05:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r229996 - in stable/7/sys: dev/fb modules/splash modules/splash/txt X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2012 00:05:36 -0000 Author: eadler (ports committer) Date: Thu Jan 12 00:05:35 2012 New Revision: 229996 URL: http://svn.freebsd.org/changeset/base/229996 Log: MFC r228445: - Add support for ASCII art splash screens in TheDraw format PR: kern/143370 Approved by: ed Added: stable/7/sys/dev/fb/splash_txt.c - copied unchanged from r228445, head/sys/dev/fb/splash_txt.c stable/7/sys/modules/splash/txt/ - copied from r228445, head/sys/modules/splash/txt/ Modified: stable/7/sys/modules/splash/Makefile Directory Properties: stable/7/share/man/ (props changed) stable/7/share/man/man4/ (props changed) stable/7/sys/ (props changed) Copied: stable/7/sys/dev/fb/splash_txt.c (from r228445, head/sys/dev/fb/splash_txt.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/sys/dev/fb/splash_txt.c Thu Jan 12 00:05:35 2012 (r229996, copy of r228445, head/sys/dev/fb/splash_txt.c) @@ -0,0 +1,135 @@ +/*- + * Copyright (c) 1999 Michael Smith + * Copyright (c) 1999 Kazutaka YOKOTA + * Copyright (c) 2005 Antony Mawer + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS 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 THE AUTHORS OR 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$ + */ + +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +static int splash_on = FALSE; + +static int txt_init(video_adapter_t *adp); +static int txt_end(video_adapter_t *adp); +static int txt_splash(video_adapter_t * adp, const int on); + +/* These are rows by columns of the text-mode display device. */ +#define BIN_IMAGE_WIDTH 80 +#define BIN_IMAGE_HEIGHT 25 + +static splash_decoder_t txt_decoder = { + .name = "splash_txt", + .init = txt_init, + .term = txt_end, + .splash = txt_splash, + .data_type = SPLASH_IMAGE, +}; + +SPLASH_DECODER(splash_txt, txt_decoder); + +static void +draw_text_splash(sc_softc_t *sc) +{ + u_int x, y; + u_char ch, attr; + u_char *pdata = txt_decoder.data; + + /* Init failed. */ + if (txt_decoder.data == NULL) + return; + for (y = 0; y < BIN_IMAGE_HEIGHT; y++) { + for (x = 0; x < BIN_IMAGE_WIDTH; x++) { + ch = *pdata++; + attr = *pdata++; + sc_vtb_putc(&sc->cur_scp->scr, + (y * sc->cur_scp->xsize) + x, + sc->scr_map[ch], (int)attr << 8); + } + } +} + +static int +txt_init(video_adapter_t *adp) +{ + + /* Ensure that the image data exists. */ + if (txt_decoder.data == NULL || txt_decoder.data_size <= 0) { + printf("splash_txt: No ASCII bitmap file found\n"); + return (ENODEV); + } + return (0); +} + +static int +txt_end(video_adapter_t *adp) +{ + + return (0); +} + +static int +txt_splash(video_adapter_t *adp, const int on) +{ + sc_softc_t *sc; + scr_stat *scp; + + sc = sc_find_softc(adp, NULL); + if (sc == NULL) + return (EAGAIN); + scp = sc->cur_scp; + if (on) { + if (!splash_on) { + if (adp->va_info.vi_flags & V_INFO_GRAPHICS) + return EAGAIN; + /* Clear screen and set border colour. */ + sc_vtb_clear(&scp->scr, sc->scr_map[0x20], + (FG_LIGHTGREY | BG_BLACK) << 8); + (*vidsw[adp->va_index]->set_hw_cursor)(adp, -1, -1); + sc_set_border(scp, 0); + splash_on = TRUE; + /* Display the splash screen. */ + draw_text_splash(sc); + } + return (0); + } else { + /* The video mode will be restored by the caller. */ + splash_on = FALSE; + return (0); + } +} + + Modified: stable/7/sys/modules/splash/Makefile ============================================================================== --- stable/7/sys/modules/splash/Makefile Thu Jan 12 00:03:50 2012 (r229995) +++ stable/7/sys/modules/splash/Makefile Thu Jan 12 00:05:35 2012 (r229996) @@ -1,5 +1,5 @@ # $FreeBSD$ -SUBDIR= bmp pcx +SUBDIR= bmp pcx txt .include From owner-svn-src-stable-7@FreeBSD.ORG Thu Jan 12 20:51:01 2012 Return-Path: Delivered-To: svn-src-stable-7@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3592106566C; Thu, 12 Jan 2012 20:51:01 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D15CA8FC12; Thu, 12 Jan 2012 20:51:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q0CKp1Pw025962; Thu, 12 Jan 2012 20:51:01 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q0CKp1Ei025960; Thu, 12 Jan 2012 20:51:01 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201201122051.q0CKp1Ei025960@svn.freebsd.org> From: Christian Brueffer Date: Thu, 12 Jan 2012 20:51:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r230030 - stable/7/share/man/man4 X-BeenThere: svn-src-stable-7@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for only the 7-stable src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2012 20:51:02 -0000 Author: brueffer Date: Thu Jan 12 20:51:01 2012 New Revision: 230030 URL: http://svn.freebsd.org/changeset/base/230030 Log: MFC: r229585 Fix typo. Modified: stable/7/share/man/man4/bce.4 Directory Properties: stable/7/share/man/man4/ (props changed) Modified: stable/7/share/man/man4/bce.4 ============================================================================== --- stable/7/share/man/man4/bce.4 Thu Jan 12 20:45:56 2012 (r230029) +++ stable/7/share/man/man4/bce.4 Thu Jan 12 20:51:01 2012 (r230030) @@ -251,7 +251,7 @@ status block. .It "bce%d: Could not allocate status block DMA memory!" The driver could not allocate DMA addressable memory for the controller's status block. -.It "bce_d: Could not map status block DMA memory!" +.It "bce%d: Could not map status block DMA memory!" The driver could not map the status block memory into the controller's DMA address space. .It "bce%d: Could not allocate statistics block DMA tag!"