在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6717|回复: 15

[讨论] synopsys的USB3.0 VIP做device,如何动态配置设备地址

[复制链接]
发表于 2020-11-9 17:00:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 石头111 于 2020-11-9 17:05 编辑

在Consultant测试例程中,当xHCI向Device发送SET_ADDRESS请求后,VIP调用Callback机制对Device进行Reconfigure,将Device Address改为1,但在用UVM搭建VIP验证平台上,VIP未对Device进行重新配置,Device仍为默认地址0,故在Address Device Command完成之后Device无法接收来自Host的数据包。在Consultant测试例程中,当xHCI向Device发送SET_ADDRESS请求后,VIP调用Callback机制对Device进行Reconfigure,将Device Address改为1,但在用UVM搭建VIP验证平台上,VIP未对Device进行重新配置,Device仍为默认地址0,故在Address Device Command完成之后Device无法接收来自Host的数据包。
基于上述描述,能否通过重新实现VIP“数据传输完成”回调函数,在回调函数中进行设备地址的重新配置?或者有其他方法解决上述问题。

 楼主| 发表于 2020-11-10 08:56:18 | 显示全部楼层
image.png
 楼主| 发表于 2020-11-11 15:27:44 | 显示全部楼层
顶一下
发表于 2020-11-12 10:29:10 | 显示全部楼层
回调函数里面的set_dev_addr好像是设置的固定的addr吧,`SET_DATA_PROP_W_CHECK(`usb_vip_port_0, dev_cfg_handle, "device_address", 1, 0, 1, `FATAL_SEV)  应该需要修改下吧。 他这个vip的配置方式我都没看懂。。。
发表于 2020-11-12 10:52:22 | 显示全部楼层
应该是回调函数里面的set_dev_addr的问题吧,感觉地址他一直用的是一个固定的,可能就是0地址,这个vip的配置我也没看懂。。。试一下吧setup包里面的地址几位的数据提出来,然后直接配置进去。`GET_DATA_PROP_W_CHECK(`usb_vip_port_0, callback_handle, "xxx"    ,xxx, 0, 1, `WARNING_SEV) 我也不知道wvalue这一位在这里叫啥,你查下把xxx改成对应参数,然后传到下面的地址设置里面试一下。
`SET_DATA_PROP_W_CHECK(`usb_vip_port_0, dev_cfg_handle, "device_address", xxx, 0, 1, `FATAL_SEV)。我是新手,有问题大家互相讨论哈,说错了别怪我
 楼主| 发表于 2020-11-13 08:49:16 | 显示全部楼层
现在用的是UVM框架版本的VIP工程,没有“set_dev_addr”回调函数,我重新实现了“transfer_ended”回调函数在里面调用“svt_usb_agent”类的“reconfigure”方法能够重新设置地址了。
 楼主| 发表于 2020-11-13 08:58:12 | 显示全部楼层
现在问题出在怎么写sequence实现BULK IN传输,以及这个sequence在什么时候调用。
微信截图_20201113085501.png
发表于 2020-11-13 14:43:48 | 显示全部楼层
你这个是没接收到对应ACK包然后超时了吧
 楼主| 发表于 2020-11-16 09:25:30 | 显示全部楼层
对,就是在HOST(DUT)发送完设置地址命令和配置好端点(配置的2号BULK OUT 3号BULK IN)后HOST创建TRB项,使用3号端点BULK IN接收DEVICE(VIP)的数据包。现在是DEVICE收到了“TP_ACK”包(USB3.0的IN令牌用这个包替代了),但是DEVICE没有响应,过一段时间超时了。
发表于 2020-11-16 14:55:13 | 显示全部楼层
你的地址设置的(setup)data_packet包,和status的包也应该有两个ack响应吧,现在你没有收到这两个包的ack,是不是device并没有成功设置,然后你的bulk in传输事务就找不到正确的地址,所以没有响应啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 21:25 , Processed in 0.023765 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表