mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-23 03:06:48 +00:00
FCP-101: Remove sn(4).
Relnotes: yes FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md Reviewed by: jhb, imp Differential Revision: https://reviews.freebsd.org/D20230
This commit is contained in:
parent
3b70dd81f5
commit
90089841de
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=347917
|
@ -52,6 +52,8 @@ OLD_FILES+=usr/share/man/man4/pcn.4
|
|||
OLD_FILES+=usr/share/man/man4/if_pcn.4
|
||||
OLD_FILES+=usr/share/man/man4/sf.4
|
||||
OLD_FILES+=usr/share/man/man4/if_sf.4
|
||||
OLD_FILES+=usr/share/man/man4/sn.4
|
||||
OLD_FILES+=usr/share/man/man4/if_sn.4
|
||||
# 20190513: libcap_sysctl interface change
|
||||
OLD_FILES+=lib/casper/libcap_sysctl.1
|
||||
# 20190509: tests/sys/opencrypto requires the net/py-dpkt package.
|
||||
|
|
|
@ -465,7 +465,6 @@ MAN= aac.4 \
|
|||
smbus.4 \
|
||||
smp.4 \
|
||||
smsc.4 \
|
||||
sn.4 \
|
||||
snd_ad1816.4 \
|
||||
snd_als4000.4 \
|
||||
snd_atiixp.4 \
|
||||
|
@ -705,7 +704,6 @@ MLINKS+=sis.4 if_sis.4
|
|||
MLINKS+=sk.4 if_sk.4
|
||||
MLINKS+=smp.4 SMP.4
|
||||
MLINKS+=smsc.4 if_smsc.4
|
||||
MLINKS+=sn.4 if_sn.4
|
||||
MLINKS+=snd_envy24.4 snd_ak452x.4
|
||||
MLINKS+=snd_sbc.4 snd_sb16.4 \
|
||||
snd_sbc.4 snd_sb8.4
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
.\"
|
||||
.\" Copyright (c) 2000 M. Warner Losh
|
||||
.\"
|
||||
.\" 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 AUTHOR ``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 AUTHOR 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$
|
||||
.\"
|
||||
.Dd October 24, 2018
|
||||
.Dt SN 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm sn
|
||||
.Nd "Ethernet driver for SMC91Cxx based cards"
|
||||
.Sh SYNOPSIS
|
||||
To compile this driver into the kernel,
|
||||
place the following lines in your
|
||||
kernel configuration file:
|
||||
.Bd -ragged -offset indent
|
||||
.Cd "device sn"
|
||||
.Ed
|
||||
.Pp
|
||||
Alternatively, to load the driver as a
|
||||
module at boot time, place the following line in
|
||||
.Xr loader.conf 5 :
|
||||
.Bd -literal -offset indent
|
||||
if_sn_load="YES"
|
||||
.Ed
|
||||
.Sh DEPRECATION NOTICE
|
||||
The
|
||||
.Nm
|
||||
driver is not present in
|
||||
.Fx 13.0
|
||||
and later.
|
||||
See https://github.com/freebsd/fcp/blob/master/fcp-0101.md for more
|
||||
information.
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
device driver supports SMC91Cxx based ISA and PCMCIA cards.
|
||||
.Sh HARDWARE
|
||||
The
|
||||
.Nm
|
||||
driver supports SMC91Cxx based ISA and PCMCIA cards including:
|
||||
.Pp
|
||||
.Bl -bullet -compact
|
||||
.It
|
||||
3Com Megahertz X-Jack Ethernet PC Card XJ10BT, XJ10BC
|
||||
.It
|
||||
3Com Megahertz XJEM and CCEM series: CCEM3288C, CCEM3288T, CCEM3336,
|
||||
CEM3336C, CCEM3336T, XJEM1144C, XJEM1144T, XJEM3288C, XJEM3288T, XJEM3336
|
||||
.It
|
||||
Farallon EtherMac PC Card 595a
|
||||
.It
|
||||
Motorola Mariner Ethernet/Modem PC Card
|
||||
.It
|
||||
Ositech Seven of Diamonds Ethernet PC Card
|
||||
.It
|
||||
Ositech Jack of Hearts Ethernet/Modem PC Card
|
||||
.It
|
||||
Psion Gold Card Netglobal Ethernet PC Card
|
||||
.It
|
||||
Psion Gold Card Netglobal 10/100 Fast Ethernet PC Card
|
||||
.It
|
||||
Psion Gold Card Netglobal 56k+10Mb Ethernet PC Card
|
||||
.It
|
||||
SMC EZEther PC Card (8020BT)
|
||||
.It
|
||||
SMC EZEther PC Card (8020T)
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
driver supports the SMC 91C90, SMC 91C92, SMC 91C94, SMC 91C95, SMC 91C96,
|
||||
SMC91C100 and SMC 91C100FD chips from SMC.
|
||||
.Pp
|
||||
The Farallon EtherWave and EtherMac card came in two varieties.
|
||||
The
|
||||
.Xr ep 4
|
||||
driver supports the 595 and 895 cards.
|
||||
These cards have the blue arrow on the front along with a 3Com logo.
|
||||
The Farallon 595a cards, which have a red arrow on the front,
|
||||
are also called EtherWave and EtherMac.
|
||||
They are supported by the
|
||||
.Nm
|
||||
driver.
|
||||
.Sh SEE ALSO
|
||||
.Xr ed 4 ,
|
||||
.Xr ep 4 ,
|
||||
.Xr intro 4 ,
|
||||
.Xr ng_ether 4 ,
|
||||
.Xr vx 4 ,
|
||||
.Xr ifconfig 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
device driver appeared in
|
||||
.Fx 4.0 .
|
|
@ -1986,8 +1986,6 @@ device xmphy # XaQti XMAC II
|
|||
# (also single mode and multimode).
|
||||
# The driver will autodetect the number of ports on the card and
|
||||
# attach each one as a separate network interface.
|
||||
# sn: Support for ISA and PC Card Ethernet devices using the
|
||||
# SMC91C90/92/94/95 chips.
|
||||
# ste: Sundance Technologies ST201 PCI fast ethernet controller, includes
|
||||
# the D-Link DFE-550TX.
|
||||
# stge: Support for gigabit ethernet adapters based on the Sundance/Tamarack
|
||||
|
@ -2028,10 +2026,6 @@ device xmphy # XaQti XMAC II
|
|||
|
||||
# Order for ISA devices is important here
|
||||
|
||||
device sn
|
||||
hint.sn.0.at="isa"
|
||||
hint.sn.0.port="0x300"
|
||||
hint.sn.0.irq="10"
|
||||
device an
|
||||
device wi
|
||||
device xe
|
||||
|
|
|
@ -3019,9 +3019,6 @@ dev/smbus/smbus.c optional smbus
|
|||
dev/smbus/smbus_if.m optional smbus
|
||||
dev/smc/if_smc.c optional smc
|
||||
dev/smc/if_smc_fdt.c optional smc fdt
|
||||
dev/sn/if_sn.c optional sn
|
||||
dev/sn/if_sn_isa.c optional sn isa
|
||||
dev/sn/if_sn_pccard.c optional sn pccard
|
||||
dev/snp/snp.c optional snp
|
||||
dev/sound/clone.c optional sound
|
||||
dev/sound/unit.c optional sound
|
||||
|
|
1441
sys/dev/sn/if_sn.c
1441
sys/dev/sn/if_sn.c
File diff suppressed because it is too large
Load diff
|
@ -1,101 +0,0 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 1999 M. Warner Losh
|
||||
* 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 AUTHOR ``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 AUTHOR 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <sys/module.h>
|
||||
#include <sys/bus.h>
|
||||
|
||||
#include <machine/bus.h>
|
||||
#include <machine/resource.h>
|
||||
|
||||
#include <net/ethernet.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_arp.h>
|
||||
|
||||
#include <isa/isavar.h>
|
||||
|
||||
#include <dev/sn/if_snvar.h>
|
||||
|
||||
static int sn_isa_probe(device_t);
|
||||
static int sn_isa_attach(device_t);
|
||||
|
||||
static int
|
||||
sn_isa_probe (device_t dev)
|
||||
{
|
||||
if (isa_get_logicalid(dev)) /* skip PnP probes */
|
||||
return (ENXIO);
|
||||
if (sn_probe(dev) != 0)
|
||||
return (ENXIO);
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
sn_isa_attach (device_t dev)
|
||||
{
|
||||
struct sn_softc *sc = device_get_softc(dev);
|
||||
int err;
|
||||
|
||||
sc->dev = dev;
|
||||
err = sn_activate(dev);
|
||||
if (err) {
|
||||
sn_deactivate(dev);
|
||||
return (err);
|
||||
}
|
||||
err = sn_attach(dev);
|
||||
if (err)
|
||||
sn_deactivate(dev);
|
||||
return (err);
|
||||
}
|
||||
|
||||
static device_method_t sn_isa_methods[] = {
|
||||
/* Device interface */
|
||||
DEVMETHOD(device_probe, sn_isa_probe),
|
||||
DEVMETHOD(device_attach, sn_isa_attach),
|
||||
DEVMETHOD(device_detach, sn_detach),
|
||||
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static driver_t sn_isa_driver = {
|
||||
"sn",
|
||||
sn_isa_methods,
|
||||
sizeof(struct sn_softc),
|
||||
};
|
||||
|
||||
extern devclass_t sn_devclass;
|
||||
|
||||
DRIVER_MODULE(sn, isa, sn_isa_driver, sn_devclass, 0, 0);
|
||||
MODULE_DEPEND(sn, isa, 1, 1, 1);
|
||||
MODULE_DEPEND(sn, ether, 1, 1, 1);
|
|
@ -1,332 +0,0 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 1999 M. Warner Losh <imp@village.org>
|
||||
* 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 AUTHOR ``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 AUTHOR 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.
|
||||
*/
|
||||
/*
|
||||
* Modifications for Megahertz X-Jack Ethernet Card (XJ-10BT)
|
||||
*
|
||||
* Copyright (c) 1996 by Tatsumi Hosokawa <hosokawa@jp.FreeBSD.org>
|
||||
* BSD-nomads, Tokyo, Japan.
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/bus.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/systm.h>
|
||||
|
||||
#include <net/ethernet.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_arp.h>
|
||||
|
||||
#include <machine/bus.h>
|
||||
#include <machine/resource.h>
|
||||
#include <sys/rman.h>
|
||||
|
||||
#include <dev/pccard/pccardvar.h>
|
||||
#include <dev/pccard/pccard_cis.h>
|
||||
#include <dev/sn/if_snreg.h>
|
||||
#include <dev/sn/if_snvar.h>
|
||||
|
||||
#include "card_if.h"
|
||||
#include "pccarddevs.h"
|
||||
|
||||
typedef int sn_get_enaddr_t(device_t dev, u_char *eaddr);
|
||||
typedef int sn_activate_t(device_t dev);
|
||||
|
||||
struct sn_sw
|
||||
{
|
||||
int type;
|
||||
#define SN_NORMAL 1
|
||||
#define SN_MEGAHERTZ 2
|
||||
#define SN_OSITECH 3
|
||||
#define SN_OSI_SOD 4
|
||||
#define SN_MOTO_MARINER 5
|
||||
char *typestr;
|
||||
sn_get_enaddr_t *get_mac;
|
||||
sn_activate_t *activate;
|
||||
};
|
||||
|
||||
static sn_get_enaddr_t sn_pccard_normal_get_mac;
|
||||
static sn_activate_t sn_pccard_normal_activate;
|
||||
const static struct sn_sw sn_normal_sw = {
|
||||
SN_NORMAL, "plain",
|
||||
sn_pccard_normal_get_mac,
|
||||
sn_pccard_normal_activate
|
||||
};
|
||||
|
||||
static sn_get_enaddr_t sn_pccard_megahertz_get_mac;
|
||||
static sn_activate_t sn_pccard_megahertz_activate;
|
||||
const static struct sn_sw sn_mhz_sw = {
|
||||
SN_MEGAHERTZ, "Megahertz",
|
||||
sn_pccard_megahertz_get_mac,
|
||||
sn_pccard_megahertz_activate
|
||||
};
|
||||
|
||||
static const struct sn_product {
|
||||
struct pccard_product prod;
|
||||
const struct sn_sw *sw;
|
||||
} sn_pccard_products[] = {
|
||||
{ PCMCIA_CARD(DSPSI, XJEM1144), &sn_mhz_sw },
|
||||
{ PCMCIA_CARD(DSPSI, XJACK), &sn_normal_sw },
|
||||
/* { PCMCIA_CARD(MOTOROLA, MARINER), SN_MOTO_MARINER }, */
|
||||
{ PCMCIA_CARD(NEWMEDIA, BASICS), &sn_normal_sw },
|
||||
{ PCMCIA_CARD(MEGAHERTZ, VARIOUS), &sn_mhz_sw},
|
||||
{ PCMCIA_CARD(MEGAHERTZ, XJEM3336), &sn_mhz_sw},
|
||||
/* { PCMCIA_CARD(OSITECH, TRUMP_SOD), SN_OSI_SOD }, */
|
||||
/* { PCMCIA_CARD(OSITECH, TRUMP_JOH), SN_OSITECH }, */
|
||||
/* { PCMCIA_CARD(PSION, GOLDCARD), SN_OSITECH }, */
|
||||
/* { PCMCIA_CARD(PSION, NETGLOBAL), SNI_OSI_SOD }, */
|
||||
/* { PCMCIA_CARD(PSION, NETGLOBAL2), SN_OSITECH }, */
|
||||
{ PCMCIA_CARD(SMC, 8020BT), &sn_normal_sw },
|
||||
{ PCMCIA_CARD(SMC, SMC91C96), &sn_normal_sw },
|
||||
{ { NULL } }
|
||||
|
||||
};
|
||||
|
||||
static const struct sn_product *
|
||||
sn_pccard_lookup(device_t dev)
|
||||
{
|
||||
|
||||
return ((const struct sn_product *)
|
||||
pccard_product_lookup(dev,
|
||||
(const struct pccard_product *)sn_pccard_products,
|
||||
sizeof(sn_pccard_products[0]), NULL));
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_probe(device_t dev)
|
||||
{
|
||||
const struct sn_product *pp;
|
||||
|
||||
if ((pp = sn_pccard_lookup(dev)) != NULL) {
|
||||
if (pp->prod.pp_name != NULL)
|
||||
device_set_desc(dev, pp->prod.pp_name);
|
||||
return 0;
|
||||
}
|
||||
return EIO;
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_ascii_enaddr(const char *str, u_char *enet)
|
||||
{
|
||||
uint8_t digit;
|
||||
int i;
|
||||
|
||||
memset(enet, 0, ETHER_ADDR_LEN);
|
||||
for (i = 0, digit = 0; i < (ETHER_ADDR_LEN * 2); i++) {
|
||||
if (str[i] >= '0' && str[i] <= '9')
|
||||
digit |= str[i] - '0';
|
||||
else if (str[i] >= 'a' && str[i] <= 'f')
|
||||
digit |= (str[i] - 'a') + 10;
|
||||
else if (str[i] >= 'A' && str[i] <= 'F')
|
||||
digit |= (str[i] - 'A') + 10;
|
||||
else
|
||||
return (0); /* Bogus digit!! */
|
||||
|
||||
/* Compensate for ordering of digits. */
|
||||
if (i & 1) {
|
||||
enet[i >> 1] = digit;
|
||||
digit = 0;
|
||||
} else
|
||||
digit <<= 4;
|
||||
}
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_normal_get_mac(device_t dev, u_char *eaddr)
|
||||
{
|
||||
int i, sum;
|
||||
const char *cisstr;
|
||||
|
||||
pccard_get_ether(dev, eaddr);
|
||||
for (i = 0, sum = 0; i < ETHER_ADDR_LEN; i++)
|
||||
sum |= eaddr[i];
|
||||
if (sum == 0) {
|
||||
pccard_get_cis3_str(dev, &cisstr);
|
||||
if (cisstr && strlen(cisstr) == ETHER_ADDR_LEN * 2)
|
||||
sum = sn_pccard_ascii_enaddr(cisstr, eaddr);
|
||||
}
|
||||
if (sum == 0) {
|
||||
pccard_get_cis4_str(dev, &cisstr);
|
||||
if (cisstr && strlen(cisstr) == ETHER_ADDR_LEN * 2)
|
||||
sum = sn_pccard_ascii_enaddr(cisstr, eaddr);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_normal_activate(device_t dev)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = sn_activate(dev);
|
||||
if (err)
|
||||
sn_deactivate(dev);
|
||||
return (err);
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_megahertz_mac(const struct pccard_tuple *tuple, void *argp)
|
||||
{
|
||||
uint8_t *enaddr = argp;
|
||||
int i;
|
||||
uint8_t buffer[ETHER_ADDR_LEN * 2];
|
||||
|
||||
/* Code 0x81 is Megahertz' special cis node contianing the MAC */
|
||||
if (tuple->code != 0x81)
|
||||
return (0);
|
||||
|
||||
/* Make sure this is a sane node, as ASCII digits */
|
||||
if (tuple->length != ETHER_ADDR_LEN * 2 + 1)
|
||||
return (0);
|
||||
|
||||
/* Copy the MAC ADDR and return success if decoded */
|
||||
for (i = 0; i < ETHER_ADDR_LEN * 2; i++)
|
||||
buffer[i] = pccard_tuple_read_1(tuple, i);
|
||||
return (sn_pccard_ascii_enaddr(buffer, enaddr));
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_megahertz_get_mac(device_t dev, u_char *eaddr)
|
||||
{
|
||||
|
||||
if (sn_pccard_normal_get_mac(dev, eaddr))
|
||||
return 1;
|
||||
/*
|
||||
* If that fails, try the special CIS tuple 0x81 that the
|
||||
* '3288 and '3336 cards have. That tuple specifies an ASCII
|
||||
* string, ala CIS3 or CIS4 in the 'normal' cards.
|
||||
*/
|
||||
return (pccard_cis_scan(dev, sn_pccard_megahertz_mac, eaddr));
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_megahertz_activate(device_t dev)
|
||||
{
|
||||
int err;
|
||||
struct sn_softc *sc = device_get_softc(dev);
|
||||
u_long start;
|
||||
|
||||
err = sn_activate(dev);
|
||||
if (err) {
|
||||
sn_deactivate(dev);
|
||||
return (err);
|
||||
}
|
||||
/*
|
||||
* CIS resource is the modem one, so save it away.
|
||||
*/
|
||||
sc->modem_rid = sc->port_rid;
|
||||
sc->modem_res = sc->port_res;
|
||||
|
||||
/*
|
||||
* The MHz XJEM/CCEM series of cards just need to have any
|
||||
* old resource allocated for the ethernet side of things,
|
||||
* provided bit 0x80 isn't set in the address. That bit is
|
||||
* evidentially reserved for modem function and is how the
|
||||
* card steers the addresses internally.
|
||||
*/
|
||||
sc->port_res = NULL;
|
||||
start = 0;
|
||||
do
|
||||
{
|
||||
sc->port_rid = 1;
|
||||
sc->port_res = bus_alloc_resource(dev, SYS_RES_IOPORT,
|
||||
&sc->port_rid, start, ~0, SMC_IO_EXTENT, RF_ACTIVE);
|
||||
if (sc->port_res == NULL)
|
||||
break;
|
||||
if (!(rman_get_start(sc->port_res) & 0x80))
|
||||
break;
|
||||
start = rman_get_start(sc->port_res) + SMC_IO_EXTENT;
|
||||
bus_release_resource(dev, SYS_RES_IOPORT, sc->port_rid,
|
||||
sc->port_res);
|
||||
} while (start < 0xff80);
|
||||
if (sc->port_res == NULL) {
|
||||
sn_deactivate(dev);
|
||||
return ENOMEM;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
sn_pccard_attach(device_t dev)
|
||||
{
|
||||
struct sn_softc *sc = device_get_softc(dev);
|
||||
u_char eaddr[ETHER_ADDR_LEN];
|
||||
int i, err;
|
||||
uint16_t w;
|
||||
u_char sum;
|
||||
const struct sn_product *pp;
|
||||
|
||||
pp = sn_pccard_lookup(dev);
|
||||
sum = pp->sw->get_mac(dev, eaddr);
|
||||
|
||||
/* Allocate resources so we can program the ether addr */
|
||||
sc->dev = dev;
|
||||
err = pp->sw->activate(dev);
|
||||
if (err != 0)
|
||||
return (err);
|
||||
|
||||
if (sum) {
|
||||
printf("Programming sn card's addr\n");
|
||||
SMC_SELECT_BANK(sc, 1);
|
||||
for (i = 0; i < 3; i++) {
|
||||
w = (uint16_t)eaddr[i * 2] |
|
||||
(((uint16_t)eaddr[i * 2 + 1]) << 8);
|
||||
CSR_WRITE_2(sc, IAR_ADDR0_REG_W + i * 2, w);
|
||||
}
|
||||
}
|
||||
err = sn_attach(dev);
|
||||
if (err)
|
||||
sn_deactivate(dev);
|
||||
return (err);
|
||||
}
|
||||
|
||||
static device_method_t sn_pccard_methods[] = {
|
||||
/* Device interface */
|
||||
DEVMETHOD(device_probe, sn_pccard_probe),
|
||||
DEVMETHOD(device_attach, sn_pccard_attach),
|
||||
DEVMETHOD(device_detach, sn_detach),
|
||||
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
static driver_t sn_pccard_driver = {
|
||||
"sn",
|
||||
sn_pccard_methods,
|
||||
sizeof(struct sn_softc),
|
||||
};
|
||||
|
||||
extern devclass_t sn_devclass;
|
||||
|
||||
DRIVER_MODULE(sn, pccard, sn_pccard_driver, sn_devclass, 0, 0);
|
||||
MODULE_DEPEND(sn, ether, 1, 1, 1);
|
||||
PCCARD_PNP_INFO(sn_pccard_products);
|
|
@ -1,409 +0,0 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-4-Clause
|
||||
*
|
||||
* Copyright (c) 1996 Gardner Buchanan <gbuchanan@shl.com>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Gardner Buchanan.
|
||||
* 4. The name of Gardner Buchanan may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file contains register information and access macros for
|
||||
* the SMC91xxx chipset.
|
||||
*
|
||||
* Information contained in this file was obtained from the SMC91C92
|
||||
* and SMC91C94 manuals from SMC. You will need one of these in order
|
||||
* to make any meaningful changes to this driver. Information about
|
||||
* obtaining one can be found at http://www.smc.com in the components
|
||||
* division.
|
||||
*
|
||||
* This FreeBSD driver is derived in part from the smc9194 Linux driver
|
||||
* by Erik Stahlman and is Copyright (C) 1996 by Erik Stahlman.
|
||||
* It is also derived in part from the FreeBSD ep (3C509) driver which
|
||||
* is Copyright (c) 1993 Herb Peyerl (hpeyerl@novatel.ca) All rights
|
||||
* reserved.
|
||||
*
|
||||
*/
|
||||
#ifndef _IF_SNREG_H_
|
||||
#define _IF_SNREG_H_
|
||||
|
||||
/*
|
||||
* Wait time for memory to be free. This probably shouldn't be
|
||||
* tuned that much, as waiting for this means nothing else happens
|
||||
* in the system
|
||||
*/
|
||||
#define MEMORY_WAIT_TIME 1000
|
||||
|
||||
|
||||
/* The SMC91xxx uses 16 I/O ports
|
||||
*/
|
||||
#define SMC_IO_EXTENT 16
|
||||
|
||||
|
||||
/*
|
||||
* A description of the SMC registers is probably in order here,
|
||||
* although for details, the SMC datasheet is invaluable.
|
||||
* The data sheet I (GB) am using is "SMC91C92 Single Chip Ethernet
|
||||
* Controller With RAM", Rev. 12/0/94. Constant definitions I give
|
||||
* here are loosely based on the mnemonic names given to them in the
|
||||
* data sheet, but there are many exceptions.
|
||||
*
|
||||
* Basically, the chip has 4 banks of registers (0 to 3), which
|
||||
* are accessed by writing a number into the BANK_SELECT register
|
||||
* (I also use a SMC_SELECT_BANK macro for this). Registers are
|
||||
* either Byte or Word sized. My constant definitions end in _B
|
||||
* or _W as appropriate.
|
||||
*
|
||||
* The banks are arranged so that for most purposes, bank 2 is all
|
||||
* that is needed for normal run time tasks.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Bank Select Register. This also doubles as
|
||||
* a chip identification register. This register
|
||||
* is mapped at the same position in all banks.
|
||||
*/
|
||||
#define BANK_SELECT_REG_W 0x0e
|
||||
#define BSR_DETECT_MASK 0xff00
|
||||
#define BSR_DETECT_VALUE 0x3300
|
||||
|
||||
|
||||
/* BANK 0
|
||||
*/
|
||||
|
||||
/* Transmit Control Register controls some aspects of the transmit
|
||||
* behavior of the Ethernet Protocol Handler.
|
||||
*/
|
||||
#define TXMIT_CONTROL_REG_W 0x00
|
||||
|
||||
#define TCR_ENABLE 0x0001 /* if this is 1, we can transmit */
|
||||
#define TCR_LOOP 0x0002 /* Enable internal analogue loopback */
|
||||
#define TCR_FORCOL 0x0004 /* Force Collision on next TX */
|
||||
#define TCR_PAD_ENABLE 0x0080 /* Pad short packets to 64 bytes */
|
||||
#define TCR_NOCRC 0x0100 /* Do not append CRC */
|
||||
#define TCR_MON_CSN 0x0400 /* monitors the carrier status */
|
||||
#define TCR_FDUPLX 0x0800 /* receive packets sent out */
|
||||
#define TCR_STP_SQET 0x1000 /* stop transmitting if Signal quality error */
|
||||
#define TCR_EPH_LOOP 0x2000 /* Enable internal digital loopback */
|
||||
|
||||
|
||||
/* Status of the last transmitted frame and instantaneous status of
|
||||
* the Ethernet Protocol Handler jumbled together. In auto-release
|
||||
* mode this information is simply discarded after each TX. This info
|
||||
* is copied to the status word of in-memory packets after transmit
|
||||
* where relevant statuses can be checked.
|
||||
*/
|
||||
#define EPH_STATUS_REG_W 0x02
|
||||
|
||||
#define EPHSR_TX_SUC 0x0001 /* Transmit was successful */
|
||||
#define EPHSR_SNGLCOL 0x0002 /* Single collision occurred */
|
||||
#define EPHSR_MULCOL 0x0004 /* Multiple Collisions occurred */
|
||||
#define EPHSR_LTX_MULT 0x0008 /* Transmit was a multicast */
|
||||
#define EPHSR_16COL 0x0010 /* 16 Collisions occurred, TX disabled */
|
||||
#define EPHSR_SQET 0x0020 /* SQE Test failed, TX disabled */
|
||||
#define EPHSR_LTX_BRD 0x0040 /* Transmit was a broadcast */
|
||||
#define EPHSR_DEFR 0x0080 /* TX deferred due to carrier det. */
|
||||
#define EPHSR_LATCOL 0x0200 /* Late collision detected, TX disabled */
|
||||
#define EPHSR_LOST_CAR 0x0400 /* Lost carrier sense, TX disabled */
|
||||
#define EPHSR_EXC_DEF 0x0800 /* Excessive deferrals in TX >2 MAXETHER
|
||||
* times */
|
||||
#define EPHSR_CTR_ROL 0x1000 /* Some ECR Counter(s) rolled over */
|
||||
#define EPHSR_RX_OVRN 0x2000 /* Receiver overrun, packets dropped */
|
||||
#define EPHSR_LINK_OK 0x4000 /* Link integrity is OK */
|
||||
#define EPHSR_TXUNRN 0x8000 /* Transmit underrun */
|
||||
|
||||
|
||||
/* Receiver Control Register controls some aspects of the receive
|
||||
* behavior of the Ethernet Protocol Handler.
|
||||
*/
|
||||
#define RECV_CONTROL_REG_W 0x04
|
||||
|
||||
#define RCR_RX_ABORT 0x0001 /* Received huge packet */
|
||||
#define RCR_PROMISC 0x0002 /* enable promiscuous mode */
|
||||
#define RCR_ALMUL 0x0004 /* receive all multicast packets */
|
||||
#define RCR_ENABLE 0x0100 /* IFF this is set, we can receive packets */
|
||||
#define RCR_STRIP_CRC 0x0200 /* strips CRC */
|
||||
#define RCR_GAIN_BITS 0x0c00 /* PLL Gain control (for testing) */
|
||||
#define RCR_FILT_CAR 0x4000 /* Enable 12 bit carrier filter */
|
||||
#define RCR_SOFTRESET 0x8000 /* Resets the EPH logic */
|
||||
|
||||
|
||||
/* TX Statistics counters
|
||||
*/
|
||||
#define COUNTER_REG_W 0x06
|
||||
|
||||
#define ECR_COLN_MASK 0x000f /* Vanilla collisions */
|
||||
#define ECR_MCOLN_MASK 0x00f0 /* Multiple collisions */
|
||||
#define ECR_DTX_MASK 0x0f00 /* Deferred transmits */
|
||||
#define ECR_EXDTX_MASK 0xf000 /* Excessively deferred transmits */
|
||||
|
||||
/* Memory Information
|
||||
*/
|
||||
#define MEM_INFO_REG_W 0x08
|
||||
|
||||
#define MIR_FREE_MASK 0xff00 /* Free memory pages available */
|
||||
#define MIR_TOTAL_MASK 0x00ff /* Total memory pages available */
|
||||
|
||||
/* Memory Configuration
|
||||
*/
|
||||
#define MEM_CFG_REG_W 0x0a
|
||||
|
||||
#define MCR_TXRSV_MASK 0x001f /* Count of pages reserved for transmit */
|
||||
|
||||
|
||||
/* Bank 0, Register 0x0c is unised in the SMC91C92
|
||||
*/
|
||||
|
||||
|
||||
/* BANK 1
|
||||
*/
|
||||
|
||||
/* Adapter configuration
|
||||
*/
|
||||
#define CONFIG_REG_W 0x00
|
||||
|
||||
#define CR_INT_SEL0 0x0002 /* Interrupt selector */
|
||||
#define CR_INT_SEL1 0x0004 /* Interrupt selector */
|
||||
#define CR_DIS_LINK 0x0040 /* Disable 10BaseT Link Test */
|
||||
#define CR_16BIT 0x0080 /* Bus width */
|
||||
#define CR_AUI_SELECT 0x0100 /* Use external (AUI) Transceiver */
|
||||
#define CR_SET_SQLCH 0x0200 /* Squelch level */
|
||||
#define CR_FULL_STEP 0x0400 /* AUI signalling mode */
|
||||
#define CR_NOW_WAIT_ST 0x1000 /* Disable bus wait states */
|
||||
|
||||
/* The contents of this port are used by the adapter
|
||||
* to decode its I/O address. We use it as a varification
|
||||
* that the adapter is detected properly when probing.
|
||||
*/
|
||||
#define BASE_ADDR_REG_W 0x02 /* The select IO Base addr. */
|
||||
|
||||
/* These registers hold the Ethernet MAC address.
|
||||
*/
|
||||
#define IAR_ADDR0_REG_W 0x04 /* My Ethernet address */
|
||||
#define IAR_ADDR1_REG_W 0x06 /* My Ethernet address */
|
||||
#define IAR_ADDR2_REG_W 0x08 /* My Ethernet address */
|
||||
|
||||
/* General purpose register used for talking to the EEPROM.
|
||||
*/
|
||||
#define GENERAL_REG_W 0x0a
|
||||
|
||||
/* Control register used for talking to the EEPROM and
|
||||
* setting some EPH functions.
|
||||
*/
|
||||
#define CONTROL_REG_W 0x0c
|
||||
#define CTR_STORE 0x0001 /* Store something to EEPROM */
|
||||
#define CTR_RELOAD 0x0002 /* Read EEPROM into registers */
|
||||
#define CTR_EEPROM_SEL 0x0004 /* Select registers for Reload/Store */
|
||||
#define CTR_TE_ENABLE 0x0020 /* Enable TX Error detection via EPH_INT */
|
||||
#define CTR_CR_ENABLE 0x0040 /* Enable Counter Rollover via EPH_INT */
|
||||
#define CTR_LE_ENABLE 0x0080 /* Enable Link Error detection via EPH_INT */
|
||||
#define CTR_AUTO_RELEASE 0x0800 /* Enable auto release mode for TX */
|
||||
#define CTR_POWERDOWN 0x2000 /* Enter powerdown mode */
|
||||
#define CTR_RCV_BAD 0x4000 /* Enable receipt of frames with bad CRC */
|
||||
|
||||
|
||||
/* BANK 2
|
||||
*/
|
||||
|
||||
/* Memory Management Unit Control Register
|
||||
* Controls allocation of memory to receive and
|
||||
* transmit functions.
|
||||
*/
|
||||
#define MMU_CMD_REG_W 0x00
|
||||
#define MMUCR_BUSY 0x0001 /* MMU busy performing a release */
|
||||
|
||||
/* MMU Commands:
|
||||
*/
|
||||
#define MMUCR_NOP 0x0000 /* Do nothing */
|
||||
#define MMUCR_ALLOC 0x0020 /* Or with number of 256 byte packets - 1 */
|
||||
#define MMUCR_RESET 0x0040 /* Reset MMU State */
|
||||
#define MMUCR_REMOVE 0x0060 /* Dequeue (but not free) current RX packet */
|
||||
#define MMUCR_RELEASE 0x0080 /* Dequeue and free the current RX packet */
|
||||
#define MMUCR_FREEPKT 0x00a0 /* Release packet in PNR register */
|
||||
#define MMUCR_ENQUEUE 0x00c0 /* Enqueue the packet for transmit */
|
||||
#define MMUCR_RESETTX 0x00e0 /* Reset transmit queues */
|
||||
|
||||
/* Packet Number at TX Area
|
||||
*/
|
||||
#define PACKET_NUM_REG_B 0x02
|
||||
|
||||
/* Packet number resulting from MMUCR_ALLOC
|
||||
*/
|
||||
#define ALLOC_RESULT_REG_B 0x03
|
||||
#define ARR_FAILED 0x80
|
||||
|
||||
/* Transmit and receive queue heads
|
||||
*/
|
||||
#define FIFO_PORTS_REG_W 0x04
|
||||
#define FIFO_REMPTY 0x8000
|
||||
#define FIFO_TEMPTY 0x0080
|
||||
#define FIFO_RX_MASK 0x7f00
|
||||
#define FIFO_TX_MASK 0x007f
|
||||
|
||||
/* The address within the packet for reading/writing. The
|
||||
* PTR_RCV bit is tricky. When PTR_RCV==1, the packet number
|
||||
* to be read is found in the FIFO_PORTS_REG_W, FIFO_RX_MASK.
|
||||
* When PTR_RCV==0, the packet number to be written is found
|
||||
* in the PACKET_NUM_REG_B.
|
||||
*/
|
||||
#define POINTER_REG_W 0x06
|
||||
#define PTR_READ 0x2000 /* Intended access mode */
|
||||
#define PTR_AUTOINC 0x4000 /* Do auto inc after read/write */
|
||||
#define PTR_RCV 0x8000 /* FIFO_RX is packet, otherwise PNR is packet */
|
||||
|
||||
/* Data I/O register to be used in conjunction with
|
||||
* The pointer register to read and write data from the
|
||||
* card. The same register can be used for byte and word
|
||||
* ops.
|
||||
*/
|
||||
#define DATA_REG_W 0x08
|
||||
#define DATA_REG_B 0x08
|
||||
#define DATA_1_REG_B 0x08
|
||||
#define DATA_2_REG_B 0x0a
|
||||
|
||||
/* Sense interrupt status (READ)
|
||||
*/
|
||||
#define INTR_STAT_REG_B 0x0c
|
||||
|
||||
/* Acknowledge interrupt sources (WRITE)
|
||||
*/
|
||||
#define INTR_ACK_REG_B 0x0c
|
||||
|
||||
/* Interrupt mask. Bit set indicates interrupt allowed.
|
||||
*/
|
||||
#define INTR_MASK_REG_B 0x0d
|
||||
|
||||
/* Interrupts
|
||||
*/
|
||||
#define IM_RCV_INT 0x01 /* A packet has been received */
|
||||
#define IM_TX_INT 0x02 /* Packet TX complete */
|
||||
#define IM_TX_EMPTY_INT 0x04 /* No packets left to TX */
|
||||
#define IM_ALLOC_INT 0x08 /* Memory allocation completed */
|
||||
#define IM_RX_OVRN_INT 0x10 /* Receiver was overrun */
|
||||
#define IM_EPH_INT 0x20 /* Misc. EPH conditions (see CONTROL_REG_W) */
|
||||
#define IM_ERCV_INT 0x40 /* not on SMC9192 */
|
||||
|
||||
/* BANK 3
|
||||
*/
|
||||
|
||||
/* Multicast subscriptions.
|
||||
* The multicast handling in the SMC90Cxx is quite complicated. A table
|
||||
* of multicast address subscriptions is provided and a clever way of
|
||||
* speeding the search of that table by hashing is implemented in the
|
||||
* hardware. I have ignored this and simply subscribed to all multicasts
|
||||
* and let the kernel deal with the results.
|
||||
*/
|
||||
#define MULTICAST1_REG_W 0x00
|
||||
#define MULTICAST2_REG_W 0x02
|
||||
#define MULTICAST3_REG_W 0x04
|
||||
#define MULTICAST4_REG_W 0x06
|
||||
|
||||
/* These registers do not exist on SMC9192, or at least
|
||||
* are not documented in the SMC91C92 data sheet.
|
||||
* The REVISION_REG_W register does however seem to work.
|
||||
*/
|
||||
#define MGMT_REG_W 0x08
|
||||
#define REVISION_REG_W 0x0a /* (hi: chip id low: rev #) */
|
||||
#define ERCV_REG_W 0x0c
|
||||
|
||||
/* These are constants expected to be found in the
|
||||
* chip id register.
|
||||
*/
|
||||
#define CHIP_9190 3
|
||||
#define CHIP_9194 4
|
||||
#define CHIP_9195 5
|
||||
#define CHIP_91100 7
|
||||
#define CHIP_91100FD 8
|
||||
|
||||
/* When packets are stuffed into the card or sucked out of the card
|
||||
* they are set up more or less as follows:
|
||||
*
|
||||
* Addr msbyte lsbyte
|
||||
* 00 SSSSSSSS SSSSSSSS - STATUS-WORD 16 bit TX or RX status
|
||||
* 02 RRRRR - RESERVED (unused)
|
||||
* 02 CCC CCCCCCCC - BYTE COUNT (RX: always even, TX: bit 0 ignored)
|
||||
* 04 DDDDDDDD DDDDDDDD - DESTINATION ADDRESS
|
||||
* 06 DDDDDDDD DDDDDDDD (48 bit Ethernet MAC Address)
|
||||
* 08 DDDDDDDD DDDDDDDD
|
||||
* 0A SSSSSSSS SSSSSSSS - SOURCE ADDRESS
|
||||
* 0C SSSSSSSS SSSSSSSS (48 bit Ethernet MAC Address)
|
||||
* 0E SSSSSSSS SSSSSSSS
|
||||
* 10 PPPPPPPP PPPPPPPP
|
||||
* .. PPPPPPPP PPPPPPPP
|
||||
* C-2 CCCCCCCC - CONTROL BYTE
|
||||
* C-2 PPPPPPPP - Last data byte (If odd length)
|
||||
*
|
||||
* The STATUS_WORD is derived from the EPH_STATUS_REG_W register
|
||||
* during transmit and is composed of another set of bits described
|
||||
* below during receive.
|
||||
*/
|
||||
|
||||
|
||||
/* Receive status bits. These values are found in the status word
|
||||
* field of a received packet. For receive packets I use the RS_ODDFRAME
|
||||
* to detect whether a frame has an extra byte on it. The CTLB_ODD
|
||||
* bit of the control byte tells the same thing.
|
||||
*/
|
||||
#define RS_MULTICAST 0x0001 /* Packet is multicast */
|
||||
#define RS_HASH_MASK 0x007e /* Mask of multicast hash value */
|
||||
#define RS_TOOSHORT 0x0400 /* Frame was a runt, <64 bytes */
|
||||
#define RS_TOOLONG 0x0800 /* Frame was giant, >1518 */
|
||||
#define RS_ODDFRAME 0x1000 /* Frame is odd lengthed */
|
||||
#define RS_BADCRC 0x2000 /* Frame had CRC error */
|
||||
#define RS_ALGNERR 0x8000 /* Frame had alignment error */
|
||||
#define RS_ERRORS (RS_ALGNERR | RS_BADCRC | RS_TOOLONG | RS_TOOSHORT)
|
||||
|
||||
#define RLEN_MASK 0x07ff /* Significant length bits in RX length */
|
||||
|
||||
/* The control byte has the following significant bits.
|
||||
* For transmit, the CTLB_ODD bit specifies whether an extra byte
|
||||
* is present in the frame. Bit 0 of the byte count field is
|
||||
* ignored. I just pad every frame to even length and forget about
|
||||
* it.
|
||||
*/
|
||||
#define CTLB_CRC 0x10 /* Add CRC for this packet (TX only) */
|
||||
#define CTLB_ODD 0x20 /* The packet length is ODD */
|
||||
|
||||
|
||||
/*
|
||||
* I define some macros to make it easier to do somewhat common
|
||||
* or slightly complicated, repeated tasks.
|
||||
*/
|
||||
|
||||
/* Select a register bank, 0 to 3
|
||||
*/
|
||||
#define SMC_SELECT_BANK(sc, x) { CSR_WRITE_2(sc, BANK_SELECT_REG_W, (x)); }
|
||||
|
||||
/* Define a small delay for the reset
|
||||
*/
|
||||
#define SMC_DELAY(sc) { CSR_READ_2(sc, RECV_CONTROL_REG_W); \
|
||||
CSR_READ_2(sc, RECV_CONTROL_REG_W); \
|
||||
CSR_READ_2(sc, RECV_CONTROL_REG_W); }
|
||||
|
||||
#endif /* _IF_SNREG_H_ */
|
|
@ -1,84 +0,0 @@
|
|||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 1999 M. Warner Losh <imp@village.org>
|
||||
* 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 AUTHOR ``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 AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#ifndef _IF_SNVAR_H
|
||||
#define _IF_SNVAR_H
|
||||
|
||||
#include <net/if_arp.h>
|
||||
|
||||
struct sn_softc {
|
||||
struct ifnet *ifp;
|
||||
struct mtx sc_mtx;
|
||||
struct callout watchdog;
|
||||
int timer;
|
||||
int pages_wanted; /* Size of outstanding MMU ALLOC */
|
||||
int intr_mask; /* Most recently set interrupt mask */
|
||||
device_t dev;
|
||||
void *intrhand;
|
||||
struct resource *irq_res;
|
||||
int irq_rid;
|
||||
struct resource *port_res;
|
||||
int port_rid;
|
||||
struct resource *modem_res; /* Extra resource for modem */
|
||||
int modem_rid;
|
||||
};
|
||||
|
||||
int sn_probe(device_t);
|
||||
int sn_attach(device_t);
|
||||
int sn_detach(device_t);
|
||||
void sn_intr(void *);
|
||||
|
||||
int sn_activate(device_t);
|
||||
void sn_deactivate(device_t);
|
||||
|
||||
#define CSR_READ_1(sc, off) (bus_read_1((sc)->port_res, off))
|
||||
#define CSR_READ_2(sc, off) (bus_read_2((sc)->port_res, off))
|
||||
#define CSR_WRITE_1(sc, off, val) \
|
||||
bus_write_1((sc)->port_res, off, val)
|
||||
#define CSR_WRITE_2(sc, off, val) \
|
||||
bus_write_2((sc)->port_res, off, val)
|
||||
#define CSR_WRITE_MULTI_1(sc, off, addr, count) \
|
||||
bus_write_multi_1((sc)->port_res, off, addr, count)
|
||||
#define CSR_WRITE_MULTI_2(sc, off, addr, count) \
|
||||
bus_write_multi_2((sc)->port_res, off, addr, count)
|
||||
#define CSR_READ_MULTI_1(sc, off, addr, count) \
|
||||
bus_read_multi_1((sc)->port_res, off, addr, count)
|
||||
#define CSR_READ_MULTI_2(sc, off, addr, count) \
|
||||
bus_read_multi_2((sc)->port_res, off, addr, count)
|
||||
|
||||
#define SN_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx)
|
||||
#define SN_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx)
|
||||
#define SN_LOCK_INIT(_sc) \
|
||||
mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->dev), \
|
||||
MTX_NETWORK_LOCK, MTX_DEF)
|
||||
#define SN_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx);
|
||||
#define SN_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED);
|
||||
#define SN_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED);
|
||||
|
||||
#endif /* _IF_SNVAR_H */
|
|
@ -1,384 +0,0 @@
|
|||
/*
|
||||
This file contains the firmware of Seven of Diamonds from OSITECH.
|
||||
(Special thanks to Kevin MacPherson of OSITECH)
|
||||
(Thanks to Ositech Communications for permitting for BSDL distribution)
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause
|
||||
|
||||
Copyright 2002 Ositech Communications Inc. 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 AUTHOR 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 AUTHOR 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$
|
||||
|
||||
*/
|
||||
|
||||
static const u_char __Xilinx7OD[] = {
|
||||
0xFF, 0x04, 0xA0, 0x36, 0xF3, 0xEC, 0xFF, 0xFF, 0xFF, 0xDF, 0xFB, 0xFF,
|
||||
0xF3, 0xFF, 0xFF, 0xFF,
|
||||
0xEF, 0x3F, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x7F, 0xFE, 0xFF,
|
||||
0xCE, 0xFE, 0xFE, 0xFE,
|
||||
0xFE, 0xDE, 0xBD, 0xDD, 0xFD, 0xFF, 0xFD, 0xCF, 0xF7, 0xBF, 0x7F, 0xFF,
|
||||
0x7F, 0x3F, 0xFE, 0xBF,
|
||||
0xFF, 0xFF, 0xFF, 0xBC, 0xFF, 0xFF, 0xBD, 0xB5, 0x7F, 0x7F, 0xBF, 0xBF,
|
||||
0x7F, 0xFF, 0xEF, 0xFF,
|
||||
0xFF, 0xFF, 0xFB, 0xFF, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xDE,
|
||||
0xFE, 0xFE, 0xFA, 0xDE,
|
||||
0xBD, 0xFD, 0xED, 0xFD, 0xFD, 0xCF, 0xEF, 0xEF, 0xEF, 0xEF, 0xC7, 0xDF,
|
||||
0xDF, 0xDF, 0xDF, 0xDF,
|
||||
0xFF, 0x7E, 0xFE, 0xFD, 0x7D, 0x6D, 0xEE, 0xFE, 0x7C, 0xFB, 0xF4, 0xFB,
|
||||
0xCF, 0xDB, 0xDF, 0xFF,
|
||||
0xFF, 0xBB, 0x7F, 0xFF, 0x7F, 0xFF, 0xF7, 0xFF, 0x9E, 0xBF, 0x3B, 0xBF,
|
||||
0xBF, 0x7F, 0x7F, 0x7F,
|
||||
0x7E, 0x6F, 0xDF, 0xEF, 0xF5, 0xF6, 0xFD, 0xF6, 0xF5, 0xED, 0xEB, 0xFF,
|
||||
0xEF, 0xEF, 0xEF, 0x7E,
|
||||
0x7F, 0x7F, 0x6F, 0x7F, 0xFF, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xEF, 0xBF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0x1F, 0x1F, 0xEE, 0xFF, 0xBC,
|
||||
0xB7, 0xFF, 0xDF, 0xFF,
|
||||
0xDF, 0xEF, 0x3B, 0xE3, 0xD3, 0xFF, 0xFB, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF,
|
||||
0xFF, 0xBA, 0xBF, 0x2D,
|
||||
0xDB, 0xBD, 0xFD, 0xDB, 0xDF, 0xFA, 0xFB, 0xFF, 0xEF, 0xFB, 0xDB, 0xF3,
|
||||
0xFF, 0xDF, 0xFD, 0x7F,
|
||||
0xEF, 0xFB, 0xFF, 0xFF, 0xBE, 0xBF, 0x27, 0xBA, 0xFE, 0xFB, 0xDF, 0xFF,
|
||||
0xF6, 0xFF, 0xFF, 0xEF,
|
||||
0xFB, 0xDB, 0xF3, 0xD9, 0x9A, 0x3F, 0xFF, 0xAF, 0xBF, 0xFF, 0xFF, 0xBE,
|
||||
0x3F, 0x37, 0xBD, 0x96,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0xFB, 0xF3, 0xF3, 0xEB, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF7, 0xFA, 0xBC, 0xAE, 0xFE, 0xBE, 0xFE, 0xBB, 0x7F, 0xFD, 0xFF,
|
||||
0x7F, 0xEF, 0xF7, 0xFB,
|
||||
0xBB, 0xD7, 0xF7, 0x7F, 0xFF, 0xF7, 0xFF, 0xFF, 0xF7, 0xBC, 0xED, 0xFD,
|
||||
0xBD, 0x9D, 0x7D, 0x7B,
|
||||
0xFB, 0x7B, 0x7B, 0xFB, 0xAF, 0xFF, 0xFE, 0xFD, 0xFD, 0xFE, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xF7,
|
||||
0xAA, 0xB9, 0xBF, 0x8F, 0xBF, 0xDF, 0xFF, 0x7F, 0xFF, 0xFF, 0x7F, 0xCF,
|
||||
0xFB, 0xEB, 0xCB, 0xEB,
|
||||
0xEE, 0xFF, 0xFF, 0xD7, 0xFF, 0xFF, 0xFF, 0x3E, 0x33, 0x3F, 0x1C, 0x7C,
|
||||
0xFC, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xCF, 0xD3, 0xF3, 0xE3, 0xF3, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xEB, 0xFE, 0x35,
|
||||
0x3F, 0x3D, 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xEF, 0x6F, 0xE3,
|
||||
0xE3, 0xE3, 0xEF, 0xFF,
|
||||
0xFF, 0xDF, 0xFF, 0xFF, 0xF7, 0xFE, 0x3E, 0x5E, 0xFE, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFD, 0xFF, 0xFF,
|
||||
0xAF, 0xCF, 0xF2, 0xCB, 0xCF, 0x8E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD,
|
||||
0xFC, 0x3E, 0x1F, 0x9E,
|
||||
0xAD, 0xFD, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xEF, 0xFF, 0xB3, 0xF7, 0xE7,
|
||||
0xF7, 0xFA, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xEE, 0xEB, 0xAB, 0xAF, 0x9F, 0xE3, 0x7F, 0xFF, 0xDE,
|
||||
0xFF, 0x7F, 0xEE, 0xFF,
|
||||
0xFF, 0xFB, 0x3A, 0xFA, 0xFF, 0xF2, 0x77, 0xFF, 0xFF, 0xF7, 0xFE, 0xFF,
|
||||
0xFE, 0xBD, 0xAE, 0xDE,
|
||||
0x7D, 0x7D, 0xFD, 0xFF, 0xBF, 0xEE, 0xFF, 0xFD, 0xFF, 0xDB, 0xFB, 0xFF,
|
||||
0xF7, 0xEF, 0xFB, 0xFF,
|
||||
0xFF, 0xFE, 0xFF, 0x2D, 0xAF, 0xB9, 0xFD, 0x79, 0xFB, 0xFA, 0xFF, 0xBF,
|
||||
0xEF, 0xFF, 0xFF, 0x91,
|
||||
0xFA, 0xFB, 0xDF, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xFC, 0xCF, 0x37, 0xBF,
|
||||
0xBF, 0xFF, 0x7F, 0x7F,
|
||||
0xFF, 0xFF, 0xFF, 0xAF, 0xFF, 0xFF, 0xF3, 0xFB, 0xFB, 0xFF, 0xF5, 0xEF,
|
||||
0xFF, 0xFF, 0xF7, 0xFA,
|
||||
0xFF, 0xFF, 0xEE, 0xFA, 0xFE, 0xFB, 0x55, 0xDD, 0xFF, 0x7F, 0xAF, 0xFE,
|
||||
0xFF, 0xFB, 0xFB, 0xF5,
|
||||
0xFF, 0xF7, 0xEF, 0xFF, 0xFF, 0xFF, 0xBE, 0xBD, 0xBD, 0xBD, 0xBD, 0x7D,
|
||||
0x7B, 0x7B, 0x7B, 0x7B,
|
||||
0xFB, 0xAE, 0xFF, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF7, 0xDA, 0xB7, 0x61,
|
||||
0xFF, 0xB9, 0x59, 0xF3, 0x73, 0xF3, 0xDF, 0x7F, 0x6F, 0xDF, 0xEF, 0xF7,
|
||||
0xEB, 0xEB, 0xD7, 0xFF,
|
||||
0xD7, 0xFF, 0xFF, 0xF7, 0xFE, 0x7F, 0xFB, 0x3E, 0x38, 0x73, 0xF6, 0x7F,
|
||||
0xFC, 0xFF, 0xFF, 0xCF,
|
||||
0xFF, 0xB7, 0xFB, 0xB3, 0xB3, 0x67, 0xFF, 0xE7, 0xFD, 0xFF, 0xEF, 0xF6,
|
||||
0x7F, 0xB7, 0xBC, 0xF5,
|
||||
0x7B, 0xF6, 0xF7, 0xF5, 0xFF, 0xFF, 0xEF, 0xFF, 0xF7, 0xFF, 0xF7, 0xCE,
|
||||
0xE7, 0xFF, 0x9F, 0xFF,
|
||||
0xFF, 0xF5, 0xFE, 0x7D, 0xFF, 0x5F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xEF, 0xFF, 0xF6,
|
||||
0xCB, 0xDB, 0xEE, 0xFE, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xBE,
|
||||
0x1E, 0x3E, 0xFE, 0xFF,
|
||||
0x7D, 0xFE, 0xFF, 0xFF, 0xEF, 0xBF, 0xE7, 0xFF, 0xE3, 0xE3, 0xFF, 0xDF,
|
||||
0xE7, 0xFF, 0xFF, 0xFF,
|
||||
0xB8, 0xEF, 0xB7, 0x2F, 0xEE, 0xFF, 0xDF, 0xFF, 0xBF, 0xFF, 0x7F, 0xEF,
|
||||
0xEB, 0xBF, 0xA3, 0xD3,
|
||||
0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xBE, 0xFD, 0x3F, 0xCF, 0xFD,
|
||||
0xFB, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xAF, 0xFB, 0xBF, 0xBB, 0xBF, 0xDB, 0xFD, 0xFB, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x3E, 0xFE,
|
||||
0x3F, 0xBA, 0xBA, 0xFE, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xEF, 0xC3, 0x7F,
|
||||
0xB2, 0x9B, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x3C, 0xFF, 0x3F, 0x3C, 0xFF, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xAF, 0xF3, 0xFE, 0xF3, 0xE3, 0xEB, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xF7,
|
||||
0x9A, 0xFE, 0xAF, 0x9E,
|
||||
0xBE, 0xFE, 0xFF, 0xDF, 0xFF, 0xFF, 0x7B, 0xEF, 0xF7, 0xBF, 0xFB, 0xFB,
|
||||
0xFB, 0xFF, 0xFF, 0x7F,
|
||||
0xFF, 0xFF, 0xFF, 0xBC, 0xBD, 0xFD, 0xBD, 0xDD, 0x7D, 0x7B, 0x7B, 0x7B,
|
||||
0x7B, 0xFB, 0xAE, 0xFF,
|
||||
0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xF7, 0x9A, 0xFF,
|
||||
0x9F, 0xFF, 0xAF, 0xEF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xCF, 0xF3, 0xFF, 0xEB, 0xFF, 0xEB, 0xFF,
|
||||
0xFF, 0xBF, 0xFF, 0xFF,
|
||||
0xEF, 0xFE, 0xFF, 0x37, 0xFC, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xCF, 0xEF, 0xFD, 0xF3,
|
||||
0xFF, 0xEE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6E, 0xFD, 0x2F, 0xFD,
|
||||
0xFF, 0xFD, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xEF, 0xCF, 0xFF, 0xF3, 0xBF, 0x69, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE,
|
||||
0xFB, 0x9F, 0xFF, 0xBF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x87,
|
||||
0xFE, 0xDA, 0xEF, 0xCF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xEF, 0xBF, 0xEF, 0xEF, 0xFD,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xEF, 0xFD, 0xFF, 0x7B, 0xFF, 0xEB, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xEB, 0xF8, 0xFF, 0xEF,
|
||||
0xAF, 0xFF, 0xFF, 0xBD, 0xFF, 0xFF, 0xFF, 0x7F, 0xEE, 0x7F, 0xEF, 0xFF,
|
||||
0xBB, 0xFF, 0xBF, 0xFB,
|
||||
0xFF, 0xFF, 0xFF, 0xF7, 0xF6, 0xFB, 0xBD, 0xFD, 0xDD, 0xF5, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xAF,
|
||||
0xFF, 0x5F, 0xF5, 0xDF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6,
|
||||
0xF3, 0xFF, 0xDE, 0xFE,
|
||||
0xEF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xDE, 0xDF, 0x5F, 0xDF,
|
||||
0xFD, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xAF, 0xFF, 0xFF,
|
||||
0xEF, 0xED, 0xFF, 0xDF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xDA, 0xBD, 0xBE,
|
||||
0xAE, 0xFE, 0x7F, 0xFD,
|
||||
0xDF, 0xFF, 0xFF, 0x7F, 0xEF, 0xFF, 0xFB, 0xFB, 0xFB, 0x7F, 0xF7, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xF7,
|
||||
0xBC, 0xFD, 0xBD, 0xBD, 0xBD, 0xFD, 0x7B, 0x7B, 0x7B, 0x7B, 0xFB, 0xAE,
|
||||
0xFF, 0xFF, 0xFD, 0xFF,
|
||||
0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x9F, 0xBF, 0xBF, 0xCF,
|
||||
0x7F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xAF, 0xFF, 0xEB, 0xEB, 0xEB, 0xFF, 0xD7, 0xFE, 0xFF, 0xFF,
|
||||
0xBF, 0xE7, 0xFE, 0xBF,
|
||||
0x7F, 0xFC, 0xFF, 0xFF, 0xED, 0xFF, 0xFF, 0xFF, 0xFF, 0x4F, 0xFF, 0xFB,
|
||||
0xFB, 0xFF, 0xFF, 0xDD,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xBD, 0xDF, 0x9D, 0xFD, 0xDF, 0xB9,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xEF, 0xFF, 0xFB, 0xEF, 0xEB, 0xFF, 0xDE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF6, 0x9F, 0xFF, 0xFC,
|
||||
0xFE, 0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xDF, 0xFA, 0xCD, 0xCF,
|
||||
0xBF, 0x9F, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF7, 0xFE, 0xBF, 0xFF, 0xDF, 0xEF, 0x5F, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x7F, 0x6F, 0xFF,
|
||||
0xBB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0xFF,
|
||||
0x5F, 0xFF, 0xBF, 0xBF,
|
||||
0xF9, 0xFF, 0xFF, 0xFF, 0x7F, 0x6E, 0x7B, 0xFF, 0xEF, 0xFD, 0xEB, 0xDF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF7, 0xB6, 0x3E, 0xFC, 0xFD, 0xBF, 0x7E, 0xFB, 0xFF, 0xFF, 0xFF, 0xF7,
|
||||
0xEF, 0xF7, 0xF3, 0xF7,
|
||||
0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6E, 0x35, 0x79, 0xFF,
|
||||
0xBF, 0xFC, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xEF, 0xFB, 0x53, 0xDF, 0xFF, 0xEB, 0xBF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xBC,
|
||||
0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xF5,
|
||||
0xFF, 0xF7, 0xFF, 0xFB,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0xAA, 0xEE, 0xFE, 0x3F, 0x7D,
|
||||
0xFD, 0xFF, 0xFF, 0xFF,
|
||||
0x7F, 0xAF, 0x77, 0xFB, 0xFB, 0xFF, 0xFB, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF7, 0xBE, 0xBD, 0xBD,
|
||||
0xBD, 0xBD, 0xFD, 0x7B, 0x7B, 0x7B, 0x7B, 0xFB, 0xAE, 0xFF, 0xEF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFC,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x9A, 0xD9, 0xB8, 0xFF, 0xFF, 0x79, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xCF,
|
||||
0xFB, 0xFF, 0xEB, 0xFF, 0xEB, 0xD7, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xDE,
|
||||
0xF8, 0xFB, 0xFE, 0x3F,
|
||||
0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xAD, 0xBF, 0xFA, 0xFF, 0x73,
|
||||
0xDF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x3A, 0xF5, 0xB7, 0xFC, 0x3F, 0xF9, 0xFD, 0xFF, 0xFF, 0xFF,
|
||||
0x7F, 0xEF, 0xF3, 0xFF,
|
||||
0xBF, 0xFE, 0xF3, 0x9F, 0xFE, 0xFF, 0xFF, 0xFF, 0xF7, 0x3E, 0xFF, 0xFF,
|
||||
0xFF, 0xBF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xD3, 0xFE, 0xDB, 0xFF, 0xDB, 0xDF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x3E, 0xFF, 0xBF, 0xFF, 0x7F, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F,
|
||||
0xF3, 0xFF, 0xED, 0xFF,
|
||||
0xF7, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xF6, 0x3C, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x9F, 0xEF, 0xEF, 0xD1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7E, 0xBF,
|
||||
0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0xEF, 0xDF, 0xF1,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xBF,
|
||||
0xEF, 0xFD, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF,
|
||||
0xFC, 0x3E, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2E, 0xEF, 0xF3, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF7, 0xBA, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x7F, 0xAF, 0xFB,
|
||||
0xFB, 0xFD, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xF2, 0xD6, 0xED,
|
||||
0xBD, 0xBD, 0xBD, 0x7D,
|
||||
0x7B, 0x7B, 0x7B, 0x7B, 0xFB, 0xAF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x92, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
|
||||
0xAF, 0xEB, 0xEB, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFE, 0x2E, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x4F, 0xEF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE,
|
||||
0x3C, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xCE,
|
||||
0xC3, 0xFD, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x5D, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xEF, 0xCF, 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF7, 0xEE, 0x3E, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xEF, 0xDF, 0xE2, 0xFF,
|
||||
0xFF, 0xFF, 0xFB, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0xBE, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x7F, 0xEE,
|
||||
0x5F, 0xE6, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3E,
|
||||
0x7D, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xF3, 0xFB, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xBF, 0xF7, 0x36, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xEF, 0xD3, 0xF6,
|
||||
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xEE,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xEF, 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xBA, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE,
|
||||
0xFB, 0xFA, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xD6, 0xFD, 0xBD, 0xBD, 0xBD,
|
||||
0x7D, 0x7B, 0x7B, 0x7B,
|
||||
0x7B, 0xFB, 0xAE, 0xFF, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF7, 0xBA, 0xBF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xEF, 0xEB, 0x6B,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFE, 0xBE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x4F, 0xEF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
|
||||
0x3E, 0x6E, 0xFC, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xC3, 0xC9, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x3E, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xEF, 0xFB,
|
||||
0xD5, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE,
|
||||
0xFE, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0xEF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFB,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF6, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE,
|
||||
0xEF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFE, 0xFF, 0xF7, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x7F, 0xFA, 0xEF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xE7, 0xFF, 0xFE,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFE, 0xEF, 0xBF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0xFF, 0xFC, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x7F,
|
||||
0xFE, 0xAE, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7,
|
||||
0xF7, 0xFA, 0xFF, 0xFD,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xAF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xF7, 0xBE, 0xBD, 0xBD, 0xBD, 0xBD, 0x7D, 0x7B, 0x7B,
|
||||
0x7B, 0x7B, 0xFB, 0xAF,
|
||||
0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xE7, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xCF, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xDF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xE7, 0xF2, 0xFC,
|
||||
0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xAE, 0xEF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7E, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xEF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF,
|
||||
0xFE, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF, 0xDD, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xAF, 0xEF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBA, 0xFE,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFA, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xF6, 0x9C, 0xBD, 0xBD, 0xBD, 0xBD, 0x7D, 0x7B, 0x7B, 0x7B, 0x7B, 0xFB,
|
||||
0xAE, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7A, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xDF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0x6F, 0xEF, 0xF7, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xF7, 0xFE,
|
||||
0xFE, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xEB,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0x9E, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xEF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xEF, 0xCB, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFD,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xEF,
|
||||
0xEF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFB, 0xAF, 0x7F, 0xFF,
|
||||
0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xEF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xBF, 0xFF,
|
||||
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x7F, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xF7, 0xBC, 0xBD,
|
||||
0xBD, 0xBD, 0xBD, 0x7D, 0x7B, 0x7B, 0x7B, 0x7B, 0xFB, 0xAF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0x7F,
|
||||
0xAF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF,
|
||||
0xFE, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF,
|
||||
0xFF, 0xFF, 0xEF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xBF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xEF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFE, 0xFF, 0x9F, 0x9F,
|
||||
0x9F, 0x3F, 0x3F, 0x3F,
|
||||
0x3F, 0x3F, 0xFF, 0xEF, 0xDF, 0xDF, 0xDF, 0xDF, 0xCF, 0xB7, 0xBF, 0xBF,
|
||||
0xBF, 0xBF, 0xFF, 0xBC,
|
||||
0xB9, 0x9D, 0xBD, 0xBD, 0x7D, 0x7B, 0x7B, 0x7B, 0x7B, 0xFB, 0xEF, 0xD7,
|
||||
0xF5, 0xF3, 0xF1, 0xD1,
|
||||
0x65, 0xE3, 0xE3, 0xE3, 0xA3, 0xFF, 0xFE, 0x7F, 0xFE, 0xDE, 0xDE, 0xFF,
|
||||
0xBD, 0xBD, 0xBD, 0xBD,
|
||||
0xDF, 0xEF, 0xFB, 0xF7, 0xF3, 0xF3, 0xF3, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
|
||||
0xFB, 0xFE, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
|
||||
|
||||
};
|
|
@ -269,7 +269,6 @@ device wb # Winbond W89C840F
|
|||
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
|
||||
|
||||
# ISA Ethernet NICs. pccard NICs included.
|
||||
device sn # SMC's 9000 series of Ethernet chips
|
||||
device xe # Xircom pccard Ethernet
|
||||
|
||||
# Wireless NIC cards
|
||||
|
|
|
@ -335,7 +335,6 @@ SUBDIR= \
|
|||
sk \
|
||||
${_smartpqi} \
|
||||
smbfs \
|
||||
sn \
|
||||
snp \
|
||||
sound \
|
||||
${_speaker} \
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
# $FreeBSD$
|
||||
|
||||
.PATH: ${SRCTOP}/sys/dev/sn
|
||||
|
||||
KMOD= if_sn
|
||||
SRCS= if_sn.c if_sn_isa.c if_sn_pccard.c device_if.h bus_if.h isa_if.h \
|
||||
card_if.h pccarddevs.h
|
||||
|
||||
.include <bsd.kmod.mk>
|
Loading…
Reference in a new issue