将FPGA代码链接入kernel howTo
hi 同学们
现在我要在kernel启动的最开始下载FPGA的代码, 所以我要把FPGA的代码链接入kernel.
以前我就简单的链入kernel的代码段, 这样很浪费空间, 并且FPGA的代码多了也不行.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
hi 同学们
现在我要在kernel启动的最开始下载FPGA的代码, 所以我要把FPGA的代码链接入kernel.
以前我就简单的链入kernel的代码段, 这样很浪费空间, 并且FPGA的代码多了也不行.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
..........没这个必要吧,你这样做的目的是?
如果 FPGA 会影响内核启动的关键路径那就在 bootloader 下加载,如果不是在用户层下载,内核配置下载引脚就好了。
谢谢两位
用FPGA做了一个无配置的PCI接口, 在系统初始化PCI之前就要下好FPGA的程序(很早很早), 所以有这么个问题.
在bootloader下加载, 那就在启动的时候从FLASH上读取然后在起kernel之前先加载FPGA的代码. 但是这样也有一个问题要是我编了一个Muti-image. 直接TFTP启动, 而我的FLASH上没有任何的东西, 那我的FPGA代码上哪去下载?
所以我就把FPGA的代码放在了 .section .init.text段. , 但是这样产生的问题是当我的FPGA代码越来越多(2M多, 启动的时候检测板子类型加载不同的FPGA代码) 的时候就启动不起来了. 观察了下编译后的Systerm.map 发现当我的FPGA代码不断增加时, 插入FPGA代码后面的符号逻辑地址不断的在向后移动. 我用的是freescale的 MPC8246, POWERPC E603的core.
PCI 初始化跟你的 FPGA 似乎没有关系啊,FPGA 只是作为一个 PCI 设备存在而已,并不在关键路径上。
试想,如果你有个网卡没有驱动,有一天找到了,难道非要编译到内核里面才能工作?LKM可以解决这个问题。
只要有网口,甚至是串口,都可以把 FPGA 作为固件下载下去的。
最主要的问题是,FPGA 加载与否会影响系统的启动吗?
影响的, 要不也不用这么烦了. 板子上所有的期间都被映射到了PCI的IO空间
我觉得是设计失误,因为在我看来是完全没必要链到kernel的。因为前面的设计失误,后面只好这么去干。
因为我实在没有想出链到kernel有什么好处,这种软件加载方法适合升级,但链到kernel,升级恐怕........
[ 本帖最后由 cjaizss 于 2008-5-31 19:24 编辑 ]
放个几M的东西, 理论上可以. ppc 起的时候影射了16M的内存. 我开始不觉得放个几M是很过分的事情. 我晕的很!
过两天我23周岁生日, 刚踏上社会做技术就这么辛苦. 还需要各位多多指导啊!
你还是没有说明是如何的影响,你的FPGA难道做的是 PCI 桥?
对的, 可能是我表达能力有问题吧 呵呵