- 論壇徽章:
- 0
|
目前排查到在/driver/usb/gadget/s3c-udc-hs.c中函數(shù)reconfig_usbd.c中有問題,該函數(shù)主要完成USB寄存器配置,原函數(shù)中使用__raw_writel完成寄存器配置,但加載驅(qū)動時會報段錯誤,將該函數(shù)置為空就可加載。排查發(fā)現(xiàn)時對寄存器操作應(yīng)使用虛擬地址,原來使用物理地址,因此我使用ioremap結(jié)合iowrite32進行配置,或者ioremap結(jié)合__raw_writel操作,但仍然報段錯誤,無論對哪個寄存器操作,請問這怎么回事.
我的操作如下:
volatile unsigned long phys;
volatile unsigned long virt;
phys=0x49800000;
virt=(unsigned long)ioremap(phys,0x10);
//__raw_writel(0x04,*(unsigned long *)(virt+0x14));
iowrite32(0x04,*(unsigned long *)(virt+0x14));
iowrite32(0x07,*(unsigned long *)(virt+0x0 ); |
|