booting, SD cards and u-boot environment variables

two (almost certainly) dumb questions.

1) the SRM states that, to be used for booting, an MMC/SD card must be
a 3V/4-bit card, not 1.8V/8-bit. so, when pulling a card off the
shelf, how does one tell? none of the cards i've checked list that on
the package or the card.

  and does "booting" from the card mean booting *entirely* -- as in
RESET/USER combo? since using u-boot from NAND and pulling the kernel
and rootfs off of the SD card could still be interpreted as "booting"
from the SD card, but i'm going to assume that it means booting
completely and bypassing NAND. (if that's the case, the SRM could
make that point more strenuously.)

2) are the u-boot environment variables stored in NAND flash? i
wanted to set up a number of different SD cards, each of which had
their own MLO, u-boot.bin, u-boot env vars, etc., but it appears that
when i change and "saveenv", those values get stored in flash, so
whatever got saved last is what's used, which makes my plan a bit more
difficult. is that what's happening?

  more dumb questions to follow.

rday

  1. All standard SD/MMC cards should be fine… most cards that support 1.8v also support 3v. It is very unlikely you’ll be able to find a 1.8v only card.
  2. Yes, u-boot’s variables are stored into one of the NAND flash areas… You can probably use a u-boot script file loaded from the SD card to set environment variables and then boot which could be different on different cards…
  1. the SRM states that, to be used for booting, an MMC/SD card must be

a 3V/4-bit card, not 1.8V/8-bit. so, when pulling a card off the

shelf, how does one tell? none of the cards i’ve checked list that on

the package or the card.

  1. are the u-boot environment variables stored in NAND flash? i

wanted to set up a number of different SD cards, each of which had

their own MLO, u-boot.bin, u-boot env vars, etc., but it appears that

when i change and “saveenv”, those values get stored in flash, so

whatever got saved last is what’s used, which makes my plan a bit more

difficult. is that what’s happening?

  1. You can easily see if it’s a 4-bit or a 8-bit card by looking at the connections at the card.

For you convenience I have attached an image with both card-types.

image001.png

Secondly according to MMC Spec v4.3 no such thing as a 1.8V only card exist. The MMC Spec specifies two different card types – High-Voltage (2.7-3.6V) and Dual-Voltage (1.7-1.95V and 2.7-3.6V) and communication is in both cases for compatibility reasons expected to be starting at high-voltage, although not really required for the dual-voltage cards. All cards therefore support 4-bit 3.3V (eMMC though being an exception AFAIR) J

  1. As far as I remember you are right, but I’m not 100% sure => Your plan might be a bit more troublesome than first expected J

Best regards

Søren

I searched my ENTIRE shoebox of SD cards and did not find a single 8-bit card…

image001.png

The 8-bit cards are MMC only. The SD standard does not define an 8-bit card. So any retail package with the SD logo on it should be 4-bit.

The SD and MMC seem to share common roots, although now are in competition with each other. MMC is less common in my experience, and chose to move to a larger bus width to improve performance, while SD is moving to higher clock rates in the 3.0 spec (100MHz DDR) to achieve better performance.

-Howard

most cards that support 1.8v also support 3v.
It is very unlikely you'll be able to find a 1.8v only card.

Just to be 100% clear – Officially no such thing as a 1.8V only card exist
(exception might be eMMC for soldering, but this is not a card :-):

MMC : 4- and 8-bit cards – All supporting 3V operation (although some
supports 1.8V as well)
SD : 4-bit cards only – Only 3V cards supported

Best regards
  Søren

First MMC cards were 1bit only and handled up to 128MB size. Later (in
2005) 4bit and 8bit MMC cards appeared in MMC 4 specifications. They are
marketed as MMC4 MMCplus MMCmobile. SD cards have to support 1bit and
4bit modes.

Regards,

so if i read these last few posts correctly, any commercial
multi-gig SD card i pull off the shelf should be beagleboard bootable?
if that's the case, then that warning can probably be toned down a bit
in the beagleboard SRM since it's unlikely to affect anyone. or am i
misunderstanding what's been "resolved" here?

rday

so if i read these last few posts correctly, any commercial
multi-gig SD card i pull off the shelf should be beagleboard bootable?

yes, all SD cards support 4-bit and 3.3V (fyi: i did manage to find a 1.8v only device, but its for embedded applications)

if that’s the case, then that warning can probably be toned down a bit
in the beagleboard SRM since it’s unlikely to affect anyone. or am i
misunderstanding what’s been “resolved” here?

yes, if you use an SD card you’ll be fine. if you are using MMC then you need to check its not 8-bit…

Let me try to help help. There is a slot on the Beagle called a SD/MMC connector. It can support SD cards and MMC cards. But, it can also support other cards like cameras, WIFI, or any custom board that you care to design. It is just a connector. Stop trying to make it a just a SD or MMC connector. This connector can be powered from the TPS65950 from either a 3V or 1.8V power rail. This is set by SW. You pick. It can also support 8 bits of data as well. But, if you use the 8 bit mode, for anything like a eMMC adapter board, you MUST use it at 1.8V only. The reason for this is that the upper 4 bits required to make it a 8 bit interface can only be at 1.8V. It cannot be set by the TPS65950. It is set permanently to 1.8V.

Gerald

yes, if you use an SD card you'll be fine. if you are using MMC then you

need to check its not 8-bit...

Although not being 100% certain, I would strongly expect all 8-bit MMC cards
to be 4-bit compatible as well in order to be compatibility with all kind of
"old" 4-bit equipment. I therefore wouldn’t be scared about getting an 8-bit
MMC card either, but to be honest I can't remember to have ever tried. Can
somebody confirm if this is working or not? - I unfortunately have only been
able to find some vague comments about this in the MMC Spec - Not nailing
the fact for 100% sure.

One thing which though won't work is getting one of the new SDXC cards (SD
cards with 64GB - 2TB capacity), which are slowly beginning to show up
(mainly within R&D sites yet), and expected to get the main boost sometime
next year.

Instead of caring that much about 4- and 8-bit cards I in general would care
more about the SD card being SD or SDHC compliant and if your host
computer/card reader supports SDHC? Reason for this: I myself got a 4GB card
assuming that everything would work out just fine (I know the Beagle would
accept it, and didn't expect my PC not to support it). Apparently it showed
up, that the firmware in the computer's SD card reader didn't support SDHC,
causing me one lost day of frustration until I got a "normal" 2GB SD card
:slight_smile: Since 2GB and 4GB cards are priced the same today (if 4GB aren't
cheapest :slight_smile: other people might hit this "problem" as well.

To summarize:
I would expect all standard/normal SD and MMC cards from shops to work out
of the box with the OMAP3/Beagle. And to put it into perspective. The
requirement is only really strong in case you expect to rely on SD/MMC
booting using the ROM-code (requiring you to have the first 4 blocks in the
NAND erased or pressing the user button at each reboot). In case of booting
from NAND using the X-Loader in NAND you would potentially have the ability
to create all kind of fixed/changes needed in order to support a given
card... :slight_smile:

Best regards
  Søren

> yes, if you use an SD card you'll be fine. if you are using MMC then
you
need to check its not 8-bit...

Although not being 100% certain, I would strongly expect all 8-bit MMC
cards
to be 4-bit compatible as well in order to be compatibility with all
kind of
"old" 4-bit equipment. I therefore wouldn’t be scared about getting an
8-bit
MMC card either, but to be honest I can't remember to have ever tried.
Can
somebody confirm if this is working or not? - I unfortunately have only
been
able to find some vague comments about this in the MMC Spec - Not
nailing
the fact for 100% sure.

One thing which though won't work is getting one of the new SDXC cards
(SD
cards with 64GB - 2TB capacity), which are slowly beginning to show up
(mainly within R&D sites yet), and expected to get the main boost
sometime
next year.

Instead of caring that much about 4- and 8-bit cards I in general would
care
more about the SD card being SD or SDHC compliant and if your host
computer/card reader supports SDHC? Reason for this: I myself got a 4GB
card
assuming that everything would work out just fine (I know the Beagle
would
accept it, and didn't expect my PC not to support it). Apparently it
showed
up, that the firmware in the computer's SD card reader didn't support
SDHC,
causing me one lost day of frustration until I got a "normal" 2GB SD
card
:slight_smile: Since 2GB and 4GB cards are priced the same today (if 4GB aren't
cheapest :slight_smile: other people might hit this "problem" as well.

To summarize:
I would expect all standard/normal SD and MMC cards from shops to work
out
of the box with the OMAP3/Beagle. And to put it into perspective. The
requirement is only really strong in case you expect to rely on SD/MMC
booting using the ROM-code (requiring you to have the first 4 blocks in
the
NAND erased or pressing the user button at each reboot). In case of
booting
from NAND using the X-Loader in NAND you would potentially have the
ability
to create all kind of fixed/changes needed in order to support a given
card... :slight_smile:

PS: One additional note - By far most cards available today (at least in
Denmark) are SD cards totally leaving out the 8-bit MMC discussion/problem
:slight_smile:

Just did a search on the main IT price overview portal in Denmark and got
the following:
~320 SD cards popped up
  ~30 MMC cards popped up

/ Søren