This is just a summary of the above recipe for posterity (and search
engines everywhere):


To make it so that the BBB will ignore the SD card unless SW2 is pressed
requires a new u-boot on the eMMC.
the following recipe needs to be followed exactly (otherwise there will be
errors in the compile of u-boot.

Steps:
1) Make sure that you have a 64-bit Linux with git installed, and a BBB
that can boot off the eMMC
2) Rebuild u-boot:
2.1) install the appropriate cross-compiler
>> wget -c
https://releases.linaro.org/components/toolchain/binaries/5.3-2016.02/arm-linux-gnueabihf/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
>> tar xf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz
>> export
CC=`pwd`/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
>> ${CC}gcc --version (** this tests to make sure CC is set correctly **)
2.2) Get u-boot from repository (~/)
>> git clone https://github.com/u-boot/u-boot
>> cd u-boot/
>> git checkout v2016.03 -b tmp
2.3) patch it (~/u-boot)
>> wget -c
https://rcn-ee.com/repos/git/u-boot-patches/v2016.03/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
>> patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
2.4) modify it
2.4.1) in the directory ~/u-boot/include/configs find the file am335x_evm.h
2.4.2) open it and search for the entry #define BOOT_TARGET_DEVICES
2.4.3) delete (comment out) the lines: (these are the lines that tell the
bootloader to look at the SD card for a boot image)
        func(MMC, mmc, 0) \
  func(LEGACY_MMC, legacy_mmc, 0) \
  2.4.4) save the file
2.5) build it (~/u-boot)
>> make ARCH=arm CROSS_COMPILE=${CC} distclean
>> make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
>> make ARCH=arm CROSS_COMPILE=${CC}
3) There are two files that you are interested in - MLO and u-boot.img
4) Boot the BBB off the uSD card (necessary since we are going to muck with
the eMMC)
5) Get the files MLO and u-boot.img to the BBB
5.1) Use SmarTTY to SCP these files to the BBB - they will end up in /tmp
6) Go to the directory where these files landed
7) make sure that the eMMC is mounted as mmcblk1 - this should be the case
if you coot off the uSD
>> lsblk
the eMMC on the Rev C BBB is the 3.6G disk/partition
8) sudo dd if=./MLO of=/dev/mmcblk1 count=1 seek=1 bs=128k
9) sudo dd if=./u-boot.img of=/dev/mmcblk1 count=2 seek=1 bs=384k
10) reboot - will boot off the eMMC unless you hold down SW2 in which case
it will boot off the uSD

Troubleshooting:
1) If u-boot compilation kicks errors it is probably because the value of
${CC} is not set properly. This value is not permanent, you'll need to
export it every time unless you want to change your Linux PATH. It could
also be a typo in the header you modified

2) If you still boot off the uSD regardless of SW2 - check that you
actually updated the MLO and u-boot.img files. Best to just try to flash
them again since they are a direct write to the uSD card (not part of the
file system). Remember - reflashing the eMMC will probably lose your
modified u-boot.

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CABuBFE-L_EjJG3u5V8YYHTjL8vYXB5z9SOJ41HMKKLmCVeaTeg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to