starterware emmc beaglebone black

Hi everybody,
My question is, I can boot starterware examples in flash EMMC (MLO+app), I did this in uSD card, but want to use the USB or Serial to flash EMMC and boot my application.
There is anyway to do this ?

Thanks in advance.

Starterware does not support access to eMMC. To do that, you would have to implement MMC-support to their HSMMCSD-library in order to make MLO able to boot APPs from there.

Starterware does not support access to eMMC. To do that, you would have to
implement MMC-support to their HSMMCSD-library in order to make MLO able to
boot APPs from there.

Have you done anything to confirm what you are saying? It would be helpful
to say when you suspect something vs. when you know something.

Neither the bootloader is in ROM nor the MLO app make any use of
Starterware, so if Starterware supports eMMC or not is irrelevant to if you
can boot a Starterware application from eMMC using the ROM and MLO. There's
no reason you couldn't skip MLO entirely unless your Staterware image is
particularly large. If you want to use MLO, again, there's no reason that
couldn't target a Starterware application.

Also, as far as I know, MMC-support is not required to use an eMMC as it
should support one of the other modes.

[1] http://processors.wiki.ti.com/index.php/StarterWare_MMCSD_Driver
[2] http://processors.wiki.ti.com/index.php/StarterWare_MMC

Starterware does not support access to eMMC. To do that, you would have
to implement MMC-support to their HSMMCSD-library in order to make MLO able
to boot APPs from there.

Have you done anything to confirm what you are saying? It would be helpful
to say when you suspect something vs. when you know something.

This is confirmed by TI in StarterWare support forum. Google or the search
function at http://e2e.ti.com/support/embedded/starterware/f/790.aspx is
your friend.

Neither the bootloader is in ROM nor the MLO app make any use of
Starterware, so if Starterware supports eMMC or not is irrelevant to if you
can boot a Starterware application from eMMC using the ROM and MLO. There's
no reason you couldn't skip MLO entirely unless your Staterware image is
particularly large. If you want to use MLO, again, there's no reason that
couldn't target a Starterware application.

Also, as far as I know, MMC-support is not required to use an eMMC as it
should support one of the other modes.

No, that's not correct. The MLO that comes with Starterware and normally is
used to boot a Starterware-application itself bases on Starterware. So it
depends on its (not existant) features. One of course can create an MLO as
only application and try to put all its functionality into that MLO - then
the CPU will be able to boot the MLO and eMMC support is not required. But
as soon as an separate APP is requied - e.g. because the available space
for MLO is not enough - the MLO definitely needs to come with eMMC support.

By the way: your own link contains the information that MMC is not supported: http://processors.wiki.ti.com/index.php/StarterWare_MMCSD_Driver#Features_not_supported :wink:

Please check out http://e2e.ti.com/support/embedded/starterware/f/790/t/272577.aspx#1344119

There somebody posted the missing MMC-code meanwhile.

Starterware does not support access to eMMC. To do that, you would have
to implement MMC-support to their HSMMCSD-library in order to make MLO able
to boot APPs from there.

Have you done anything to confirm what you are saying? It would be helpful
to say when you suspect something vs. when you know something.

This is confirmed by TI in StarterWare support forum. Google or the search
function at http://e2e.ti.com/support/embedded/starterware/f/790.aspx is
your friend.

You don't need support in the library in order to BOOT. MLO can boot
applications out of eMMC just fine. How do you think we are loading
u-boot?

Neither the bootloader is in ROM nor the MLO app make any use of
Starterware, so if Starterware supports eMMC or not is irrelevant to if you
can boot a Starterware application from eMMC using the ROM and MLO. There's
no reason you couldn't skip MLO entirely unless your Staterware image is
particularly large. If you want to use MLO, again, there's no reason that
couldn't target a Starterware application.

Also, as far as I know, MMC-support is not required to use an eMMC as it
should support one of the other modes.

No, that's not correct. The MLO that comes with Starterware

Probably better to use the MLO that is part of mainline u-boot than a
TI fork. The recent primary maintainer of u-boot works for TI and is
pretty good at bringing in support for TI devices.

and normally is
used to boot a Starterware-application itself bases on Starterware. So it
depends on its (not existant) features. One of course can create an MLO as
only application and try to put all its functionality into that MLO - then
the CPU will be able to boot the MLO and eMMC support is not required.

Yes, that is part of what I was trying to assert. Sorry to not make
that more clear.

But
as soon as an separate APP is requied - e.g. because the available space for
MLO is not enough - the MLO definitely needs to come with eMMC support.

Mainline MLO has eMMC support. It is only when the StarterWare
application ITSELF needs to access the eMMC that the StarterWare
library needs to include eMMC support.

With regards to accessing the eMMC using the StarterWare library, my
issue was with the term "MMC support". It is still my assertion that
other modes supported by the StarterWare library, like 4-bit SD mode,
should work well with eMMC devices[3], though I haven't confirmed with
the eMMC that is on BeagleBone Black.

The fix supplied in the attached diff (extracted from the forum post)
adds an 8-bit MMC mode, so it doesn't address my assertion.

[1] http://processors.wiki.ti.com/index.php/StarterWare_MMCSD_Driver
[2] http://processors.wiki.ti.com/index.php/StarterWare_MMC

[3] http://arasan.com/products/sd-emmc/emmc-4-5-device/
[4] https://www.linkedin.com/groups/SPI-mode-in-eMMC-Devices-37565.S.77338175

mmcsdlib.diff (37.7 KB)

By the way: your own link contains the information that MMC is not
supported:
http://processors.wiki.ti.com/index.php/StarterWare_MMCSD_Driver#Features_not_supported
:wink:

That has to do with MMC modes and support of the MMC standard. eMMC
devices are known to often support 4-bit SD mode, despite the name of
"eMMC". Honestly, I'm not just making crap up to try to attack you. I
think it sucks that StarterWare hasn't been updated for all the
features of BeagleBone Black as well, but that doesn't mean it should
be blown out of detail.

Hi Jason,

Hi Jason,

You don't need support in the library in order to BOOT. MLO can boot
applications out of eMMC just fine. How do you think we are loading
u-boot?

That's true as long as you can use that u-boot's MLO "as is" and without
further modifications. In my special case I had to modify MLO. Here u-boot
is - comparing to the simple, single project in Starterware - way too
complex. Own compiler is needed and software structure is not easy to
understand (at least for me, I could not find out where to find the sources
that will result in the MLO-file).

Admittedly, it is a complex set of source. FYI, it is found here:
http://git.denx.de/?p=u-boot.git;a=summary

Robert has patch and build instructions at
https://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Bootloader:U-Boot.

So I think for somebody that already uses Starterware with TI's compiler and
perhaps CCS it would be the more direct way to use the MLO sources that come
with this package.

It seems like removing u-boot entirely would make for the simplest
example. The code for producing an image from an executable binary is
there in the u-boot tools directory. I wouldn't think it'd be that
hard to break it out.