12
返回列表 发新帖
楼主: ch0721

[求助] I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

[复制链接]

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3278
最后登录
1970-1-1
发表于 2013-12-5 11:24:44 | 显示全部楼层

回复:I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

回复第 10 楼 于2013-12-05 10:11:13发表:
回复第 9 楼 于2013-12-04 16:25:59发表:
回复第 8 楼 于2013-12-04 12:02:16发表:
回复第 6 楼 于2013-12-04 09:24:01发表:
楼主你好,你可以查看参考手册IMX6DQRM.pdfChapter 3 Interrupts and DMA Events 中的Table 3-1. ARM domain interrupt summary中你可以看到mediaLB的中断号。
这个我知道,但是在MLB的一章里有两个ISR处理流程图分别是AHB与MLB的,但是在Chapter 3中只有MLB的中断号,我在Linux的源码MLB150.c中也找到相应的两个ISR函数,但是其中的AHB中断号没有找到,版本号不知您问的是哪个QNX是6.50 不知道可否有更方便一点的联系方式,例如邮箱、QQ可以私信提供给我,更方便交流一点,谢谢。
 

 
楼主你好,你板子上跑的BSP版本,就是你在飞思卡尔官网上下载的BSP是哪个版本?你提到的两个ISR处理流程图,能具体说一下是文档中的哪两个么?
 
是这样,我是参考L3.0.35_1.1.0_121218,我板子上跑的是QNX
Freescale i.MX6Q Sabre ARD/Sabre AI6.5.0 SP1

章标题是
43.5.2.1 Servicing the AMBA AHB Block (DMA) Interrupts
43.5.2.2 Servicing the MediaLB Interrupts

 好的,请您耐心的等待,我会尽快给出回复~~

 
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

新手上路

Rank: 1

积分
8
最后登录
1970-1-1
发表于 2013-12-6 10:45:52 | 显示全部楼层

回复:I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

Hello, 楼主,
       首先,QNX的BSP,需要您和QNX公司保持联系并获取技术支持!我们FSL没有提供QNX BSP !
       第二,针对您提出的问题,我仅能从FSL发行的Linux BSP source code中,及reference manual 为您寻找答案和解决的方法。回答如下:
(1)中断信号定义    
   在我们的mlb150 driver中,使用到3个不同的中断资源,定义在linux/arch/arm/plat-mxc/include/mach/mx-6.h中:
#define MXC_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
#ifdef CONFIG_SOC_IMX6Q
struct platform_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);
 return imx_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系统上做移植.
Regards,
Weidong
回复 支持 反对

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3278
最后登录
1970-1-1
发表于 2013-12-6 11:13:55 | 显示全部楼层

RE:I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

楼主你好,根据楼上我们工程师的回答,你再结合参考手册IMX6DQRM.pdf中Chapter 3 Interrupts and DMA Events 中的Table 3-1. ARM domain interrupt summary,你应该可以很清楚了吧~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

22

帖子

0

新手上路

Rank: 1

积分
30
最后登录
1970-1-1
 楼主| 发表于 2013-12-6 16:01:50 | 显示全部楼层

回复:I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

回复第 12 楼 于2013-12-06 10:45:52发表:
Hello, 楼主,
       首先,QNX的BSP,需要您和QNX公司保持联系并获取技术支持!我们FSL没有提供QNX BSP !
       第二,针对您提出的问题,我仅能从FSL发行的Linux BSP source code中,及reference manual 为您寻找答案和解决的方法。回答如下:
(1)中断信号定义    
   在我们的mlb150 driver中,使用到3个不同的中断资源,定义在linux/arch/arm/plat-mxc/include/mach/mx-6.h中:
#define MXC_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
#ifdef CONFIG_SOC_IMX6Q
struct platform_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);
 return imx_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系统上做移植.
Regards,
Weidong
 
 
 
 
感谢您的解答,QNX的问题我了解,现在还有个疑问,在MLB150的驱动中,
static irqreturn_t mlb_ahb_isr(int irq, void *dev_id)这样一个中断函数,最后调用两个函数,他们会分别唤醒read和write ,
我想问的问题是,这个中断进入之后只是一个channel出现DMA还是可能好几个channel都会出现,
在QNX下,一个ISR中发送多个通知被标记成Unsafe,所以如果每次只有一个Channel发生变化的话,我完全可以改成另外的结构。
QQ图片20131206154802.jpg
 
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

22

帖子

0

新手上路

Rank: 1

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

回复:I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

回复第 13 楼 于2013-12-06 11:13:55发表:
楼主你好,根据楼上我们工程师的回答,你再结合参考手册IMX6DQRM.pdf中Chapter 3 Interrupts and DMA Events 中的Table 3-1. ARM domain interrupt summary,你应该可以很清楚了吧~~
 

恩 非常感谢啊 我在楼上又提了个问题 还请解答啊
回复 支持 反对

使用道具 举报

该用户从未签到

45

主题

2369

帖子

0

金牌会员

Rank: 6Rank: 6

积分
3278
最后登录
1970-1-1
发表于 2013-12-9 16:46:24 | 显示全部楼层

RE:I.MX6Q 平台下mediaLB总线的ahb的DMA的中断号

楼主你好,你能把您新提的问题再创一个新帖么?
一个问题,一个帖子,这样答案和问题都很清楚,而且大家共享学习起来比较方便,感谢楼主的支持哦
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-10-8 11:07 , Processed in 0.099001 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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