| Summary: | [digi] [patch] Digiboard PC/Xem fails to initialize when using digi module (BIOS boot failed (0x00 != 0x4447)) | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Base System | Reporter: | Cyrill Shevchuk <cyrill> | ||||
| Component: | kern | Assignee: | Andre Oppermann <andre> | ||||
| Status: | Closed FIXED | ||||||
| Severity: | Affects Only Me | ||||||
| Priority: | Normal | ||||||
| Version: | 5.1-RELEASE | ||||||
| Hardware: | Any | ||||||
| OS: | Any | ||||||
| Attachments: |
|
||||||
Responsible Changed From-To: freebsd-bugs->andre Take over. State Changed From-To: open->analyzed I'll get my Digi/Xem card out of the closet this week and test the patch. State Changed From-To: analyzed->patched Patch committed in sys/dev/digi/digi.c rev. 1.59. Fixed in HEAD and RELENG_7, needs MFC of sys/dev/digi/digi.c 1.59 to RELENG_6. Author: andre Date: Sat Aug 14 22:49:07 2010 New Revision: 211321 URL: http://svn.freebsd.org/changeset/base/211321 Log: MFC r150132: Increase boot-time DigiBIOS initialization timeout to allow for a larger number of chained port modules. PR: kern/55018 Submitted by: Cyrill Shevchuk <cyrill at cyrills.net> Modified: stable/6/sys/dev/digi/digi.c Modified: stable/6/sys/dev/digi/digi.c ============================================================================== --- stable/6/sys/dev/digi/digi.c Sat Aug 14 22:35:20 2010 (r211320) +++ stable/6/sys/dev/digi/digi.c Sat Aug 14 22:49:07 2010 (r211321) @@ -360,7 +360,7 @@ digi_init(struct digi_softc *sc) DLOG(DIGIDB_INIT, (sc->dev, "BIOS started after %d us\n", i)); for (i = 0; vW(ptr) != *(u_short *)"GD"; i++) { - if (i > 2*hz) { + if (i > 5*hz) { log(LOG_ERR, "digi%d: BIOS boot failed " "(0x%02x != 0x%02x)\n", sc->res.unit, vW(ptr), *(u_short *)"GD"); _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" State Changed From-To: patched->closed Final MFC done. |
Module digi.ko can't initialize Digiboard PC/Xem ISA multiport serial card on old Pentium-100MHz machine. Error message during boot or manual module loading: digi0: BIOS boot failed (0x00 != 0x4447) Fix: Period given to digiboard bios to run is too small. In current version of sys/dev/digi/digi.c it is 2 * hz ticks, actually it takes my card a little longer to initialize (logged with default hz=100 value): digi0: probing on isa bus digi0: isa? port 0x104 mem 0xd0000 digi0: got reset after 0 iterations digi0: board type is 0xf5 digi0: Probe returns -10 digi0: probing on isa bus digi0: isa? port 0x104 mem 0xd0000 digi0: got reset after 0 iterations digi0: board type is 0xf5 digi0: Probe returns -10 digi0 at port 0x104-0x107 iomem 0xd0000-0xd7fff on isa0 digi0: attaching digi0: Checking card type digi0: got reset after 0 iterations digi0: board type is 0xf5 digi0: internal memory segment 0x0 digi0: got reset after 0 iterations digi0: short memory test digi0: 1st memory test ok digi0: 2nd memory test ok digi0: 3rd memory test ok digi0: Got init reset after 0 us digi0: BIOS uploaded digi0: BIOS started after 0 us digi0: BIOS booted after 215 iterations digi0: Loading FEP/OS digi0: FEP/OS loaded digi0: FEP/OS started after 3 iterations digi0: Digiboard PC/Xem, 64 ports found digi1: probing on isa bus digi1: 0x534: Invalid i/o address digi1: probing on isa bus digi1: probing on isa bus digi1: 0xf00: Invalid i/o address digi1: probing on isa bus digi1: 0x330: Invalid i/o address digi1: probing on isa bus digi1: io address not given digi1: probing on isa bus digi1: 0x061: Invalid i/o address digi1: probing on isa bus digi1: io address not given Suggested patch to sys/dev/digi/digi.c (version 1.34): How-To-Repeat: 1. Apply following patch to enable verbose init process: --- sys/dev/digi/digi.c.orig Tue Jul 29 09:36:38 2003 +++ sys/dev/digi/digi.c Sun Jul 27 14:21:35 2003 @@ -108,7 +108,7 @@ static struct con_bios *con_bios_list; devclass_t digi_devclass; static char driver_name[] = "digi"; -unsigned digi_debug = 0; +unsigned digi_debug = 1; static struct speedtab digispeedtab[] = { { 0, 0}, /* old (sysV-like) Bx codes */ 2. Place these lines in /etc/make.conf: .if ${.CURDIR} == /usr/src/sys/modules/digi/digi CFLAGS+= -DDEBUG .endif 3. Recompile digi.ko module and load it: # cd /usr/src/sys/modules/digi # make cleandir && make obj && make depend && make # cp digi/digi.ko /boot/kernel # kldload digi digi0: probing on isa bus digi0: isa? port 0x104 mem 0xd0000 digi0: got reset after 0 iterations digi0: board type is 0xf5 digi0: Probe returns -10 digi0: probing on isa bus digi0: isa? port 0x104 mem 0xd0000 digi0: got reset after 0 iterations digi0: board type is 0xf5 digi0: Probe returns -10 digi0 at port 0x104-0x107 iomem 0xd0000-0xd7fff on isa0 digi0: attaching digi0: Checking card type digi0: got reset after 0 iterations digi0: board type is 0xf5 digi0: internal memory segment 0x0 digi0: got reset after 0 iterations digi0: short memory test digi0: 1st memory test ok digi0: 2nd memory test ok digi0: 3rd memory test ok digi0: Got init reset after 0 us digi0: BIOS uploaded digi0: BIOS started after 0 us digi0: BIOS boot failed (0x00 != 0x4447) digi1: probing on isa bus digi1: 0x534: Invalid i/o address digi1: probing on isa bus digi1: probing on isa bus digi1: 0xf00: Invalid i/o address digi1: probing on isa bus digi1: 0x330: Invalid i/o address digi1: probing on isa bus digi1: io address not given digi1: probing on isa bus digi1: 0x061: Invalid i/o address digi1: probing on isa bus digi1: io address not given