大家好,
我刚接触DM8127,我在VPSS-M3中访问ISS寄存器时发生M3被挂起的情况,由于M3在访问寄存器是需要对AMMU进行配置,我想知道应该如何解决这个问题?
我使用的是APPRO的样机,样机上运行的是RDK3.5.0,而我使用的RDK是3.2.0,是否会应用版本不兼容而引起的访问非法。当前的AMMU的配置采用APPRO的RDK的配置,希望大侠指点迷津,谢谢!
RICHARD
tengping lv:
访问的哪个寄存器,寄存器地址是?
You Richard:
回复 tengping lv:
谢谢你的回复, 我访问ISS和VPSS的寄存器都有问题,例如在调用FVID2_init(), 或iss_core_init()等调用都导致M3死机,如以下调用:
*(unsigned int*) 0x55050010 = 0x023;// 在Iss_init()中完成调用的
我跟踪到这里,发现在这里死掉了,我不知道是哪里配置有问题,是不是MMU没有配置正确,我现在的MMU是使用APPRO的默认配置(cfg/TI814x/AMMU_m3.cfg),没有任何改动,如果不访问ISS/VPSS寄存器的时候,程序可以完成正常的主机和VPSS-M3的通信。
谢谢!
RICHARD
Robin Edson:
回复 You Richard:
ISS的寄存器在A8侧没法访问,这个我也遇到过。
Christian Shen:
回复 Robin Edson:
手头没带手册,这个是啥寄存器来着? 应该是个系统的寄存器吧,我觉得其他一些通用的isp寄存器应该没事情吧?
另外A8侧也是可以访问iss的寄存器的,不过起始地址不一样,记得貌似是0xC5000000 ?开头的。
You Richard:
回复 tengping lv:
如果VPSS-M3访问ISS的寄存器,需要通过AMMU来进行访问,在ISS软件包中定义:
#define ISS_REGS_BASE_ADDR 0x55040000
#define ISP5_BASE_ADDRESS (ISS_REGS_BASE_ADDR + 0x10000)
这个地址好像都是经过AMMU映射到地址,我现在在VPSS-M3端访问这个地址段的时候,出现M3被挂起,想不通,不知是PWR,CLK的问题,还是AMMU配置的问题,希望大侠指点!
Robin Edson:
回复 Christian Shen:
在DM8127的手册上Memory Map Summary上ISS的寄存器被映射到L3 Memory上,如下图
按道理说这两块地址都应该能访问,但实际上我在A8侧都试过读写这块寄存器,读写的时候都会导致M3挂死。
You Richard:
回复 Robin Edson:
你好,Robin
你是在APPRO提供的RDK上进行编译的吗,是什么版本的,我使用的是RDK3.2.0,而APPRO的UBL,U-BOOT是3.5.0的,在M3上访问ISS的时候M3就直接死掉了,访问HDVPSS也是一样的情况,不知是不是版本的兼容性问题,或我在某个细节遗漏了,我现在使用的是iss_03_20_00_00和hdvpss_01_00_01_37。
谢谢
RICHARD
Christian Shen:
回复 You Richard:
所以我之前问你这个是什么寄存器,
这个是ISP的系统寄存器用来soft reset isp模块的,所以和memory map没关系,
我感觉你的uboot-min,uboot和代码版本不匹配是个问题,
u-boot里面对iss模块的作一些时钟配置,和RDK里面reset iss模块的timing是要匹配的,
BTW,你为什么用3.2的应用配3.5的uboot有什么原因吗?
Robin Edson:
回复 You Richard:
我用的是RDK4.0,在RDK3.2、RDK3.5上也试过,A8侧访问HDVPSS的寄存器没有问题,但是访问ISS模块寄存器就会导致Media Controller的Dual-M3系统挂死。当时也没深究,因为我在ISS包中读写寄存器是正常的。
You Richard:
回复 Robin Edson:
非常的谢谢各位朋友的参与和支持!
为了做好系统的模块化,我忽略了系统的处理,经过分析和验证,在APP启动时,需要在A8端设置PRCM,APPRO在linux_prcm_ipcam程序中完成,设置成功后可以在VPSS-M3端进行ISS和VPSS的寄存器访问,必要时还可以设置L3的带宽,DMM的优先级等。
再次谢谢大家!
RICHARD