Linux Driver for ENC28J60 and ARM9

Does anyone know if a linux driver (2.6 kernel) already exists for the Microchip ENC28J60 ? I’m trying to provide ethernet to an existing ARM9 embedded linux device using the Olimex ENC28J60-H dev board.

Thanks!

ARM9 with onboard Linux usually comes with it’s driver for an specific ethernet chip. I dont suspect that anybody has an driver under Linux for the ENC28J60. Plus the ENC28J60 uses an SPI interface, correct me if I’m wrong. Which is more intended for smaller microcontrollers, which ARM9 certainly arn’t. I’m sorry that I’ve to dissapoint you.

Have fun

I’ve got a working driver but haven’t had time to put the final pieces together and post it.

http://www.elinux.org/wiki/enc28j60

hi,

I have implemented enc28j60 driver file into the 2.6.24 kernel, but when Inside enc28j60 chipset init() api its giving the kernel panic and hangs the booting.Can you please suggest me to overcome this

This is the booting error code…

mxcintuart.0: ttymxc0 at MMIO 0x43f90000 (irq = 45) is a Freescale MXC

console [ttymxc0] enabled

mxcintuart.2: ttymxc2 at MMIO 0x5000c000 (irq = 18) is a Freescale MXC

mxcintuart.4: ttymxc4 at MMIO 0x43fb4000 (irq = 47) is a Freescale MXC

RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize

loop: module loaded

Inside enc28j60 Init

Inside enc28j60 Probe

enc28j60 spi1.0: enc28j60 Ethernet driver 1.01 loaded

Inside enc28j60 chipset init

Unable to handle kernel NULL pointer dereference at virtual address 00000000

pgd = c0004000

[00000000] *pgd=00000000

Internal error: Oops: 5 [#1] PREEMPT

Modules linked in:

CPU: 0 Not tainted (2.6.24.6 #42)

PC is at mxc_spi_buf_tx_u8+0x10/0x20

LR is at mxc_spi_transfer+0x70/0xb8

pc : [] lr : [] psr: 60000013

sp : c7cf5f10 ip : c7cf5f20 fp : c7cf5f1c

r10: c7cb8000 r9 : 00000000 r8 : c7cb8320

r7 : 00000001 r6 : c7c19cd0 r5 : c7cb8320 r4 : fc0a4000

r3 : 00000000 r2 : fc0a4000 r1 : c03e6960 r0 : c7cb8320

Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel

Control: 00e5387f Table: 80004000 DAC: 00000017

Process mxc_spi.0 (pid: 78, stack limit = 0xc7cf4260)

Stack: (0xc7cf5f10 to 0xc7cf6000)

5f00: c7cf5f3c c7cf5f20 c021ef30 c021eba0

5f20: c7c19cd0 c7c19cf4 00000000 c7cf4000 c7cf5f74 c7cf5f40 c021e8cc c021eecc

rjsiva:
hi,

I have implemented enc28j60 driver file into the 2.6.24 kernel, but when Inside enc28j60 chipset init() api its giving the kernel panic and hangs the booting.Can you please suggest me to overcome this

This is the booting error code…

Inside enc28j60 chipset init

Unable to handle kernel NULL pointer dereference at virtual address

at some point in your code you are referencing a variable that is null.

you might try upgrading your kernel to 2.6.25 which includes the enc28j60 based on my original 2.4 kernel driver.

if you are stuck with the 2.6.24 kernel, it is easy to back port the enc28j60 driver from 2.6.25.