lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAfyv35QOvgvH8xoMkE-S5Zf-9HF5Jb9X1EbMoi2FCcx1UMXNA@mail.gmail.com>
Date:	Mon, 26 Nov 2012 08:47:57 +0100
From:	Belisko Marek <marek.belisko@...il.com>
To:	Woody Wu <narkewoody@...il.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: The ethernet driver doesn't get probed

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/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ