Archive

Posts Tagged ‘mips’

Azul Systems’ Zulu Embedded is a Build of OpenJDK for ARM, MIPS, PowerPC, and x86 Compliant with Java SE standard

April 6th, 2017 3 comments

Yesterday as I wrote about the Embedded Systems Conference 2017 schedule I came across a potentially interesting talk entitled “Building A Brain With Raspberry Pi and Zulu Embedded JVM” by Azul Systems that will explain how to build a brain emulator using a cluster of Raspberry Pi boards. I wanted to find more about it, but I have not been able to find any details about the project/demo at this stage. However, I could still learn a bit more about Zulu Embedded, which is said to be an open source Java Virtual Machine based on OpenJDK, compliant with Java SE standard, working on 32-bit & 64-bit ARM & x86, MIPS, and PowerPC, as well as  multiple operating systems.

Some of the key features of Zulu Embedded include:

  • Java Support – Java 6, 7, 8, and 9 when available
  • Java Configurations – Headless, headful, or compact Java Compact Profiles
  • Hardware – ARMv7 and 32-bit ARMv8, ARM64, Intel/AMD x86, 32-bit and 64-bit, MIPS, and PowerPC
  • Platforms & Operating Systems
    • Linux 32/64-bit – RHEL 5.2+, 6 & 7 or later, SLES 11 sp1/2/3, 12, CentOS 5.2+, 6 & 7 or later, Ubuntu 10.04, 12.04, 14.04 & 16.04, Debian Wheezy & Jessie, Wind River Linux, and Oracle Linux
    • Windows 32/64-bit – Windows 7, 8, 8.1, 10/IoT/Mobile, 2008 R2, 2012, 2012R2, Nano
    • Mac OS X
    • Hypervisors – VMware, Hyper-V, KVM
    • Cloud – Azure, AWS, Google, Snappy, Docker
  • Packages – ZIP, MSI and DEB are available. Custom packages on request.
  • Memory Footprint – 11 MB to 250+ MB

Some of the advantage of Zulu Embedded is that it is 100% open source released under GPLv2 with Classpath Exception (I could not find the source code however), and fully certified and compliant with OpenJDK community technology compatibility kit (TCK) from Oracle.

Zulu Embedded is free to download for ARM Linux 32-bit (hard and soft float), and x86 Windows & Linux 64-bit, as well as x86 Windows 10 IoT Core 32-bit for MinnowBoard MAX. You’ll need to contact the company for other configurations.

It’s been used in program such as openHab 2.0, which replaced Oracle JDK with Zulu Embedded JDK, since it can be freely redistributed (no licenses required), and performance and stability feels exactly the same according to comments on Github. One person explained how to install it on the Raspberry Pi board (note: early access program is not needed anymore, since the binary has been publicly released), and the installation procedure is just the same as with OpenJDK.

You can visit Zulu Embedded product page for more information.

Linux 4.10 Release – Main Changes, ARM & MIPS Architectures

February 20th, 2017 3 comments

Linus Torvalds has just released Linux 4.10:

So there it is, the final 4.10 release. It’s been quiet since rc8, but we did end up fixing several small issues, so the extra week was all good.

On the whole, 4.10 didn’t end up as small as it initially looked. After the huge release that was 4.9, I expected things to be pretty quiet, but it ended up very much a fairly average release by modern kernel standards. So we have about 13,000 commits (not counting merges – that would be another 1200+ commits if you count those). The work is all over, obviously – the shortlog below is just the changes in the last week, since rc8.

Go out and verify that it’s all good, and I’ll obviously start pulling stuff for 4.11 on Monday. Linus

Linux 4.9 added Greybus staging support, improved security thanks to virtually mapped kernel stacks, and memory protection keys, included various file systems improvements, and many more changes.

Some newsworthy changes for Linux 4.10 include:

  • Virtual GPU support – Intel GVT-g for KVM (KVMGT) is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core processors with Intel Graphics. Unlike direct pass-through alternatives, the mediated device framework allows KVMGT to offer a complete virtualized GPU with full GPU features to each one of the virtualized guests, with part of performance critical resources directly assigned, while still having performance close to native.
  • New ‘perf c2c’ tool, for cacheline contention analysis – perf c2c (for “cache to cache”) is a new tool designed to analyse and track down performance problems caused by false sharing on NUMA systems. The tool is based on x86’s load latency and precise store facility events provided by Intel CPUs. Visit C2C – False Sharing Detection in Linux Perf for more details about the tool.
  • Improved writeback management – Linux 4.10 release adds a mechanism that throttles back buffered writeback, which makes more difficult for heavy writers to monopolize the I/O requests queue, and thus provides a smoother experience in Linux desktops and shells than what people was used to. The algorithm for when to throttle can monitor the latencies of requests, and shrinks or grows the request queue depth accordingly, which means that it’s auto-tunable, and generally, a user would not have to touch the settings. Read Toward less-annoying background writeback for more details about this improvement.
  • FAILFAST support –  This release also adds “failfast” support. RAID disk with failed IOs are marked as broken quickly, and avoided in the future, which can improve latency.
  • Faster Initial WiFi Connection – Linux 4.10 adds support for using drivers with Fast Initial Link Setup as defined in IEEE 802.11ai. It enables a wireless LAN client to achieve a secure link setup within 100ms. This release covers only the FILS authentication/association functionality from IEEE 802.11ai, i.e., the other changes like scanning optimizations are not included.

Some notable ARM architecture improvements and new features:

  • Allwinner:
    • Allwinner A23 – Audio codec driver
    • Allwinner A31/A31s – Display Driver (first pipeline), audio codec support
    • Allwinner A64 – clock driver
    • Allwinner A80 – External SDIO WiFi
    • Allwinner H3 – Audio codec driver, SPI
    • New boards support: NextThingCo CHIP Pro, Pine A64, NanoPi M1
  • Rockchip:
    • Initial support for Rockchip PX5 & PX3 automotive platforms
    • Added Rockchip RK1108 evaluation board
    • Added support for Rikomagic MK808 Android TV stick based on Rockchip RK3066
    • Update Rockchip PCI driver to support for max-link-speed
    • Rockchip rk3399,rk3066 PLL clock optimizations
  • Amlogic
    • Support for the pre-release “SCPI” firmware protocol shipped by Amlogic in their GXBB SoC
    • Initial support for Amlogic S905D, and S912 (GXM) SoCs
    • Added support for Nexbox A1 and A95X Android TV boxes
    • Cleanup for the Amlogic Meson PWM driver
    • New Amlogic Meson Graphic Controller GXBB (S905)/GXL (S905X/S905D)/GXM (S912) SoCs (meson)
    • Resets for 2nd USB PHY
    • Initial support for the SD/eMMC controller in the Amlogic S905/GX* family of SoCs
    • Updated DTS to enable support for USB, I2C, SPI, maibox/MHU, PWM, ethernet MAC & PHY, secure monitor, IR, and watchdog.
  • Samsung
    • Device Tree for Samsung Exynos5433 mobile phone platform, including an (almost) fully supported phone reference board
    • Added support for TOPEET itop/elite board based on exynos4412
    • DeviceTree  updates:
      • Add Performance Monitor Unit to Exynos7.
      • Add MFC, JPEG and Gscaler to Exynos5433 based TM2 board.
      • Cleanups and fixes for recently added TM2 and TM2E boards.
      • Enable ADC on Odroid boards
      • Remove unused Exynos4415 DTSI
  • Qualcomm
    • Add support for Qualcomm MSM8992 (Snapdragon 808) and MSM8994 (Snapdragon 810) mobile phone SoCs
    • Added support for Huawei Nexus 6P (Angler) and LG Nexus 5X (Bullhead) smartphones
    • Support for Qualcomm MDM9615 LTE baseband
    • Support for WP8548 MangOH Open Hardware platform for IOT, based on Qualcomm MDM9615
    • Other device tree changes:
      • Added SDHC xo clk and 1.8V DDR support
      • Add EBI2 support to MSM8660
      • Add SMSC ethernet support to APQ8060
      • Add support for display, pstore, iommu, and hdmi to APQ8064
      • Add SDHCI node to MSM8974 Hammerhead
      • Add Hexagon SMD/PIL nodes
      • Add DB820c PMIC pins
      • Fixup APQ8016 voltage ranges
      • Add various MSM8996 nodes to support SMD/SMEM/SMP2P
  • Mediatek
    • Added clock for Mediatek MT2701 SoCs
    • New Mediatek drivers: mtk-mdp and mtk-vcodec (VP8/VP9/H.264) for MT8173
    • Updated the Mediatek IOMMU driver to use the new struct device->iommu_fwspec member
  • Other new ARM hardware platforms and SoCs:
    • Hisilicon – Hip07 server platform and D05 board
    • NXP – LS1046A Communication processor, i.MX 6ULL SoC, UDOO Neo board, Boundary Devices Nitrogen6_SOM2 (i.MX6), Engicam i.CoreM6, Grinn i.MX6UL liteSOM/liteBoard,  Toradex Colibri iMX6 module
    • Nvidia – Early support for the Nvidia Tegra Tegra186 SoC, NVIDIA P2771 board, and NVIDIA P3310 processor module
    • Marvell – Globalscale Marvell ESPRESSOBin community board based on Armada 3700, Turris Omnia open source hardware router based on Armada 385
    • Renesas “R-Car Starter Kit Pro” (M3ULCB) low-cost automotive board, Renesas RZ/G (r8a7743 and r8a7745) application processors
    • Oxford semiconductor (now Broadcom) OX820 SoC for NAS devices, Cloud Engines PogoPlug v3 based on OX820
    • Broadcom – Various wireless devices: Netgear R8500 router, Tenda AC9 router, TP-LINK Archer C9 V1, Luxul XAP-1510 Access point
    • STMicro  – stm32f746 Cortex-M7 based microcontroller
    • Texas Instruments – DRA71x automotive processors, AM571x-IDK industrial board based on TI AM5718
    • Altera – Macnica Sodia development platform for Altera socfpga (Cyclone V)
    • Xilinx – MicroZed board based on Xilinx Zynq FPGA platforms

That’s a long list of changes and new boards and devices… Linux 4.10 only brings few MIPS changes however:

  • KVM fixes: fix host kernel crashes when receiving a signal with 64-bit userspace,  flush instruction cache on all vcpus after generating entry code (both for stable)
  • uprobes: Fix uprobes on MIPS, allow for a cache flush after ixol breakpoint creation
  • RTC updates:  Remove obsolete code and probe the jz4740-rtc driver from devicetree for jz4740, qi_lb60
  • microblaze/irqchip: Moved intc driver to irqchip. The Xilinx AXI Interrupt Controller IP block is used by the MIPS based xilfpga platform and a few PowerPC based platforms.
  • crypto: poly1305 – Use unaligned access where required, which speeds up performance on small MIPS routers.
  • MIPS: Wire up new pkey_{mprotect,alloc,free} syscalls

You can also read Linux 4.10 changelog with comments only, generated using git log v4.9..v4.10 --stat, in order to get a full list of changes. Alternatively, you could also read Linux 4.9 changelog on kernelnewbies.org.

Baikal T1 BFK 1.6 MIPS Development Board Tested with OpenWrt

February 10th, 2017 4 comments

Baikal Electronics is a Russian fabless semiconductor company specializing in ARM and MIPS-based SoC, and we’ve already covered their Baikal T1 MIPS SoC announcement, as well as Tavolga Terminal TP-T22BT Debian 8 All-in-One Computer based on the processor. The company also have Baikal T1 BFK 1.6 development board, which does not appear to be publicly available yet, but one member of Habrahabr.ru forums got hold of one sample, and tested the OpenWrt SDK in Debian 8 host computer.

First, we’ll have a look at the hardware they received.

I don’t have the full specs of the board, but we’ll learn a little more below, in the meantime we can see two USB ports, Gigabit Ethernet ports, a 10GbE SFP cage, an mPCIe slot (I think), and two DB9 connector, as well as a bunch of other headers and connectors with SATA, GPIO, UART, I2C, SPI…

I’ve then downloaded Baikal T1 BSP for Linux, and installed it in Ubuntu 16.04:

The good part is that everything appears to be in English, as the output from the installer shows:

Creating directory baikal
Verifying archive integrity… All good.
Uncompressing BAIKAL-T SoC BSP Pack. Version 4.08 build 84 (Fri Nov 11 14:50:17 MSK 2016)  100%

BAIKAL ELECTRONICS BAIKAL-T1 BFK BOARD BSP PACK
———————————————–
This package contains Board Support Package for Baikal Electronics BFK board including Software Development Kit (SDK) for Baikal-T series SoCs.
It provide our customers with a comprehensive starting point for their Linux development efforts on MIPS32 platform. These packages are developed and tested to support 34K, 74K and P5600 MIPS processors. This SDK is tested for use with a given processor and its supporting development system, ensuring an operational toolchain, kernel and specific peripherals that are ready to use together within a fixed configuration for specific hardware reference platforms.

Baikal Linux SDK typically include Linux kernel, device drivers, libraries, simulator, and GNU Tools like compilers, linkers, etc. The documentation will provide detailed information on the version of the kernel, glibc, gcc, etc., as well as information about simulator is included within a specific SDK.

For more information about BSP and Quick Start Guide please read README file.
For detailed information please read document “Software Development Kit for Baikal-T platform”.

That’s the directory structure of the BSP:

I don’t have the board, so I’m not going to go through all steps, but instead summarize what the user in the forum did after that.

  1. Create image to be flash with the board using build-boot-img.sh script
  2. Flash the image with dfu-util after having connected the board to your computer via USB.
  3. The board should now boot to a serial console, but you’ll want to get OpenWrt 15.05 source code, patch it, build the rootfs, and flash it again with dfu-util.
  4. Your Baikal T1 board should now be running OpenWrt

We can also get a few more details about the MIPS P5600 processor.

The reviewer also tested Gigabit performance using iperf, and data could be transferred at 830 Mbps. A Quick look at the source in the BSP reveals the Linux 4.4.24 is used on the board, together with Uboot 2014.10.

I could not find ways to buy the board online easily even in Russian. But if you represent a company interested in the solution, you might be able to get more information, and/or purchase the board by contacting the company via Baikal T1 product page.

Thanks to Leon for the tip.

Linux 4.9 Release – Main Changes, ARM and MIPS Architectures

December 12th, 2016 2 comments

Linus Torvalds released Linux 4.9 on Sunday:

So Linux 4.9 is out, and the merge window for 4.10 is thus open.

With the extra week for 4.9, the timing for the merge window is obviously a bit awkward, and it technically closes in two weeks on Christmas Day. But that is a pure technicality, because I will certainly stop pulling on the 23rd at the latest, and if I get roped into Xmas food prep, even that date might be questionable.

I could extend the merge window rather than cut it short, but I’m not going to. I suspect we all want a nice calm winter break, so if your stuff isn’t ready to be merged early, the solution is to just not merge it yet at all, and wait for 4.11. Just so you all know (I already bcc’d the main merge window suspects in a separate mailing last week, I’m just repeating myself here to avoid anybody being confused about timing).

Anyway, back to 4.9 itself.

I’m pretty sure this is the biggest release we’ve ever had, at least in number of commits. If you look at the number of lines changed, we’ve had bigger releases in the past, but they have tended to be due to specific issues (v4.2 got a lot of lines from the AMD GPU register definition files, for example, and we’ve had big re-organizations that caused a lot of lines in the past: v3.2 was big due to staging, v3.7 had the automated uapi header file disintegration, etc). In contrast, 4.9 is just big.

Admittedly a chunk of that is the new greybus staging support, but that really isn’t the bulk of it – it’s just another small detail in the overall “yes, v4.9 is big” picture.

Other than just the size, 4.9 looks fairly normal. A bit over two thirds drivers (staging, GPU and networking are the bulk of it, but it’s all over), with the rest looking fairly normal too: arch updates, documentation, generic networking, filesystems..

The shortlog (16k+ commits, with another 1100 merge commits to round things out) is obviously much too big to put here, and wouldn’t be legible anyway. So as is my wont, I’m appending just the log of my merges.

Linux 4.8 brought us an HDMI-CEC framework, a new kernel documentation system is now based on Sphinx, a user-space GPIO subsystem and tools, file systems improvements and more.

 

linux-4-9-changelogSome of the notable changes for Linux 4.9 include:

  • Greybus staging support. While Project Ara has been canceled, the code is still used in one Motorola phone, a Toshiba chip requires it, as well as other undisclosed users.
  • File systems improvements for CIFS (bug fixes, idsfromsid mount option, better reconnection handling), BTRFS (bug fixes), NFS (bug fixes and new features such as server-side copy), F2FS (bug fixed and performance improvements), EXT-4 (“Lots of bug fixes and cleanups”) , and XFS (iomap-based DAX infrastructure and XFS delalloc rework + bug fixes)
  • Improved security with virtually mapped kernel stacks, and memory protection keys
  • AMDGPU now supports older Radeon graphics cards, virtual display support, and improved reset.

Some interesting ARM architecture fixes and new features:

  • Allwinner:
    • Allwinner GR8 – Preliminary SoC support
    • Allwinner AXP209 PMIC – GPIO support
    • Allwinner A31 – SPDIF support
    • Allwinner A23/A33 and A31/A31s – sunxi-ng CCU driver
    • Allwinner A33 – Display Driver
    • Allwinner A64 – USB PHY support
    • Allwinner H3 – PWM support, I2C support
    • AXP806 PMIC – regulator support
    • AC100 RTC / codec IC – mfd driver, RTC driver
    • New boards and devices – Orange Pi PC Plus, Olimex A33-OLinuXino, Orange Pi Lite, Inet q972, Empire Electronix M712, Orange Pi Plus 2, Orange Pi Plus 2E, NanoPi NEO.
  • Rockchip:
    • PCI – Update Rockchip rk3399 host bridge driver DTS and resets
    • Rockchip RK808 PMIC driver
    • Rockchip DDR clks and rk3399 driver tweaks
    • phy driver for Rockchip usb2phy, internal PCIe PHY, and USB Type-C PHY on rk3399
    • update compatible strings for Rockchip efuse (RK3399)
    • Support for Tronsmart Orion R86 set-top-box (RK3368), Rockchip RK3288 Fennec reference board, Firefly RK3288 Reload platform
  • Amlogic
    • Network, clocks, and usb driver changes for meson-gxbb (S905)
    • Secure monitor firmware for Amlogic SoCs, and an NVMEM driver for the EFUSE based on that firmware interface
    • Amlogic 64-bit DT changes: added  USB host, I2C, SPI flash controller, PWM, mailbox, MHU, pinctrl: add pins for SPI, I2C, SDIO
    • Updates IR support for newer SoCs
    • net: new stmmac glue driver
  • Samsung
    • Added Samsung Exynos Low Power Audio driver (LPASS = Low Power Audio SubSystem)
    • samsung clk driver update: sound subsystem related clocks, addition of DRAM controller related clocks for exynos5420
    • Device Tree Update:
      • Enable HDMI on Arndale Octa board.
      • Update list of clocks for FIMC-IS block on Exynos4x12.
      • Remove skeleton.dtsi to fix DT compiler warning.
      • Cleanup of DT files
      • Allow compile testing of exynos-mct clocksource driver on ARM64.
      • Document Exynos5433 PMU compatible
      • Set chosen serial bitrate which allows proper serial output when bootloader does pass all the data in command line
  • Qualcomm
    • ASoC bug fix for simultaneous playback and capture
    • Added Qualcomm external bus interface 2 (EBI2), used in some mobile phone chips for connecting flash memory, LCD displays or other peripherals
    • Add a skeletal TSENS drivers for  MSM8916/MSM8996. TSENS is Qualcomms’ thermal temperature sensor device
    • Add MSM8916/APQ8016 display support
    • Updates for MSM8916 including TSCR, SMSM/SMP2P, and MBA reserve
    • Enable defconfig options for QDF2432
    • Added Qualcomm DragonBoard 820c single-board computer in 96boards form factor, LG Nexus 5 Phone
    • Device Tree Changes:
      • Rework dr_mode on APQ8064 and Nexus7
      • Add MSM8974 BLSP1 UART1 port
      • Add AP148 SATA mapping
      • Fixup MSM8660/MSM8064 SPMI/MPP IRQs
      • Add Nexus7 IMEM/reboot reason
      • Add Honami touchscreen support
      • Add TSENS support on MSM8974, APQ8064, and APQ8084
      • Add APQ8060 Dragonboard PM8058 LEDs
      • Rework VPH PWR REG for MSM8974
  • Mediatek
    • Add Mediatek thermal driver for mt2701
    • Driver for mt6577 auxdac found in mt2701, mt6577 and mt8173
    • Some DRM driver fixes
  • Other new ARM hardware or SoCs:
    • Marvell Armada 8040 development board, Netgear WNR854T router, Armada 395 SoC platform, GP board Armada 390 DB development board
    • ZTE ZX296718 STB SoC
    • SocioNext UniPhier LD11 TV SoC
    • Broadcom BCM958525er, BCM958522er, BCM988312hr, BCM958623hr and BCM958622hr reference boards for Northstar platform, Raspberry Pi Zero board
    • NXP i.MX 7 Warp7 reference board, Gateworks Ventana GW553x SBC, Technologic Systems TS-4900, and Engicam IMX6UL GEA M6UL computer-on-module, Inverse Path USB armory board
    • Renesas r8a7792/wheat and r7s72100/rskrza1 development boards
    • ST Microelectronics STi B2260 (96boards) single-board computer
    • TI Davinci OMAP-L138 LCDK Development kit, beagleboard-x15 rev B1 single-board computer

There has been a fair amount of MIPS changes in Linux 4.9 too, some of them are:

  • Various updated to MIPS core arch code –  generic DT-based board & Flattened Image Trees (.itb) support, per-device DMA coherence support, bug fixes for KVM, uprobes, c-r4k, ptrace and more
  • Octeon – Delete dead code and files, change to use all memory into use by default, add DTS for D-Link DSR-500N, etc…
  • Pistachio – Remove ANDROID_TIMED_OUTPUT from defconfig
  • TX39xx & TX49xx – Move GPIO setup from .mem_setup() to .arch_init(), convert to Common Clock Framework
  • txx9wdt – Add missing clock (un)prepare calls for CCF
  • BMIPS – Add PW, GPIO SDHCI and NAND device node names, add DT examples for BCM63268, BCM3368 and BCM6362, add support for BCM3368 and BCM6362, etc…
  • Code changes for PCI, CPC, GIC, SMP, USB host, cpuidle, fbdev, auxdisplay…
  • mt7620 -Delete unnecessary assignment for the field “owner” from PCI
  • BCM63xx -Let clk_disable() return immediately if clk is NULL
  • pm-cps – Change FSB workaround to CPU blacklist, Use MIPS standard lightweight ordering barrier and completion barrier, etc…
  • SEAD3 – Rewrite to use DT and generic kernel feature
  • Malta – Rewrite to use DT
  • Loongson1C – Add CPU support for Loongson1C, add board support, add defconfig, and add RTC support for Loongson1C board

The full list of changes can be found in Linux 4.9 changelog with comments only, generated using git log v4.8..v4.9 --stat. You’ll also find a more readable list of changes for Linux 4.9 once kernelnewbies.org is updated.

8Devices Rambutan Qualcomm Atheros QCA9557 / QCA9550 GbE & WiFi Modules and Development Kit Run OpenWrt

November 10th, 2016 3 comments

8Devices, a Lithuanian company specialized in the development and manufacturing of electronic equipment, is known for their Carambola and Carambola2 WiFi modules powered by Ralink and Qualcomm Atheros WiSoCs. The company has now introduced a new dual band WiFi module called Rambutan that comes in commercial and industrial temperature range through respectively Qualcomm Atheros QCA9557 & QCA9550 SoCs.

8devices-rambutan

Rambutan and Rambutan-I modules specifications:

  • SoC
    • Rambutan – Qualcomm Atheros QCA9557 MIPS processor @ 720 MHz
    • Rambutan-I – Qualcomm Atheros QCA9550 MIPS processor @ 720 MHz
  • System Memory – 128 MB DDR2
  • Storage – 128 MB Flash
  • Connectivity
    • WiFi – 802.11 a/b/g/n, 2.4 or 5 GHz, 2×2 MIMO, 300 Mbps data rate, 21 dB per chain output power; 2x u.FL connectors
    • Ethernet – Atheros AR8032 10/100M Ethernet PHY
  • 68x half holes with
    • 2 x USB 2.0 host port
    • 2 x serial port
    • 1x 100 Base-T Ethernet port;  1000 Base-T Ethernet port  (SGMII interface)
    • I2S, SPI, I2C, GPIO, PCIe, MDIO
  • Power Supply – +3.3V DC; max power consumption: 3.7 W
  • Dimensions – 46.9 x 31.8 mm
  • Temperature Range – Rambutan: 0 – 65° C; Rambutan-I: -40 – 85° C

Beside the wider temperature range, Rambutan-I features QCA9550 SoC with the following advantages over QCA9557:

  • 5 and 10 MHz channelization supported in a 4.9 GHz frequency band only
  • Loopback mode to assist FIPS AES certification
  • High Tx power accuracy at lower power level
  • Small packet size (96 Bytes) in AES encryption at full packet rate
  • 8 bits spectral analysis resolution
Rambutan Pinout Diagram

Rambutan Pinout Diagram

The modules run OpenWrt with the source code to be provided on 8devices’ github account, while support is handled through their forums. The company also offers Rambutan development kit with a baseboard for the module with some interesting features and expansion for this kind of board:

  • Ethernet – 1x 1000 Base-T Ethernet port, 1×100 Base-T Ethernet port
  • USB – 1x USB Type-A socket, 1x Mini USB Type-A socket for serial console and power
  • Expansion:
    • 2x 20-pin 2.54 mm pitch through holes for I/Os such as GPIOs, USB, UART, SPI, JTAG, …
    • Mini PCIe socket
  • Misc –  reset and user buttons, DIP switch for bootstrap options, 2x integrated antennas
  • Power Supply – 5V via mini USB port
  • Dimensions – 125 x 77 mm (estimated)
Rambutan DVK (Click to Enlarge)

Rambutan DVK (Click to Enlarge)

Rambuta can be purchased now for $35, Rambutan-I for $49, and Rambutan development kit for $79. You’ll find more information, include a product brief, a datasheet, and the development board’s schematics on 8devices Rambutan’s product page.

Vocore2 Lite is a $4 Linux MIPS WiFi Module based on Mediatek MT7688AN SoC (Crowdfunding)

October 19th, 2016 12 comments

I’ve already written about Vocore v2 Crowdfunding campaign, where the second generation Vocore WiFi module supports audio, PoE, and ultimate dock, and price starting at $12. But there has been some development since the launch of the campaign, as the developer received request for a cheaper board, and after looking into it, has now added Vocore2 Lite WiFi module reward for only $4, or $7 once shipping included.

vocore2-liteHe obviously had to make some trade-offs to bring the cost down, but the Lite board impressively still keep many of the same features.

VoCore (2014) VoCore2 Lite (2016) VoCore2 (2016)
Price 19.99 USD 3.99 USD 11.99 USD
CPU RT5350, 360MHz MT7688AN MIPS24KEc
@ 580MHz
MT7628AN, 580MHz
Memory 32MB SDRAM 64MB DDR2 128MB DDR2
Storage 16MB NOR 8MB NOR 16MB NOR
Antenna Slot x1 x1 x2
On-Board ANTENNA ×
Wireless Speed ~75Mbps ~150Mbps ~300Mbps
Ethernet Port x5 x1 / x5 x1 / x5
Ethernet Speed 100Mbps 100Mbps 100Mbps
SPI Master
SPI Slave
SPI DMA ×
USB 2.0 Host
USB 2.0 OTG × ×
PCIe 1.1 × ×
SD Support SPI
GPIO > 30** >=40 >= 40
UART x2 x3 x3
PWM x2 x2
Power Consumption 138mA 74mA 74mA

Compared to Vocore2, Vocore2 Lite has a cheaper Mediatek MT7688N MIPS processor, which is already used in board such as Mediatek LinkIt 7688, Onion Omega2, and Widora-NEO, less memory and storage, WiFi is limited to 150 Mbps and an external antenna is required, and the PCIe 1.1 interface is gone. The dimensions appear to be the same, so the dock should be compatible too, provided PCIe is not needed. Software support will be the same with OpenWrt/LEDE Linux distribution.

If you are interested, you can pledge $7 for Vocore2 Lite on the Indiegogo page with delivery planned for January 2017. There aren’t any pledge combining Vocore2 Lite with a dock so far.

Thanks to Freire for the tip.

Imagination Technologies Announces MIPS Warrior I-class I6500 Heterogeneous CPU with up to 384 Cores

October 13th, 2016 No comments

Imagination has just unveiled the successor of MIPS I6400 64-Bit Warrior Core with MIPS Warrior I-class I6500 heterogeneous CPU supporting up to 64 cluster, with up to 6 cores each (384 cores max), themselves up to 4 thread (1536 max), combining with IOCU (IO coherence units), and external IP such as PowerVR GPU or other hardware accelerators.

mips-i6500-scalable-computeThe main features of MIPS I6400 processor are listed as follows:

 

  • Heterogeneous Inside – In a single cluster, designers can optimize power consumption with the ability to configure each CPU with different combinations of threads, different cache sizes, different frequencies, and even different voltage levels.
  • Heterogeneous Outside – The latest MIPS Coherence Manager with an AMBA ACE interface to popular ACE coherent fabric solutions such as those from Arteris and Netspeed lets designers mix on a chip configurations of processing clusters – including PowerVR GPUs or other accelerators – for high system efficiency.
  • Simultaneous Multi-threading (SMT) – Based on a superscalar dual issue design implemented across generations of MIPS CPUs, this  feature enables execution of multiple instructions from multiple threads every clock cycle, providing higher utilization and CPU efficiency.
  • Hardware virtualization (VZ) – I6500 builds on the real time hardware virtualization capability pioneered in the MIPS I6400 core. Designers can save costs by safely and securely consolidating multiple CPU cores with a single core, save power where multiple cores are required, and dynamically and deterministically allocate CPU bandwidth per application.
  • SMT + VZ – The combination of SMT with VZ in the I6500 offers “zero context switching” for applications requiring real-time response. This feature, alongside the provision of scratchpad memory, makes the I6500 ideal for applications which require deterministic code execution.
  • Designed for compute intensive, data processing and networking applications – The I6500 is designed for high-performance/high-efficiency data transfers to localized compute resources with data scratchpad memories per CPU, and features for fast path message/data passing between threads and cores.
  • OmniShield-ready – Imagination’s multi-domain security technology used across its processing families enables isolation of applications in trusted environments, providing a foundation for security by separation.

The processor is also based on the standard MIPS ISA, so developer will be able to leverage existing software and tools such as compilers, debuggers, operating systems, hypervisors and application software already optimized for the MIPS ISA.

mips-i6500-soc

 

The figure above shows what an SoC based on MIPS I6500 may look like with one cluster with 4 CPU cores, 2 IOCUs, another cluster with any CPU cores but instead eight IOCUs interlinked with third party accelerators, and one PowerVR GPU.

Target applications include advanced driver assistance systems (ADAS), autonomous vehicles, networking, drones, industrial automation, security, video analytics, machine learning, and more. One of the first customer for the new processor is Mobileye EyeQ5 SoC designed for  Fully Autonomous Driving (interestingly shortened as “FAD”) vehicles will eight multi-threaded MIPS CPU cores coupled with eighteen cores of Mobileye’s Vision Processors (VPs). EyeQ5 SoC should be found in vehicles as early as 2021.

MIPS I6500 CPU can be licensed now, with general availability planned for Q1 2017.You’ll find more technical details on the product page, and blog post for the announcement.

Linux 4.8 Release – Main Changes, ARM & MIPS Architectures

October 4th, 2016 4 comments

Linus Torvalds has officially released Linux 4.8 last Sunday:

So the last week was really quiet, which maybe means that I could probably just have skipped rc8 after all. Oh well, no real harm done.

This obviously means that the merge window for 4.9 is open, and I appreciate the people who already sent in some pull requests early due to upcoming travel or other reasons. I’ll start pulling things tomorrow, and have even the most eager developers and testers hopefully test the final 4.8 release before the next development kernels start coming 😉

Anyway, there’s a few stragging fixes since rc8 listed below: it’s a mixture of arch fixes (arm, mips, sparc, x86), drivers (networking, nvdimm, gpu) and generic code (some core networking, with a few filesystem, cgroup and and vm things).

All of it pretty small, and there really aren’t that many of them. Go forth and test,
Linus

Linux 4.7 introduced support for AMD Radeon RX480 GPUs, parallel directory lookups, the new “schedutil” frequency governor with lower latency, EFI ‘Capsule’ firmware updates, and much more.

linux-4-8-changelogSome notable Linux 4.8 changes include:

  • HDMI-CEC framework
  • Kernel documentation system is now based on Sphinx
  • GPIO subsystem has a new user-space ABI for the management of general-purpose I/O lines; it is based on char devices and replaces the long-deprecated sysfs interface. You can check out tools/gpio/ directory with lsgpio, gpio-hammer, and gpio-event-mon for examples
  • Various file systems improvements for Btrfs, EXT-4 (unified encryption), OrangeFS (better in-kernel caching), Ceph (RADOS namespace support), XFS (Reverse-mapping support), etc…

Some improvements and new features specific to the ARM architecture and corresponding hardware platforms:

  • Allwinner:
    • Allwinner A10/A20 – Display engine clocks (TCON, FE, DE), I2S audio interface (ASoC) driver, added NFC node to DTS
    • Allwinner H3 – Clocks (through sunxi-ng), USB multi-reset lines support
    • AXP2xx driver – External drivebus support, AXP223 USB power supply support, AXP809 PMIC support
    • Broadcom BCM53125 support as it’s used in Lamobo / Banana Pi R1 router board.
    • New boards – Polaroid MID2407PXE03 & inet86dz (Allwinner A23 tablets), Banana Pi M1+, Banana Pi M2+, Allwinner Parrot (Allwinner R16 EVB)
  • Rockchip:
    • Many new peripherals added to RK3399 (eDP, clock controller, etc…)
    • Preparations to use generic DMA mapping code in the Rockchip IOMMU driver
    • Fixes for eMMC controller, SPI controller, eDP controller, and I2C
  • Amlogic
    • AmLogic meson8b clock controller (rewritten)
    • AmLogic gxbb clock controller
    • Reset controller driver for Amlogic Meson
    • New watchdog driver for Amlogic Meson GXBB (S905) SoC
    • Added support for Amlogic Meson RNG in crypto drivers
    • Some Amlogic ARM64 DTS updates
  • Samsung
    • Enable drivers for Exynos7 and Exynos5433 based boards: S2MPS clock driver, SoC: RTC, SPI, watchdog, EHCI, OHCI, DWC3, ADC and PWM, Enable Samsung SoC sound
    • Samsung ARM64 DTS Changes – Adjust the voltage of CPU buck regulator so scaling could work.
    • Samsung DTS changes
      • Add missing async bridge for MFC power domain on Exynos5420. This fixes imprecise abort on s5p-mfc re-bind.
      • Define regulator supplies for MMC nodes on Exynos4412 Odroid boards and for TMU on Exynos542x Peach boards.
      • Thermal cleanups on Odroid XU3-family (Exynos5422).
      • Enable AX88760 USB hub on Origen board (Exynos4412)
      • Disable big.LITTLE switcher so the cpufreq-dt could be enabled.
      • Enable Samsung media platform drivers.
      • Enable some board-specific drivers for boards: Trats2, Universal C210.
      • Enable Virtual Video Test Driver on nulti_v7 and exynos defconfigs. Useful for testing
    • Samsung drivers/soc updates:
      • Move the power domain driver from arm/mach-exynos and prepare for supporting ARMv8.
      • Add COMPILE_TEST.
      • Make SROMC driver explicitly non-module.
      • Endian-friendly fixes.
      • Fix size of allocation for Exynos SROM registers (too much was allocated)
    • Add CEC interface driver present in the Samsung Exynos SoCs
    • Added support for Exynos 5410 Odroid XU board
  • Qualcomm
    • Added MDM9615 support
    • Qualcomm ARM Based Driver Updates:
      • Rework of SCM driver
      • Add file patterns for Qualcomm Maintainers entry
      • Add worker for wcnss_ctrl signaling
      • Fixes for smp2p
      • Update smem_state properties to match documentation
      • Add SCM Peripheral Authentication service
      • Expose SCM PAS command 10 as a reset controller
      • Fix probe order issue in SCM
      • Add missing qcom_scm_is_available() API
    • Qualcomm ARM64 Updates
      •  Enable assorted peripherals on APQ8016 SBC
      • Update reserved memory on MSM8916
      • Add MSM8996 peripheral support
      • Add SCM firmware node on MSM8916
      • Add PMU node on MSM8916
      • Add PSCI cpuidle support on MSM8916
    • Qualcomm Device Tree Changes:
      • Reverse BAM dma node reverts
      • Add BAM remote control options for affected platforms
      • Enable peripherals on APQ8074 dragonboard
      • Enable PMA8084 pwrky
      • Fix PMIC reg entries by removing unnecessary size element
      • Add SCM binding and support for all currently supported boards
      • Add Qualcomm WCNSS binding documentation
      • Rename db600c to SD_600eval and add peripheral nodes
      • Remove gpio key entry from Nexus7
      • Add APQ8060 based dragonboard and associated peripherals
      • Add ARMv7 PMU for IPQ4019
      • Update smem state cells to match documentation
    • ARM64 defconfig: Enable PM8xxx pwrkey support, enable MSM8996 support
    • ARM defconfig: Enable MSM9615 board support, enable MSM8660 pinctrl support
  • Mediatek
    • Added Mediatek MT6755
    • Display subsystem added to MT8173
    • Support for Mediatek generation one IOMMU hardware
    • New drivers for Mediatek MT6323 regulator
    • new encoding codec driver for Mediatek SoC (linux-media): H.264/VP8/V4L2 video encoder drivers for MT8173
  • ARM64 – arm64 architecture has gained support for the kexec mechanism (allowing one kernel to boot directly into another) and kernel probes.
  • Other new ARM hardware or SoCs – NXP i.MX 7Solo, Broadcom BCM23550, Cirrus Logic EP7209 and EP7211 (clps711x platforms), Hisilicon HI3519, Renesas R8A7792, Apalis Tegra K1 board, LG LG1313, Renesas r8a7796, Broadcom BCM2837 (used in Raspberry Pi 3)

MIPS architecture changelog:

  • Fix memory regions reaching top of physical
  • MAAR: Fix address alignment
  • vDSO: Fix Malta EVA mapping to vDSO page structs
  • uprobes: fix incorrect uprobe brk handling, select HAVE_REGS_AND_STACK_ACCESS_API
  • Avoid a BUG warning during PR_SET_FP_MODE prctl
  • SMP: Fix possibility of deadlock when bringing CPUs online
  • R6: Remove compact branch policy Kconfig entries
  • Fix size calc when avoiding IPIs for small icache flushes
  • Fix pre-r6 emulation FPU initialisation
  • Fix delay slot emulation count in debugfs
  • CM: Fix mips_cm_max_vp_width for non-MT kernels on MT systems
  • CPS: Avoid BUG() when offlining pre-r6 CPUs
  • DEC: Avoid gas warnings due to suspicious instruction scheduling by manually expanding assembler macros.
  • FTLB: Fix configuration by moving configuration after probing, clear execution hazard after changing FTLB enable
  • Highmem: Fix detection of unsupported highmem with cache aliases
  • I6400: Don’t touch FTLBP chicken bits
  • microMIPS: Fix BUILD_ROLLBACK_PROLOGUE
  • Malta: Fix IOCU disable switch read for MIPS64
  • Octeon: Fix probing of devices attached to GPIO lines, fix kernel header to work for VDSO build, fix initialization of platform device probing.

You can find the full list of changes in Linux 4.8 changelog with comments only generated using git log v4.7..v4.8 --stat. A list of changes for Linux 4.8 will also soon be found on kernelnewbies.org.