Reply To: OSD3358 Boot

Forums Devices OSD335x-BAS/IND OSD3358 Boot Reply To: OSD3358 Boot

#4733
Neeraj Dantu
Moderator

    David,

    The Beagle images require the EEPROM programmed with a board ID in order for them to boot. See https://octavosystems.com/forums/topic/issues-booting-custom-board/#post-4608 for more information. You can also update your Beagle image with a new u-boot using the following procedure to bypass the EEPROM ID check:

    – Create an SD card with the latest Beagle image or the image you want to use by following the procedure in https://beagleboard.org/getting-started

    – In an Ubuntu machine or a VM that runs Ubuntu, download and compile u-boot:

    1. Download the ARM cross-compiler GCC. Note the pwd in code line 3 needs a special character “`” on both sides
    – wget -c https://releases.linaro.org/components/toolchain/binaries/6.4-2017.11/arm-linux-gnueabihf/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
    – tar xf gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz
    – export CC=`pwd`/gcc-linaro-6.4.1-2017.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

    2. Download u-boot
    – git clone https://github.com/u-boot/u-boot
    – cd u-boot/
    – git checkout v2018.01 -b tmp

    3. Get the patches (Needs internet connection)
    – wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    – wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0002-U-Boot-BeagleBone-Cape-Manager.patch
    – wget -c https://raw.githubusercontent.com/RobertCNelson/Bootloader-Builder/master/patches/v2018.03-rc1/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

    4. Apply patches to u-boot
    – patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

    – patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch

    – patch -p1 < 0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

    5. Configure and Build
    – make ARCH=arm CROSS_COMPILE=${CC} distclean
    – make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
    – make ARCH=arm CROSS_COMPILE=${CC}

    6. Attach the SD card to the computer and run ‘lsblk’ to find out the id of the SD card. In our case the id was ‘sdb’

    7. Install bootloader:
    – export DISK=/dev/sdb
    – sudo dd if=./u-boot/MLO of=${DISK} count=1 seek=1 bs=128k
    – sudo dd if=./u-boot/u-boot.img of=${DISK} count=2 seek=1 bs=384k

    This installs a new version of u-boot that does not check the EEPROM. If you insert the SD card into the
    board and power it up holding down boot button, you should be able to see the user LEDs light up.

    Hope this helps.

    Thanks,
    Neeraj

    • This reply was modified 7 years, 2 months ago by Neeraj Dantu.
    • This reply was modified 7 years, 2 months ago by Neeraj Dantu.
    chatsimple