i.MX53 SODIMM PC Barebox

From Voipac Wiki
Revision as of 18:44, 3 April 2021 by Voipac (talk | contribs)
Jump to navigation Jump to search

i.MX53 SODIMM PC - Development kit uses Barebox as a bootloader. This page displays how to configure and build it.

Barebox is a bootloader responsible for hardware initialization, loading and booting Linux kernel. It is also used for module flashing.

Building images

Set toolchain

Export toolchain variables for every related terminal session.

Set shell variables

BB_VERSION=2014.03.0
SW_VERSION=20150308

Download and extract source code

mkdir -pv ~/workdir/vmx53/barebox/
cd ~/workdir/vmx53/barebox/
wget http://barebox.org/download/barebox-${BB_VERSION}.tar.bz2
tar xvjf barebox-${BB_VERSION}.tar.bz2
mv barebox-${BB_VERSION} barebox-${BB_VERSION}.orig
cp -rv barebox-${BB_VERSION}.orig barebox-${BB_VERSION}.work

Download and apply Voipac patches

cd ~/workdir/vmx53/barebox/
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_kit/module/software/barebox/sources/barebox-2014.03.0_vmx53_20151129.cfg
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_kit/module/software/barebox/sources/barebox-2014.03.0_vmx53_20151129.patch
cd ~/workdir/vmx53/barebox/barebox-${BB_VERSION}.work
patch -p1 < ../barebox-${BB_VERSION}_vmx53_${SW_VERSION}.patch
cp ../barebox-${BB_VERSION}_vmx53_${SW_VERSION}.cfg .config

Compile

Output file is called arch/arm/pbl/zbarebox.bin:

cd ~/workdir/vmx53/barebox/barebox-${BB_VERSION}.work
#make ARCH=arm menuconfig
make -j4

Configure

Edit boot options

Barebox provides 4 boot configurations by default:

  • nand-legacy-ubi
    • Load kernel (nand - kernel)
    • Attach rootfs (nand - rootfs)
  • nand-dtb-ubi
    • Load kernel (nand - kernel)
    • Load device tree (nand - bareboxenv)
    • Attach rootfs (nand - rootfs)
  • net-legacy
    • Load kernel (tftp)
    • Attach rootfs (nfs)
  • net-dtb
    • Load kernel (tftp)
    • Load device tree (tftp)
    • Attach rootfs (nfs)



Boot configuration files include options to define custom kernel and rootfs names or paths:

barebox@Voipac VMX53:/ edit /env/boot/net-dtb
barebox@Voipac VMX53:/ edit /env/config

# list of boot entries. These are executed in order until one
# succeeds. An entry can be:
# - a filename in /env/boot/
# - a full path to a directory. All files in this directory are
#   treated as boot files and executed in alphabetical order
global.boot.default=nand-dtb-ubi

Set correct DTB file based on module configuration

Each configuration uses an altered device tree:

barebox@Voipac VMX53:/ edit /env/config
...
# BASIC=557, PRO=668, MAX=779
#global.vmxmodel=557
global.vmxmodel=668
#global.vmxmodel=779
...
barebox@Voipac VMX53:/ saveenv
barebox@Voipac VMX53:/ reset