QNX ETH VLAN ping 不通

网络的兄弟一早报了个问题,说QNX侧的4个vLAN网段ping不通了,把问题缩小到了俩个版本之间,请求协查。他比较怀疑的地方是这部分物理内存映射后被其他进程给改掉了。

#define EMAC_DWC_ETHER_QOS_ADDR  0x00020000
#define EMAC_DWC_ETHER_QOS_SIZE  0x10000
  
/* Map EMAC device's physical memory into virtual address space*/
  emac_dwc_ether_qos_base_addr =
    mmap_device_memory(0,
                       EMAC_DWC_ETHER_QOS_SIZE,
                       PROT_READ|PROT_WRITE|PROT_NOCACHE,
                       0,
                       EMAC_DWC_ETHER_QOS_ADDR);

上面的代码完成emac_dwc_ether_qos_base_addr的物理内存映射到虚拟内存地址后,
然后会通过:
data=in32(emac_dwc_ether_qos_base_addr+0x50);  
reset=(data>>0)&0x1;
以太网正常工作时:得到的reset值应该为0;
现在以太网不能正常ping时,得到的reset值始终为1.
从高通提供的emac驱动代码逻辑上看,reset为0的时候,高通提供的emac驱动才能正常工作。

开始追踪。

1. pidin mapinfo 去dump所有的内存映射信息,发现0x20000这个物理地址就只被iopkt这个进程映射了。再用in32 vaddr len方式去dump,发现里面的内存都是0xaaaaaaaa(不知道是什么patternÿ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QNX中配置vlan可以使用以下方法: 1. 首先,可以使用函数vlan_create_if()来创建和配置vlan接口。该函数会接受四个参数:tag(vlan标签)、IP(IP地址)、PCP(优先级)和parent(父接口)。使用该函数可以创建并配置vlan接口,如下所示: ``` vlan_create_if 100 192.168.10.2 1 ravb0 vlan_create_if 400 192.168.40.2 4 ravb0 vlan_create_if 600 192.168.60.2 6 ravb0 vlan_create_if 110 192.168.11.2 1 ravb0 vlan_create_if 120 192.168.12.2 1 ravb0 vlan_create_if 160 192.168.16.2 1 ravb0 ``` 以上代码示例创建了多个vlan接口,并分别指定了不同的vlan标签、IP地址、优先级和父接口。 2. 另外,还可以通过物理内存映射来配置vlan。首先,使用mmap_device_memory()函数将EMAC设备的物理内存映射到虚拟内存地址空间,代码示例如下: ``` emac_dwc_ether_qos_base_addr = mmap_device_memory(0, EMAC_DWC_ETHER_QOS_SIZE, PROT_READ|PROT_WRITE|PROT_NOCACHE, 0, EMAC_DWC_ETHER_QOS_ADDR); ``` 然后,通过读取相应的寄存器来配置vlan,例如通过读取reset寄存器的值来判断以太网是否正常工作,具体代码如下: ``` data = in32(emac_dwc_ether_qos_base_addr + 0x50); reset = (data >> 0) & 0x1; ``` 以上代码示例根据reset寄存器的值来判断以太网的工作状态。 总结起来,配置vlan可以通过使用函数vlan_create_if()来创建和配置vlan接口,也可以通过物理内存映射来配置相应的寄存器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [QNXvlan和bridge配置](https://blog.csdn.net/m0_37132481/article/details/122322755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [QNX ETH VLAN ping 不通](https://blog.csdn.net/jackjones_008/article/details/125894408)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值