什么会导致LBC管理的区域访问挂起?

时间:2015-03-12 01:49:55

标签: embedded powerpc

我正在尝试为FreeBSD编写RouterBoard 800的Compact Flash驱动程序,并遇到问题。 CF插槽由CPU的本地总线控制器(LBC)(MPC8544E)管理,使用用户可编程机器(UPM)模块,任何访问CF所在的内存区域都会挂起线程(CPU仍然可以中断,但线程永远不会继续)。编程或读取UPM时,即使是虚拟访问也会挂起。现在,问题是,当访问UPM管理的区域时,什么会导致线程挂起,即使它是虚拟访问,它实际上不应该断言总线?

我知道CF卡和插槽本身是可行的,因为内核本身是从卡上引导的,由RouterBoard引导加载程序加载。

1 个答案:

答案 0 :(得分:0)

对于后人来说,mpc8544E(可能是大多数mpc85xx系列)都有本地访问Windows(LAWs)的概念。如果在创建的10个窗口中的任何一个窗口中都不存在地址,则会将其丢弃在地板上,不会抛出任何异常,也不会返回垃圾数据。这适用于所有地址区域,包括外部RAM。