Archive

Posts Tagged ‘yocto’
Orange Pi Development Boards

Compulab CL-SOM-iMX8 SoM Features NXP i.MX 8M Processor for $68 and Up

January 15th, 2018 5 comments

I just covered one of the i.MX 8M systems-on-module last Friday with Variscite DART-MX8M SoM, but Variscite is not the only company about to launch such modules, and today I’ll have a look at Compulab CL-SOM-iMX8 system-on-module based on the same NXP i.MX 8M dual or quad core Cortex A53 processor.

Compulab’s SoM comes with up to 4GB RAM, 64GB eMMC flash, an optional WiFi & Bluetooth module, as well as optional support for Ethernet, LVDS, analog audio, and more. Contrary to most competitors, the company has also made an habit of releasing detailed pricing the basic configuration and per option.

Click to Enlarge

But first, let’s go through the specifications:

  • SoC (one of the other)
    • NXP i.MX8M Quad quad core Arm Cortex-A53 processor @ 1.5GHz with Arm Corex-M4 real-time core, Vivante GC7000Lite GPU supporting OpenGL ES 3.1, Open CL 1.2 and Vulkan
    • NXP i.MX8M Dual dual core Arm Cortex-A53 processor @ 1.5GHz with Arm Corex-M4 real-time core, Vivante GC7000Lite GPU supporting OpenGL ES 3.1, Open CL 1.2 and Vulkan
  • System Memory – 1 to 4GB LPDDR4
  • Storage – 4GB to 64GB eMMC flash
  • Connectivity
    • Optional WiFi 802.11a/b/g/n/ac WiFi & Bluetooth 4.1 BLE (Broadcom BCM4356 chipset)
    • Optional Gigabit Ethernet Atheros AR8033 PHY
  • Audio – Optional Wolfson WM8731L audio codec
  • 204-pinedge connector exposing the following interfaces:
    • Display
      • HDMI 2.0a up-to 4096 x 2160 @60Hz
      • LVDS up-to 1920 x 1080 @60Hz via on-module DSI to LVDS convertor
      • 4-lane MIPI-DSI up to 1920 x 1080 @60Hz
      • 24-bit Parallel RGB up to 1600 x 1200
      • Touchscreen Capacitive touch-screen support through SPI and I2C interfaces
    • Camera – 4-lane MIPI-CSI interface
    • Networking – 1x 10/100/1000Mbps Ethernet
    • Audio
      • Analog stereo output, stereo input and microphone support
      • Up to 4x I2S / SAI, S/PDIF input/output
    • PCIe – PCIe x1 Gen. 2.1, optional extra PCIe x1 Gen. 2.1
    • USB – 2x USB3.0 dual-role ports
    • Serial – Up to 4x UART
    • Up to 1x MMC/SD/SDIO
    • Up to 2x SPI, Up to 3x I2C, Up to 4x general purpose PWM signals
    • Up to 90x GPIO (multifunctional signals shared with other functions)
  • Debugging – JTAG debug interface
  • Misc – RTC Real time clock, powered by external battery;
  • Supply Voltage –  3.35V to 4.2V
  • Digital I/O – voltage 3.3V
  • Dimensions – 68 x 42 x 5 mm
  • Weight – 14 grams
  • Temperature Range
    • Operating – Commercial: 0° to 70° C; Extended: -20° to 70° C; Industrial: -40° to 85° C
    • Storage – -40° to 85° C
  • Relative humidity – 10% to 90% (operation); 05% to 95% (storage)
  • Reliability – MTTF – > 200,000 hours; Shock 50G / 20 ms; Vibration 20G / 0 – 600 Hz

CL-SOM-iMX8 Block Diagram – Click to Enlarge

The company provides support for the Yocto Project with Linux mainline, and Android support is coming soon. SBC-iMX8 Evaluation Kit can be used to kickstart development with SOM-iMX8-C1500Q-D2-N16-E-A-WB-H module (quad core version with 2GB RAM, and 16GB flash, Ethernet, Audio, Wireless module, and heat dissipation plate), SB-iMX8 carrier board, a WiFi antenna and cable, a serial port cable, a USB cable and adapter, as well as a 12V power supply. The company also provides 12-month technical support for the kit.

SB-iMX8 Block Diagram – Click to Enlarge

The SoM and devkit have not been formally launched (early product announcement), and I could not find a photo of the carrier board, nor the specifications in readable form, but the company has already released the schematics – from which I extracted the block diagram above -, PCB layout, and Gerber files for it, and it seems to pretty much expose all features from the SoM, as it should.

It’s unclear whether the SoM are available now, but they should be soon, with 10-year longevity. As mentioned in the introduction the company also released pricing with the most basic model SOM-iMX8-C1500D-D1-N4 (dual core, 1GB RAM, 4GB storage, no other option) will sell/sells for $68 for 1k-unit price, and option pricing are shown below.

Click to Enlarge

Price also fluctuates based on order quantity, and for example, the price for one sample is 2.5 times more expensive, while for 10K order, unit price is reduced by 5%. Visit the product page to find more details, including initial hardware and software documentations, and further pricing info.

Renesas R-Car M3 Starter Kit is Designed for ADAS Applications

December 22nd, 2017 No comments

Most boards targeting the automotive market are impossible to purchase by individual, so last year I was pleasantly surprised when I discovered Renesas R-Car M2 Porter Linux automotive infotainment development board was available for sale on Digikey, and had good documentation on eLinux.org.

The company has now introduced another automotive board, namely R-Car V3M starter kit, that’s not designed for infotainment, but instead for ADAS (Advanced Driver Assistance Systems) or even AD (Automated Driving) applications. Specifically, the board is supposed to “accelerate the development of New Car Assessment program (NCAP), front camera applications, surround view systems, and lidars” leveraging the company’s R-Car V3M image recognition SoC.

Click to Enlarge

Renesas R-Car V3M starter kit (V3MSK) specifications:

  • SoC – Renesas R-Car V3M processor with two Cortex A53 64-bit cores @ up to 800 MHz, a dual lockstep Cortex-R7 32-bit core @ up to 800 MHz, IMP-X5-V3M image recognition engine
  • System Memory – 448KB RAM on-chip; 2GB (6.4 GBytes/s) DDR3L-1600, 32-bit wide
  • Storage
    • 64MB bootable HyperFlash @ 160 MHz (320MB/s)
    • 64MB bootable QSPI Flash @ 80 MHz (80 MBytes/s)
    • 32 GB eMMC flash (HS200)
  • Video out – HDMI 1.4 up to 1080p60 (via LVDS to HDMI chip), no audio
  • Connectivity – Gigabit Ethernet
  • Debugging
    • 1x mini USB type B via FT232 USB to UART bridge
    • JTAG debug – 20-pin (2.54mm) ARM_EML (“Lauterbach”)
    • JTAG trace – ETM-A53-16K/R7-4K
    • Parallel trace – On-board connector for LVDS pod (shared with LVDS)
  • 440-pin COM Express interface exposing the following signals:
    • Storage – bootable parallel SRAM/ROM
    • Display – RGB888, 1-ch LVDS (shared with trace & HDMI)
    • Video in  – 1-ch 4-lane MIPI-CSI2, 2x RGB/YPbPr/Raw
    • Serial – Up 3x  SCIF , up to 4x HSCIF (High Speed Serial Communication Interface)
    • Up to 3x MSIOF (SPI/I2S)
    • Up to 2x CAN-FD [email protected] 8Mbps
    • Up to 5x I2C @ 400kHz, master/slave
    • DigRF
    • Up to 5x PWM
    • 8-ch ADC, 12-bit
    • GPIOs – 14x GPIOs by default, up to 105x GPIOs (shared)
    • NMI, IRQ interrupt on GPIOs
  • Misc – 3x user LEDs; 4x DIP-switches at GPIOs; 8x DIP-switches at CPLD; reset button & LED
  • Power Supply – 5V/3A input;  PMIC for all required voltages
  • Dimensions – 95x95mm (equivalent to COM Express type 6)

Beside the board itself , the kit includes a 5V/3A power supply, an HDMI-USB? cable, a mini USB cable, and an Ethernet cable. The board is supported by a Yocto Project built Linux BSP available on eLinux.org together with WiP documentation. Other commercial operating systems will be made available in 2018 and beyond. The platform is also supported by Renesas’ open-source e2 studio IDE, and is part of the Renesas autonomy Platform that “delivers end-to-end solutions for advanced driver assistance systems (ADAS) and automated driving”.

V3MSK Board Connected to Expansion Board and One Camera – Click to Enlarge

The eLinux page also reveals an expansion board by Cogent Embedded that connected to V3MSK’s COM Express connector and gives access to up to 4 cameras via Fakra connectors.

There’s no information about pricing or availability, but I’d expect the board to eventually sell on Digikey with the other R-Car Starter Kits. More details, including the hardware manual, can be found on the product page on Renesas website.

VoltaStream AMP1 Linux Audio Board Includes a Stereo Audio Amplifier, Adds WiFi and Bluetooth

November 23rd, 2017 1 comment

Last summer I wrote about VoltaStream ZERO an audio board powered by NXP i.MX6ULL processor, with up to 1GB RAM, a Texas Instruments DAC, and leveraging Raspberry Pi Zero form factor. The board runs a custom Linux distribution called PolyOS built with the Yocto Project, and including shairport-sync, librespot, SqueezeLite, a DLNA renderer, and more.

Polyvection, the company behind the project is now back with VoltaStream AMP1 audio development board, with half the board very similar to VoltStream ZERO, and the other half featuring an audio amplifier, and a wireless module for WiFi and Bluetooth.

Click to Enlarge

VoltaStream AMP1 board specifications:

  • SoC – NXP i.MX6ULL ARM Cortex-A7 processor @ 996 MHz
  • System Memory – 512 MB DDR3
  • Storage – micro SD card slot
  • Audio
    • 1x I2S for integrated DAC and AMP, 1x I2S for GPIO access, 1x TOSLINK-IN jack
    • Analog DAC – Texas Instruments PCM1862 (SNR 103 dB)
    • Amplifier – ISSI IS31AP2121 / class-D / SNR 104 dB; 2x 35 Watt (2x 25 watt continuous)
  • Connectivity – Dual band 802.11 b/g/n/ac WiFi and Bluetooth 4.1 (Qualcomm QCA9377)
  • USB – 1x micro USB slave port (USB gadget mode supported), 1x USB type A host port
  • Expansion Headers – 40-pin GPIO header with 5V, 3V3, GND, 2x UART, flexCAN, 2x I2C, SPI, I2S, 3x PWM, S/PDIF input
  • Misc – Integrated button handler / accessible from header
  • Power Supply – 5V via micro USB port (TBC), or 10 to 20V via barrel jack
  • Power consumption – TBD (For reference: Voltastream ZERO: 0.25 Watt – Linux idle)
  • Dimensions – 65 mm x 56 mm

Click to Enlarge

VoltaStream AMP1 board will ship with a 100 mm external antenna with adhesive, two wooden plates for a simple case together with required screws and spacers. You’ll need to add your own power supply (30W or greater), micro SD card with 2GB or greater capacity, and of source the speakers.

The board supports the same audio specific PolyOS operating system, or a more generic PolyBian Debian based Linux distribution. Documentation including a getting started guide and schematics (PDF), as well as download links can be found in the product page, where you’ll also be able to purchase the board for 83.19 Euros plus eventual VAT, and shipping costs.

Thanks to Frederic for the tip.

WandPi 8M Development Board Coming Soon with NXP i.MX8M SoC for $89 and Up

November 17th, 2017 21 comments

Wandboard launched in 2012 using Freescale i.MX6 Solo/Dual processor, following soon after by Wandbord Quad. We are not hearing much about those boards today, but since the processor comes with 10 to 15-year long term support, they are still being sold, and software keeps getting updated. For example, the board first shipped with Android 4.1 (Jelly Bean), and the company recently provided Android 7.1 (Nougat) images, and Android 8.x Oreo is likely coming next year.

The company has now unveiled the next generation of Wandboard boards with WandPi 8M powered by NXP i.MX 8M Cortex A53/M4 processors, with up to 2GB DDR4, 16GB eMMC flash, and various network connectivity options and ports.

Three versions of the board (Lite, Pro, Deluxe) will be available with the following specifications:

  • SoC – NXP i.MX8M Quad with four ARM Cortex A53 cores, a Cortex M4F real-time core, and Vivante GC7000Lite GPU with support for OpenGL/ES 3.1, OpenGL 3.0, Vulkan, OpenCL 1.2
  • System Memory / Storage
    • WANDPI-8M-LITE – 1GB DDR4 + 4GB eMMC flash
    • WANDPI-8M-PRO – 2GB DDR4 + 8GB eMMC flash
    • WANDPI-8M-DELUXE – 2GB DDR4 + 16GB eMMC flash
  • Video & Audio Output – HDMI 2.0 up to 4K @ 60Hz
  • Video Decode – 4K UltraHD HDR (Dolby Vision, HDR10, and HLG) up to 4Kp60 for H.265, VP9, 4Kp30 for H.264, 1080p60 for MPEG2, MPEG4p2, VC1, VP8, RV9, AVS/AVS+, h.263, DiVX.
  • Connectivity

    40-pin Header Pinout Diagram

    • Gigabit Ethernet port via Atheros AR8035 chip
    • WANDPI-8M-PRO/DELUXE – Dual band 802.11b/g/n/ac WiFi & Bluetooth 4.2 via Atheros QCA9377; MHF4 antenna connector
  • USB – 1x USB 3.0 port
  • Expansion Header
    • 40-pin Raspberry Pi (mostly) compatible GPIO header with I2C, UART, SPI, PWM, GPIO, SAI/I2S, 5V, 3.3V and GND
    • mikroBUS socket with SPI/I2C/UART/PWM/GPIO/Analog for MikroElectronika Click Boards (now over 250 modules)
  • Debugging – 1x micro USB port for serial console access
  • Misc – Reset button
  • Power Supply – 5V via USB type C port
  • Dimensions – 85 x 56 x 17.5 mm
  • Weight – Working on it
  • Environment / Reliability –
    • Temperature Range – 0 to 50°C
    • Humidity – 10 to 90% RH humidity
    • MTFB – 50,000 hours
    • Shock – 50G/25ms
    • Vibration – 20G/0-600Hz
  • Certifications – Compliant with CE / FCC / RoHS / REACH directives

The block diagram also reveals MIPI camera display (FPC) and MIPI camera (BTB) which are not listed in the specifications.

WandPi 8M Block Diagram – Click to Enlarge

Information about software is currently limited, and we just know the boards will run Linux with “open source code and binary images that are easily accessible” as well design guides and schematics just like the previous Wandboards. The company also shows some logos for the Yocto Project, Ubuntu, Android, Kodi, and Debian, so we can expect support for those.

WandPi 8M boards will ship in Q2 2018, but the company is already taking pre-orders for $89 (LITE), $99 (PRO) and $119 (DELUXE). You’ll find purchase links and a few more details on the product page. Those relatively low cost development boards could also be good news for other open source i.MX8 projects such as Purism Librem 5 smartphone, and MNT reform DIY modular laptop, as more developers may be involved on working on i.MX 8M software support.

Gumstix Expands Raspberry Pi Support with Stepper Motor, Breakout Board, LoRa PoE, and Yocto Linux

October 14th, 2017 3 comments

Gumstix has recently released of three new expansion boards compatible with Raspberry Pi boards and Compute Modules:

  • Gumstix Pi Stepper HAT for 4-wire stepper motors
  • Gumstix Pi Newgate breakout boards exposing all I/Os of Raspberry Pi Compute Module and Compute Module 3
  • Gumstix Pi Conduit PoE adding PoE support to their LoRa gateway kit based on RisingHF RHF0M301 LoRa concentrator module.

The company also offers a custom Yocto 2.2 (Morty) Linux images with support for their Pi HATs and Compute Module carrier boards.

Gumstix Pi Stepper HAT

The expansion board is designed with the 40-pin header for Raspberry Pi products, and includes Texas Instruments DRV8846, a 4 – 18V, 1.4A stepper motor driver with 1/32 microstepping providing rotational accuracy below a tenth of a degree, and 6,400 distinct positions. The board supports 6 to 36V batteries via a 3-pin headers, includes 256 kbit serial EEPROM, and can be used for printers, scanners, video security cameras, projectors, and other automated equipment.

You’ll find technical documentation and software on the product page, where you can also purchase the board for $35.

Gumstix Pi Newgate

Click to Enlarge

The Gumstix Pi Newgate is a breakout board for RPi Compute Module and Compute Module 3 that exposes all I/Os of their 200-pin SO-DIMM connector via 2.54mm pitch headers with 3 terminals for each pin. The board is also equipped with a micro USB console port, and level shifters to accommodate 3.3 and 1.8 volt logic levels for peripheral devices.

The breakout board goes for $85 on Gumstix website.

Gumstix Pi Conduit PoE

Pi Conduit PoE is an update of their earlier board with added Gigabit Ethernet and PoE support, and removal of cellular support:

  • 200-pin SO-DIMM connector for Raspberry Pi Compute Module / Raspberry Pi 3 Compute Module (CM3 / CM3L)
  • Headers for RisingRF RHF0M301 LoRa gateway/concentrator module
  • NimbeLink Skywire 2G/3G/4G cellular modem connector
  • Gigabit Ethernet jack with PoE support implemented via ASIX AX88179 SuperSpeed USB 3.0 to Gigabit Ethernet Controller
  • USB – 1x micro USB port for debugging via an FTDI USB to TTL chip
  • Misc – User (GPIO5) and reset buttons
  • Power Supply – 5V via power barrel

If you’re using any of the Raspberry Pi modules, you’ll however be limited to the USB 2.0 interface (480 Mbps) for Gigabit Ethernet, but that’s still an improvement of the 10/100M Ethernet often used with the modules.

The board sells for $150, excluding RisinRF and RPi CM(3) modules.

Yocto Linux and Hardware Customization

Gumstix does not rely on Raspbian anymore, as the company provides custom Yocto Linux disk images (Morty) with support for Gumstix Pi HATs, Compute Module carrier boards, relevant drivers, and systemd services. The company also offers a “Smart repository” with a variety of packages for easier installation. For all the three products listed above you’ll find two Yocto images, one with XFCE environment, one headless with access to the command line.

All three boards have also been designed with Geppeto, the company’s web platform for hardware design, and can be customized to your needs and ordered right in your web browser.

Rock960 Board is a 96Boards Compliant Board Powered by Rockchip RK3399 SoC

September 29th, 2017 24 comments

So it looks like Rockchip is soon going to join 96Boards family with Rock960 board. Developed by a Guangzhou based startup called Varms, the board will be powered by Rockchip RK3399 hexa-core SoC, and comply with 96Boards CE specifications.

Rock960 board preliminary specifications:

  • SoC – Rochchip RK3399 hexa-core big.LITTLE processor with two ARM Cortex A72 cores up to 1.8/2.0 GHz, four Cortex A53 cores @ 1.4 GHz, and  ARM Mali-T860 MP4 GPU with OpenGL ES 1.1 to 3.2 support, OpenVG1.1, OpenCL 1.2 and DX 11 support
  • System Memory – 2 or 4GB RAM
  • Storage – 16 or 32GB eMMC flash + micro SD card
  • Video Output – 1x HDMI 2.0 up to [email protected] Hz with CEC and HDCP
  • Connectivity – WiFi 802.11ac 2×2 MIMO up to 867 Mbps, and Bluetooth 4.1 LE (AP6356S module) with two on-board antennas, two u.FL antenna connectors
  • USB – 1x USB 2.0 host port, 1x USB 3.0 port, 1x USB 3.0 type C port with DP 1.2 support
  • Expansion
    • 1x 40 pin low speed expansion connector – UART, SPI, I2C, GPIO, I2S
    • 1x 60 pin high speed expansion connector – MIPI DSI, USB, MIPI CSI, HSIC, SDIO
    • 1x M.2 key M PCIe connector with support for up to 4-lane PCIe 2.1 (max bandwidth: 2.0 GB)
  • Misc – Power & u-boot buttons. 6 LEDS (4x user, 1x Wifi, 1x Bluetooth)
  • Power Supply – 8 to 18V DC input (12V typical) as per 96Boards CE specs; Battery header
  • Dimensions – 85 x 54 mm (96Boards CE form factor)

The board will support Android (AOSP), Ubuntu, the Yocto Project, and Armbian. The website shows the word “official” for the first three, and lists Canonical as partner. The company will also offer various at least one expansion board, and starter kit based on Seeed Studio Grove system with a mezzanine board with plenty of Grove headers, an LCD display, and various Grove modules like buzzers, relays, buttons, LEDs, temperature sensors, and so on.

Rock960 is both simpler and smaller than other RK3399 boards such as Firefly-RK3399 and VS-RK3399, so I’d expect it to be cheaper, hopefully below $100, once it becomes available. The website is still very much under construction, but you may find few more details there.

Thanks to mininodes for the tip.

Save Power, Hibernate Your Embedded Linux System

August 30th, 2017 4 comments

This is a guest post by Tharma Rajan G, Project Lead, e-con Sytems.

What is the best way to save power consumption of your embedded Linux system? Is there any way to save max power and resume operation ? Yes. It is ‘hibernate’ mode, one of the Power Modes in Linux. This article talks about how we utilized this ‘hibernate mode’ in our Reference Platform Kit Meissa-I with eSOMiMX6-micro SOM.

Click to Enlarge

Meissa-I is a dual board solution that features eSOMiMX6-micro Computer on Module & carrier board. Meissa-I development board runs Linux and Android Marshmallow (under development). eSOMiMX6-micro is based on Dual/Quad core ARM CortexTM-A9 based CPU @ 800MHz/Core. It has 1GB LPDDR2 and 4GB eMMC FLASH (expandable upto 32GB). The eSOMiMX6-micro module also has the Wireless LAN and Bluetooth module.

Linux Power Modes

Power Management is a key feature in embedded Linux system and there are two types for implementing the power management on x86 platforms:

  1. Advanced Power Management (APM)
  2. Advanced Configuration and Power Interface (ACPI)

ACPI is the newer of the two technologies and puts power management in the hands of the operating system, allowing for more intelligent power management than is possible with BIOS controlled APM.

For ARM based systems however, APM/ACPI is not used. Instead power management in ARM Linux System, is implemented using sysfs entries. Following are sysfs entries for power management.

SI.No Sysfs Entry Purpose Notes
1 /sys/power/state
  1. To get supported system sleep states
  2. To set one of the supported system sleep states
Comparing to ACPI, this entry handles System Sleep States (Sx)
2 /sys/devices/system/cpu/cpu0/cpufreq/
  1. To get supported cpufreq governors and current governor for DVFS
  2. To set one of the supported cpufreq governors as current governor
Comparing to ACPI, this entry handles Processor low-power states (Px)
3 /sys/devices/system/cpu/cpuN/online
  1. To check whether CPUN is turned on in SMP (or multi core) system. Here N is not 0 (i.e boot core)
  2. To turn CPUN on/off in SMP (or multi core) system. Here N is not 0 (i.e boot core)
Comparing to ACPI, this entry handles CPU states (Cx)
4 /sys/devices/…/power/wakeup
  1. To set this device as wake up source for waking up the system from one of sleep states.
  2. To check whether this device is wakeup source or not
A wake up source device can not be put in low power states. Other non wake up source devices can be in low-power states.For example,

  1. Debug Serial port as wake up source

2. Ethernet LAN receive data as wake up source

3. RTC alarm as wake up source

5 /sys/class/thermal/thermal_zone0/temp 1. To get the CPU temperature current CPU temp in milli-celcius.
6 /sys/class/thermal/thermal_zone0/trip_point_1_temp 1. To get critical temperature value2. To set critical temperature value when the measured on die temperature exceeds the critical threshold → reboot the system (protection mechanism to prevent damage).
7 /sys/class/thermal/thermal_zone0/trip_point_0_temp 1. To get passive temperature value2. To set passive temperature value The passive trip point is a preventative measure before reaching critical that does things to lower temperature such as reducing cpu/gpu frequencies. The thermal driver works with CPU Freq mechanism

The power management subsystem provides a unified sysfs interface to userspace, regardless of what architecture or platform one is running. Generally sysfs filesystem is mounted in /sys directory and one can see that power management related entries in /sys/power path.

Using the entry /sys/power/state, one can get supported power states (or power modes) of the embedded system. And also one can put that embedded system in one of those supported power states.

System Sleeping States and Description

Sl.No

Label

Description

Alternative name

1

freeze

Will freeze user space process and put all I/O Devices into low-power state.

Make the processors to spend more time in idle state.

Suspend-To-Idle

2

standby

Addition to freeze power mode features , nonboot cpus are put into offline and all low-level system functions are suspended during transition into this state.

None of the operating state is lost ( i.e the cpu retains power ), so the system easily starts up again where it left off.

Power-On Suspend

3

mem

Offer more power savings as everything in the system is put into low power state except RAM, and RAM will be working in self refresh mode to retains its contents.

This mode also supports standby power mode.

Suspend-to-RAM or STR

4

disk

Take a snapshot of current system state and save it into a disk ( i.e swap space ) . While resuming , snapshot image is read and memory is restored to its pre-suspend state.

STD will put the system to the lowest power state.

Suspend-to-Disk or STD or Hibernate

Swap Memory for Hibernate Power Mode

Swap memory

Swap memory is the area on disk that is reserved to be used as extra RAM when your system needs more RAM than what is available. When your embedded Linux system runs out of free memory, then kernel can move some of the inactive pages into swap partition to make free room for active pages in RAM memory. If you plan to use hibernation in your embedded Linux systems, then you swap space have to be at least twice the RAM capacity.

Kernel support for swap memory

Enable swap support in Linux kernel

Click to Enlarge

Test swap memory

  1. To test swap memory, we created a simple test application test_swap_mem which will allocate memory infinitely using malloc() API and fill that allocated memory using memset() API. Let’s have a look at the source code
  2. Before creating swap space, Check whether swap space is enabled using free command
    Here swap total , used and free space is marked as 0 which means swap space in not enabled yet.
  3. Run test_swap_mem application as discussed below

    Let us wait till the application reaches OOM.

    Click to Enlarge

    From the above image, you can observe test_swap_mem allocates maximum of 799MB, after that it reaches OOM and also you can confirm swap space is not used by observing Free swap and Total swap is marked as 0 kB and no swap pages are used

  4. Now let we create a swap memory region and test with the same application. Once you decided about the partition block to be used as swap space , you have to mark that partition block as swap partition.
  5. After marking that specific partition as swap partition , you have to prepare it using mkswap tool
  6. Now your swap space is ready to use , then activate swap partition.
  7. First notice how much swap memory is available and then run test_swap_mem application.
    Here 892892 bytes of swap memory region is available. Try to explore how much swap space is used and when OOM will be reached.

    Click to Enlarge

    Yes , swap memory is utilized. As there is no free memory (including swap) available for allocation, kernel throws OOM error hence kills that test application.

Hibernate – Power Mode

Hibernation power mode saves the system state (i.e all the pages created in RAM memory) to swap space and put the system power down.When the system is powered on, the state is restored (i.e pages are moved from swap to RAM memory). To write the system state to swap space, a mechanism called ‘swsusp’ (Swap Suspend ) is used.

Kernel Configuration for Hibernate mode

Click to Enlarge

Now we will prepare the Swap Space to hold the Hibernation Image.

Setup the swap area,

Enable partition for swapping

Run a process, to verify restoring the hibernation image.

Entering into Hibernate

  1. Enter into hibernation state by executing below command.

Resume from Hibernate

Before starting to resume from hibernate state, append resume=/pathto/swapspace command line parameter to read back hibernate image from that specific swap partition. Let us change the bootargs for hibernate resume state , and run the bootcmd.

Click to Enlarge

Now you will observe, hibernate image is read from swap partition and resumed.

Click to Enlarge

Analysis

Power Measurement Analysis

The power data is obtained by computing the product of voltage and current measured.

Hardware and Software Used:

  1. The software version used for the measurement is
    • U-Boot 2016.03
    • Linux Kernel Version 4.1.15.
    • Yocto Krogoth X11 image.
  2. The board used for the measurement is Meissa-I with eSOMiMX6-micro SOM.
  3. The measurements were performed using Fluke 15B+ Digital Multimeter.

Power Consumption details in tested power modes.

Sl.No

Power Mode

Current

(mA)

Voltage

(V)

Power Consumption

(mW)

Description

1

Active

288

3.3

950

In active state, no peripheral is connected with the MEISSA development board except HDMI monitor , MicroSD card and a debug cable which is connected to the development system.

2

Standby

55

3.3

181.5

In standby mode, all the peripherals will be put into sleep state. ARM core and DDR will be active.

3

Suspend

10

3.3

33

In suspend state, all the peripherals along with ARM core will be put into sleep state. DDR will be put into self refreshing mode.

4

Hibernate

0

3.3

0

In hibernate mode , entire system will be put into low power state.

System Power Consumption Chart

Click to Enlarge

Active Mode Power Consumption

Power Domain

Voltage ( V )

Current Consumption (mA)

Power Calculated (mW)

VCC_SW1AB_CORE

1.3

29

37.7

VCC_SW1C_SOC

1.3

262

340.6

VCC_HIGH_IN

3.1

73

226.3

VCC_LDO5

2.4

10

24

VCC_SW3_LPDDR2

1.1

43

47.3

VCC_LDO4_1P8

1.8

1.96

3.52

VCC_SW_3P3

3.3

24

79.2

VCC_1P2

1.1

62

68.2

VCC_1P8

1.8

0.55

0.99

VCC_WIFI_VBAT

3.3

0

0

Total Power

827.81

Standby Mode Power Consumption:

Power Domain

Voltage ( V )

Current Consumption (mA)

Power Calculated ( mW )

VCC_SW1AB_CORE

1.3

13

16.9

VCC_SW1C_SOC

1.3

11

14.3

VCC_HIGH_IN

3.1

34

105.4

VCC_LDO5

2.4

0.27

0.648

VCC_SW3_LPDDR2

1.1

7

7.7

VCC_LDO4_1P8

1.8

0.38

0.684

VCC_SW_3P3

3.3

0

0

VCC_1P2

1.1

0

0

VCC_1P8

1.8

0.24

0.432

VCC_WIFI_VBAT

3.3

0

0

Total Power

146.064

Suspend Mode Power Consumption:

Power Domain

Voltage ( V )

Current Consumption (mA)

Power Calculated ( mW )

VCC_SW1AB_CORE

0.97

0

0

VCC_SW1C_SOC

0.97

3

2.91

VCC_HIGH_IN

2.9

1.64

4.756

VCC_LDO5

2.4

1

2.4

VCC_SW3_LPDDR2

1.1

6

6.6

VCC_LDO4_1P8

1.8

0.37

0.66

VCC_SW_3P3

3.3

1.32

4.35

VCC_1P2

1.1

0

0

VCC_1P8

1.8

0.85

1.53

VCC_WIFI_VBAT

3.3

0

0

Total Power

23.206

Hibernate mode Power Consumption:

Power Domain

Voltage ( V )

Current Consumption (mA)

Power Calculated ( mW )

VCC_SW1AB_CORE

0

0

0

VCC_SW1C_SOC

0

0

0

VCC_HIGH_IN

0

0

0

VCC_LDO5

0

0

0

VCC_SW3_LPDDR2

0

0

0

VCC_LDO4_1P8

0

0

0

VCC_SW_3P3

0

0

0

VCC_1P2

0

0

0

VCC_1P8

0

0

0

VCC_WIFI_VBAT

0

0

0

Total Power

0

Domain Power Consumption Chart :

Click to Enlarge

Boot Time Analysis

App launch time Measurement in Normal Boot.

We have taken our eSOMiMX6Micro SOM as reference, it takes nearly 19 secs to execute watch command which is part of rc.local script file.

Click to Enlarge

App launch time measurement in Resume Mode.

While resuming from hibernate, it takes 16.76 secs to retain and execute the same watch command process state.

Click to Enlarge

Normal Boot and Hibernation Resume Comparison Chart.

Conclusion

From the above analysis on ‘hibernate mode’, we find it to be the best choice for putting the system in low power state. Also, it consumes minimal time for ‘hibernate resuming’ as compared to normal booting time. The only downside we observed is that, manual interaction was required to resume the device from hibernate mode.
I believe, this hibernate power mode analysis will be very useful to you. We will see you next time with another interesting article.

Axiomtek NA362 Network Appliance Features Intel Atom C3538/C3758 Processors, Up to 10 LAN Ports

August 19th, 2017 4 comments

We reported about GIGABYTE MA10-ST0 motherboard powered by a 16-core Intel C3958 Denverton processor earlier this week, but that also corresponded to the official launch of Intel Denverton family, and many companies made announcements for their Denverton boards, products, or COM Express modules including SuperMicro, Kontron, Portwell, and others, such as Axiomtek NA362 Network Appliance powered by Atom C3538 or C3758 processors, and offering up to 10 LAN ports with six GbE RJ-45 ports, and up to four SFP+ cages.

Axiomtek NA362 specifications:

  • SoC (one or the other)
    • Intel Atom C3538 quad core “Denverton” processor @ 2.10 GHz with 8MB cache; 15W TDP
    • Intel Atom C3758 octa core “Denverton” processor @ 2.2 GHz with 16MB cache; 25W TDP
  • System Memory – 2x or 4 x R-DIMM/U-DIMM non-buffer DDR4, up to 64/128GB
  • Storage – 1x 2.5″ SATA3 HDD; 1x mSATA
  • Ethernet
    • 6x 10/100/1000 Mbps RJ45 ports via Intel i210
    • 4x 10 GbE SFP+ cages for C3758 model only
    • One pair LAN Bypass
  • Expansion – 1x PCI Express Mini Card for optional Wi-Fi/3G/LTE
  • USB – 2x USB 2.0 port
  • Management – 1x RS-232 (RJ45) console port
  • Misc – Power & network Status LEDs, power switch
  • Power Supply – 1x 12V/5A or 1x 12V/7A power adapter (depends on CPU SKU)
  • Temperature Range – 0°C ~ +40°C
  • Dimensions –  231 x 197 x 44 mm (1U desktop form factor)
  • Weight – Net: 1.64 kg; gross: 2.54 kg with 12V/5A adapter,2.69 kg with 12V/7A adapter
  • Certifications – FCC class B, CE class B

Atom C3538 SoC is equipped with two 10 GbE interface, but Axiomtek decided not to provide any SFP+ cages on the model based on this processor with only the six RJ45 ports.

The appliance supports the Intel Data Plane Development Kit (Intel DPDK), the Yocto Project, as well as Linux, Windows Server 2012 R2, and Windows Server 2016 operating systems. The server is said to be suitable for VPN, network bandwidth controller, firewall and UTM (Unified Threat Management) applications.

Axiomtek NA362 will be available in October 2017 through two SKUs: NA362-DAMI-C3758-US (C3758, 4x DIMM, 10 LAN) and NA362-D6GI-C3538-U (C3538, 2x DIMM, 6 LAN). Check out the product page for further information.