[U-Boot-Users] there some thing wrong with my RTL8019 network driver

赵 包 zjrbhy at yahoo.com.cn
Tue Mar 13 07:58:09 CET 2007


I have ported U-Boot 1.1.5 on S3C44B0, it can run on my custom board now.
  but the rtl8019 network driver doesn't work.I want rtl8019  to work in 16bit mode.but U-Boot 1.1.5  only surpport 8bit mode.
  the physical level send function is in u-boot-1.1.5\drivers\rtl8019.c,I list below:
  extern int eth_send (volatile void *packet, int length)
{
 volatile unsigned char *p;
 unsigned int pn;
   pn = length;
 p = (volatile unsigned char *) packet;
   while (get_reg (RTL8019_COMMAND) == RTL8019_TRANSMIT);
   put_reg (RTL8019_REMOTESTARTADDRESS0, 0);
 put_reg (RTL8019_REMOTESTARTADDRESS1, RTL8019_TPSTART);
 put_reg (RTL8019_REMOTEBYTECOUNT0, (pn & 0xff));
 put_reg (RTL8019_REMOTEBYTECOUNT1, ((pn >> 8) & 0xff));
   put_reg (RTL8019_COMMAND, RTL8019_REMOTEDMAWR);
 while (pn > 0) {
  put_reg (RTL8019_DMA_DATA, *p++);
  pn--;
 }
   pn = length;
   while (pn < 60) { /*Padding */
  put_reg (RTL8019_DMA_DATA, 0);
  pn++;
 }
   while (!(get_reg (RTL8019_INTERRUPTSTATUS)) & 0x40);
   put_reg (RTL8019_INTERRUPTSTATUS, 0x40);
 put_reg (RTL8019_TRANSMITPAGE, RTL8019_TPSTART);
 put_reg (RTL8019_TRANSMITBYTECOUNT0, (pn & 0xff));
 put_reg (RTL8019_TRANSMITBYTECOUNT1, ((pn >> 8 & 0xff)));
 put_reg (RTL8019_COMMAND, RTL8019_TRANSMIT);
   return 0;
}
   
  since RTL8019 work in 8bit mode,the pointer "p"  in  "put_reg (RTL8019_DMA_DATA, *p++)" is  unsigned char  type.
   
  if I let RTL8019 work in 16bit mode,i think i should change the pointer "p"  to unsigned int type in order to transmit a 16bit word a time,then I run into a  byte alignment problem.since the argument "packet" isn't always a even number.
  how to solve the problem?
  and I wonder the RTL8019 receive data package through interrupt mode or polling mode ,I guess it work in polling mode,am I right?
   
  best regarts
  jinrong

 		
---------------------------------
 Mp3疯狂搜-新歌热歌高速下   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20070313/99367100/attachment.htm 


More information about the U-Boot mailing list