s3c2410 与cs8900的问题

[复制链接]
5396|6
 楼主| hero415 发表于 2007-12-13 16:28 | 显示全部楼层 |阅读模式
各位,大虾,我做了一块2410的板,s3c2410&nbsp;与cs8900的电路和三星开发板一样,<br />s3c2410&nbsp;a0-a19-----------cs8900&nbsp;sa0-sa19<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d0-d15-----------&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d0-d15<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a24做IO/MEM方式的控制线。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ngcs3-------------------alen<br />现在有些疑惑,<br />1.我在初始化s3c2410的时候,将bank3初始化为8位还是16位数据宽度呢?<br />2.初始成16位,好像应该将s3c2410的a1-a20和cs8900的sa0-sa19接在一起吧?<br />3.初始成8位数据宽度,单字节操作又很麻烦?<br />不知道各位是如何处理的,谢谢啦!
阿南 发表于 2007-12-13 18:46 | 显示全部楼层

参考一下:

void&nbsp;Test_CS8900(void){<br />&nbsp;&nbsp;&nbsp;&nbsp;rBWSCON&nbsp;=&nbsp;rBWSCON&nbsp;&&nbsp;~(0xf&nbsp;&lt&lt&nbsp;12)&nbsp;|&nbsp;(0xd&nbsp;&lt&lt&nbsp;12);//nGCS3=nUB/nLB(sSBHE),nWAIT,16-bit<br />&nbsp;&nbsp;&nbsp;&nbsp;rBANKCON3&nbsp;=&nbsp;(0&nbsp;&lt&lt&nbsp;13)&nbsp;|&nbsp;(3&nbsp;&lt&lt&nbsp;11)&nbsp;|&nbsp;(7&nbsp;&lt&lt&nbsp;8)&nbsp;|&nbsp;(1&nbsp;&lt&lt&nbsp;6)&nbsp;|&nbsp;(0&nbsp;&lt&lt&nbsp;4)&nbsp;|&nbsp;(3&nbsp;&lt&lt&nbsp;2)&nbsp;|&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;EthPPP&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_Printf(&quot;CS8900A&nbsp;ChipID1&nbsp;is&nbsp;%x
&quot;,&nbsp;EthPPD0);//打印ID<br />&nbsp;&nbsp;&nbsp;&nbsp;EthPPP&nbsp;=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_Printf(&quot;CS8900A&nbsp;ChipID2&nbsp;is&nbsp;%x
&quot;,&nbsp;EthPPD0);<br />}<br />
 楼主| hero415 发表于 2007-12-14 09:23 | 显示全部楼层

thanks

谢谢阿南斑竹。我这就试一下。
lvivik 发表于 2007-12-14 14:20 | 显示全部楼层

请教

看到你的笔记了。我现在正在研究s3c2410板子上的vivi,内核,文件系统的移植,由于板子是我们自己做的,不是公司提供的开发板,所以在移植过程中出现了很多的问题,还请多多阿南斑竹多多指教啊!!<br />我们硬件的设计跟原开发板差不多,没有usb,我在移植的过程中用的是开发板中提供的vivi,内核镜像和文件系统镜像,但是启动的时候不断的报错说找不到usb,于是我在源程序中将关系usb存储设备的注释掉了,结果编译后,移植,启动报错:
 楼主| hero415 发表于 2007-12-18 09:45 | 显示全部楼层

还是不行啊,老大

这几天看了一些资料,<br />反复试过了各种设置,如总线宽度,时钟周期,cache等,还是读不出来,郁闷!代码如下,请各位指点一下小弟。一般情况显示id=0x62,真郁闷。<br /><br />#define&nbsp;CS8900_BASE&nbsp;(0x18000000+1&lt&lt24+0x0300)<br /><br />#define&nbsp;CS8900_REG&nbsp;U16<br />#define&nbsp;CS8900_OFF&nbsp;0x02<br />&nbsp;&nbsp;<br />#define&nbsp;CS8900_BUS16_0&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x00)<br />#define&nbsp;CS8900_BUS16_1&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x01&lt&lt1)<br /><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;#define&nbsp;CS8900_RTDATA&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x00*CS8900_OFF)<br />#define&nbsp;CS8900_TxCMD&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x02*CS8900_OFF)<br />#define&nbsp;CS8900_TxLEN&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x03*CS8900_OFF)<br />#define&nbsp;CS8900_ISQ&nbsp;&nbsp;&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x04*CS8900_OFF)<br />#define&nbsp;CS8900_PPTR&nbsp;&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x05*CS8900_OFF)<br />#define&nbsp;CS8900_PDATA&nbsp;&nbsp;*(volatile&nbsp;U16&nbsp;*)(CS8900_BASE+0x06*CS8900_OFF)<br />#define&nbsp;ISQ_RxEvent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x04<br />#define&nbsp;ISQ_TxEvent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x08<br />#define&nbsp;ISQ_BufEvent&nbsp;&nbsp;&nbsp;&nbsp;0x0C<br />#define&nbsp;ISQ_RxMissEvent&nbsp;0x10<br />#define&nbsp;ISQ_TxColEvent&nbsp;&nbsp;0x12<br />#define&nbsp;ISQ_EventMask&nbsp;&nbsp;&nbsp;0x3F<br /><br />/*&nbsp;bus&nbsp;interface&nbsp;registers&nbsp;*/<br />#define&nbsp;PP_ChipID&nbsp;&nbsp;&nbsp;&nbsp;0x0000&nbsp;&nbsp;/*&nbsp;Chip&nbsp;identifier&nbsp;-&nbsp;must&nbsp;be&nbsp;0x630E&nbsp;*/<br />#define&nbsp;PP_ChipRev&nbsp;&nbsp;&nbsp;0x0002&nbsp;&nbsp;/*&nbsp;Chip&nbsp;revision,&nbsp;model&nbsp;codes&nbsp;*/<br /><br /><br /><br />/*&nbsp;packet&nbsp;page&nbsp;register&nbsp;access&nbsp;functions&nbsp;*/<br /><br />unsigned&nbsp;short&nbsp;get_reg_init_bus&nbsp;(int&nbsp;regno)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;force&nbsp;16&nbsp;bit&nbsp;busmode&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;volatile&nbsp;unsigned&nbsp;short&nbsp;c;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;CS8900_BUS16_0;<br />&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;CS8900_BUS16_1;<br />&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;CS8900_BUS16_0;<br />&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;CS8900_BUS16_1;<br />&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;=&nbsp;CS8900_BUS16_0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;CS8900_PPTR&nbsp;=&nbsp;regno;<br />&nbsp;&nbsp;&nbsp;&nbsp;c=(unsigned&nbsp;short)&nbsp;CS8900_PDATA;<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_Printf(&quot;
cs8900a&nbsp;id=%x&quot;,c);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(c)&nbsp;;<br />}<br /><br />unsigned&nbsp;short&nbsp;get_reg&nbsp;(int&nbsp;regno)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;CS8900_PPTR&nbsp;=&nbsp;regno;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(unsigned&nbsp;short)&nbsp;CS8900_PDATA;<br />}<br /><br /><br />void&nbsp;put_reg&nbsp;(int&nbsp;regno,&nbsp;unsigned&nbsp;short&nbsp;val)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;CS8900_PPTR&nbsp;=&nbsp;regno;<br />&nbsp;&nbsp;&nbsp;&nbsp;CS8900_PDATA&nbsp;=&nbsp;val;<br />}<br /><br /><br />int&nbsp;CMDnetid(int&nbsp;argc,&nbsp;char&nbsp;*argv[])<br />{<br />//&nbsp;&nbsp;&nbsp;&nbsp;rBWSCON&nbsp;=&nbsp;rBWSCON&nbsp;&&nbsp;~(0xf&nbsp;&lt&lt&nbsp;12)&nbsp;|&nbsp;(0x09&lt&lt&nbsp;12);//nGCS3=nUB/nLB(sSBHE),nWAIT,16-bit<br />//&nbsp;&nbsp;&nbsp;&nbsp;rBANKCON3&nbsp;=&nbsp;(0&nbsp;&lt&lt&nbsp;13)&nbsp;|&nbsp;(3&nbsp;&lt&lt&nbsp;11)&nbsp;|&nbsp;(7&nbsp;&lt&lt&nbsp;8)&nbsp;|&nbsp;(1&nbsp;&lt&lt&nbsp;6)&nbsp;|&nbsp;(0&nbsp;&lt&lt&nbsp;4)&nbsp;|&nbsp;(3&nbsp;&lt&lt&nbsp;2)&nbsp;|&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_Printf(&quot;
mmu&nbsp;init&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;MMU_Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rBWSCON=(rBWSCON&nbsp;&&nbsp;0xffff0fff)&nbsp;|0x00009000;<br />&nbsp;&nbsp;&nbsp;&nbsp;rBANKCON3=0x00000700;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(get_reg_init_bus&nbsp;(PP_ChipID)&nbsp;!=&nbsp;0x630e)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uart0_Printf&nbsp;(&quot;
CS8900&nbsp;Ethernet&nbsp;chip&nbsp;not&nbsp;found?!&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uart0_Printf&nbsp;(&quot;
CS8900&nbsp;Ethernet&nbsp;chip&nbsp;have&nbsp;found!&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}
 楼主| hero415 发表于 2007-12-18 14:42 | 显示全部楼层

这一段代码,可以了

#define&nbsp;CS8900_BASE&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;unsigned&nbsp;short*)0x19000000)<br />#define&nbsp;EthIOAddr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;unsigned&nbsp;short*)0x19000300)<br />#define&nbsp;EthPPP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;unsigned&nbsp;short*)0x1900030a)<br />#define&nbsp;EthPPD0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(*(volatile&nbsp;unsigned&nbsp;short*)0x1900030c)<br />void&nbsp;Test_CS8900(void){<br />&nbsp;&nbsp;&nbsp;&nbsp;rBWSCON&nbsp;=&nbsp;rBWSCON&nbsp;&&nbsp;~(0xf&nbsp;&lt&lt&nbsp;12)&nbsp;|&nbsp;(0xd&nbsp;&lt&lt&nbsp;12);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//nGCS3=nUB/nLB(sSBHE),nWAIT,16-bit<br />&nbsp;&nbsp;&nbsp;&nbsp;rBANKCON3&nbsp;=&nbsp;(0&nbsp;&lt&lt&nbsp;13)&nbsp;|&nbsp;(3&nbsp;&lt&lt&nbsp;11)&nbsp;|&nbsp;(7&nbsp;&lt&lt&nbsp;8)&nbsp;|&nbsp;(1&nbsp;&lt&lt&nbsp;6)&nbsp;|&nbsp;(0&nbsp;&lt&lt&nbsp;4)&nbsp;|&nbsp;(3&nbsp;&lt&lt&nbsp;2)&nbsp;|&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;EthPPP&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_Printf(&quot;CS8900A&nbsp;ChipID1&nbsp;is&nbsp;%x
&quot;,&nbsp;EthPPD0);//打印ID<br />&nbsp;&nbsp;&nbsp;&nbsp;EthPPP&nbsp;=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;Uart_Printf(&quot;CS8900A&nbsp;ChipID2&nbsp;is&nbsp;%x
&quot;,&nbsp;EthPPD0);<br />}<br />在论坛里搜了一下,用阿南斑竹的一小段代码,可以读出id1=630e,id2=a00,<br />但是根据手册,id2的值有点对不上,<br />B&nbsp;version&nbsp;0&nbsp;0111=&gtID2=0700<br />C&nbsp;version&nbsp;0&nbsp;1000=&gtID2=0800<br />D&nbsp;version&nbsp;0&nbsp;1001=&gtID2=0900<br />有点奇怪,不知道是手册有误,还是最新其他版本?
阿南 发表于 2007-12-18 16:45 | 显示全部楼层

re lvivik:好像给您回过邮件了吧

re&nbsp;hero415:id2=a00,应该是正确的,其它版本的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部