xiaodada 发表于 2008-05-30 16:26

将FPGA代码链接入kernel howTo

hi 同学们
   现在我要在kernel启动的最开始下载FPGA的代码, 所以我要把FPGA的代码链接入kernel.
以前我就简单的链入kernel的代码段, 这样很浪费空间, 并且FPGA的代码多了也不行.

cjaizss 发表于 2008-05-30 18:17

..........没这个必要吧,你这样做的目的是?

abutter 发表于 2008-05-30 22:04

原帖由 xiaodada 于 2008-5-30 16:26 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
hi 同学们
   现在我要在kernel启动的最开始下载FPGA的代码, 所以我要把FPGA的代码链接入kernel.
以前我就简单的链入kernel的代码段, 这样很浪费空间, 并且FPGA的代码多了也不行.

如果 FPGA 会影响内核启动的关键路径那就在 bootloader 下加载,如果不是在用户层下载,内核配置下载引脚就好了。

xiaodada 发表于 2008-05-31 09:33

谢谢两位

用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.

abutter 发表于 2008-05-31 18:23

原帖由 xiaodada 于 2008-5-31 09:33 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
谢谢两位

用FPGA做了一个无配置的PCI接口, 在系统初始化PCI之前就要下好FPGA的程序(很早很早), 所以有这么个问题.
在bootloader下加载, 那就在启动的时候从FLASH上读取然后在起kernel之前先加载FPGA的代码. ...

PCI 初始化跟你的 FPGA 似乎没有关系啊,FPGA 只是作为一个 PCI 设备存在而已,并不在关键路径上。

试想,如果你有个网卡没有驱动,有一天找到了,难道非要编译到内核里面才能工作?LKM可以解决这个问题。

只要有网口,甚至是串口,都可以把 FPGA 作为固件下载下去的。

最主要的问题是,FPGA 加载与否会影响系统的启动吗?

xiaodada 发表于 2008-05-31 18:55

影响的, 要不也不用这么烦了. 板子上所有的期间都被映射到了PCI的IO空间

cjaizss 发表于 2008-05-31 19:22

我觉得是设计失误,因为在我看来是完全没必要链到kernel的。因为前面的设计失误,后面只好这么去干。
因为我实在没有想出链到kernel有什么好处,这种软件加载方法适合升级,但链到kernel,升级恐怕........

[ 本帖最后由 cjaizss 于 2008-5-31 19:24 编辑 ]

xiaodada 发表于 2008-05-31 20:50

放个几M的东西, 理论上可以. ppc 起的时候影射了16M的内存. 我开始不觉得放个几M是很过分的事情.我晕的很!

过两天我23周岁生日, 刚踏上社会做技术就这么辛苦. 还需要各位多多指导啊!

abutter 发表于 2008-06-02 12:21

原帖由 xiaodada 于 2008-5-31 18:55 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
影响的, 要不也不用这么烦了. 板子上所有的期间都被映射到了PCI的IO空间

你还是没有说明是如何的影响,你的FPGA难道做的是 PCI 桥?

xiaodada 发表于 2008-06-02 15:47

对的, 可能是我表达能力有问题吧 呵呵
页: [1]
查看完整版本: 将FPGA代码链接入kernel howTo