查看: 4360|回复: 1

[分享] i.MX产品使用中常见问题4

[复制链接]

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
发表于 2013-12-11 17:18:35 | 显示全部楼层 |阅读模式
7、I.MX6Q 平台下mediaLB总线的ahbDMA的中断号

Q:MLB150.c的驱动中有这样一个ISR,我想知道这个中断号是多少,最近在做QNX的MLB驱动,这个中断号没有找到。

static irqreturn_t mlb_ahb_isr(int irq, void*dev_id)

PS:参考L3.0.35_1.1.0_121218,板子上跑的是QNX系统

              
              
              
6.5.0 SP1

              
A:首先,QNXBSP,需要您和QNX公司保持联系并获取技术支持!我们FSL没有提供QNX BSP~~

第二,以上问题,我们仅能从FSL发行的Linux BSP sourcecodereference manual寻找答案和解决的方法。如下:

(1)中断信号定义   

   在我们的mlb150 driver中,使用到3个不同的中断资源,定义在linux/arch/arm/plat-mxc/include/mach/mx-6.h

#defineMXC_INT_MLB   85
#define MXC_INT_MLB_AHB0  149
#define MXC_INT_MLB_AHB1  158

(2)中断资源定义

定义在:linux/arch/arm/plat-mxc/devices/platform-mxc_mlb.c

#ifdefCONFIG_SOC_IMX6Q

structplatform_device *__init imx_add_mlb(
  const struct mxc_mlb_platform_data *pdata)
{
struct resource res[] = {
  {
   .start = MLB_BASE_ADDR,
   .end = MLB_BASE_ADDR + SZ_4K - 1,
   .flags = IORESOURCE_MEM,
  },
  {
   .start = MXC_INT_MLB,   .end = MXC_INT_MLB,   .flags = IORESOURCE_IRQ,  },
  {
   .start =MXC_INT_MLB_AHB0,   .end = MXC_INT_MLB_AHB0,   .flags = IORESOURCE_IRQ,  },
  {
   .start =MXC_INT_MLB_AHB1,   .end = MXC_INT_MLB_AHB1,   .flags = IORESOURCE_IRQ,

  },
};

if(!fuse_dev_is_available(MXC_DEV_MLB))
  return ERR_PTR(-ENODEV);

returnimx_add_platform_device("mxc_mlb150", 0,
   res, ARRAY_SIZE(res), pdata, sizeof(*pdata));
}
#endif

(3)中断资源及信号调用(驱动程序)

驱动程序源码位置:linux/driver/mxc/mlb/mxc_mlb150.c

在驱动的probe函数中,调用了上述中断资源:

static int__devinit mxc_mlb150_probe(struct platform_device *pdev)

{

..

}

请下载linux bsp源码,找到这个驱动程序,参考它往QNX系统上做移植。


8、LTIB编译linux kernel error( iMX6 kernel L3.0.35 build error)

Q:当用LTIB编译linux kernel i.MX6时出错,BSP:L3.0.35_4.0.0_130424_source开发板为:i.MX6Q Sabre-SD

Error为:

arch/arm/mach-mx6/built-in.o: Infunction `pfuze100_init':

usb_h1.c(.text+0xf9ac): undefinedreference to `pfuze_reg_read'

usb_h1.c(.text+0xf9d0): undefined referenceto `pfuze_reg_read'

usb_h1.c(.text+0xfa00): undefinedreference to `pfuze_reg_write'

usb_h1.c(.text+0xfa44): undefined reference to `pfuze_reg_rmw'

usb_h1.c(.text+0xfa60): undefinedreference to `pfuze_reg_rmw'

usb_h1.c(.text+0xfa84): undefinedreference to `pfuze_reg_rmw'

usb_h1.c(.text+0xfaa0): undefinedreference to `pfuze_reg_rmw'

usb_h1.c(.text+0xfac8): undefinedreference to `pfuze_reg_rmw'

arch/arm/mach-mx6/built-in.o:usb_h1.c(.text+0xfae4):more undefined references to `pfuze_reg_rmw' follow

arch/arm/mach-mx6/built-in.o: Infunction `pfuze100_init':

usb_h1.c(.text+0xfb5c): undefinedreference to `pfuze_reg_write'

...

make: *** [.tmp_vmlinux1] Error 1

error: Bad exit status from /home/yxq/iMX6/L3.0.35_4.0.0_130424_source/ltib/tmp/rpm-tmp.34384(%build)

RPM build errors:


            
              
Bad exit status from  /home/yxq/iMX6/L3.0.35_4.0.0_130424_source/ltib/tmp/rpm-tmp.34384 (%build)

              
...

These packagesfailed to build

kernel-3.0.35

Build failed

在编译时有许多未定义的引用,请问如何解决上述编译时候出现的问题?

A: 出错的原因是关闭了CONFIG_MFD_PFUZE,运行 distclean ,即解决上述问题。或者在Configration 选项device driver->Multifunction device drivers->Support for Freescale's PMIC PFUZE中选择也可以
回复

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3275
最后登录
1970-1-1
 楼主| 发表于 2013-12-12 10:09:11 | 显示全部楼层

RE: i.MX产品使用中常见问题4

自己顶一下啦~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 00:48 , Processed in 0.085218 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表