From owner-freebsd-hardware@FreeBSD.ORG Sat Oct 29 14:00:00 2005 Return-Path: X-Original-To: freebsd-hardware@freebsd.org Delivered-To: freebsd-hardware@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 03F6916A41F for ; Sat, 29 Oct 2005 14:00:00 +0000 (GMT) (envelope-from rust@voliacable.com) Received: from el.volia.net (el.volia.net [82.144.192.38]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5C30C43D46 for ; Sat, 29 Oct 2005 13:59:58 +0000 (GMT) (envelope-from rust@voliacable.com) Received: from ip.82.144.214.37.dyn.sub-1-1.broadband.voliacable.com ([82.144.214.37]) by el.volia.net with esmtp (Exim 4.43 (FreeBSD)) id 1EVrFU-0004eP-IW for freebsd-hardware@freebsd.org; Sat, 29 Oct 2005 16:59:57 +0300 Date: Sat, 29 Oct 2005 14:00:00 +0100 From: Nick Savchenko X-Mailer: The Bat! (v1.62r) Personal X-Priority: 3 (Normal) Message-ID: <357420041.20051029140000@voliacable.com> To: freebsd-hardware@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: cdce driver doesn't work with Motorola SB4200 X-BeenThere: freebsd-hardware@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Nick Savchenko List-Id: General discussion of FreeBSD hardware List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Oct 2005 14:00:00 -0000 Hi. Recently I've installed FreeBSD (RELEASE-5.4), and I cannot get my USB cable modem working. The problem is that cdce driver doesn't determine MAC address correctly. Here is a corresponding part of dmesg log (full log and other info is in the end of the message): cdce0: Motorola Corporation SB4200 USB Cable Modem, rev 1.00/1.01, addr 2 cdce0: faking MAC address cdce0: Ethernet address: 2a:00:00:00:00:00 cdce0: if_start running deferred for Giant I've also tried driver from 6.0-RC1, but result was the same. Despite I'm not familiar with programming drivers for freebsd, I've explore a code a bit, and determined, that the problem is in a following line (from /sys/dev/usb/if_cdce.c). ue = (const usb_cdc_ethernet_descriptor_t *)usb_find_desc(dev, UDESC_INTERFACE, UDESCSUB_CDC_ENF); The expression in the right part of assignment returns 0, but it should return a pointer to a structure. I've tried to look into CDCEther Linux driver, but I have no experience with system programming, and unfamiliar with device specifications, so comparison of drivers didn't help to determine why things go wrong. Any help would be greatly appreciated. uname -a FreeBSD vatutin.emacs.no-ip.org 5.4-RELEASE FreeBSD 5.4-RELEASE #0: Sat Oct 29 12:05:21 EEST 2005 root@vatutin.emacs.no-ip.org:/usr/src/sys/i386/compile/GENERIC i386 dmesg Copyright (c) 1992-2005 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 5.4-RELEASE #0: Sat Oct 29 12:05:21 EEST 2005 root@vatutin.emacs.no-ip.org:/usr/src/sys/i386/compile/GENERIC Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Intel Celeron (634.78-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x683 Stepping = 3 Features=0x383f9ff real memory = 201240576 (191 MB) avail memory = 187248640 (178 MB) npx0: on motherboard npx0: INT 16 interface acpi0: on motherboard acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0xe408-0xe40b on acpi0 cpu0: on acpi0 acpi_throttle0: on cpu0 acpi_button0: on acpi0 pcib0: port 0xcf8-0xcff on acpi0 pci0: on pcib0 agp0: mem 0xf8000000-0xfbffffff at device 0.0 on pci0 pcib1: at device 1.0 on pci0 pci1: on pcib1 pci1: at device 0.0 (no driver attached) pcib2: at device 30.0 on pci0 pci2: on pcib2 pcm0: port 0xd800-0xd83f at device 12.0 on pci2 pcm0: isab0: at device 31.0 on pci0 isa0: on isab0 atapci0: port 0xb800-0xb80f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0 ata0: channel #0 on atapci0 ata1: channel #1 on atapci0 uhci0: port 0xb400-0xb41f irq 5 at device 31.2 on pci0 usb0: on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered pci0: at device 31.3 (no driver attached) uhci1: port 0xb000-0xb01f irq 9 at device 31.4 on pci0 usb1: on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered fdc0: port 0x3f7,0x3f2-0x3f5 irq 6 drq 2 on acpi0 fd0: <1440-KB 3.5" drive> on fdc0 drive 0 ppc0: port 0x778-0x77f,0x378-0x37f irq 7 drq 3 on acpi0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/9 bytes threshold ppbus0: on ppc0 plip0: on ppbus0 lpt0: on ppbus0 lpt0: Interrupt-driven port ppi0: on ppbus0 sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 sio0: type 16550A sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 sio1: type 16550A atkbdc0: port 0x64,0x60 irq 1 on acpi0 atkbd0: irq 1 on atkbdc0 kbd0 at atkbd0 psm0: irq 12 on atkbdc0 psm0: model IntelliMouse, device ID 3 orm0: at iomem 0xc0000-0xcffff on isa0 pmtimer0 on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 cdce0: Motorola Corporation SB4200 USB Cable Modem, rev 1.00/1.01, addr 2 Couldn't find usb_find_desc cdce0: faking MAC address cdce0: Ethernet address: 2a:00:00:00:00:00 cdce0: if_start running deferred for Giant Timecounter "TSC" frequency 634775948 Hz quality 800 Timecounters tick every 10.000 msec ad0: 9768MB [19846/16/63] at ata0-master UDMA66 acd0: CDRW at ata1-master PIO4 acd1: CDROM at ata1-slave PIO4 Mounting root from ufs:/dev/ad0s2a -- Best regards, Nick Savchenko