The matcd driver isn't used at all. "dmesg | grep matcd" doesn't output anything. Fix: It seems it's just a typo in i386/isa/matcd.c. This patch fix the problem : How-To-Repeat: Add a line "device matcd0 at isa? port ?", compile, install, reboot and "dmesg | grep matcd".
I had the same problem here. I don't think it's exactly a typo (see the author's note <20> in the source file), but thanks for providing a solution. For someone who understands this stuff better than me: I have compiled a kernel with 'options BUS_DEBUG', and have attached some excerpts from dmesg, (1) with Remi's patch, and (2) unmodified kernel [except for a few additional printf's of my own] Looking at the unmodified kernel: when device_add_child_ordered is called, it is asking for 'matcd' rather than 'matcdc' and fails. Regards, Brian Candler. --------------------------------------------------------------------------- (1) Working: FreeBSD 4.0-RELEASE plus Remi's patch ("matcdc" -> "matcd" in line 499) ... May 14 21:01:25 karma /kernel: device_add_child_ordered:658: isa at nexus with order 0 as unit 0 May 14 21:01:25 karma /kernel: make_device:590: isa at nexus as unit 0 May 14 21:01:25 karma /kernel: devclass_find_internal:251: looking for isa May 14 21:01:25 karma /kernel: devclass_add_device:533: (null) in devclass isa May 14 21:01:25 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass isa May 14 21:01:25 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass isa May 14 21:01:25 karma /kernel: devclass_find_driver_internal:393: isa in devclass nexus May 14 21:01:25 karma /kernel: device_probe_child:772: Trying isa May 14 21:01:25 karma /kernel: [Entered isa_probe] May 14 21:01:25 karma /kernel: devclass_find_internal:251: looking for isa May 14 21:01:25 karma /kernel: devclass_add_driver:296: matcd May 14 21:01:25 karma /kernel: compile_methods:216: matcd has 2 methods, wasting 152 bytes May 14 21:01:25 karma /kernel: devclass_find_internal:251: looking for matcd May 14 21:01:25 karma /kernel: devclass_find_internal:259: matcd not found, creating May 14 21:01:25 karma /kernel: (wrap old_driver matcd) May 14 21:01:25 karma /kernel: isa0: <ISA bus> on motherboard May 14 21:01:25 karma /kernel: [Entered isa_attach] May 14 21:01:25 karma /kernel: [Entering isa_probe_children] May 14 21:01:25 karma /kernel: device_add_child_ordered:658: fdc at isa with order 1 as unit 0 ... May 14 21:01:28 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass ppc May 14 21:01:28 karma /kernel: device_add_child_ordered:658: matcd at isa with order 1 as unit 0 May 14 21:01:28 karma /kernel: make_device:590: matcd at isa as unit 0 May 14 21:01:28 karma /kernel: devclass_find_internal:251: looking for matcd May 14 21:01:28 karma /kernel: devclass_add_device:533: (null) in devclass matcd May 14 21:01:28 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass matcd May 14 21:01:28 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass matcd May 14 21:01:28 karma /kernel: device_add_child_ordered:658: ex at isa with order 1 as unit -1 ... May 14 21:01:32 karma /kernel: plip0: <PLIP network interface> on ppbus0 May 14 21:01:32 karma /kernel: devclass_find_driver_internal:393: matcd in devclass isa May 14 21:01:32 karma /kernel: device_probe_child:772: Trying matcd May 14 21:01:32 karma /kernel: [Entering isa_compat_probe] May 14 21:01:32 karma /kernel: [op->driver->name=matcd, dvp->id_iobase=0230] May 14 21:01:32 karma /kernel: [Probe: Yes] May 14 21:01:32 karma /kernel: < In matcd_probe >> May 14 21:01:32 karma /kernel: matcdc0: In probe i 0 y 4 port 230 May 14 21:01:32 karma /kernel: matcd0: size of port_hints 32 May 14 21:01:32 karma /kernel: < In doprobe(560,0) >> May 14 21:01:32 karma /kernel: matcdc0: Probe found something May 14 21:01:32 karma /kernel: matcd - Matsushita (Panasonic) CD-ROM Driver by FDIV, Version 1(26) 18-Oct-95 May 14 21:01:32 karma /kernel: matcd0 at port 0x230-0x233 on isa0 May 14 21:01:32 karma /kernel: matcdc: Attach dev c06d0540 id_unit 0 May 14 21:01:32 karma /kernel: matcdc0 Host interface type 0 May 14 21:01:32 karma /kernel: matcd0: Status byte 82 matcd0: [CR-5630.75] May 14 21:01:32 karma /kernel: matcd0: driver is using old-style compatability shims May 14 21:01:32 karma /kernel: devclass_find_driver_internal:393: ex in devclass isa May 14 21:01:32 karma /kernel: device_probe_child:772: Trying ex ... --------------------------------------------------------------------------- (2) Not working: FreeBSD 4.0-RELEASE unpatched ... May 14 21:07:50 karma /kernel: device_add_child_ordered:658: isa at nexus with order 0 as unit 0 May 14 21:07:50 karma /kernel: make_device:590: isa at nexus as unit 0 May 14 21:07:50 karma /kernel: devclass_find_internal:251: looking for isa May 14 21:07:50 karma /kernel: devclass_add_device:533: (null) in devclass isa May 14 21:07:50 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass isa May 14 21:07:50 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass isa May 14 21:07:50 karma /kernel: devclass_find_driver_internal:393: isa in devclass nexus May 14 21:07:50 karma /kernel: device_probe_child:772: Trying isa May 14 21:07:50 karma /kernel: [Entered isa_probe] May 14 21:07:50 karma /kernel: devclass_find_internal:251: looking for isa May 14 21:07:50 karma /kernel: devclass_add_driver:296: matcdc May 14 21:07:50 karma /kernel: compile_methods:216: matcdc has 2 methods, wasting 152 bytes May 14 21:07:50 karma /kernel: devclass_find_internal:251: looking for matcdc May 14 21:07:50 karma /kernel: devclass_find_internal:259: matcdc not found, creating May 14 21:07:50 karma /kernel: (wrap old_driver matcdc) May 14 21:07:50 karma /kernel: isa0: <ISA bus> on motherboard May 14 21:07:50 karma /kernel: [Entered isa_attach] May 14 21:07:50 karma /kernel: [Entering isa_probe_children] May 14 21:07:50 karma /kernel: device_add_child_ordered:658: fdc at isa with order 1 as unit 0 ... May 14 21:07:53 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass ppc May 14 21:07:53 karma /kernel: device_add_child_ordered:658: matcd at isa with order 1 as unit 0 May 14 21:07:53 karma /kernel: make_device:590: matcd at isa as unit 0 May 14 21:07:53 karma /kernel: devclass_find_internal:251: looking for matcd May 14 21:07:53 karma /kernel: devclass_find_internal:259: matcd not found, creating May 14 21:07:53 karma /kernel: devclass_add_device:533: (null) in devclass matcd May 14 21:07:53 karma /kernel: devclass_alloc_unit:483: unit 0 in devclass matcd May 14 21:07:53 karma /kernel: devclass_alloc_unit:522: now: unit 0 in devclass matcd May 14 21:07:53 karma /kernel: device_add_child_ordered:658: ex at isa with order 1 as unit -1 ... May 14 21:07:57 karma /kernel: plip0: <PLIP network interface> on ppbus0 May 14 21:07:57 karma /kernel: devclass_find_driver_internal:393: matcd in devclass isa May 14 21:07:57 karma /kernel: devclass_find_driver_internal:400: not found May 14 21:07:57 karma /kernel: devclass_find_driver_internal:393: ex in devclass isa May 14 21:07:57 karma /kernel: device_probe_child:772: Trying ex ...
State Changed From-To: open->closed Superseded by kern/20296.
The above patch also works on FreeBSD 4.1 without modification. Apply with "patch -i matcd.c patchfile" to ignore whitespace differences. Paul
Sorry, that should have been a lower case ell (NOT eye): patch -l matcd.c patchfile" to ignore whitespace differences. Paul