Skip to contentSkip to conversation

arasan,sdhci.txt "compatibility" DT binding

DISCUSSION Mason 7 participants 20 messages Feb 2, 2016 – Dec 1, 2016 MMC, SD and SDIO

lore
Share & tools
lore

Mason

author
#0 lore raw

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'

What do 8.9a, 4.9a, and 5.1 refer to?

$ git ls Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
da795ec26e25 mmc: sdhci-of-arasan: Add the support for sdhci-5.1
308f3f8d8112 mmc: sdhci-of-arasan: Add the support for sdhci-arasan4.9a
e3ec3a3d11ad mmc: arasan: Add driver for Arasan SDHCI

I found two Arasan data sheets.

The first data sheet, created 2010-02-19, is titled "SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" and the documentation revision number is 6.0

The revision history mentions:

1.0 05.02.2005
1.1 02.08.2006
1.2 03.10.2006
1.3 03.27.2006
1.4 04.11.2006
1.5 04.18.2006
1.6 05.18.2006
1.7 06.05.2006
1.8 10.06.2006
1.9 19.06.2006
2.0 01.08.2007
2.1 01.30.2007
2.2 02.22.2007
2.3 04.30.2007
2.4 05.07.2007
2.5 06.04.2007
2.6 06.25.2007
2.7 06.29.2007
2.8 07.24.2007
2.9 07.31.2007
3.0 11.12.2007
3.1 11.14.2007
3.2 11.21.2007
3.3 12.13.2007
3.4 12.15.2007
3.5 04.11.2008
3.6 08.19.2008
3.7 10.11.2008
3.7a 11.11.2008
3.8a 11.25.2008
3.9a 01.22.2009
4.0a 02.13.2009
4.1a 04.06.2009
4.2a 06.16.2009
5.0 07.01.2009
5.1 07.13.2009
5.2 07.16.2009
5.3 07.29.2009
5.4 08.17.2009
5.5 08.29.2009
5.6 09.30.2009
5.7 11.04.2009
5.8 12.04.2009
5.9 01.19.2010
6.0 02.19.2010

The second data sheet, created 2012-09-07, is titled "SD3.0 / SDIO3.0/ eMMC4.5 Host Controller" and the documentation revision number is 1.13

Revision history mentions a "new architecture" for rev 1.0 in 2011-06-01

Neither of these data sheets mention anything about a 4.9a or 8.9a version of the controller... And I don't think 5.1 refers to the documentation rev, right?

So what do 8.9a, 4.9a, and 5.1 refer to?

Regards.

#1 lore raw

+ Michal, Sören Brinkmann

Quoted 10 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

5.1 refer to the lastest arasan controller version which supports
emmc standard 5.1+(with a command queue engine and enhanced-strobe function inside)

I not 100% sure how arasan folks define these versions or just vendor define it themself in thire databook. But, something need to be done to clarify these vague definitions.

Hello, Michal and Soren,

Could you elaborate more? :)

Quoted 6 lines
$ git ls Documentation/devicetree/bindings/mmc/arasan,sdhci.txt
da795ec26e25 mmc: sdhci-of-arasan: Add the support for sdhci-5.1
308f3f8d8112 mmc: sdhci-of-arasan: Add the support for sdhci-arasan4.9a
e3ec3a3d11ad mmc: arasan: Add driver for Arasan SDHCI
Quoted 6 lines

I found two Arasan data sheets.

The first data sheet, created 2010-02-19, is titled "SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" and the documentation revision number is 6.0

----8<------------

Quoted 19 lines

The second data sheet, created 2012-09-07, is titled "SD3.0 / SDIO3.0/ eMMC4.5 Host Controller" and the documentation revision number is 1.13

Revision history mentions a "new architecture" for rev 1.0 in 2011-06-01

Neither of these data sheets mention anything about a 4.9a or 8.9a version of the controller... And I don't think 5.1 refers to the documentation rev, right?

So what do 8.9a, 4.9a, and 5.1 refer to?

Regards.

Signature · 2 lines
Best Regards
Shawn Lin
#2 lore raw

Hi,

Quoted 11 lines · Shawn Lin

+ Michal, Sören Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Thanks,
Michal

author
#3 lore raw
Quoted 23 lines · Michal Simek

Hi,

Quoted 11 lines · Shawn Lin

+ Michal, Sören Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Quoted 7 lines

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Hello Michal,

I'm even more confused.

Arasan's 2010-02-19 data sheet is titled
SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller

Page 28 of the Xilinx data sheet mentions
SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller
Version 8.9A_apr02nd_2010

It does not make sense that Arasan would support SD3.0 in February, then go back to SD 2.0 in April.

I do note eMMC4.4 vs MMC3.31 => perhaps these are two *different* IP blocks?

Do your data sheets come with revision history?

Regards.

#4 lore raw
Quoted 44 lines · Mason
Quoted 23 lines · Michal Simek

Hi,

Quoted 11 lines · Shawn Lin

+ Michal, Sören Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Quoted 7 lines

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Hello Michal,

I'm even more confused.

Arasan's 2010-02-19 data sheet is titled
SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller

Page 28 of the Xilinx data sheet mentions
SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller
Version 8.9A_apr02nd_2010

Quoted 7 lines

It does not make sense that Arasan would support SD3.0 in February, then go back to SD 2.0 in April.

I do note eMMC4.4 vs MMC3.31 => perhaps these are two *different* IP blocks?

Do your data sheets come with revision history?

I don't have datasheet for this IP in my hand that's why I can't check it. But I can't see any problem with it. Our zynq SoC supports SD2.0 and it was requirement at that time. Bugs can happen. Arasan fixed it and create new version.
At the same time can have 3.0 versions but vendor is just decide not to use it for whatever reason.

That's why timing of features and versions can upgrade any time and unfortunately bugs happen.

Thanks,
Michal

#5 lore raw
Quoted 60 lines · Michal Simek
Quoted 44 lines · Mason
Quoted 23 lines · Michal Simek

Hi,

Quoted 11 lines · Shawn Lin

+ Michal, Sören Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Quoted 7 lines

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Hello Michal,

I'm even more confused.

Arasan's 2010-02-19 data sheet is titled
SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller

Page 28 of the Xilinx data sheet mentions
SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller
Version 8.9A_apr02nd_2010

Quoted 7 lines

It does not make sense that Arasan would support SD3.0 in February, then go back to SD 2.0 in April.

I do note eMMC4.4 vs MMC3.31 => perhaps these are two *different* IP blocks?

Do your data sheets come with revision history?

I don't have datasheet for this IP in my hand that's why I can't check it. But I can't see any problem with it. Our zynq SoC supports SD2.0 and it was requirement at that time. Bugs can happen. Arasan fixed it and create new version.
At the same time can have 3.0 versions but vendor is just decide not to use it for whatever reason.

Quoted 2 lines

That's why timing of features and versions can upgrade any time and unfortunately bugs happen.

We have several Arasan data sheets here. The document names are:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Userguide" and the revisions are 9.2a, 4.4a and 5.4a. I have the feeling that the document revisions have been mistaken as the IP revision. I cannot find any other indicator for the IP revision though. Does the IP have a way to discover its revision?

Sören

author
#6 lore raw
Quoted 64 lines · Sören Brinkmann
Quoted 60 lines · Michal Simek
Quoted 44 lines · Mason
Quoted 23 lines · Michal Simek

Hi,

Quoted 11 lines · Shawn Lin

+ Michal, Sören Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Quoted 7 lines

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Hello Michal,

I'm even more confused.

Arasan's 2010-02-19 data sheet is titled
SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller

Page 28 of the Xilinx data sheet mentions
SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller
Version 8.9A_apr02nd_2010

Quoted 7 lines

It does not make sense that Arasan would support SD3.0 in February, then go back to SD 2.0 in April.

I do note eMMC4.4 vs MMC3.31 => perhaps these are two *different* IP blocks?

Do your data sheets come with revision history?

I don't have datasheet for this IP in my hand that's why I can't check it. But I can't see any problem with it. Our zynq SoC supports SD2.0 and it was requirement at that time. Bugs can happen. Arasan fixed it and create new version.
At the same time can have 3.0 versions but vendor is just decide not to use it for whatever reason.

Quoted 2 lines

That's why timing of features and versions can upgrade any time and unfortunately bugs happen.

Quoted 6 lines

We have several Arasan data sheets here. The document names are:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Userguide" and the revisions are 9.2a, 4.4a and 5.4a. I have the feeling that the document revisions have been mistaken as the IP revision. I cannot find any other indicator for the IP revision though. Does the IP have a way to discover its revision?

To summarize, it looks to me like
4.9a and 8.9a are documentation revision numbers for this IP:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller"

and 5.1 seems to be the eMMC standard, so one of these IP:
http://arasan.com/products/emmc51/sd3-emmc-5-1-host/
http://arasan.com/products/emmc51/emmc-5-1-sd-4-1-host/

Whereas my board is using still another IP:
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller"

If that is correct, then I should be able to use the 8.9a compatible string, and perhaps my hardware will work in slightly degraded performance mode, from not using the newest protocol gizmos available.

Does that look likely?

Regards.

author
#7 lore raw
Quoted 78 lines · Mason
Quoted 62 lines · S?ren Brinkmann
Quoted 58 lines · Michal Simek
Quoted 42 lines · Mason
Quoted 21 lines · Michal Simek
Quoted 11 lines · Shawn Lin

+ Michal, S?ren Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Quoted 7 lines

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Hello Michal,

I'm even more confused.

Arasan's 2010-02-19 data sheet is titled
SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller

Page 28 of the Xilinx data sheet mentions
SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller
Version 8.9A_apr02nd_2010

Quoted 7 lines

It does not make sense that Arasan would support SD3.0 in February, then go back to SD 2.0 in April.

I do note eMMC4.4 vs MMC3.31 => perhaps these are two *different* IP blocks?

Do your data sheets come with revision history?

I don't have datasheet for this IP in my hand that's why I can't check it. But I can't see any problem with it. Our zynq SoC supports SD2.0 and it was requirement at that time. Bugs can happen. Arasan fixed it and create new version.
At the same time can have 3.0 versions but vendor is just decide not to use it for whatever reason.

Quoted 2 lines

That's why timing of features and versions can upgrade any time and unfortunately bugs happen.

Quoted 6 lines

We have several Arasan data sheets here. The document names are:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Userguide" and the revisions are 9.2a, 4.4a and 5.4a. I have the feeling that the document revisions have been mistaken as the IP revision. I cannot find any other indicator for the IP revision though. Does the IP have a way to discover its revision?

To summarize, it looks to me like
4.9a and 8.9a are documentation revision numbers for this IP:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller"

and 5.1 seems to be the eMMC standard, so one of these IP:
http://arasan.com/products/emmc51/sd3-emmc-5-1-host/
http://arasan.com/products/emmc51/emmc-5-1-sd-4-1-host/

Quoted 8 lines

Whereas my board is using still another IP:
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller"

If that is correct, then I should be able to use the 8.9a compatible string, and perhaps my hardware will work in slightly degraded performance mode, from not using the newest protocol gizmos available.

Resurrecting this thread after a chat with Michal on IRC.

The driver now supports a few more compatible strings. Tracing the history...

Soren/Xilinx defined "arasan,sdhci-8.9a" in e3ec3a3d11ad They have the "SD2.0/SDIO2.0/MMC3.31 AHB Host Controller" version (8.9a might be a document revision number, dated 2010-04-02)

Suman/APM added "arasan,sdhci-4.9a" in 308f3f8d8112 @Suman, @Rameshwar: what specific IP block does your SoC embed? What does 4.9a refer to? The documentation revision number?

Shawn/Rockchip added "arasan,sdhci-5.1" in da795ec26e25 This seems to be for an *actual* eMMC 5.1 version (instead of a documentation version) as mentioned in the commit message.

Douglas added "rockchip,rk3399-sdhci-5.1"
and made several other improvements.

I have reached out to Arasan support. Hopefully they can also help clear up the confusion, assuming they care about the Linux driver.

Regards.

#8 lore raw

Hi Mason,

Suman/APM added "arasan,sdhci-4.9a" in 308f3f8d8112 @Suman, @Rameshwar: what specific IP block does your SoC embed? What does 4.9a refer to? The documentation revision number?

We have Arasan SD3.0/ SDIO3.0/ eMMC4.41 AHB Host Controller IP embedded in our SoC and 4.9a is documentation revision number which was given by arasan.
FYI this documentation date was May, 2012.

Thanks,
Ram

Quoted 115 lines · Mason
Quoted 78 lines · Mason
Quoted 62 lines · S?ren Brinkmann
Quoted 58 lines · Michal Simek
Quoted 42 lines · Mason
Quoted 21 lines · Michal Simek
Quoted 11 lines · Shawn Lin

+ Michal, S?ren Brinkmann

Quoted 8 lines · Mason

Hello everyone,

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt states:

Required Properties:
- compatible: Compatibility string. Must be 'arasan,sdhci-8.9a' or

                 'arasan,sdhci-4.9a' or 'arasan,sdhci-5.1'
Quoted 8 lines
Quoted 2 lines

What do 8.9a, 4.9a, and 5.1 refer to?

Good question.

Michal told me that 8.9a and 4.9a came from Xilinx databook which define their available arasan controller to be version 4.9a and 8.9a.

Quoted 7 lines

Our version is coming from here.
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 28

Datasheets from 2012 and 2010 doesn't look too recent and I expect that Arasan did a lot of work from that time that's why I am not surprised that you are not able to see that versions.

Hello Michal,

I'm even more confused.

Arasan's 2010-02-19 data sheet is titled
SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller

Page 28 of the Xilinx data sheet mentions
SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller
Version 8.9A_apr02nd_2010

Quoted 7 lines

It does not make sense that Arasan would support SD3.0 in February, then go back to SD 2.0 in April.

I do note eMMC4.4 vs MMC3.31 => perhaps these are two *different* IP blocks?

Do your data sheets come with revision history?

I don't have datasheet for this IP in my hand that's why I can't check it. But I can't see any problem with it. Our zynq SoC supports SD2.0 and it was requirement at that time. Bugs can happen. Arasan fixed it and create new version.
At the same time can have 3.0 versions but vendor is just decide not to use it for whatever reason.

Quoted 2 lines

That's why timing of features and versions can upgrade any time and unfortunately bugs happen.

Quoted 6 lines

We have several Arasan data sheets here. The document names are:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Userguide" and the revisions are 9.2a, 4.4a and 5.4a. I have the feeling that the document revisions have been mistaken as the IP revision. I cannot find any other indicator for the IP revision though. Does the IP have a way to discover its revision?

To summarize, it looks to me like
4.9a and 8.9a are documentation revision numbers for this IP:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller"

and 5.1 seems to be the eMMC standard, so one of these IP:
http://arasan.com/products/emmc51/sd3-emmc-5-1-host/
http://arasan.com/products/emmc51/emmc-5-1-sd-4-1-host/

Quoted 8 lines

Whereas my board is using still another IP:
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller"

If that is correct, then I should be able to use the 8.9a compatible string, and perhaps my hardware will work in slightly degraded performance mode, from not using the newest protocol gizmos available.

Resurrecting this thread after a chat with Michal on IRC.

The driver now supports a few more compatible strings. Tracing the history...

Soren/Xilinx defined "arasan,sdhci-8.9a" in e3ec3a3d11ad They have the "SD2.0/SDIO2.0/MMC3.31 AHB Host Controller" version (8.9a might be a document revision number, dated 2010-04-02)

Suman/APM added "arasan,sdhci-4.9a" in 308f3f8d8112 @Suman, @Rameshwar: what specific IP block does your SoC embed? What does 4.9a refer to? The documentation revision number?

Shawn/Rockchip added "arasan,sdhci-5.1" in da795ec26e25 This seems to be for an *actual* eMMC 5.1 version (instead of a documentation version) as mentioned in the commit message.

Douglas added "rockchip,rk3399-sdhci-5.1"
and made several other improvements.

I have reached out to Arasan support. Hopefully they can also help clear up the confusion, assuming they care about the Linux driver.

Regards.

author
#9 lore raw
Quoted 10 lines · Rameshwar Sahu
Quoted 3 lines · Mason

Suman/APM added "arasan,sdhci-4.9a" in 308f3f8d8112 @Suman, @Rameshwar: what specific IP block does your SoC embed? What does 4.9a refer to? The documentation revision number?

We have Arasan SD3.0/ SDIO3.0/ eMMC4.41 AHB Host Controller IP embedded in our SoC and 4.9a is documentation revision number which was given by Arasan.
FYI this documentation date was May, 2012.

Hello Ram,

Thanks for the information.

Xilinx is using "SD2.0/SDIO2.0/MMC3.31 AHB Host Controller"
APM is using "SD3.0/SDIO3.0/eMMC4.41 AHB Host Controller"
Sigma is using "SD3.0/SDIO3.0/eMMC4.4 AHB Host Controller"
Rockchip is using ? (Shawn could you specify exactly which IP you use?)

And it looks like Arasan is using different revision numbers for every documentation they have.

The "SD3.0/SDIO3.0/eMMC4.4 AHB Host Controller" doc I have is at rev number 6.0, dated 2010-02-19.

Regards.

#10 lore raw
Quoted 13 lines · Mason
Quoted 10 lines · Rameshwar Sahu
Quoted 3 lines · Mason

Suman/APM added "arasan,sdhci-4.9a" in 308f3f8d8112 @Suman, @Rameshwar: what specific IP block does your SoC embed? What does 4.9a refer to? The documentation revision number?

We have Arasan SD3.0/ SDIO3.0/ eMMC4.41 AHB Host Controller IP embedded in our SoC and 4.9a is documentation revision number which was given by Arasan.
FYI this documentation date was May, 2012.

Quoted 5 lines

Hello Ram,

Thanks for the information.

Xilinx is using "SD2.0/SDIO2.0/MMC3.31 AHB Host Controller"

in Xilinx Zynq device

and
Xilinx ZynqMP device is using
"SD3.0/SDIO3.0/eMMC4.51 AHB Host Controller"

Thanks,
Michal

author
#11 lore raw

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller" "arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller" "arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

What do you think?

Regards.

#12 lore raw
Quoted 48 lines · CET Mason

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller" "arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller" "arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

Quoted 6 lines

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

What do you think?

It seems wrong to have the eMMC or SD version in the compatible string. Is that the only difference between the documents you found? Normally there should be a version of IP block itself, besides the supported protocol.

Arnd

author
#13 lore raw
Quoted 55 lines · Arnd Bergmann
Quoted 53 lines · CET Mason

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller" "arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller" "arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

Quoted 6 lines
Quoted 1 line

What do you think?

It seems wrong to have the eMMC or SD version in the compatible string. Is that the only difference between the documents you found? Normally there should be a version of IP block itself, besides the supported protocol.

But that is exactly the problem :-)

Nowhere in the documentation do they specify an "IP version". Some documents do provide a revision number, but that's just a *documentation* revision number, e.g.

changes in version 3.6 : fix typos
changes in version 9.1a : update company logo

That's why Xilinx used "arasan,sdhci-8.9a" and APM used "arasan,sdhci-4.9a". These are documentation revisions. In my opinion, that information is mostly worthless.

Looking more closely at SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf (User Guide, which has more info than Datasheet) I see this:

Changed Host Controller Version Register value from 16'h0002 to 16'h7501 Changed Host Controller Version Register value from 16'h8301 to 16'h8401 Changed Host Controller Version Register value from 16'h8401 to 16'h8501 Changed Host Controller Version Register to 16'h9502
Changed Host Controller Version Register to 16'h9602
Changed Host Controller Version Register to 16'h9902

Host controller version register (offset 0FEh)

Vendor Version Number 15:8
HwInit=0x99
This status is reserved for the vendor version number. The HD should not use this status.

Specification Version Number 7:0
HwInit=0x02
This status indicates the Host Controller Spec. Version. The upper and lower 4-bits indicate the version. Description
00 - SD Host Specification version 1.0
01 - SD Host Specification version 2.00 including only the feature of the Test Register 02 - SD Host Specification Version 3.00
others - Reserved

I'm not sure what this "Vendor Version Number" specifies, nor if is guaranteed to be unique across controllers.

In SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller_UserGuide.pdf, they write "The Vendor Version Number is set to 0x10 (1.0)"

I don't have a UserGuide for "arasan,sdhci-5.1".

Regards.

#14 lore raw

Hi Mason,

Nowhere in the documentation do they specify an "IP version". Some documents do provide a revision number, but that's just a *documentation* revision number, e.g.

changes in version 3.6 : fix typos
changes in version 9.1a : update company logo

That's why Xilinx used "arasan,sdhci-8.9a" and APM used "arasan,sdhci-4.9a". These are documentation revisions. In my opinion, that information is mostly worthless.

Arasan SD/SDIO/eMMC IP has a register which tells about the SD specification version and Vendor version number
Reg Name: Host controller version register (offset 0FEh) bit [15:8] is for vendor version number,
But, I have seen that Arasaan vendor version number is same as document revision number.

Quoted 116 lines · Mason
Quoted 55 lines · Arnd Bergmann
Quoted 53 lines · CET Mason

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller" "arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller" "arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

Quoted 6 lines
Quoted 1 line

What do you think?

It seems wrong to have the eMMC or SD version in the compatible string. Is that the only difference between the documents you found? Normally there should be a version of IP block itself, besides the supported protocol.

But that is exactly the problem :-)

Nowhere in the documentation do they specify an "IP version". Some documents do provide a revision number, but that's just a *documentation* revision number, e.g.

changes in version 3.6 : fix typos
changes in version 9.1a : update company logo

That's why Xilinx used "arasan,sdhci-8.9a" and APM used "arasan,sdhci-4.9a". These are documentation revisions. In my opinion, that information is mostly worthless.

Looking more closely at SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf (User Guide, which has more info than Datasheet) I see this:

Changed Host Controller Version Register value from 16'h0002 to 16'h7501 Changed Host Controller Version Register value from 16'h8301 to 16'h8401 Changed Host Controller Version Register value from 16'h8401 to 16'h8501 Changed Host Controller Version Register to 16'h9502
Changed Host Controller Version Register to 16'h9602
Changed Host Controller Version Register to 16'h9902

Host controller version register (offset 0FEh)

Vendor Version Number 15:8
HwInit=0x99
This status is reserved for the vendor version number. The HD should not use this status.

Specification Version Number 7:0
HwInit=0x02
This status indicates the Host Controller Spec. Version. The upper and lower 4-bits indicate the version. Description
00 - SD Host Specification version 1.0
01 - SD Host Specification version 2.00 including only the feature of the Test Register 02 - SD Host Specification Version 3.00
others - Reserved

I'm not sure what this "Vendor Version Number" specifies, nor if is guaranteed to be unique across controllers.

In SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller_UserGuide.pdf, they write "The Vendor Version Number is set to 0x10 (1.0)"

I don't have a UserGuide for "arasan,sdhci-5.1".

Regards.

#15 lore raw
Quoted 6 lines · Rameshwar Sahu

Hi Mason,

Nowhere in the documentation do they specify an "IP version". Some documents do provide a revision number, but that's just a *documentation* revision number, e.g.

Quoted 7 lines

changes in version 3.6 : fix typos
changes in version 9.1a : update company logo

That's why Xilinx used "arasan,sdhci-8.9a" and APM used "arasan,sdhci-4.9a". These are documentation revisions. In my opinion, that information is mostly worthless.

For the record, the important information conveyed by Rameshwar's email is the following:

Arasan SD/SDIO/eMMC IP has a register which tells about the SD specification version and Vendor version number
Reg Name: Host controller version register (offset 0FEh) bit [15:8] is for vendor version number,
But, I have seen that Arasaan vendor version number is same as document revision number.

(At first I had ignored the email because it repeated Mason's email without quoting, but then I realised it contained some information)

Quoted 118 lines · Mason
Quoted 116 lines · Arnd Bergmann
Quoted 56 lines · CET Mason
Quoted 54 lines

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller" "arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller" "arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

Quoted 6 lines
Quoted 1 line

What do you think?

It seems wrong to have the eMMC or SD version in the compatible string. Is that the only difference between the documents you found? Normally there should be a version of IP block itself, besides the supported protocol.

But that is exactly the problem :-)

Nowhere in the documentation do they specify an "IP version". Some documents do provide a revision number, but that's just a *documentation* revision number, e.g.

changes in version 3.6 : fix typos
changes in version 9.1a : update company logo

That's why Xilinx used "arasan,sdhci-8.9a" and APM used "arasan,sdhci-4.9a". These are documentation revisions. In my opinion, that information is mostly worthless.

Looking more closely at SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf (User Guide, which has more info than Datasheet) I see this:

Changed Host Controller Version Register value from 16'h0002 to 16'h7501 Changed Host Controller Version Register value from 16'h8301 to 16'h8401 Changed Host Controller Version Register value from 16'h8401 to 16'h8501 Changed Host Controller Version Register to 16'h9502
Changed Host Controller Version Register to 16'h9602
Changed Host Controller Version Register to 16'h9902

Host controller version register (offset 0FEh)

Vendor Version Number 15:8
HwInit=0x99
This status is reserved for the vendor version number. The HD should not use this status.

Specification Version Number 7:0
HwInit=0x02
This status indicates the Host Controller Spec. Version. The upper and lower 4-bits indicate the version. Description
00 - SD Host Specification version 1.0
01 - SD Host Specification version 2.00 including only the feature of the Test Register 02 - SD Host Specification Version 3.00
others - Reserved

I'm not sure what this "Vendor Version Number" specifies, nor if is guaranteed to be unique across controllers.

In SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller_UserGuide.pdf, they write "The Vendor Version Number is set to 0x10 (1.0)"

I don't have a UserGuide for "arasan,sdhci-5.1".

Regards.

#16 lore raw
Quoted 25 lines · Sebastian Frias
Quoted 6 lines · Rameshwar Sahu

Hi Mason,

Nowhere in the documentation do they specify an "IP version". Some documents do provide a revision number, but that's just a *documentation* revision number, e.g.

Quoted 7 lines

changes in version 3.6 : fix typos
changes in version 9.1a : update company logo

That's why Xilinx used "arasan,sdhci-8.9a" and APM used "arasan,sdhci-4.9a". These are documentation revisions. In my opinion, that information is mostly worthless.

For the record, the important information conveyed by Rameshwar's email is the following:

Arasan SD/SDIO/eMMC IP has a register which tells about the SD specification version and Vendor version number
Reg Name: Host controller version register (offset 0FEh) bit [15:8] is for vendor version number,
But, I have seen that Arasaan vendor version number is same as document revision number.

Quoted 4 lines

(At first I had ignored the email because it repeated Mason's email without quoting, but then I realised it contained some information)

Values on real HW.

ZynqMP device
xsdb% mrd 0xFF1600FC
FF1600FC: 10020000

Zynq device:
xsdb% mrd 0xE01000FC
E01000FC: 89010000

Based on docs I have access to.

Specification_Version_Number (bits:23:16)
00 - SD Host Specification version 1.0
01 - SD Host Specification version 2.00 including only the feature of the Test Register
02 - SD Host Specification version 3.00

Vendor_Version_Number 31:24

with 32bit access from FC

Thanks,
Michal

#17 lore raw
In reply to Mason
Quoted 48 lines · Mason

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller" "arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller" "arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

Quoted 6 lines

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

What do you think?

I'm trying to picture this. Imagine:
a) SoC XYZ used two versions:
- SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf
- SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf
b) That the compatible suffixes were defined as "sd30-emmc44" and "sd30-emmc45" respectively
c) That the chip-specific init is the same for both.

What would be the recommended way of dealing with that at DT/driver level?

1) XYZ's DT1: compatible = "arasan,sdhci-sd30-emmc44", "XYZ,sdhci"

         DT2: compatible = "arasan,sdhci-sd30-emmc45", "XYZ,sdhci"

driver: match "XYZ,sdhci" for chip-specific init, and then leaves
"arasan,sdhci-sd30-emmc44" or arasan,sdhci-sd30-emmc45" for generic part

2) XYZ's DT1: compatible = "XYZ,arasan-sdhci-sd30-emmc44"

         DT2: compatible = "XYZ,arasan-sdhci-sd30-emmc45"

driver: match "XYZ,arasan-sdhci-sd30-emmc44" or "XYZ,arasan-sdhci-sd30-emmc45"
for chip-specific init and generic parts

3) XYZ's DT1: compatible = "arasan,sdhci-sd30-emmc44"

         DT2: compatible = "arasan,sdhci-sd30-emmc45"

driver: match "arasan,sdhci-sd30-emmc44" or "arasan,sdhci-sd30-emmc45" for
generic part; chip-specific init done somewhere else (bootloader?)

4) something else?

How would those solutions be affected if condition c) was changed to "chip-specific init is different for both"?

Quoted 3 lines

Regards.

#18 lore raw
In reply to Mason
Quoted 5 lines · Mason

Hello,

@Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

From the Host Controller version register (0xfe)
bit[7:0]: 0x2 : specification version number is 3.00 bit[15:8]: 0x10: Vendor version number is 1.0

Command Queueing version register (0x200) bit[11:8]: 0x5 eMMC Major version number bit[7:4]: 0x1 eMMC manor version number bit[3:0]: 0x0 eMMC version suffix

User guide "eMMC 5.1/SD3.0/SDIO3.0 Host Controller" Revision number: 1.14
Released on Dec. 2014

Quoted 57 lines

Based on the feedback I received, here is an updated list of compatible strings and controller versions dealt with by the drivers/mmc/host/sdhci-of-arasan.c code.

Xilinx Zynq:
"SD2.0 / SDIO2.0 / MMC3.31 AHB Host Controller" "arasan,sdhci-8.9a"
NB: 8.9a is the documentation revision (dated 2011-10-19) subsequent tweaks labeled 9.0a, 9.1a, 9.2a

Xilinx ZynqMP:
"SD3.0 / SDIO3.0 / eMMC4.51 AHB Host Controller"
"arasan,sdhci-8.9a"
NB: using the same compatible string as Zynq

Sigma SMP87xx
"SD3.0 / SDIO3.0 / eMMC4.4 AHB Host Controller" no compatible string yet, platform-specific init required

APM:
"SD3.0 / SDIO3.0 / eMMC4.41 AHB Host Controller"
"arasan,sdhci-4.9a"
NB: 4.9a appears to be the documentation revision
no functional diff with "arasan,sdhci-8.9a"

Rockchip
Exact IP unknown, waiting for Shawn's answer "arasan,sdhci-5.1"
NB: 5.1 appears to refer to the eMMC standard supported

On a final note, there are many variations of the Arasan IP. I've tracked down at least the following:

SD_2.0_SDIO_2.0__MMC_3.31_AHB_Host_Controller.pdf
SD_3.0_SDIO_3.0_eMMC_4.41_OCP_Host_Controller.pdf
SD_3.0_SDIO_3.0_eMMC_4.4__AHB_Host_Controller.pdf
SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller.pdf
SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller.pdf
SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller.pdf
SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller.pdf

It seems to me the compatible string should specify the SD/SDIO version AND the eMMC version, since it seems many combinations are allowed, e.g. eMMC 4.51 has two possible SD versions.

What do you think?

Regards.

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
Best Regards
Shawn Lin
author
#19 lore raw
Quoted 9 lines · Shawn Lin
Quoted 2 lines · Mason

Shawn Lin, could you take a look below and tell me exactly which IP core(s) Rockchip is using in its SoCs?

From the Host Controller version register (0xfe) bit[7:0]: 0x2 : specification version number is 3.00 bit[15:8]: 0x10: Vendor version number is 1.0

Quoted 8 lines

Command Queueing version register (0x200) bit[11:8]: 0x5 eMMC Major version number bit[7:4]: 0x1 eMMC manor version number bit[3:0]: 0x0 eMMC version suffix

User guide "eMMC 5.1/SD3.0/SDIO3.0 Host Controller" Revision number: 1.14
Released on Dec. 2014

Wow! Yet another HW revision I wasn't aware of :-)

For the record, I think the 0x200 register was introduced fairly recently, as it's not documented in any of the user guides I have access to.

To summarize the situation, Arasan has made (at least) the following versions of the HW block:

SD_2.0_SDIO_2.0__MMC_3.31_Host_Controller
SD_3.0_SDIO_3.0_eMMC_4.4__Host_Controller
SD_3.0_SDIO_3.0_eMMC_4.41_Host_Controller
SD_3.0_SDIO_3.0_eMMC_4.5__Host_Controller
SD_3.0_SDIO_3.0_eMMC_4.51_Host_Controller
SD_3.0_SDIO_3.0_eMMC_5.1__Host Controller
SD_4.1_SDIO_4.1_eMMC_4.51_Host_Controller
SD_4.1_SDIO_4.1_eMMC_5.1__Host_Controller

Xilinx = "arasan,sdhci-8.9a" compat string SD2.0 / SDIO2.0 / MMC3.31 (in Zynq)
SD3.0 / SDIO3.0 / eMMC4.51 (in ZynqMP)
Vendor version 0x89 (Zynq, from 8.9a) and 0x10 (ZynqMP)

Sigma = no compat string yet
SD3.0 / SDIO3.0 / eMMC4.4 (in SMP87xx) Vendor version 0x99 (not related to document revision)

APM = "arasan,sdhci-4.9a"
SD3.0 / SDIO3.0 / eMMC4.41
Vendor version unknown

Rockchip = "arasan,sdhci-5.1"
SD3.0 / SDIO3.0 / eMMC 5.1
Vendor version 0x10

Conclusion, it doesn't look like the "Vendor version" field contains dependable information, considering the duplicate 0x10 in different HW revisions.

Regards.