Project Home
Project Home
Documents
Documents
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - DMA on imx6 platform giving wrong values: (8 Items)
   
DMA on imx6 platform giving wrong values  
Hi 

Iam working on porting linux sdio driver on to QNX. For sending CMD53 i have created a virtual memory using MMAP and got
 the physical address of this mmap return virtual memory using function mem_offset.

The problem is when i have to do DMA read of 4 byte value using the physical address that i got above i get value in 
form of BIG ENDIAN.

Example in place of 1 i get 0x1000000.

The imx6 processor when executing CMD53 for read and write is expecting and giving me value in BIGENDIAN were as it is 
little ENDIAN in case of linux.

Please let me known is there anything wrong that iam doing or is this the right way it works. 

Regards
Kaushik
RE: DMA on imx6 platform giving wrong values  
Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode work? Do you need to do cache operation if the 
buffer is cacheable?


-----Original Message-----
From: Kaushik Choudhury [mailto:community-noreply@qnx.com] 
Sent: Wednesday, April 02, 2014 9:03 AM
To: ostech-core_os
Subject: DMA on imx6 platform giving wrong values

Hi 

Iam working on porting linux sdio driver on to QNX. For sending CMD53 i have created a virtual memory using MMAP and got
 the physical address of this mmap return virtual memory using function mem_offset.

The problem is when i have to do DMA read of 4 byte value using the physical address that i got above i get value in 
form of BIG ENDIAN.

Example in place of 1 i get 0x1000000.

The imx6 processor when executing CMD53 for read and write is expecting and giving me value in BIGENDIAN were as it is 
little ENDIAN in case of linux.

Please let me known is there anything wrong that iam doing or is this the right way it works. 

Regards
Kaushik



_______________________________________________

OSTech
http://community.qnx.com/sf/go/post109748
To cancel your subscription to this discussion, please e-mail ostech-core_os-unsubscribe@community.qnx.com
Re: DMA on imx6 platform giving wrong values  
Hi

Lichun Zhu

Thanks for the reply

i will try et bit 4-5 of the PROT_CTRL register properly i didn't verify
PIO.  Will reply once i verify this.

Regards
Kaushik


On Wed, Apr 2, 2014 at 7:16 PM, Lichun Zhu <community-noreply@qnx.com>wrote:

> Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode
> work? Do you need to do cache operation if the buffer is cacheable?
>
>
> -----Original Message-----
> From: Kaushik Choudhury [mailto:community-noreply@qnx.com]
> Sent: Wednesday, April 02, 2014 9:03 AM
> To: ostech-core_os
> Subject: DMA on imx6 platform giving wrong values
>
> Hi
>
> Iam working on porting linux sdio driver on to QNX. For sending CMD53 i
> have created a virtual memory using MMAP and got the physical address of
> this mmap return virtual memory using function mem_offset.
>
> The problem is when i have to do DMA read of 4 byte value using the
> physical address that i got above i get value in form of BIG ENDIAN.
>
> Example in place of 1 i get 0x1000000.
>
> The imx6 processor when executing CMD53 for read and write is expecting
> and giving me value in BIGENDIAN were as it is little ENDIAN in case of
> linux.
>
> Please let me known is there anything wrong that iam doing or is this the
> right way it works.
>
> Regards
> Kaushik
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109748
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109753
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
Attachment: HTML sf-attachment-mime24020 2.6 KB
Re: DMA on imx6 platform giving wrong values  
Lichun Zhu

Is this some thing related to configuring big endian and little endian on
PROT_CTRL register if so can you please  let me known
the specification which talk about bit 4 and 5 of PROT_CTRL. register.

Regards
Kaushik


On Wed, Apr 2, 2014 at 7:16 PM, Lichun Zhu <community-noreply@qnx.com>wrote:

> Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode
> work? Do you need to do cache operation if the buffer is cacheable?
>
>
> -----Original Message-----
> From: Kaushik Choudhury [mailto:community-noreply@qnx.com]
> Sent: Wednesday, April 02, 2014 9:03 AM
> To: ostech-core_os
> Subject: DMA on imx6 platform giving wrong values
>
> Hi
>
> Iam working on porting linux sdio driver on to QNX. For sending CMD53 i
> have created a virtual memory using MMAP and got the physical address of
> this mmap return virtual memory using function mem_offset.
>
> The problem is when i have to do DMA read of 4 byte value using the
> physical address that i got above i get value in form of BIG ENDIAN.
>
> Example in place of 1 i get 0x1000000.
>
> The imx6 processor when executing CMD53 for read and write is expecting
> and giving me value in BIGENDIAN were as it is little ENDIAN in case of
> linux.
>
> Please let me known is there anything wrong that iam doing or is this the
> right way it works.
>
> Regards
> Kaushik
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109748
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109753
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
Attachment: HTML sf-attachment-mime24024 3.39 KB
RE: DMA on imx6 platform giving wrong values  
5-4
EMODE
Endian Mode:
The uSDHC supports all four endian modes in data transfer. Refer to Data Buffer " for more details.
00 Big Endian Mode
01 Half Word Big Endian Mode
10 Little Endian Mode
11 Reserved


From: kaushik choudhury [mailto:community-noreply@qnx.com]
Sent: April-02-14 1:31 PM
To: ostech-core_os@community.qnx.com
Subject: Re: DMA on imx6 platform giving wrong values

Lichun Zhu

Is this some thing related to configuring big endian and little endian on PROT_CTRL register if so can you please  let 
me known the specification which talk about bit 4 and 5 of PROT_CTRL. register.

Regards
Kaushik

On Wed, Apr 2, 2014 at 7:16 PM, Lichun Zhu <community-noreply@qnx.com<mailto:community-noreply@qnx.com>> wrote:
Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode work? Do you need to do cache operation if the 
buffer is cacheable?


-----Original Message-----
From: Kaushik Choudhury [mailto:community-noreply@qnx.com<mailto:community-noreply@qnx.com>]
Sent: Wednesday, April 02, 2014 9:03 AM
To: ostech-core_os
Subject: DMA on imx6 platform giving wrong values

Hi

Iam working on porting linux sdio driver on to QNX. For sending CMD53 i have created a virtual memory using MMAP and got
 the physical address of this mmap return virtual memory using function mem_offset.

The problem is when i have to do DMA read of 4 byte value using the physical address that i got above i get value in 
form of BIG ENDIAN.

Example in place of 1 i get 0x1000000.

The imx6 processor when executing CMD53 for read and write is expecting and giving me value in BIGENDIAN were as it is 
little ENDIAN in case of linux.

Please let me known is there anything wrong that iam doing or is this the right way it works.

Regards
Kaushik



_______________________________________________

OSTech
http://community.qnx.com/sf/go/post109748
To cancel your subscription to this discussion, please e-mail ostech-core_os-unsubscribe@community.qnx.com<mailto:ostech
-core_os-unsubscribe@community.qnx.com>




_______________________________________________

OSTech
http://community.qnx.com/sf/go/post109753
To cancel your subscription to this discussion, please e-mail ostech-core_os-unsubscribe@community.qnx.com<mailto:ostech
-core_os-unsubscribe@community.qnx.com>

Attachment: HTML sf-attachment-mime24027 8.63 KB
Re: DMA on imx6 platform giving wrong values  
]Lichun Zhu

Sorry for the trouble.

I am assuming this Endian Mode works for both DMA and PIO.

Regards
Kaushik


On Wed, Apr 2, 2014 at 11:02 PM, Lichun Zhu <community-noreply@qnx.com>wrote:

>  5-4
>
> EMODE
>
> Endian Mode:
>
> The uSDHC supports all four endian modes in data transfer. Refer to Data
> Buffer " for more details.
>
> 00 Big Endian Mode
>
> 01 Half Word Big Endian Mode
>
> 10 Little Endian Mode
>
> 11 Reserved
>
>
>
>
>
> *From:* kaushik choudhury [mailto:community-noreply@qnx.com]
> *Sent:* April-02-14 1:31 PM
> *To:* ostech-core_os@community.qnx.com
> *Subject:* Re: DMA on imx6 platform giving wrong values
>
>
>
> Lichun Zhu
>
>
>
> Is this some thing related to configuring big endian and little endian on
> PROT_CTRL register if so can you please  let me known
> the specification which talk about bit 4 and 5 of PROT_CTRL. register.
>
>
>
> Regards
>
> Kaushik
>
>
>
> On Wed, Apr 2, 2014 at 7:16 PM, Lichun Zhu <community-noreply@qnx.com>
> wrote:
>
> Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode
> work? Do you need to do cache operation if the buffer is cacheable?
>
>
> -----Original Message-----
> From: Kaushik Choudhury [mailto:community-noreply@qnx.com]
> Sent: Wednesday, April 02, 2014 9:03 AM
> To: ostech-core_os
> Subject: DMA on imx6 platform giving wrong values
>
> Hi
>
> Iam working on porting linux sdio driver on to QNX. For sending CMD53 i
> have created a virtual memory using MMAP and got the physical address of
> this mmap return virtual memory using function mem_offset.
>
> The problem is when i have to do DMA read of 4 byte value using the
> physical address that i got above i get value in form of BIG ENDIAN.
>
> Example in place of 1 i get 0x1000000.
>
> The imx6 processor when executing CMD53 for read and write is expecting
> and giving me value in BIGENDIAN were as it is little ENDIAN in case of
> linux.
>
> Please let me known is there anything wrong that iam doing or is this the
> right way it works.
>
> Regards
> Kaushik
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109748
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109753
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
>
>
Attachment: HTML sf-attachment-mime24030 7.7 KB
Re: DMA on imx6 platform giving wrong values  
Lichun Zhu

Thanks for the response iam able to set 10 Little Endian Mode and things
worked fine.

Regards
Kaushik


On Wed, Apr 2, 2014 at 11:02 PM, Lichun Zhu <community-noreply@qnx.com>wrote:

>  5-4
>
> EMODE
>
> Endian Mode:
>
> The uSDHC supports all four endian modes in data transfer. Refer to Data
> Buffer " for more details.
>
> 00 Big Endian Mode
>
> 01 Half Word Big Endian Mode
>
> 10 Little Endian Mode
>
> 11 Reserved
>
>
>
>
>
> *From:* kaushik choudhury [mailto:community-noreply@qnx.com]
> *Sent:* April-02-14 1:31 PM
> *To:* ostech-core_os@community.qnx.com
> *Subject:* Re: DMA on imx6 platform giving wrong values
>
>
>
> Lichun Zhu
>
>
>
> Is this some thing related to configuring big endian and little endian on
> PROT_CTRL register if so can you please  let me known
> the specification which talk about bit 4 and 5 of PROT_CTRL. register.
>
>
>
> Regards
>
> Kaushik
>
>
>
> On Wed, Apr 2, 2014 at 7:16 PM, Lichun Zhu <community-noreply@qnx.com>
> wrote:
>
> Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode
> work? Do you need to do cache operation if the buffer is cacheable?
>
>
> -----Original Message-----
> From: Kaushik Choudhury [mailto:community-noreply@qnx.com]
> Sent: Wednesday, April 02, 2014 9:03 AM
> To: ostech-core_os
> Subject: DMA on imx6 platform giving wrong values
>
> Hi
>
> Iam working on porting linux sdio driver on to QNX. For sending CMD53 i
> have created a virtual memory using MMAP and got the physical address of
> this mmap return virtual memory using function mem_offset.
>
> The problem is when i have to do DMA read of 4 byte value using the
> physical address that i got above i get value in form of BIG ENDIAN.
>
> Example in place of 1 i get 0x1000000.
>
> The imx6 processor when executing CMD53 for read and write is expecting
> and giving me value in BIGENDIAN were as it is little ENDIAN in case of
> linux.
>
> Please let me known is there anything wrong that iam doing or is this the
> right way it works.
>
> Regards
> Kaushik
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109748
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
>
>
>
> _______________________________________________
>
> OSTech
> http://community.qnx.com/sf/go/post109753
> To cancel your subscription to this discussion, please e-mail
> ostech-core_os-unsubscribe@community.qnx.com
>
>
>
Attachment: HTML sf-attachment-mime24046 6.95 KB
Re: DMA on imx6 platform giving wrong values  
Lichun Zhu

I have a problem in getting SDIO on my new IMX6 solo lite board running qnx
when ever i do a read using command 53 it is giving me CRC error with DMA
interrupt set, interrupt status register value is 0x20000A meaning a CRC
error.

First read using CMD53 is giving me this error all CMD 52 are working fine.
Have been struggling with this issue from long. Please suggest me some
solution.

Regards
Kaushik


On Thu, Apr 3, 2014 at 11:48 AM, kaushik choudhury <ikaushikc@gmail.com>
wrote:

> Lichun Zhu
>
> Thanks for the response iam able to set 10 Little Endian Mode and things
> worked fine.
>
> Regards
> Kaushik
>
>
> On Wed, Apr 2, 2014 at 11:02 PM, Lichun Zhu <community-noreply@qnx.com>
> wrote:
>
>>  5–4
>>
>> EMODE
>>
>> Endian Mode:
>>
>> The uSDHC supports all four endian modes in data transfer. Refer to Data
>> Buffer " for more details.
>>
>> 00 Big Endian Mode
>>
>> 01 Half Word Big Endian Mode
>>
>> 10 Little Endian Mode
>>
>> 11 Reserved
>>
>>
>>
>>
>>
>> *From:* kaushik choudhury [mailto:community-noreply@qnx.com]
>> *Sent:* April-02-14 1:31 PM
>> *To:* ostech-core_os@community.qnx.com
>> *Subject:* Re: DMA on imx6 platform giving wrong values
>>
>>
>>
>> Lichun Zhu
>>
>>
>>
>> Is this some thing related to configuring big endian and little endian on
>> PROT_CTRL register if so can you please  let me known
>> the specification which talk about bit 4 and 5 of PROT_CTRL. register.
>>
>>
>>
>> Regards
>>
>> Kaushik
>>
>>
>>
>> On Wed, Apr 2, 2014 at 7:16 PM, Lichun Zhu <community-noreply@qnx.com>
>> wrote:
>>
>> Did you set bit 4-5 of the PROT_CTRL register properly? Does PIO mode
>> work? Do you need to do cache operation if the buffer is cacheable?
>>
>>
>> -----Original Message-----
>> From: Kaushik Choudhury [mailto:community-noreply@qnx.com]
>> Sent: Wednesday, April 02, 2014 9:03 AM
>> To: ostech-core_os
>> Subject: DMA on imx6 platform giving wrong values
>>
>> Hi
>>
>> Iam working on porting linux sdio driver on to QNX. For sending CMD53 i
>> have created a virtual memory using MMAP and got the physical address of
>> this mmap return virtual memory using function mem_offset.
>>
>> The problem is when i have to do DMA read of 4 byte value using the
>> physical address that i got above i get value in form of BIG ENDIAN.
>>
>> Example in place of 1 i get 0x1000000.
>>
>> The imx6 processor when executing CMD53 for read and write is expecting
>> and giving me value in BIGENDIAN were as it is little ENDIAN in case of
>> linux.
>>
>> Please let me known is there anything wrong that iam doing or is this the
>> right way it works.
>>
>> Regards
>> Kaushik
>>
>>
>>
>> _______________________________________________
>>
>> OSTech
>> http://community.qnx.com/sf/go/post109748
>> To cancel your subscription to this discussion, please e-mail
>> ostech-core_os-unsubscribe@community.qnx.com
>>
>>
>>
>>
>> _______________________________________________
>>
>> OSTech
>> http://community.qnx.com/sf/go/post109753
>> To cancel your subscription to this discussion, please e-mail
>> ostech-core_os-unsubscribe@community.qnx.com
>>
>>
>>
>
>
Attachment: HTML sf-attachment-mime25565 7.95 KB