Monthly Archives: January 2017

Boot Linux OS entirely from a SD card, without modifying the existing eMMC content, on Inforce platforms based on Snapdragon™ 410E

Qualcomm® Snapdragon™ processors provide external memory interfaces either through Secure Digital Controller lines or through UFS lines. Snapdragon based platforms are typically capable of running either Android or Linux based software and OEMs/Product creators would want to switch between these software flavors seamlessly in their development phase. It is thus desirable to devise mechanisms to create a fully bootable image from an external memory source such an SD card that could be plugged-out from one system and plugged-in to another system! The procedure to create a bootable SD card of Debian Linux software is described below for Inforce 6309™ platform based on Qualcomm Snapdragon 410E processor.

Boot Linux OS entirely from a SD card

Boot-able SD card

It is possible to boot the entire OS from the SD card, without modifying the existing eMMC content, assuming you are using a Linux based system. The instructions below are to be used on Inforce 6309 SBC Debian Linux BSP Release version 2.0 available on Inforce Techweb, but would work with minor changes on future releases of Debian Linux from Inforce.

To boot from the SD card, a patched version of the bootloader (LK) will need to be recompiled. You will then need to create an SD card with a suitable GUID Partition Table and correct bootloaders.

Recompile the patched bootloader

# get compiler 
git clone --depth 1 \
git://codeaurora.org/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8.git \
-b LA.BR.1.1.3.c4-01000-8x16.0 lk_gcc
# get LK source code
git clone --depth 1 \
https://git.linaro.org/landing-teams/working/qualcomm/lk.git \
-b release/LA.BR.1.1.2-02210-8x16.0+sdboot lk_sdboot
# build bootloader
cd lk_sdboot
make msm8916 EMMC_BOOT=1 TOOLCHAIN_PREFIX="`pwd`/../lk_gcc/bin/arm-eabi-"

Download the proprietary bootloader

The proprietary bootloaders are available from Qualcomm at this location: https://developer.qualcomm.com/hardware/dragonboard-410c/tools. Find the most recent “Linux Board Support package” and download it. The files get extracted to a folder named ‘linux-board-support-package-v1.3/’. Copy the files boot-ifc6309_v2.0.img and linaro-jessie-alip-qcom-snapdragon-arm64-20160511-85_2.img from Inforce 6309’s Debian Linux Release Version2.0 to the location linux-board-support-package-v1.3/bootloaders-linux/ and rename them to boot.img and rootfs.img respectively. “abootimg” is a tool to read/write/update Android boot partitions, and is available in most standard Linux distributions. If your Ubuntu host machine doesn’t have it, install using the command:

$sudo apt-get install abootimg

Run the command shown below to change the boot image with the specific configuration option:

abootimg -u boot.img -c "cmdline=root=/dev/mmcblk1p10 rwrootwait console=ttyMSM0,115200n8"

Create the SD card

To boot on the APQ8016, the boot media is required to have a very specific GUID Partition Table. The tool below will take care of that. You can inspect the tool to understand the low-level details if required. The SD card will be created with a default partition scheme that includes all the required boot partitions, as well as 2 partitions for the kernel and the rootfs, called ‘boot’ and ‘rootfs’. Once the SD card is created, you can load any valid boot image and root fs image into these partitions.

To create the bootable SD card:

git clone https://git.linaro.org/people/nicolas.dechesne/db-boot-tools.git
cd db-boot-tools
sudo ./mksdcard.sh -o /dev/ -p dragonboard410c/linux/partition.txt \
-i ../lk_sdboot/build-msm8916/ \
-i ../linux-board-support-package-v1.3/bootloaders-linux/
-s $((4*1024*1024))

Notes:

  • /dev/ represents your SD card, plugged to your PC. The SD card will be completely erased during this process.
  • Be very cautious about the SD card device name, or you could seriously damage your PC
  • Use $((4*1024*1024)) for 4Gb root partition and for 8Gb root partition use $((8*1024*1024))

When the command above finishes executing, your SD card shall have the right GUID Partition Table.

On the Inforce 6309 platform, turn ON the Boot configuration switch SW4 (located on the bottom side) to “0-1-1-1-1-1” meaning that positions 2-6 are turned ON. Plug-in the SD card and power up the board. The boot process would complete and the Linux login screen shall come up.

You could now plug-in and plug-out this SD card on multiple Inforce 6309 platforms to run Debian based software though the onboard eMMC has Android software pre-loaded on it.

Copyright ©2017 Inforce Computing, Inc. All rights reserved. Snapdragon is a registered trademark of Qualcomm Technologies, Inc, and used with permission. All other trademarks are the property of their respective owners.

Inforce 6309L™: The seamless transition from DragonBoard ™ 410c development to large-scale production just arrived

DragonBoard 410c provides developers with a great starting point for rapid prototyping for embedded or commercial products but what’s next when your device is ready to go to market?  Your application is working on this Snapdragon 410E platform but you find out DragonBoard  410c cannot Qualcomm Snapdragon based Inforce 6309Lsupport volume manufacturing, nor can give you the support you need for custom hardware and software modifications.  Where do you go from here? Continue reading Inforce 6309L™: The seamless transition from DragonBoard ™ 410c development to large-scale production just arrived

Inforce Computing joins Basler in bringing embedded vision development kits to Embedded World 2017

Basler partners with Inforce Computing to display their popular camera modules on Inforce development kits and single board computers at Embedded World in Nuremberg, Germany, March 14-16th.  Basler will be running live demos of embedded vision solutions on multiple Inforce platforms in the Basler booth.  The Inforce and Basler partnership allows developers to easily find a plug-n-play camera solution with support for the development platform, drivers, and Basler’s pylon camera software suite.Inforce Computing joins Basler in bringing embedded vision development Continue reading Inforce Computing joins Basler in bringing embedded vision development kits to Embedded World 2017

Secure Boot Loader

Qualcomm® Secure boot Prevents malicious software from loading during the system start-up process of Inforce platforms

Hackers keep devising unique new ways to circumvent traditional anti-virus/anti-malware software but with a secure boot process, it becomes extremely difficult if not impossible to gain malicious entry into a system. The bootloader is the first code that is executed after the board is powered up. The bootloader performs initialization of low-level hardware like clocks, memory, communication etc and is therefore highly coupled with the hardware. A boot process is considered vulnerable when bootloader attacks use the boot process itself to load malicious code masquerading as a legitimate operating system, prior to the loading of the real OS. The secure boot process is a way to prevent such attacks to the system before the bootloader is started and to ensure that the bootloader and kernel code are from trusted sources. Continue reading Qualcomm® Secure boot Prevents malicious software from loading during the system start-up process of Inforce platforms