NEC uPD72873

Christian Laursen xi at borderworlds.dk
Sat Jan 17 03:24:46 PST 2004


It seems we managed to buy a presently unsupported firewire pci card.

I upgraded to the latest -CURRENT and hoped to be lucky, but it seems
that it didn't have to be that easy. :)

This is the dmesg output of the card getting probed:

fwohci0: vendor=1033, dev=e7
fwohci0: <1394 Open Host Controller Interface> mem 0xe0800000-0xe0800fff irq 11 at device 11.0 on pci0
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channel is 4.
fwohci0: EUI64 00:00:4c:01:07:00:2a:01
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
fwohci0: FireWire init failed with err=6
device_probe_and_attach: fwohci0 attach returned 5

And this is the information from pciconf -lv:

none2 at pci0:11:0:        class=0x0c0010 card=0x00ce1033 chip=0x00e71033 rev=0x01 hdr=0x00
    vendor   = 'NEC Electronics Hong Kong'
    device   = 'uPD72873 IEEE1394 OHCI 1.1 2-port PHY-Link Ctrlr'
    class    = serial bus
    subclass = FireWire

Based on that, I tried to make the following change:

--- fwohcireg.h.orig	Sat Jan 17 12:15:36 2004
+++ fwohcireg.h	Sat Jan 17 12:17:18 2004
@@ -47,6 +47,7 @@
 #define		FW_DEVICE_UPD861	(0x0063 << 16)
 #define		FW_DEVICE_UPD871	(0x00ce << 16)
 #define		FW_DEVICE_UPD72870	(0x00cd << 16)
+#define		FW_DEVICE_UPD72873	(0x00e7 << 16)
 #define		FW_DEVICE_UPD72874	(0x00f2 << 16)
 #define		FW_DEVICE_TITSB22	(0x8009 << 16)
 #define		FW_DEVICE_TITSB23	(0x8019 << 16)
--- fwohci_pci.c.orig	Sat Jan 17 12:17:32 2004
+++ fwohci_pci.c	Sat Jan 17 12:18:39 2004
@@ -95,6 +95,10 @@
 		device_set_desc(dev, "NEC uPD72870");
 		return 0;
 	}
+	if (id == (FW_VENDORID_NEC | FW_DEVICE_UPD72873)) {
+		device_set_desc(dev, "NEC uPD72873");
+		return 0;
+	}
 	if (id == (FW_VENDORID_NEC | FW_DEVICE_UPD72874)) {
 		device_set_desc(dev, "NEC uPD72874");
 		return 0;


The dmesg output then changes to this:

fwohci0: <NEC uPD72873> mem 0xe0800000-0xe0800fff irq 11 at device 11.0 on pci0
fwohci0: OHCI version 1.10 (ROM=1)
fwohci0: No. of Isochronous channel is 4.
fwohci0: EUI64 00:00:4c:01:07:00:2a:01
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
fwohci0: FireWire init failed with err=6
device_probe_and_attach: fwohci0 attach returned 5

As I do not know much about firewire internals I'm not sure how to proceed from
here.

Are there any hopes of getting this card working?

Thanks in advance.

-- 
Best regards
    Christian Laursen


More information about the freebsd-firewire mailing list