Inconsistencies between iMX6 CCM register description, Clock Root Generator Diagrams, Clock Tree Diagram and the iMX6 SDK

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Inconsistencies between iMX6 CCM register description, Clock Root Generator Diagrams, Clock Tree Diagram and the iMX6 SDK

Jump to solution
2,113 Views
MichaelV
Senior Contributor II

There are some inconsistencies between the iMX6(SDL and DQ) 18.5.1.5.4 Clock Root Generator diagrams,  18.3 CCM Clock Tree, the 18.6 CCM Memory Map/Register Definition, and the iMX6_Platform_SDK.

As an example, take a look at the MLB_SYS_CLK_ROOT diagram (page 812 in the iMX6 SDL RM). The mux in the diagram shows:

0 --> PLL2_PFD2

1 --> DTCP

2 --> PLL2_PFD0

3 --> PLL3

The description for mlb_sys_sel in CBCMR has:

00 derive clock from axi                (this is DTCP)

01 derive clock from pll3

10 307M PFD                              (this is PLL2_PFD0)

11 derive clock from 396M PFD     (this is PLL2_PFD2)

As you can see, the source numbers are different.

The Clock Tree Diagram shows again a different picture with 0 --> PLL3

To make matters even more confusing, the iMX6 SDK calls MLB_SYS_SEL "GPU2D_CLK_SEL", and it has the following selections:

/*! @name Register CCM_CBCMR, field GPU2D_CLK_SEL[17:16] (RW)

*

* Selector for open vg clock multiplexer

*

* Values:

* - 00 - derive clock from axi

* - 01 - derive clock from pll3

* - 10 - 307M PFD

* - 11 - derive clock from 396M PFD

Who is right? Up to this point I took the iMX6 SDK as the definitive source of information, but in this case it's very confusing... MLB or GPU2D?

Message was edited by: Michel Verhagen Changed: CMCMR -> CBCMR (fixed typo; there is no CMCMR reg)

Labels (5)
0 Kudos
1 Solution
1,129 Views
igorpadykov
NXP Employee
NXP Employee

Hi Michel

for i.MX6SDL correct is description for mlb_sys_sel in CBCMR :

00 derive clock from axi              

01 derive clock from pll3

10 307M PFD                              (this is PLL2_PFD0)

11 derive clock from 396M PFD     (this is PLL2_PFD2)

iMX6 SDK description is also correct, since seems it is for i.MX6DQ

which has GPU2D_CLK_SEL selector on CCM_CBCMR [17:16] field.

i.MXSDL and i.MX6DQ are different processors, they have different Reference

Manuals, different set of peripherals.

Best regards

chip

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
7 Replies
1,130 Views
igorpadykov
NXP Employee
NXP Employee

Hi Michel

for i.MX6SDL correct is description for mlb_sys_sel in CBCMR :

00 derive clock from axi              

01 derive clock from pll3

10 307M PFD                              (this is PLL2_PFD0)

11 derive clock from 396M PFD     (this is PLL2_PFD2)

iMX6 SDK description is also correct, since seems it is for i.MX6DQ

which has GPU2D_CLK_SEL selector on CCM_CBCMR [17:16] field.

i.MXSDL and i.MX6DQ are different processors, they have different Reference

Manuals, different set of peripherals.

Best regards

chip

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,129 Views
MichaelV
Senior Contributor II

Hi Chip,

I know iMX6SDL and iMX6DQ are different processors of course, but check the CCM_CBCMR [17:16] field in the iMX6 Platform SDK subfolder imx6sdl:

\iMX6_Platform_SDK\sdk\include\mx6sdl\registers\regsccm.h

You will see it has GPU2D_CLK_SEL there...

So now it seems there is not a single known-to-be-good reference. Definitely not the reference manual because that contains many inconsistencies and mistakes, but also not the iMX6 Platform SDK (because as I just showed, that also contains mistakes).

It's kind of hard to create a proper working BSP with this quality of documentation...

Thanks for the answer anyway... If I would have a know-to-be-good source of information I wouldn't have to ask. Where do you get your information from?

0 Kudos
1,129 Views
igorpadykov
NXP Employee
NXP Employee

Hi Michel

previous i.MX6SDL Rev. 0, 11/2012 has description

which you mentioned as "\iMX6_Platform_SDK\sdk\include\mx6sdl\registers\regsccm.h"

Latest i.MX6SDL Rev. 1, 04/2013 fixed this error and internal SR-1-1047929011 was raised

for that. You can contact your local FAE for access to that ticket if necessary.

Best regards

chip

"If you can't understand it, it is intuitively obvious."

[Murphy's laws]

0 Kudos
1,129 Views
MichaelV
Senior Contributor II

I'm confused... I have iMX6SDLRM Rev 1, 04/2013 and iMX6DQ Rev 2, 06/2014. Those are the latest publicly available RMs. I've got the Platform SDK v1.1.0 (also the latest available).

What exactly did SR-1-1047929011 fix? Does that apply to the Platform SDK wrong naming of the bit?

Will the iMX6 Platform SDK (and RM diagrams) be updated? Where is the best place to report documentation errors?

0 Kudos
1,129 Views
igorpadykov
NXP Employee
NXP Employee

Hi Michel

it is small use to use SDK for MLB definitions,

if it even does not have MLB test. As I already answered

SDK was based on old i.MX6SDL Rev. 0, 11/2012, while new

latest i.MX6SDL Rev. 1, 04/2013 fixed this error and internal SR-1-1047929011 was raised

for that. You can contact your local FAE for access to that ticket if necessary.

I have no rights to publish internal documentation.

Best regards

chip

0 Kudos
1,129 Views
JasonLiu
NXP Employee
NXP Employee

Who can tell me where I can get the so-called SDK which contains: \iMX6_Platform_SDK\sdk\include\mx6sdl\registers\regsccm.h?

0 Kudos
1,129 Views
MichaelV
Senior Contributor II

Go here: i.MX 6Quad Processors – Quad Core|Freescale

Then click on "Software Development Kits"

And download it.

0 Kudos