summaryrefslogtreecommitdiffstats
path: root/sys/dev/puc
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2003-04-30 22:15:47 +0000
committersobomax <sobomax@FreeBSD.org>2003-04-30 22:15:47 +0000
commit660f8f5516052f5c6dd9bb44fcd61926ef0f7855 (patch)
treecbc9889974aef9fd663a4483399ec2a449b463de /sys/dev/puc
parentf95bce2b0560d5d9f6018550a1807da347e7e788 (diff)
downloadFreeBSD-src-660f8f5516052f5c6dd9bb44fcd61926ef0f7855.zip
FreeBSD-src-660f8f5516052f5c6dd9bb44fcd61926ef0f7855.tar.gz
Add support for IC Book Ironclad Pro/Lite 8-port cards.
Sponsired by: IC Book Labs MFC After: 2 weeks
Diffstat (limited to 'sys/dev/puc')
-rw-r--r--sys/dev/puc/puc.c4
-rw-r--r--sys/dev/puc/pucdata.c34
2 files changed, 36 insertions, 2 deletions
diff --git a/sys/dev/puc/puc.c b/sys/dev/puc/puc.c
index fedf9bb..5cfe3ab 100644
--- a/sys/dev/puc/puc.c
+++ b/sys/dev/puc/puc.c
@@ -140,7 +140,7 @@ puc_probe_ilr(struct puc_softc *sc, struct resource *res)
case PUC_ILR_TYPE_DIGI:
sc->ilr_st = rman_get_bustag(res);
sc->ilr_sh = rman_get_bushandle(res);
- for (i = 0; i < 2; i++) {
+ for (i = 0; i < 2 && sc->sc_desc->ilr_offset[i] != 0; i++) {
t1 = bus_space_read_1(sc->ilr_st, sc->ilr_sh,
sc->sc_desc->ilr_offset[i]);
t1 = ~t1;
@@ -353,7 +353,7 @@ puc_ilr_read(struct puc_softc *sc)
mask = 0;
switch (sc->sc_desc->ilr_type) {
case PUC_ILR_TYPE_DIGI:
- for (i = 1; i >= 0; i--) {
+ for (i = 1; i >= 0 && sc->sc_desc->ilr_offset[i] != 0; i--) {
mask = (mask << 8) | (bus_space_read_1(sc->ilr_st,
sc->ilr_sh, sc->sc_desc->ilr_offset[i]) & 0xff);
}
diff --git a/sys/dev/puc/pucdata.c b/sys/dev/puc/pucdata.c
index faed396..04dbef0 100644
--- a/sys/dev/puc/pucdata.c
+++ b/sys/dev/puc/pucdata.c
@@ -1008,6 +1008,40 @@ const struct puc_device_description puc_devices[] = {
},
},
+ { "IC Book Labs Ironclad x8 Lite",
+ NULL,
+ { 0xb00c, 0x041c, 0, 0 },
+ { 0xffff, 0xffff, 0, 0 },
+ {
+ { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }
+ },
+ PUC_ILR_TYPE_DIGI, { 0x07 },
+ },
+
+ { "IC Book Labs Ironclad x8 Pro",
+ NULL,
+ { 0xb00c, 0x051c, 0, 0 },
+ { 0xffff, 0xffff, 0, 0 },
+ {
+ { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ },
+ { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }
+ },
+ PUC_ILR_TYPE_DIGI, { 0x07 },
+ },
+
{ "IC Book Labs Dreadnought x16 Lite",
NULL,
{ 0xb00c, 0x091c, 0, 0 },
OpenPOWER on IntegriCloud