Contents
2. Warp7 Yocto Part2 <-- You are here
3. Warp7 Sensors demo - mpl3115a2
4. Warp7 Sensors demo - fxos8700cq
In previous blog we compiled the yocto source and build binaries using yocto.
Next we shall flash the yocto images to warp.
Step1:
Download the imx_usb_loader zip bundle from github.
Unzip the bundle.
unzip imx_usb_loader-master.zip
Step2:
Compile the downloaded source.
cd imx_usb_loader-master make
if you get errors as below, it means libusb is missing.
install lib usb :
sudo apt-get install libusb-1.0-0-dev
Step3:
Above compilation process will create imx_uart and imx_usb binaries.
We will use the imx_usb binary, the imx_usb loader detects the Freescale devices and flashes the u-boot to ram.
Make sure the warp7 is plugged in before proceeding.
Open a serial terminal (ex: minicom) and configure the serial device, in my case its ttyUSB0
Step4:
Setup warp7 hardware, Flash uboot and mount the emmc.
1. Remove the CPU board from the base board.
2. Put the dip switch2 in the upper position.
3. Reconnect the CPU board to the base board
4. Connect USB serial cable between the base board and PC.
5. Connect USB power cable between the cpu board and PC.
Now copy the uboot binary to home directory, so that its easier to locate while flashing.
cd ~ cp ~/warp7_yocto/build/tmp/deploy/images/imx7s-warp/u-boot.imx .
Now run the imx_usb with the u-boot.imx in path as argument.
You will see the below as output in minicom terminal once flashing completes.
The uboot halts the booting process as it finds no partition table to load kernel.
This confirms the uboot is loaded to RAM.
Use the default environment variables and save the environment.
=> env default -f -a => saveenv
Next we will use the Device Firmware Upgrade Mode (DFU mode) to burn the uboot to warp7 emmc, so that uboot is available after board reboot.
=> dfu 0 mmc 0
Flash the uboot to warp7 emmc:
sudo dfu-util -D u-boot.imx -a boot
Once flashed the sucess status can be checked on minicom.
Press Ctrl+C to exit.
Power down the warp7 board.
Remove the CPU board from the base board.
Put dip switch2 in the lower position.
Power up the board and warp7 uboot will boot from eMMC.
For flashing kernel and rootfs, the eMMC space needs to be mounted, we will use uboot ums command for that.
=> ums 0 mmc 0
Checking the emmc device...
In most cases the emmc device will be sdb unless you have multiple mass storage device connected to your PC.
$ ls /dev/sd*
Step5:
We already have the yocto generated images to be flashed.
path: /home/tushar/warp7_yocto/build/tmp/deploy/images/imx7s-warp
Burn bundled sdcard image to emmc.
$ sudo cp /home/tushar/warp7_yocto/build/tmp/deploy/images/imx7s-warp/*sdcard.gz . $ gunzip core-image-minimal-imx7s-warp-20160919105625.rootfs.sdcard.gz $ sudo dd if=core-image-minimal-imx7s-warp-20160919105625.rootfs.sdcard of=/dev/sdb
Reboot your warp7. You will get boot logs as below
U-Boot 2016.07-00124-g7a8868e (Sep 20 2016 - 18:22:50 +0530)
CPU: Freescale i.MX7S rev1.0 at 792MHz
CPU: Commercial temperature grade (0C to 95C) at 49C
Reset cause: POR
Board: WARP7
I2C: ready
DRAM: 512 MiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0(part 0) is current device
switch to partitions #0, OK
mmc0(part 0) is current device
reading boot.scr
** Unable to read file boot.scr **
reading zImage
6382896 bytes read in 121 ms (50.3 MiB/s)
Booting from mmc ...
reading imx7s-warp.dtb
37417 bytes read in 12 ms (3 MiB/s)
Kernel image @ 0x80800000 [ 0x000000 - 0x616530 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300c228
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.1.29+gfa57131 (tushar@tushar-p500) (gcc version 5.3.0 (GCC) ) #3 SMP PREEMPT Mon Sep 19 16:26:47 IST 2016
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: Warp i.MX7S Board
[ 0.000000] Reserved memory: created CMA memory pool at 0x8c000000, size 320 MiB
If you accidently brick the board check this to recover.
Happy WaRPing.
Top Comments