完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
k2 的Gigabit Ethernet (GbE) Switch Subsystem文档 关于 Serializer/Deserializer (SerDes) SGMII Boot Configuration Registers的偏移地址和基地址
让看数据手册,无法找到相关的详细文档。导致D:TIpdk_keystone2_3_00_03_15packagestiplatformevmk2hplatform_libsrcevmc66x_phy.c的CSL_SgmiiDefSerdesSetup函数全是寄存和偏移量的操作,不知道对应哪一个寄存器。 问题1:关于 Serializer/Deserializer (SerDes) SGMII Boot Configuration Registers的偏移地址和基地址是多少? 问题2:CSL_SgmiiDefSerdesSetup下对应的寄存器文档 问题3:我需要修改sgmii的PLL输入值,其控制寄存器的偏移地址和基地址是多少? |
|
相关推荐
2 个讨论
|
|
Table 3-169是KeyStone I的寄存器,你用的K2H 是KeyStone II. KeyStone II Serdes有专门的user guide.
K2上的SGMII SerDes只支持156.25MHz和125MHz的输入时钟,相应的PLL配置也是固定的。直接调用CSL函数就可以了,不需要去研究具体的PLL寄存器. 下面是一段代码供您参考: typedef struct[ CSL_SERDES_REF_CLOCK inputRefClock; float linkSpeed_GHz; /*the max link speed of all lanes at GHz*/ /*bit 0~3 control the endable/disable of 4 lanes. 0: disable; 1: enable*/ Uint32 laneEnableMask; Uint32 internalLoopbackDisableMask;] K2_GE_SerdesConfig;char * SerdesErrorStr[]=[ "SERDES no error", "SERDES error: invalid input reference clock speed!", "SERDES error: invalid link speed!"];/*Serdes initialization for Giga bit ethernet*/void K2_GE_Serdes_init(K2_GE_SerdesConfig * serdes_cfg, Uint32 uiBase_addr)[ int i; CSL_SERDES_LINK_RATE linkSpeed; CSL_SERDES_LANE_CTRL_RATE laneRateScale; Uint32 uiResult; // Disable pll before configuring the SerDes registers CSL_EthernetSerdesShutdown(uiBase_addr); if(serdes_cfg->linkSpeed_GHz== 1.25f) [ linkSpeed= CSL_SERDES_LINK_RATE_1p25G; laneRateScale = CSL_SERDES_LANE_QUARTER_RATE; //??? ] else printf("Error: link speed %.3fGbps is not supported by SGMIIn",serdes_cfg->linkSpeed_GHz); uiResult= CSL_EthernetSerdesInit(uiBase_addr, serdes_cfg->inputRefClock, linkSpeed); if(uiResult) printf(" %sn", SerdesErrorStr[uiResult]); for(i=0; i<4; i++) [ if((serdes_cfg->laneEnableMask>>i)&1) [ CSL_EthernetSerdesLaneConfig(uiBase_addr, serdes_cfg->inputRefClock, linkSpeed, i); ] ] CSL_EthernetSerdesComEnable(uiBase_addr); for(i=0; i<4; i++) [ if((serdes_cfg->laneEnableMask>>i)&1) [ uiResult= CSL_EthernetSerdesLaneEnable(uiBase_addr, i, (serdes_cfg->internalLoopbackDisableMask>>i)&1, laneRateScale); if(uiResult) printf(" lane %d error: invalid rate scalen", i); ] ] // Enable pll via the pll_ctrl 0x0014 CSL_EthernetSerdesPllEnable(uiBase_addr); // Wait the SerDes PLL lock while(CSL_SERDES_STATUS_PLL_NOT_LOCKED==K2_SerdesPLLGetStatus(uiBase_addr));#if 0 for(i=0; i<4; i++) [ if(((serdes_cfg->laneEnableMask>>i)&1)&&((serdes_cfg->internalLoopbackDisableMask>>i)&1)) [ while(CSL_SERDES_STATUS_PLL_NOT_LOCKED==K2_SerdesLaneGetStatus(uiBase_addr, i)); ] ]#endif] K2_GE_Serdes_init(&serdes_cfg, CSL_NETCP_SERDES_CFG_REGS); |
|
|
|
|
|
lkjljljlj 发表于 2018-7-24 10:35 您好,我使用的是K2e的评估板,运行的是masdk中的hello world例程,我运行后出现 Registration of the EMAC successful,waiting for link up .. Service status:DHCPC :Enables : :000 Service status DHCPC :Enables: :000 此后,console中就再也没有任何提示,程序一直在运行,不会自动停止。相关的寄存器中是error,无法读取。 请问,我需要修改哪些参数,才能正确运行程序,传输数据? 此外,如何修改DSP的IP配置模式(DHCP 或是手动)? 谢谢,期待您的回答 hitzhaoliangyu@126.com |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
684 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
600 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1055 浏览 1 评论
741 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
525 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
164浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
128浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
127浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
123浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
43浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 16:15 , Processed in 1.777042 second(s), Total 71, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号