Re: [U-Boot-Users] drivers MMCplus for at91sam9x

Pierre Savary wrote:
I use a MMCplus 4GB on my design (with at91sam9260). It's wired with 4 bits.
The MCI controller on the AT91SAM926x family does not support MMCplus. There is no way to support a 4 bit bus, since the MCI controller supports only 1 bit to an MMC chip. The MCI will support a 4 bit SD chip, but I don't think it can be tricked into working with a 4 bit MMC chip (at least not via software alone).
The only reasonable solution is switching to a processor that has MMCplus support. Maybe Atmel has been working on one?
Currently U-boot (1.1.5) can't detect correctly the MMC and so I can't read my Linux kernel Image on the ext3 part of this MMC. If I use MMC 1GB, it works.
Did you add MMCplus commands to the MCI U-Boot driver? You can do this to the extent that these changes do not require the MCI controller to be MMCplus compliant. (The MCI U-Boot driver I'm aware of contains no MMCplus support.)
I suggest that you use the u-boot sources available via git. You will get very little support (if any) from the U-Boot ML for two reasons:
1) U-Boot 1.1.5 is extremely old and no one on the list is interested in supporting it.
2) The version of U-Boot 1.1.5 you are using almost certainly has an Atmel patch applied to it that was never accepted into the "official" U-Boot tree.
However, ...
It appears that someone is working on the AT91SAM9260 within the official U-Boot (git) tree, since the ./include/configs/at91sam9260ek.h file is there. Other file structures like ./cpu/arm926ejs/* seem to be missing some drivers and other support files. I know that the AT91SAM926x specific U-Boot files were never an official part of U-Boot, but that appears to be changing. It is my understanding that the AT91SAM926x support is being completely reworked and integrated with the AT91CAP9 code that has been present in git for over a month already. The AT91CAP9 and AT91SAM926x are very similar and should share a lot of code.
Even if the AT91SAM9260 is not quite ready, the AT91CAP9 code should provide the basis of a current U-Boot for the AT91SAM926x family.
Somebody have already use it? Or somebody have already implemented the ext_csd and high capacity with MMC on another platform?
I know that the MCI controller can be used to access 1GB MMCplus chips, but I'm not sure it can be used to access MMCplus chips larger than that. There may be a special MMCplus command that will allow larger chips to be accessed. Try looking for it in your MMCplus chip's manual.
Sincerely,
Ken Fuchs
-----Original Message----- From: u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] On Behalf Of Pierre Savary Sent: Tuesday, April 08, 2008 09:32 To: u-boot-users@lists.sourceforge.net Cc: 'Pierre Ossman' Subject: [U-Boot-Users] drivers MMCplus for at91sam9x
Hi, I use a MMCplus 4GB on my design (with at91sam9260). It's wired with 4 bits. Currently U-boot (1.1.5) can't detect correctly the MMC and so I can't read my Linux kernel Image on the ext3 part of this MMC. If I use MMC 1GB, it works. Somebody have already use it? Or somebody have already implemented the ext_csd and high capacity with MMC on another platform? I need help. Thanks in advance to help me.
Regards,
Pierre
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java
.sun.com/javaone _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users

Thanks a lot for your help. In fact it's not really important to support MMCplus, the main is to support MMC v4 where the extended CSD is introduced. Moreover, it's not really important if only one wire is used... I want only be able to read on a MMC 4Gb with my U-boot...
Thanks in advance
Pierre
-----Message d'origine----- De : u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] De la part de Ken.Fuchs@bench.com Envoyé : vendredi 11 avril 2008 00:31 À : pierre.savary@kerlink.fr Cc : u-boot-users@lists.sourceforge.net; drzeus-mmc@drzeus.cx Objet : Re: [U-Boot-Users] drivers MMCplus for at91sam9x
Pierre Savary wrote:
I use a MMCplus 4GB on my design (with at91sam9260). It's wired with 4 bits.
The MCI controller on the AT91SAM926x family does not support MMCplus. There is no way to support a 4 bit bus, since the MCI controller supports only 1 bit to an MMC chip. The MCI will support a 4 bit SD chip, but I don't think it can be tricked into working with a 4 bit MMC chip (at least not via software alone).
The only reasonable solution is switching to a processor that has MMCplus support. Maybe Atmel has been working on one?
Currently U-boot (1.1.5) can't detect correctly the MMC and so I can't read my Linux kernel Image on the ext3 part of this MMC. If I use MMC 1GB, it works.
Did you add MMCplus commands to the MCI U-Boot driver? You can do this to the extent that these changes do not require the MCI controller to be MMCplus compliant. (The MCI U-Boot driver I'm aware of contains no MMCplus support.)
I suggest that you use the u-boot sources available via git. You will get very little support (if any) from the U-Boot ML for two reasons:
1) U-Boot 1.1.5 is extremely old and no one on the list is interested in supporting it.
2) The version of U-Boot 1.1.5 you are using almost certainly has an Atmel patch applied to it that was never accepted into the "official" U-Boot tree.
However, ...
It appears that someone is working on the AT91SAM9260 within the official U-Boot (git) tree, since the ./include/configs/at91sam9260ek.h file is there. Other file structures like ./cpu/arm926ejs/* seem to be missing some drivers and other support files. I know that the AT91SAM926x specific U-Boot files were never an official part of U-Boot, but that appears to be changing. It is my understanding that the AT91SAM926x support is being completely reworked and integrated with the AT91CAP9 code that has been present in git for over a month already. The AT91CAP9 and AT91SAM926x are very similar and should share a lot of code.
Even if the AT91SAM9260 is not quite ready, the AT91CAP9 code should provide the basis of a current U-Boot for the AT91SAM926x family.
Somebody have already use it? Or somebody have already implemented the ext_csd and high capacity with MMC on another platform?
I know that the MCI controller can be used to access 1GB MMCplus chips, but I'm not sure it can be used to access MMCplus chips larger than that. There may be a special MMCplus command that will allow larger chips to be accessed. Try looking for it in your MMCplus chip's manual.
Sincerely,
Ken Fuchs
-----Original Message----- From: u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] On Behalf Of Pierre Savary Sent: Tuesday, April 08, 2008 09:32 To: u-boot-users@lists.sourceforge.net Cc: 'Pierre Ossman' Subject: [U-Boot-Users] drivers MMCplus for at91sam9x
Hi, I use a MMCplus 4GB on my design (with at91sam9260). It's wired with 4 bits. Currently U-boot (1.1.5) can't detect correctly the MMC and so I can't read my Linux kernel Image on the ext3 part of this MMC. If I use MMC 1GB, it works. Somebody have already use it? Or somebody have already implemented the ext_csd and high capacity with MMC on another platform? I need help. Thanks in advance to help me.
Regards,
Pierre
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Register now and save $200. Hurry, offer ends at 11:59 p.m., Monday, April 7! Use priority code J8TLD2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java
.sun.com/javaone _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users
------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javao ne _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users

On Thu, 10 Apr 2008 17:31:24 -0500 Ken.Fuchs@bench.com wrote:
Pierre Savary wrote:
I use a MMCplus 4GB on my design (with at91sam9260). It's wired with 4 bits.
The MCI controller on the AT91SAM926x family does not support MMCplus. There is no way to support a 4 bit bus, since the MCI controller supports only 1 bit to an MMC chip.
Untrue. The hardware interface is identical for 4-bit SD and 4-bit MMC. So if that part isn't working, it's because you either have a bug or because you lack 4-bit MMC support entirely in u-boot.
I know that the MCI controller can be used to access 1GB MMCplus chips, but I'm not sure it can be used to access MMCplus chips larger than that. There may be a special MMCplus command that will allow larger chips to be accessed. Try looking for it in your MMCplus chip's manual.
All compliant cards above 2 GB require special handling. They use a system identical to SDHC (except for the init). Check the specs (this part is publicly available) or the Linux code.
On Fri, 11 Apr 2008 10:26:52 +0200 "Pierre Savary" pierre.savary@kerlink.fr wrote:
Thanks a lot for your help. In fact it's not really important to support MMCplus, the main is to support MMC v4 where the extended CSD is introduced. Moreover, it's not really important if only one wire is used... I want only be able to read on a MMC 4Gb with my U-boot...
Just to avoid some more confusion, MMCplus is the marketing name of the full size MMC cards since version 4. So when discussing technical attributes, the MMCplus/MMCmobile distinction is not that useful. It's better to just call them v4. :)
Rgds

Pierre Ossman wrote:
Ken Fuchs wrote:
The MCI controller on the AT91SAM926x family does not support MMCplus. There is no way to support a 4 bit bus, since the MCI controller supports only 1 bit to an MMC chip.
Untrue. The hardware interface is identical for 4-bit SD and 4-bit MMC. So if that part isn't working, it's because you either have a bug or because you lack 4-bit MMC support entirely in u-boot.
The manual for the AT91SAM926x processors clearly states that the MCI controller supports MMC 2.2. I asked Atmel whether this controller could support 4 bits to an MMC 4.x chip and they said _no_. The answer is supposedly from their engineering group in France.
4-bit MMC support can easily be added to U-Boot, but the MCI controller is MMC 2.2, and this standard only allows for a 1-bit bus to MMC, so I'm not sure you can make it work at all. Atmel will definitely not help you, since they guarantee only MMC 2.2 compliance with the AT91SAM926x processor family. Has this changed?
Pierre Ossman omitted the following part of my original response:
The MCI will support a 4 bit SD chip, but I don't think it can be tricked into working with a 4 bit MMC chip (at least not via software alone).
How does one program the MCI controller to send 4 bit (parallel) data an MMC 4.x chip, with or without telling it that it is communicating to a 4-bit SD chip? The only way to get 4 bits of data out of the MCI is to tell it that it is connected to a SD (1.0) chip. If you program the MCI to communicate with an MMC chip, it will send data out only on the low order bit.
If you have a way around this, please let us know what it is.
All compliant cards above 2 GB require special handling. They use a system identical to SDHC (except for the init). Check the specs (this part is publicly available) or the Linux code.
Both ends of the communication link must considered. It may not be sufficient that the MMC chip is MMC 4.x; The fact that the MCI controller is only MMC 2.2 or SD 1.0 compliant, may or may not impact this special handling.
Sincerely,
Ken Fuchs

On Fri, 11 Apr 2008 13:54:13 -0500 Ken.Fuchs@bench.com wrote:
The manual for the AT91SAM926x processors clearly states that the MCI controller supports MMC 2.2. I asked Atmel whether this controller could support 4 bits to an MMC 4.x chip and they said _no_. The answer is supposedly from their engineering group in France.
What they answered was if Atmel would support such a solution, not if the hardware would.
How does one program the MCI controller to send 4 bit (parallel) data an MMC 4.x chip, with or without telling it that it is communicating to a 4-bit SD chip? The only way to get 4 bits of data out of the MCI is to tell it that it is connected to a SD (1.0) chip. If you program the MCI to communicate with an MMC chip, it will send data out only on the low order bit.
You tell it to use all four bits. That's it. The setting isn't MMC/SD, it's 1-bit/4-bit.
Both ends of the communication link must considered. It may not be sufficient that the MMC chip is MMC 4.x; The fact that the MCI controller is only MMC 2.2 or SD 1.0 compliant, may or may not impact this special handling.
It does not in the slightest. Remember that these controllers are extremely dumb. The low level behaviour of the protocol hasn't changed since the very first specs, so only software needs to be changed to support even the newest features.
Rgds

Then my MMC 4GB works with my Linux kernel but if I can't load my kernel (located on the first part of this MMC) ... it's not really interesting :(
So, somebody does already use MMC v4 with U-boot???
Thanks in advance
Pierre
-----Message d'origine----- De : u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] De la part de Pierre Ossman Envoyé : samedi 12 avril 2008 11:28 À : Ken.Fuchs@bench.com Cc : pierre.savary@kerlink.fr; u-boot-users@lists.sourceforge.net Objet : Re: [U-Boot-Users] drivers MMCplus for at91sam9x
On Fri, 11 Apr 2008 13:54:13 -0500 Ken.Fuchs@bench.com wrote:
The manual for the AT91SAM926x processors clearly states that the MCI controller supports MMC 2.2. I asked Atmel whether this controller could support 4 bits to an MMC 4.x chip and they said _no_. The answer is supposedly from their engineering group in France.
What they answered was if Atmel would support such a solution, not if the hardware would.
How does one program the MCI controller to send 4 bit (parallel) data an MMC 4.x chip, with or without telling it that it is communicating to a 4-bit SD chip? The only way to get 4 bits of data out of the MCI is to tell it that it is connected to a SD (1.0) chip. If you program the MCI to communicate with an MMC chip, it will send data out only on the low order bit.
You tell it to use all four bits. That's it. The setting isn't MMC/SD, it's 1-bit/4-bit.
Both ends of the communication link must considered. It may not be sufficient that the MMC chip is MMC 4.x; The fact that the MCI controller is only MMC 2.2 or SD 1.0 compliant, may or may not impact this special handling.
It does not in the slightest. Remember that these controllers are extremely dumb. The low level behaviour of the protocol hasn't changed since the very first specs, so only software needs to be changed to support even the newest features.
Rgds
participants (3)
-
Ken.Fuchs@bench.com
-
Pierre Ossman
-
Pierre Savary