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



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

我知道 CF 卡和插槽本身可以工作,因为内核本身是从卡启动的,由 RouterBoard 启动加载程序加载

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

最新更新