Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754815Ab2KZJMO (ORCPT ); Mon, 26 Nov 2012 04:12:14 -0500 Received: from mail-ia0-f174.google.com ([209.85.210.174]:42557 "EHLO mail-ia0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753169Ab2KZJMM (ORCPT ); Mon, 26 Nov 2012 04:12:12 -0500 MIME-Version: 1.0 In-Reply-To: References: Date: Mon, 26 Nov 2012 17:12:11 +0800 Message-ID: Subject: Re: The ethernet driver doesn't get probed From: "Li, Zhen-Hua" To: Woody Wu Cc: linux-kernel@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4318 Lines: 103 Goto /sys/ to find it. The devices are listed in it. On Mon, Nov 26, 2012 at 5:06 PM, Woody Wu wrote: > On 2012-11-26, Li, Zhen-Hua wrote: >> First you should run "lspci -n" to check your device ID and vendor >> ID, and make sure they are in the map list in >> /lib/modules//modules.alias . >> > > For some reasons, I cannot build the driver as loadable modules since I > have to get network before mount the root filesystem. And, this > ethernet controller is not PCI interface, so probabaly the lspci won't > help. Is there any other way to get the device ID and vendor ID? > Thanks. > >> >> On Mon, Nov 26, 2012 at 3:47 PM, Belisko Marek >> wrote: >>> On Mon, Nov 26, 2012 at 7:59 AM, Woody Wu >>> wrote: >>>> Hi, List >>>> >>>> I enabled an ax88796 Ethernet driver in the kernel configuration >>>> menu. Kernel version is 3.4.19. The arch is ARM and the system type >>>> is Samsung S3C2410. >>>> >>>> In my debugging, I found the probe function of the driver did not >>>> get invoked. >>> Did you define platform data and platform device in board file? See: >>> arch/arm/mach-pxa/colibri-pxa300.c (line ~87) >>>> >>>> This driver is declared as platform_driver >>>> >>>> static struct platform_driver axdrv = { .driver = { .name >>>> = "ax88796", .owner = THIS_MODULE, }, .probe = >>>> ax_probe, .remove = ax_remove, .suspend = ax_suspend, >>>> .resume = ax_resume, }; >>>> >>>> module_platform_driver(axdrv); >>>> >>>> So, its driver init function actually goes through >>>> platform_driver_register() and then driver_register(), which >>>> eventually call driver_attach() trying to attach the driver to the >>>> "platform" bus. But, on the platform bus, there is no any device >>>> that can match the ax88796 driver, hence the driver failed in >>>> attaching. >>>> >>>> I discovered the full list of devices found on the platform bus: >>>> >>>> s3c2410-ohci, s3c2410-lcd, s3c2410-wdt, s3c2410-i2c, >>>> s3c24xx-iis, s3c2410-nand, s3c24xx_led, s3c2410-uart, >>>> >>>> You see, in the list, there is no a device looks like ax88796. All >>>> these already existed devices on the platform bus are build-in >>>> peripherals on the SoC of s3c2410, they are compiled into the code >>>> by enabling some kernel configuration options. >>>> >>>> My question is, in terms of Linux driver technology, how to enable a >>>> non-PCI and not on-chip device driver? I think the ax_probe function >>>> must be called somehow, is this thinking right? If yes, I think >>>> before the driver get initialized, the corresponding device has to >>>> appear on the bus, but now it seems not. >>>> >>>> Thanks in advance. >>>> >>>> -- woody I can't go back to yesterday - because I was a different >>>> person then. >>>> >>>> -- To unsubscribe from this list: send the line "unsubscribe >>>> linux-kernel" in the body of a message to majordomo@vger.kernel.org >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>> Please read the FAQ at http://www.tux.org/lkml/ >>> >>> Cheers, >>> >>> mbe >>> >>> -- as simple and primitive as possible >>> ------------------------------------------------- Marek Belisko - >>> OPEN-NANDRA Freelance Developer >>> >>> Ruska Nova Ves 219 | Presov, 08005 Slovak Republic Tel: +421 915 052 >>> 184 skype: marekwhite twitter: #opennandra web: >>> http://open-nandra.com -- To unsubscribe from this list: send the >>> line "unsubscribe linux-kernel" in the body of a message to >>> majordomo@vger.kernel.org More majordomo info at >>> http://vger.kernel.org/majordomo-info.html Please read the FAQ at >>> http://www.tux.org/lkml/ > > > -- woody I can't go back to yesterday - because I was a different person > then. > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/