本帖最后由 FSL_TICS_imx 于 2013-12-10 15:54 编辑
17、I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号 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系统 A:首先,QNX的BSP,需要您和QNX公司保持联系并获取技术支持!我们FSL没有提供QNX BSP~~
第二,以上问题,我们仅能从FSL发行的Linux BSP sourcecode中,及reference 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系统上做移植。
18、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中选择也可以。
|