All posts by Sundeep Rau

mm

About Sundeep Rau

Embedded System software specialist who manages products at Inforce.

Unleash the Power of USB-C with Inforce 6560

Unleash the power of USB-C with Inforce 6560

Inforce’s newest Single Board Computer based on Qualcomm®’s Snapdragon 660™ core is close to being available for everyone. A key interface on this hardware would be the USB-C connector that runs on the USB 3.1/gen 1
protocol – the most recent version of the USB (Universal Serial Bus) standard for connecting peripheral devices. USB-C is a powerhouse that fits even more pins into its thin and compact shape as compared to the standard USB Type-A and B connections. Continue reading Unleash the Power of USB-C with Inforce 6560

Snapdragon 660 based Inforce 6560 SBC

Coming soon – Snapdragon 660 Based Inforce 6560 SBC

Coming soon from Inforce is a Single Board Computer based on the Qualcomm® Snapdragon 660™ core. The Inforce 6560™ SBC will be made available in the standard pico-iTX form factor without compromising on direct access to an extensive set of I/Os including USB-C with UltraHD display capability. This platform can be a replacement for Inforce 6540 SBC and an upgrade from the Inforce 6410P SBC which have reached end-of-life. Continue reading Coming soon – Snapdragon 660 Based Inforce 6560 SBC

An Upstream Linux Release for the Snapdragon 820 based Inforce 6601 Development kit is now available!

Linux release for the Snapdragon 820

We are happy to announce a fully featured release for Debian Linux software for the Inforce 6601 development kit. This release is based on Linaro’s Debian Linux build based on upstream kernel 4.14 and Debian 10 buster rootfs. This release has support for some exclusive features on Linux like preview and capture from the OV5640 camera sensor based Inforce ACC1H10 accessory through the onboard MIPI-CSI interface apart from improved thermal performance, hardware accelerated H265 encode/decode through Gstreamer integrated codecs, 4K HDMI output with audio apart from a whole lot of other standard features. Continue reading An Upstream Linux Release for the Snapdragon 820 based Inforce 6601 Development kit is now available!

Day 1 at Embedded World – Inforce Computing

Embedded World Day 1

Inforce Computing is at the Embedded World trade show this week, taking place at the Exhibition hall, in Nuremberg, Germany. At Hall 4A, Arrow Electronics’ Booth 340, we are presenting live demos of our newest products viz., Inforce 6320, an IoT edge gateway with option for routing capabilities and ACC1S80, an Ultra HD HDMI Input Adapter Card. Continue reading Day 1 at Embedded World – Inforce Computing

Open Embedded for Inforce Platforms

Introduction: Product makers would find it hard to pick up off-the-shelf Linux distributions for use in their systems directly owing to the combination of bootloader, kernel, application, and development tool components not being compatible for their peripherals and hardware. Thus, a ‘roll your own’ approach to Linux is preferred and the Open Embedded (OE) build environment provides exactly that through a methodology to reliably build customized Linux distributions for your embedded devices. Open Embedded is not a Linux distro but a build system with which a Linux distro can be created.

Open Embedded for Inforce Platforms

Download High Resolutions Image Continue reading Open Embedded for Inforce Platforms

Enabling RTC on Inforce Platforms

Introduction: The purpose of an RTC or a real-time clock is to provide precise time and date which can be used for various application use-cases. Similar to a watch, it runs on a battery and keeps time for you even when there is a power outage on your system! Using it, you can keep track of long timelines, even if your system is disconnected from the power plug. Continue reading Enabling RTC on Inforce Platforms

Inforce Insights January 2017: Vol.3 Issue 1 – Inforce Computing Newsletter

Inforce Insights January 2017: Vol.3 Issue 1 – Inforce Computing Newsletter

Another fruitful year goes by and we usher in this New Year wishing health, happiness, and success to everyone! We are happy to present our first newsletter of the year! In this issue, we share details on booting up our SBC running Linux entirely from an SD card. Continuing our trust with digital content protection which we had illustrated elaborately through Widevine DRM in our previous newsletter, we now provide a technical article on securing the boot process on our platforms. We hope you enjoy reading our content as much as we love creating it!

Inforce Insights January 2017: Vol.3 Issue 1 - Inforce Computing Newsletter Continue reading Inforce Insights January 2017: Vol.3 Issue 1 – Inforce Computing Newsletter

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. For example: developer.qualcomm.com/download/db410c/linx-board-support-package-v1.3.zip, and extract the ZIP file on your PC. 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.

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