diff options
author | sobomax <sobomax@FreeBSD.org> | 2003-04-30 22:15:47 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2003-04-30 22:15:47 +0000 |
commit | 660f8f5516052f5c6dd9bb44fcd61926ef0f7855 (patch) | |
tree | cbc9889974aef9fd663a4483399ec2a449b463de /sys | |
parent | f95bce2b0560d5d9f6018550a1807da347e7e788 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/dev/puc/puc.c | 4 | ||||
-rw-r--r-- | sys/dev/puc/pucdata.c | 34 |
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 }, |