硬件
主机侧
控制通道
SROM controller
无SFR寄存器(不用配置SROM)
内存范围 : 0x1800_0000 0x1FFF_FFFF 128MB SROMC Bank 1
硬件接口 : SRAM接口
数据通道
发数据, 控制通道先打开, DM9000A主动去某地址读
收数据, 填充好某地址 , 发送中断给 SOC
设备侧
控制通道
DM9000A = MAC + 内部PHY
DM9000A 也支持 MAC + 外部PHY
DM9000A + 水晶头座子
寄存器个数 : 46个
内存范围 :
无 (可以根据访问的地址来控制CMD线,从而来选中寻址端口)
但是有寻址端口
index port
data port
在 OK6410A 的电路图上 DM9000A 的 CMD 管脚 接了 S3C6440 的 XM0ADDR2
所以只要访问地址的 bit[2] 为 0 , 则 选中 index port
所以只要访问地址的 bit[2] 为 1 , 则 选中 data port
内部PHY的访问
通过MAC 的 0CH(地址) 和 0EH+0DH(数据) 来访问
内部PHY的地址是固定的,是 0b00001
支持内部phy和外部phy
外部phy的地址是33H的 bit[4:0]控制的
如果要接外部phy,则要遵从MII Management Interface format
数据通道
发数据, 控制通道先打开, DM9000A主动去某地址读,发送完 中断给SOC
收数据, 填充好某地址 , 发送中断给 SOC
软件
SRAM 接口 不需要初始化, 所以直接读写内存即可
此代码只是实现了 DM9000A 的 标识寄存器的 读取,并没有实现网络协议栈.
https: