[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAEk7JKbiebeMSesn8=yGEg65VY-05+Mzv8tcrVmvCzTOUD6Z2w@mail.gmail.com>
Date: Mon, 26 Nov 2012 17:12:11 +0800
From: "Li, Zhen-Hua" <lizhenhua.dev@...il.com>
To: Woody Wu <narkewoody@...il.com>
Cc: linux-kernel@...r.kernel.org
Subject: Re: The ethernet driver doesn't get probed
Goto /sys/ to find it. The devices are listed in it.
On Mon, Nov 26, 2012 at 5:06 PM, Woody Wu <narkewoody@...il.com> wrote:
> On 2012-11-26, Li, Zhen-Hua <lizhenhua.dev@...il.com> 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/<your-version>/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
>> <marek.belisko@...il.com> wrote:
>>> On Mon, Nov 26, 2012 at 7:59 AM, Woody Wu <narkewoody@...il.com>
>>> 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@...r.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@...r.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@...r.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists