Message ID | 20121129110532.GA19980@BT22081 |
---|---|
State | Rejected, archived |
Delegated to: | Andy Fleming |
Headers | show |
Hi, i didn't understand why need to set by force? Best Regards, Jaehoon Chung 2012/11/29 Davide Bonfanti <davide.bonfanti@bticino.it>: > Some eMMC require this setting to work properly. > Tested on: > - Toshiba THGBM2G8D8FBAIB (the one giving the problem) > - Toshiba THGBM4G4D1HBAR > - Micron MTFC4GMVEA > - Hynix H26M64002BNR > - SanDisk SDIN5E1-32G > > > Signed-off-by: Davide Bonfanti <davide.bonfanti@bticino.it> > --- > drivers/mmc/mmc.c | 3 ++- > include/mmc.h | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index 5ffd8c5..cf66811 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -530,7 +530,8 @@ static int mmc_send_op_cond(struct mmc *mmc) > cmd.cmdarg = (mmc_host_is_spi(mmc) ? 0 : > (mmc->voltages & > (cmd.response[0] & OCR_VOLTAGE_MASK)) | > - (cmd.response[0] & OCR_ACCESS_MODE)); > + (cmd.response[0] & OCR_ACCESS_MODE)) | > + OCR_ACCESS_SECTOR_MODE; > > if (mmc->host_caps & MMC_MODE_HC) > cmd.cmdarg |= OCR_HCS; > diff --git a/include/mmc.h b/include/mmc.h > index a13e2bd..f1314d8 100644 > --- a/include/mmc.h > +++ b/include/mmc.h > @@ -108,6 +108,7 @@ > #define OCR_HCS 0x40000000 > #define OCR_VOLTAGE_MASK 0x007FFF80 > #define OCR_ACCESS_MODE 0x60000000 > +#define OCR_ACCESS_SECTOR_MODE (1 << 30) > > #define SECURE_ERASE 0x80000000 > > -- > 1.7.9.5 > > > > Ce message, ainsi que tous les fichiers joints à ce message, > peuvent contenir des informations sensibles et/ ou confidentielles > ne devant pas être divulguées. Si vous n'êtes pas le destinataire > de ce message (ou que vous recevez ce message par erreur), nous > vous remercions de le notifier immédiatement à son expéditeur, et > de détruire ce message. Toute copie, divulgation, modification, > utilisation ou diffusion, non autorisée, directe ou indirecte, de > tout ou partie de ce message, est strictement interdite. > > This e-mail, and any document attached hereby, may contain > confidential and/or privileged information. If you are not the > intended recipient (or have received this e-mail in error) please > notify the sender immediately and destroy this e-mail. Any > unauthorized, direct or indirect, copying, disclosure, distribution > or other use of the material or parts thereof is strictly > forbidden. > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
It seems to me a bug of the specific mmc like if that it declares byte-mode, but supports only sector mode. Sincerely I don't know if it is a good idea to accept a workaround like this, but this is the only way I found to have my board working. Best Regards, Davide Bonfanti -----Jae hoon Chung <jh80.chung@gmail.com> ha scritto: -----Per: Davide Bonfanti <davide.bonfanti@bticino.it> Da: Jae hoon Chung <jh80.chung@gmail.com> Data: 29/11/2012 16:10 Cc: u-boot@lists.denx.de, afleming@gmail.com, Jaehoon Chung <jh80.chung@samsung.com> Oggetto: Re: [U-Boot] [PATCH v0] mmc: forced sector mode when accessing OCR register Hi, i didn't understand why need to set by force? Best Regards, Jaehoon Chung 2012/11/29 Davide Bonfanti <davide.bonfanti@bticino.it>: > Some eMMC require this setting to work properly. > Tested on: > - Toshiba THGBM2G8D8FBAIB (the one giving the problem) > - Toshiba THGBM4G4D1HBAR > - Micron MTFC4GMVEA > - Hynix H26M64002BNR > - SanDisk SDIN5E1-32G > > > Signed-off-by: Davide Bonfanti <davide.bonfanti@bticino.it> > --- > drivers/mmc/mmc.c | 3 ++- > include/mmc.h | 1 + > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c > index 5ffd8c5..cf66811 100644 > --- a/drivers/mmc/mmc.c > +++ b/drivers/mmc/mmc.c > @@ -530,7 +530,8 @@ static int mmc_send_op_cond(struct mmc *mmc) > cmd.cmdarg = (mmc_host_is_spi(mmc) ? 0 : > (mmc->voltages & > (cmd.response[0] & OCR_VOLTAGE_MASK)) | > - (cmd.response[0] & OCR_ACCESS_MODE)); > + (cmd.response[0] & OCR_ACCESS_MODE)) | > + OCR_ACCESS_SECTOR_MODE; > > if (mmc->host_caps & MMC_MODE_HC) > cmd.cmdarg |= OCR_HCS; > diff --git a/include/mmc.h b/include/mmc.h > index a13e2bd..f1314d8 100644 > --- a/include/mmc.h > +++ b/include/mmc.h > @@ -108,6 +108,7 @@ > #define OCR_HCS 0x40000000 > #define OCR_VOLTAGE_MASK 0x007FFF80 > #define OCR_ACCESS_MODE 0x60000000 > +#define OCR_ACCESS_SECTOR_MODE (1 << 30) > > #define SECURE_ERASE 0x80000000 > > -- > 1.7.9.5 > > > > Ce message, ainsi que tous les fichiers joints à ce message, > peuvent contenir des informations sensibles et/ ou confidentielles > ne devant pas être divulguées. Si vous n'êtes pas le destinataire > de ce message (ou que vous recevez ce message par erreur), nous > vous remercions de le notifier immédiatement à son expéditeur, et > de détruire ce message. Toute copie, divulgation, modification, > utilisation ou diffusion, non autorisée, directe ou indirecte, de > tout ou partie de ce message, est strictement interdite. > > This e-mail, and any document attached hereby, may contain > confidential and/or privileged information. If you are not the > intended recipient (or have received this e-mail in error) please > notify the sender immediately and destroy this e-mail. Any > unauthorized, direct or indirect, copying, disclosure, distribution > or other use of the material or parts thereof is strictly > forbidden. > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index 5ffd8c5..cf66811 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -530,7 +530,8 @@ static int mmc_send_op_cond(struct mmc *mmc) cmd.cmdarg = (mmc_host_is_spi(mmc) ? 0 : (mmc->voltages & (cmd.response[0] & OCR_VOLTAGE_MASK)) | - (cmd.response[0] & OCR_ACCESS_MODE)); + (cmd.response[0] & OCR_ACCESS_MODE)) | + OCR_ACCESS_SECTOR_MODE; if (mmc->host_caps & MMC_MODE_HC) cmd.cmdarg |= OCR_HCS; diff --git a/include/mmc.h b/include/mmc.h index a13e2bd..f1314d8 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -108,6 +108,7 @@ #define OCR_HCS 0x40000000 #define OCR_VOLTAGE_MASK 0x007FFF80 #define OCR_ACCESS_MODE 0x60000000 +#define OCR_ACCESS_SECTOR_MODE (1 << 30) #define SECURE_ERASE 0x80000000
Some eMMC require this setting to work properly. Tested on: - Toshiba THGBM2G8D8FBAIB (the one giving the problem) - Toshiba THGBM4G4D1HBAR - Micron MTFC4GMVEA - Hynix H26M64002BNR - SanDisk SDIN5E1-32G Signed-off-by: Davide Bonfanti <davide.bonfanti@bticino.it> --- drivers/mmc/mmc.c | 3 ++- include/mmc.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-)