Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

To build Embedian’s smarct335x u-boot and linux kernel, you will need to install the Linaro arm compiler that TI used for their release: [For

For u-boot 2014.04, u-boot 2014.07, Linux 3.2, Linux 3.12 and Linux 3.14]v2017.01 and Linux kernel v4.9.41, use Linaro arm compilier that TI used in their Processor SDK 04.01.00.06

Info
iconfalse
$ wget -c http://releases.linaro.org/
archive/13.04/
components/toolchain/binaries/
gcc-linaro-
6.2-2016.11/arm-linux-gnueabihf/gcc-
4.7-2013.04-20130415_linux
linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz
$ sudo tar -C /opt -xJf gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf
-4.7-2013.04-20130415_linux
.tar.xz
$ export CC=/opt/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

 
For u-boot v2016.05 and Linux kernel v4.4.12, use Linaro arm compilier that TI used in their Processor SDK 03.00.00.04

Info
iconfalse
$ wget http://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
$
export CC=/opt/
 sudo tar -C /opt -xJf gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf
-4.7-2013.04-20130415_linux
.tar.xz
$ export CC=/opt/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

For  
For u-boot 2015.07 and Linux  and Linux 4.1.10 or newer, you need to use the following newer Linaro arm compilier that TI used in their Processor SDK 02.00.01.07. 

Info
iconfalse
$ wget -c
https
 http://releases.linaro.org/archive/15.05/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
$ sudo tar -C /opt -xJf gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf.tar.xz
$ export CC=/opt/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-


For 
u-boot 2014.04u-boot 2014.07Linux 3.2, Linux 3.12 and Linux 3.14, use the following newer Linaro arm compilier that TI used in theirAMSDK 6 and AMSDK7..

Info
iconfalse
$ wget http://releases.linaro.org/archive/13.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz
$ sudo tar -C /opt -xJf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz
$ export CC=/opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin/arm-linux-gnueabihf-

Test:

If this test fails, verify that you have the 32bit libraries installed on your development system.

Info
iconfalse

$ ${CC}gcc --version
arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2013.04-20130415 - Linaro GCC 2013.04) 4.7.3 20130328 (prerelease)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Generating SSH Keys

...

We recommend you use SSH keys to establish a secure connection between your computer and Embedian Gitlab server. The steps below will walk you through generating an SSH key and then adding the public key to our Gitlab account.

...

Clone the U-Boot source code from Embedian Git Server.

Download:

For u-boot v2014.04 (AMSDK6 and AMSDK7v2017.01 (Processor-SDK-04.01.00.06): 

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git
$ cd smarc-t335x-uboot
$ git checkout
v2014
 v2017.
04
01-
smarct33
smarct3x
Note
iconfalse

For SBC-SMART-MEN

$ git checkout v2014.04-smartmenIf Boot up from eMMC, change #define CONFIG_SYS_MMC_ENV_DEV from 0 to 1 in include/configs/smarct335x_evm.h file and compile again.


For u-boot v2016.05 (Processor-SDK-03.00.00.04):
 

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git
$ cd smarc-t335x-uboot
$ git checkout v2016.05-smarct3x


For u-boot
v2014v2015.07 (Processor-SDK-0102.00.00.0300):  

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git
$ cd smarc-t335x-uboot
$ git checkout
v2014
 v2015.07-smarct33

 

Note
iconfalse
If Boot up from eMMC, change mmcdev=0 to mmcdev=1 in include/configs/smarct335x_evm.h file and compile again.

Configure and Build:

Info
iconfalse
$ make ARCH=arm CROSS_COMPILE=${CC} distclean
$ make ARCH=arm CROSS_COMPILE=${CC} smarct335x_evm_uart3_
config
defconfig
$ make ARCH=arm CROSS_COMPILE=${CC}


For u-boot
v2015v2014.07 (Processor-SDK-0201.00.00.0003): 

Download

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git
$ cd smarc-t335x-uboot
$ git checkout
v2015
 v2014.07-smarct33


For u-boot v2014.04 (AMSDK6 and AMSDK7):
 

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-t335x-uboot.git
$ cd smarc-t335x-uboot
$ git checkout v2014.04-smarct33
Note
iconfalse
For SBC-SMART-MEN
$ git checkout v2014.04-smartmen

Configure and Build:

Info
iconfalse
$ make ARCH=arm CROSS_COMPILE=${CC} distclean
$ make ARCH=arm CROSS_COMPILE=${CC} smarct335x_evm_uart3_
defconfig
config
$ make ARCH=arm CROSS_COMPILE=${CC}
Note
iconfalse

The uartx in u-boot config (defconfig) file is to specify the debug console outputs.

Linux Kernel

...

Download:

For 34.2 (AMSDK69.41 (Processor-SDK-04.01.00.06, Stable, LTS release): 

Info
iconfalse
$ git clone git@git.embedian.com:developer/
linux-
smarc-
t335x
ti-
v3
linux-kernel.
2.
git
$ cd
linux-
 smarc-
t335x-v3.2
ti-linux-kernel
$ git
checkout v3.2_SMARCT335xPSP_04.06
 checkout smarct3x-processor-sdk-04.01.00.
11
Note
iconfalse

For board SBC-SMART-MEN:

$ git checkout v3.2_SBC_SMARTMEN

 

...

06


For 4.4.12 (Processor-SDK-03.00.00.04, Stable, LTS):

Info
iconfalse
$
make ARCH=arm CROSS_COMPILE=${CC} distclean

$ make ARCH=arm CROSS_COMPILE=${CC} smarc_t335x_defconfig

$ make ARCH=arm CROSS_COMPILE=${CC} uImage modules

 

...

 git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git
$ cd smarc-ti-linux-kernel
$ git checkout smarct3x-processor-sdk-linux-03.00.00.04


For 4.1.y (Processor-SDK-02.00.01.07, Stable, LTS):

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git
$ cd smarc-ti-linux-kernel
$ git checkout
smarc
 smarct3x-
ti
processor-sdk-linux-
3
02.
12
00.
y
01

 


For 3.14.y (Processor-SDK-01.00.00.03, Stable, LTS):

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git
$ cd smarc-ti-linux-kernel
$ git checkout smarc-ti-linux-3.14.y

 


For 43.112.y (Processor-SDK-02.00.01.07AMSDK7, Stable, LTS):

Info
iconfalse
$ git clone git@git.embedian.com:developer/smarc-ti-linux-kernel.git
$ cd smarc-ti-linux-kernel
$ git checkout
smarct3x
 smarc-
processor
ti-
sdk-
linux-
02
3.
00
12.
01
y

 


Configure and Build (v3.12 and later):

Info
iconfalse
$ make ARCH=arm CROSS_COMPILE=${CC} distclean
$ make ARCH=arm CROSS_COMPILE=${CC} smarc_t335x_defconfig
$ make ARCH=arm CROSS_COMPILE=${CC} zImage modules am335x-smarct335x.dtb


For 3.2 (AMSDK6, Stable, LTS release):

Info
iconfalse
$ git clone git@git.embedian.com:developer/linux-smarc-t335x-v3.2.git
$ cd linux-smarc-t335x-v3.2
$ git checkout v3.2_SMARCT335xPSP_04.06.00.11
Note
iconfalse

For board SBC-SMART-MEN:

$ git checkout v3.2_SBC_SMARTMEN


Configure and Build:

Info
iconfalse
$ make ARCH=arm CROSS_COMPILE=${CC} distclean
$ make ARCH=arm CROSS_COMPILE=${CC} smarc_t335x_defconfig
$ make ARCH=arm CROSS_COMPILE=${CC} uImage modules


Note:

  • The kernel sources packaged in this release do not have the required PM firmware binary already copied in the firmware/ folder of the kernel sources. Due to this building the kernel using the default kernel configuration will fail with this error:

...

To resolve this for kernel 3.2, after you clone the kernel sources, copy the firmware binary into the firmware/ folder of kernel sources

Info
iconfalse
$ cd linux-smarc-t335x-v3.2/firmware
$ wget http://developer.embedian.com/download/attachments/2883656/am335x-pm-firmware.bin

To resolve this for kernel 3.14 and , kernel 4.1, kernel 4.4 and kernel 4.9, after you clone the kernel sources, copy the firmware elf binary into the firmware/ folder of kernel sources

Info
iconfalse
$ cd smarc-ti-linux-kernel/firmware
$ wget http://developer.embedian.com/download/attachments/2883656/am335x-pm-firmware.elf
$ wget http://developer.embedian.com/download/attachments/2883656/am335x-evm-scale-data.bin 

 

  • If you see the error message like this:

...

You can simply install the mkimage by:

Info
iconfalse

$ sudo apt-get install uboot-mkimage

and make the kernel again.

 

Root File System

...

Arago:

UserPassword
rootN/A

SDK7 Processor-SDK-04.01.00.06 Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/arago/processor_sdk_04.01.00.06/smarct335x-rootfs-image-smarct335x
-sdk7.tar.
.tar.xz

Verify:

Info
iconfalse

$ md5sum smarct335x-rootfs-image-smarct335x.tar.xz
e698ddf06918e5eb864d27d717b21f7c  smarct335x-rootfs-image-smarct335x.tar.xz

 

Processor-SDK-03.00.00.04 Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/arago/processor_sdk_03.00.00.04/smarct335x-rootfs-image-smarct335x.tar.gz

Verify:

Info
iconfalse

$ md5sum smarct335x-rootfs-image-smarct335x-sdk7.tar.gz
673ad6c70eb4e297b6ee43ed91b1b7e  smarct335x788011e063b79ee8a18c1508f39aa9f1  smarct335x-rootfs-image-smarct335x-sdk7.tar.gz

 

SDK6 Processor-SDK-02.00.01.07 Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/arago/processor_sdk_02.00.01.07/smarct335x-rootfs-image-smarct335x
-sdk6
.tar.gz

Verify:

Info
iconfalse

$ md5sum smarct335x-rootfs-image-smarct335x-sdk6.tar.gz
ea0c7490047314d125c20231ad9eaa78  smarct335x-rootfs-image-smarct335x.tar.gzfd2327e5d563ae7c001d38da05cf5fe2


SDK7 Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/arago/sdk7/smarct335x-rootfs-image-smarct335x
-sdk6
.tar.gz

Verify:

Info
iconfalse

$ md5sum smarct335x-rootfs-image-smarct335x.tar.gz

...

ee272266a6bbeb718c129f51f71c52f5  smarct335x-rootfs-image-smarct335x.tar.gz


Ubuntu 1216.04:

UserPassword
rootroot
ubuntutemppwd

 

Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/
precise
ubuntu/xenial/smarct3x-ubuntu-
12
16.04
-minimal-armhf-2012-11-29
.tar.gz

Verify:

Info
iconfalse

$ md5sum smarct3x-ubuntu-1216.04-minimal-armhf-2012-11-29.tar.gz

a05cd21dc2df12daa2e9962fa92be23e957625f56f786a22d44b60480155cfd9   smarct3x-ubuntu-1216.04-minimal-armhf-2012-11-29.tar.gz

 

Ubuntu 14.04:

UserPassword
rootroot
ubuntutemppwd

 

Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/ubuntu/trusty/
smarc
smarct3x-
ubuntu14
ubuntu-14.04.tar.gz

Verify:

Info
iconfalse

$ md5sum smarcsmarct3x-ubuntu14ubuntu-14.04.tar.gz

e883c8fca4ab5c6e396ee54202f20e3505db5b85224e84e9898a1c5925703b8b   smarcsmarct3x-ubuntu14ubuntu-14.04.tar.gz


Debian 9.8:

UserPassword
rootroot
debiantemppwd

Download:

Info
iconfalse
$ wget -c ftp://ftp.embedian.com/public/dev/minfs/debian/stretch/smarct3x-debian-9.8-armhf-2019-02-16.tar.gz

Verify:

Info
iconfalse

$ md5sum smarct3x-debian-9.8-armhf-2019-02-16.tar.gz

8969f249307d9b2c2ef5c76f7ca1c6b8 smarct3x-debian-9.8-armhf-2019-02-16.tar.gz 

Setup SD Card

...

For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.

Info
iconfalse

$ export DISK=/dev/mmcblk0

Erase SD card:

Info
iconfalse

$ sudo dd if=/dev/zero of=${DISK} bs=1M count=16

Create Partition Layout:

With util-linux v2.26, sfdisk was rewritten and is now based on libfdisk.

Info
iconfalse
titlesfdisk
$ sudo sfdisk --version
sfdisk from util-linux 2.27.1

Create Partitions:

Info
titlesfdisk >=2.26.x
$ sudo sfdisk ${DISK} <<-__EOF__
1M,48M,0xE,*
,,,-
__EOF__
Info
titlesfdisk <=2.25
$ sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__
1,48,0xE,*
,,,-
__EOF__

Format Partitions:

Info
iconfalse
for: DISK=/dev/mmcblk0
$ sudo mkfs.vfat -F 16 ${DISK}p1 -n boot
$ sudo mkfs.ext4 ${DISK}p2 -L rootfs
 
for: DISK=/dev/sdX
$ sudo mkfs.vfat -F 16 ${DISK}1 -n boot
$ sudo mkfs.ext4 ${DISK}2 -L rootfs

...

On some systems, these partitions may be auto-mounted...

 

Info
iconfalse
$ sudo mkdir -p /media/boot/
$ sudo mkdir -p /media/rootfs/
 
for: DISK=/dev/mmcblk0
$ sudo mount ${DISK}p1 /media/boot/
$ sudo mount ${DISK}p2 /media/rootfs/
 
for: DISK=/dev/sdX
$ sudo mount ${DISK}1 /media/boot/
$ sudo mount ${DISK}2 /media/rootfs/

...

Info
iconfalse
title~/uEnv.txt

optargs="consoleblank=0 mem=512M"
#u-boot eMMC specific overrides; Angstrom Distribution (SMARC T335X) 2014-05-20
kernel_file=zImage
initrd_file=initrd.img

loadaddr=0x82000000
initrd_addr=0x88080000
fdtaddr=0x88000000
fdtfile=am335x-smarct335x.dtb 

initrd_high=0xffffffff
fdt_high=0xffffffff

loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}
loadinitrd=load mmc ${mmcdev}:${mmcpart} ${initrd_addr} ${initrd_file}; setenv initrd_size ${filesize}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /dtbs/${fdtfile}
#

##Un-comment to enable systemd in Debian Wheezy
#optargs=quiet init=/lib/systemd/systemd

console=ttyO3ttyS3,115200n8
mmcroot=/dev/mmcblk1p2 ro
mmcrootfstype=ext4 rootwait fixrtc

mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}

#zImage:
uenvcmd=run loadimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}

#zImage + uInitrd: where uInitrd has to be generated on the running system.
#boot_fdt=run loadimage; run loadinitrd; run loadfdt
#uenvcmd=run boot_fdt; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} ${fdtaddr}

###Begin Rootfs from NFS
#serverip=192.168.1.51
#rootpath=/srv/nfs/smarct335x/ubuntu1204/
#nfsopts=nolock,acdirmin=60
#netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
##netboot=echo Loading kernel from SDCARD and booting from NFS ...; run loadimage; run netargs; bootz ${loadaddr} - ${fdtaddr}
##uenvcmd=run netboot
###End Rootfs from NFS

###Begin Load kernel from TFTP
#netmask=255.255.255.0
#ipaddr=192.168.1.65
#serverip=192.168.1.51
#netboot=echo Loading kernel and device tree from TFTP and booting from NFS ...; setenv autoload no; tftp ${loadaddr} ${kernel_file}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}
#uenvcmd=run netboot
###End Load kernel from TFTP

Note

For kernel 3.1412.y and after, the serial port device descriptor changes from ttyS to ttyO to ttyS

The above uEnv.txt file needs to change accordingly. (ttyO3 ttyS3 --> ttyS3ttyO3)

SD card will always be emulated as /dev/mmcblk1 at kernel 3.12 and newer version 

...

Copy uEnv.txt to the boot partition:

Info
iconfalse
title~/

$ sudo cp -v ./uEnv.txt /media/boot/

Install Kernel zImage

Copy zImage to the boot partition:

Info
iconfalse
title~/linux-smarc-t335x-v3.x (v3.2) or ~/smarc-ti-linux-kernel (v3.12 or after)

$ sudo cp -v arch/arm/boot/zImage /media/boot

 

Only for v3.12.y or after:

Install Kernel Device Tree Binary

 

Info
iconfalse

$ sudo mkdir -p /media/boot/dtbs

$ sudo cp -v arch/arm/boot/dts/am335x-smarct335x.dtb /media/boot/dtbs

Install Root File System and Kernel Modules

...

Info
iconfalse
titledirectory where your root file system is

$ sudo tar xvfz smarct335x-rootfs-image-smarct335x-sdk7.tar.gz -C /media/rootfs

 

Arago SDK6:

Info
iconfalse
titledirectory where your root file system is

$ sudo tar xvfz smarct335x-rootfs-image-smarct335x-sdk6.tar.gz -C /media/rootfs

 


Ubuntu 14.04:

Info
iconfalse
titledirectory where your root file system is

$

sudo

tar

xvfz

smarc-ubuntu14.04.tar.gz

-C

/media/rootfs

Copy Kernel Modules:

Info
iconfalse
title~/linux-smarc-t335x-v3.2 (v3.2) or ~/smarc-ti-linux-kernel (v3.12 or after)

$ sudo make ARCH=arm INSTALL_MOD_PATH=/media/rootfs modules_install


Networking:

Edit: /etc/network/interfaces

Info
iconfalse

$ sudo vim /media/rootfs/etc/network/interfaces

Add:

Info
iconfalse
title/media/rootfs/etc/network/interfaces

auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet dhcp

...

For these instruction, we are assuming: DISK=/dev/mmcblk0, "lsblk" is very useful for determining the device id.

Info
iconfalse

$ export DISK=/dev/mmcblk0

Mount Partitions:

On some systems, these partitions may be auto-mounted...

...

Copy zImage to rootfs partition:

Info
iconfalse

$ sudo cp -v /media/boot/zImage /media/rootfs/home/root

Note
titleNote
  1. If your rootfs is Ubuntu 14.04, copy to /media/rootfs/home/ubuntu instead of /media/rootfs/home/root


Copy zImage to rootfs partition:

Info
iconfalse

$ sudo cp -v <kernel source dorectory>/arch/arm/boot/zImage /media/rootfs/home/root

 

For kernel v3.12.y or later:

Info
iconfalse

$ sudo cp -v /media/boot/dtbs/am335x-smarct335x.dtb /media/rootfs/home/root

 

Copy uEnv.txt to rootfs partition:

...

Info
iconfalse

optargs="consoleblank=0 mem=512M"
#u-boot eMMC specific overrides; Angstrom Distribution (SMARC T335X) 2014-05-20
kernel_file=zImage
initrd_file=initrd.img

loadaddr=0x82000000
initrd_addr=0x88080000
fdtaddr=0x88000000
fdtfile=am335x-smarct335x.dtb 

initrd_high=0xffffffff
fdt_high=0xffffffff

loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}
loadinitrd=load mmc ${mmcdev}:${mmcpart} ${initrd_addr} ${initrd_file}; setenv initrd_size ${filesize}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /dtbs/${fdtfile}
#

##Un-comment to enable systemd in Debian Wheezy
#optargs=quiet init=/lib/systemd/systemd

console=ttyO3ttyS3,115200n8
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait fixrtc

mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}

#zImage:
uenvcmd=run loadimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}

#zImage + uInitrd: where uInitrd has to be generated on the running system.
#boot_fdt=run loadimage; run loadinitrd; run loadfdt
#uenvcmd=run boot_fdt; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} ${fdtaddr}

###Begin Rootfs from NFS
#serverip=192.168.1.51
#rootpath=/srv/nfs/smarct335x/ubuntu1204/
#nfsopts=nolock,acdirmin=60
#netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
##netboot=echo Loading kernel from SDCARD and booting from NFS ...; run loadimage; run netargs; bootz ${loadaddr} - ${fdtaddr}
##uenvcmd=run netboot
###End Rootfs from NFS

###Begin Load kernel from TFTP
#netmask=255.255.255.0
#ipaddr=192.168.1.65
#serverip=192.168.1.51
#netboot=echo Loading kernel and device tree from TFTP and booting from NFS ...; setenv autoload no; tftp ${loadaddr} ${kernel_file}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}
#uenvcmd=run netboot
###End Load kernel from TFTP

Note

For kernel 3.1412.y and after, the serial port device descriptor changes from ttyS to ttyO to ttyS

The above uEnv.txt file needs to change accordingly. (ttyO3 ttyS3 --> ttyS3ttyO3)

The uEnv.txt file only changes mmcroot from /dev/mmcblk1 (SD) to /dev/mmcblk0 (eMMC)

 


Copy real rootfs to rootfs partition:

Info
iconfalse

$ pushd /media/rootfs

$ sudo tar cvfz ~/smarct335x-emmc-rootfs.tar.gz .

$ sudo mv ~/smarct335x-emmc-rootfs.tar.gz /media/rootfs/home/root

$ popd

 


Remove SD card:

Info
iconfalse
$ sync
$ sudo umount /media/boot
$ sudo umount /media/rootfs

...

Now it will be almost the same as you did when setup your SD card, but the eMMC device descriptor is /dev/mmcblk0 now.

Info
iconfalse

$ export DISK=/dev/mmcblk0

Erase SD cardeMMC Flash:

Info
iconfalse

$ sudo dd if=/dev/zero of=${DISK} bs=1M count=16

...

Info
iconfalse
$ sudo sfdisk --in-order --Linux --unit M ${DISK} <<-__EOF__
1,48,0xE,*
,,,-
__EOF__

 


In SDK6, Arago rootfs will mount partition2 as /media/mmcblk0p2 automatically after executing the above command. Umount the partition first.

...

Info
iconfalse

$ sudo cp -v MLO u-boot.img zImage uEnv.txt /media/boot/

 

Note
iconfalse

The U-Boot for SD Boot up and eMMC Boot up has one line difference in include/configs/smarct335x_evm.h. The mmcdev is 0 for SD boot up and is 1 for eMMC boot up.


Only for v3.12.y or after:

Install Kernel Device Tree Binary

 

Info
iconfalse

$ sudo mkdir -p /media/boot/dtbs

$ sudo cp -v am335x-smarct335x.dtb /media/boot/dtbs

 

Install Root File System

...

Info
iconfalse

$ sudo tar -zxvf smarct335x-emmc-rootfs.tar.gz -C /media/rootfs

 

Unmount eMMC:

 
Info
iconfalse
$ sync
$ sudo umount /media/boot
$ sudo umount /media/rootfs
Note

If your rootfs id Ubuntu, you need to modify /media/rootfs/etc/fstab and change the mount point from /dev/mmcblk1p2 to /dev/mmcblk0p2 before un-mounting it.

Switch your Boot Select to eMMC and you will be able to boot up from eMMC now.


Last updated 20152018-10-2204