3190|6

79

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USB OHCI问题 [复制链接]

做OHCI驱动时,当进入Operation 后,却发现HccaFrameNumber值不变,而
HcFrameNumber寄存器却在正常变化,并可以接受到中断,我可以确定的是:
HcHCCA 的值也是正确的,我已经折腾了很久,想不到原因?

最新回复

是ram内核中的dcache还是什么dcache?  详情 回复 发表于 2009-12-18 20:24
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
接受到哪里的中断
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
HC寄存器中的hcInterruptstatus的SF位有中断信号
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
补充一下:
    问题出在地址设置上。OHCI的寄存器和HCCA部门的结构如下:
struct ohci_hcca
{
    U32        int_table[NUM_INTS];        /* Interrupt ED table */
    U16        frame_no;                       /* current frame number */
    U16        pad1;                               /* set to 0 on each frame_no change */
    U32        done_head;                       /* info returned for an interrupt */
    U8        reserved_for_hc[116];//116
} /*__attribute((aligned(256)))*/;
struct ohci_regs
{
    /* control and status registers */
    U32        revision;
    U32        control;
    U32        cmdstatus;
    U32        intrstatus;
    U32        intrenable;
    U32        intrdisable;
    /* memory pointers */
    U32        hcca;
    U32        ed_periodcurrent;
    U32        ed_controlhead;
    U32        ed_controlcurrent;
    U32        ed_bulkhead;
    U32        ed_bulkcurrent;
    U32        donehead;
    /* frame counters */
    U32        fminterval;
    U32        fmremaining;
    U32        fmnumber;
    U32        periodicstart;
    U32        lsthresh;
    /* Root hub ports */
    struct        ohci_roothub_regs
    {
        U32        a;
        U32        b;
        U32        status;
        U32        portstatus[MAX_ROOT_PORTS];
    }
    roothub;
}/*__attribute((aligned(32)))*/;

当USB进入operational状态,OHCI寄存器中的fmnumber周期性更新,并将自身值的低16位回写到HCCA的frame_no位置。OHCI手册上要求寄存器中的hcca为物理地址。
问题:若都采用物理地址操作,程序正常运行;移植到eboot中,采用虚拟地址,寄存器就无法将自己的hcfmnumber值更新到HCCA的内存地址上frame_no????
困扰很久了,请高手们指教啊
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

5
 
搞定,结贴 eboot中开了DCACHE的关系
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
恭喜,我來蹭分
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 4 楼 ashlay 的回复:
搞定,结贴 eboot中开了DCACHE的关系

是ram内核中的dcache还是什么dcache?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表