[U-Boot] driver

Kernux Zhang kernuxzhang at gmail.com
Thu Aug 15 07:05:24 CEST 2013


Hello,I have some trouble in my u-boot net driver. I use s3c2410a cpu and
ax88796lf 0838 net chip. I migrate the ax88796l driver, but it is not
work!  Follow is my startup info and env

U-Boot 2013.07 (Aug 15 2013 - 10:34:05)

CPUID: 32410002
FCLK:  202.800 MHz
HCLK:  101.400 MHz
PCLK:   50.700 MHz
DRAM:  64 MiB
WARNING: Caches not enabled
NAND:  64 MiB
In:    serial
Out:   serial
Err:   serial
Net:   ### ne2k_setup_driver
----------------0------------------
this is first
NE2000
KERNUX # print
baudrate=115200
bootdelay=5
ethact=NE2000
ethaddr=9e:c7:1e:c7:1e:c7
gatewayip=192.168.10.1
ipaddr=192.168.10.3
nand_erasesize=4000
nand_oobsize=10
nand_writesize=200
netmask=255.255.255.0
serverip=192.168.10.2
stderr=serial
stdin=serial
stdout=serial

Environment size: 280/131067 bytes

and when I use ping 192.168.10.3 , the result is


dp83902a_start
Using NE2000 device
dp83902a_send
TX prep page 64 len 64
 sg buf 33fecc40 len 0000002a
  ffff ffff ffff c79e c71e c71e 0608 0100 0008 0406 0100 c79e c71e c71e
a8c0 030a
  0000 0000 0000 a8c0 030a
  + 22 bytes of padding
dp83902a_start_xmit
Tx pkt 64 len 64

the procedure is dead in here, and I'm only to press the reset button to
force reset.I'm trace it and find it is in ne2000_base.c

static void
dp83902a_send(u8 *data, int total_len, u32 key) {
......

    /* Wait for DMA to complete */
    do {
        DP_IN(base, DP_ISR, isr);
    } while ((isr & DP_ISR_RDC) == 0);

......}

It seems that  the DMA never complete???? and there is no any stop flags,
so how it is stoped by itself?
please help, I don't have any ideas to solve this problem, this is my first
to migrate the net driver.I set the memory bus whith and other timer
register in lowlevel_init.S and all I could found method, but it is also
not work. My board is fine, I test it used vivi and linux, so please help
me!!!


More information about the U-Boot mailing list