Archive

Posts Tagged ‘drivers’

Linux 4.8 Release – Main Changes, ARM & MIPS Architectures

October 4th, 2016 3 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.

Amlogic S905 Source Code Published – Linux, U-Boot, Mali-450 GPU and Other Drivers

November 19th, 2015 43 comments

Amlogic has an open linux website where they regurlarly release GPL source code, and with Amlogic S905 devices coming to market, they’ve released a few tarballs at the beginning of the month including Linux 3.14 source code, U-boot source code, and Mali-450MP GPU kernel source code (obviously not userspace), as well as some other drivers for WiFi, NAND flash, PMU, TVIN, etc…
Amlogic_S905_Linux_MenuconfigLet’s get to the download links:

I quickly tried to build the Linux source. If you’ve never build a 64-bit ARM kernel or app before, you’ll fist need to install the toolchain. I installed the one provided with Ubuntu 14.04:

Now extract the tarball and enter the source directory:

At first I had a build failure due to a missing directory, so I created it, and use the default config for Amlogic S905/S912 (in arch/arm64/configs), before building the Linux kernel.

and it ended well:

So that’s a good starting for anybody wanting to work on the Android or Linux kernel…

Unrelated to Amlogic S905/Meson64, but I’ve also noticed some OpenWRT packages and rootfs  on Amlogic website that was released a little earlier this year. So either some people are using Amlogic Sxxx processors with OpenWRT, or Amlogic is working on a router chip that I missed. Probably the former.

Thanks to Olin.

TBS5520 Multi-Standard Tuner Box and Linux Drivers

November 14th, 2015 26 comments

TBS Technologies is a company that specializes in digital TV tuner cards for PC, and recently they’ve also worked on ARM based boards or devices such as the Matrix 2. The company has sent me one of their TBS5520 USB tuner board and box supporting DVB-T2, DVB-S2, DVB-C and ISDB-T for evaluation, as well as some Linux drivers. Today, I’ll provide some specifications, take some pictures, and show how I compiled and installed the drivers in my Ubuntu 14.04 computer.

TBS 5520 Tuner Box specifications

TBS5520 is a multi-standard USB tuner with the following features:

  • USB – USB 2.0 device port
  • Antenna connectors – 1x LNB IN, 1x RF IN
  • Standards
    • DVB-S2/S
      • Symbol rate: 1~45Msps;
      • FEC
        •  DVB-S2: 8PSK: 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10;
        • DVB-S:  QPSK: 1/2, 2/3, 3/4, 5/6, 7/8
    • DVB-T2/T 
      • Receiving channel: VHF band, UHF band;
      • Bandwidth: 1.7,5, 6, 7, 8 MHz;
      • FEC: QPSK, 16QAM, 64QAM, 256QAM
      • FFT mode: 1K, 2K, 4K, 8K, 16K, 32K
      • Code rate: 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 7/8
      • RF-Input impedance: 75Ω (IEC-DIN female)
    • DVB-C & ITU J83 A/B/C
      • Frequency range: 47~862 MHz
      • Signal level: -65~-10dBm
      • Symbol rate: 0.87 to 9Mbaud
      • QAM modes: 16QAM, 32QAM, 64QAM, 128QAM, 256QAM
    • ISDB-T
      • Supported modes: 1, 2, 3
      • Bandwidth: 6 MHz, 7MHz, 8MHz
      • QAM modes: DQPSK, QPSK, 16QAM, 64QAM
      • Code rate: 1/2, 2/3, 3/4, 5/6, 7/8
  • Misc – IR receiver, power LED
  • Dimensions – ~ 8 x 6 cm

TBS5520 Board and Box Pictures

The first time I received the board with a cable with Y USB cable.

TBS-5520_Tuner

Click to Enlarge

Click to Enlarge

DVB-S2_DVB-T2_Connectors

TBS 5520 Tuner Antenna’s Connectors

Click to Enlarge

Click to Enlarge

The shield is soldered, so I could not check the details of the tuner from the hardware, but as we”l see below with drivers to hardware includes RafaelMicro R848 multi-standard tuner and AVL6882 demodulator.

After your truly spent many hours struggling with the Linux drivers, the company informed me there was likely an issue with the hardware, so they sent me the full kit.
TBS5520_USB_Tuner

Click to Enlarge

Click to Enlarge

The kit has the same tuner board in a case, as well as the Y USB cable, a remote control, an indoor antenna, a coaxial to F-cable adapter, and a DVD with some documentation and software.

Building TBS5520 Drivers in Linux 3.x

I’m running Ubuntu 14.04.3 with kernel 3.18.xx on my computer, and if you connect the tuner, the USB is recognized:

But you don’t get anything in /dev/dvb, so you’ll need some drivers. So TBS provided me with a patch for Linux 3.x (Linux 4.x is currently WIP), and told me to “build it the usual way”. So I decided to do so on my computer instead of an ARM board, as I thought it might be easier…

I basically followed the instructions I wrote in “How to build a single kernel driver in Ubuntu“. I had already installed Linux 3.18.0 for this, but I first upgraded to a more recent Linux 3.18.23 version:

After installation, I rebooted my machine to make use of the update kernel, and downloaded Ubuntu Linux source code in order to patch it and build the drivers.

At this stage, the source is set to the latest working version

So you’ll want to switch to the tag/branch of the kernel installed on your computer to avoid “invalid format” error when inserting the modules.

Let’s make sure we’ve indeed switched to 3.18.23.

Now I’ll download and apply Ubuntu specific patchsets:

Before applying TBS5520 patch to the source tree:

Patching failed, but it was only a small issue, so you can manually edit drivers/media/tuners/Makefile to add the line with r848:

Let start the actually build procedure with make olconfig, which should ask about Turbosight TBS5520 support.:

Build TBS5520 drivers as modules by entering “m”, and carry on with the procedure:

At this stage, I ran make menuconfig to double check support for TBS5520 was enabled.
TBS5520_Make_Menuconfig

All good. Then I tried to build the modules one by one, as with the serial drivers I used in the previous instructions, but it did not work…

Eventually, I did not find a solution, and TBS was not very helpful, except they told me the media tree drivers were a pain to build, and  eventually mentioned I’d also need a firmware file (dvb-usb-tbsqbox-id5520.fw) and copy it to /lib/firmware… .

So I decided to just build the complete kernel and install all modules and firmware:

All modules where built into /lib/modules/3.18.23+/ directory, and i first tried to load the modules manually

Hmm… wrong file name for the firmware… let’s fix that:

I had a few more issues, and I’ve told to delete the media directory in my Ubuntu kernel drivers directory, and replace that with the one I’ve just built. So instead, I backed it up, before replacing it with the new drivers:

Then I rebooted the machine, all drivers were automatically loaded successfully, and I got a dvb adapter:

InitiallyHowever the output of dmesg appears suspicious:

There are some i2c errors, the MAC address is set to 00:00:00:00:00:00, and some systemd errors are popping up too. And soon after, I noticed /dev/dvb/adapter0 would just appear and disappear in loop.

The next step will be to find a solution to this issue, and get a DVB-T2 video stream likely with TvHeadEnd.

The tuner can be purchased for $79.99 on buydvb.net, and you can to check out TBS5520 tuner page for some more details.

Linux 4.2 Release – Main Changes, ARM and MIPS Architectures

September 2nd, 2015 No comments

Linus Torvalds released Linux Kernel 4.2 last Sunday:

So judging by how little happened this week, it wouldn’t have been a mistake to release 4.2 last week after all, but hey, there’s certainly a few fixes here, and it’s not like delaying 4.2 for a week should have caused any problems either.

So here it is, and the merge window for 4.3 is now open. I already have a few pending early pull requests, but as usual I’ll start processing them tomorrow and give the release some time to actually sit.

The shortlog from rc8 is tiny, and appended. The patch is pretty tiny too.

Go get it,

Linus

Some notable changes made to Linux 4.2 include:

  • File systems
    • New features for F2FS including per file encryption
    • CIFS support SMB 3.1.1 (experimental)
  • Cryptography – Jitter Entropy Random Number Generator, Chacha20 stream cipher and Poly1305 authentication (RFC7539),New RSA implementation. See lwn.net for details.
  • AMD GPU driver added support for AMD “Tonga,” “Iceland,” and “Carrizo” systems. That driver has now over 400,000 lines of code…
  • Networking

Some of the new features and improvements specific to the ARM architecture include (With a focus on Allwinner/Rockchip/Amlogic/Mediatek processors often discussed in this blog):

  • Allwinner:
    • A10/A10s/A13/A20/A31/A23 – SRAM Controller
    • A23 – SMP support, architected timer support
    • A31/A31s – CPUFreq support
    • A33 – Machine support, Bring-up sharing most drivers with A23, pinctl driver, PIO controller
    • A80 – Architected timer support, USB support
    • AXP221 PMIC driver
    • New boards and devices: LinkSprite pcDuino3 Nano, Cubietech Cubieboard4, Gemei G9, Auxtek T004, Utoo P66, Wexler TAB 7200, MK808C, Jesurun Q5, Xunlong Orange Pi, Xunlong Orange Pi Mini, Sinlinx SinA33
  • Rockchip
    • Fixes for GPU DRM driver
    • RK3368 – Added pinctrl and Ethernet (dwmac) support
    • Device tree – Files relicensed under GPLv2/X11 dual-license, Enable A12 HW PMU events in RK3288 boards, and TSADC for Firefly and PopMetal boards
    • Fixed IR receiver bug and modify some GPIO code in RK3288
  • Amlogic – Added documentation to the clock controller… nothing else.
  • Mediatek
    • Fixed clock registration in MT8135
    • Small changes and fixes to pinctrl driver
    • Added driver for Mediatek MT8173 I2C controller
    • Some fixes for PMIC
    • MT7601U driver (WiFi device)
    • Pinctrl driver for MT8127, MT6397,
  • Qualcomm
    • Added SPMI PMIC Arbiter device tree node for MSM8916
    • Added 8×16 chipset SPMI PMIC’s nodes
    • Added MSM8916 restart device node
    • Added initial set of PMIC and SoC pins for APQ8016 SBC board
  • Samsung
    • Fix exynos3250 MIPI DSI display and MIPI CSIS-2 camera sensor
    • Bring back cpufreq for exynos4210
  •  ARM64
    • New processors: Hisilicon ARM64 SoCs (e.g. Hi6220)
    • Various fixes for ARM64 for ACPI, MMU, SMP, perf, and more.
    • Enabled EDAC on ARM64
    • Support for Hikey board, ARM Juno r1 board
  • Various changes to some Atmel and Marvell processors, see Free Electrons blog post for details.
  • Other new ARM SoCs & hardware platforms – Freescale i.MX 7Dual, ZTE ZX29670, Buffalo WXR-1900DHP, ASUS RT-AC87U, SmartRG SR400ac, Compulab CM-A510, and more

There has also been some interesting changes for the MIPS architecture:

  • many bug fixes: LLVM build issue, KVM fixes, fix seccomp MIPS64, fix for oprofile (get_c0_perfcount_int), Fix JR emulation for R6, etc…
  • Some code cleanups (fixed misspellings, removes some code)
  • Added support for appended DTP
  • Improvements for R12000, R3000, Broadcom BCM47xx and BCM63xx,  ATH79
  • Large patchset for Ingenic JZ4740 SoC
  • Added support to Pistachio SoC
  • New MIPS platforms: MIPS Creator CI20 board and XWR-1750 board

A complete changelog for Linux 4.2 should soon be published on Kernelnewbies.org, and you’ll probably also want to look at their ARM architecture and drivers sections for more details about to various platforms including ARM and MIPS. I’ve also generated a complete Linux 4.2 Changelog with comments only (13.9MB) using git (git log v4.1..v4.2 --stat)

Open Source Linux Drivers for PowerVR GPUs Might Be in the Works

June 18th, 2015 9 comments

When I write about a new processor with a PowerVR GPU, I can be sure there will be one or two comments saying something like “It has a PowerVR GPU, it’s a non-starter”, mostly because of the status of graphics drivers in Linux. Luc Verhaegen (libv) also made a presentation at FOSDEM 2013 listing various open source projects for GPUs found in ARM processors and PowerVR was the only one without any community project. Bear in mind that apart from Nvidia, and to some extend Broadcom for the VideoCore IV GPU found in  BCM2835 / BCM2836 processors used in Raspberry Pi boards, no other companies have released user space drivers for their GPUs, and all work is done by volunteers for other open source GPU drivers, and I’m not sure any of them work 100% yet.

Imagination has already provided working GPU drivers for their MIPS Creator-CI20 board, these are closed source binaries, but at least they should be usable in Linux. Now Alexandru Voica, Senior Marketing Specialist at Imagination Technologies, and who seems to handle press releases and many of the posts in the company’s blog, has hinted that Imagination is currently working on open source drivers for their GPU in reddit.

Q: Is there plans to make/help/fund open PowerVR driver for Linux?

A: Yes, there is a plan and it is one of the things I’ve been working on for the past few months. Hopefully I’ll have something more to share soon(-ish?).

Sadly, there aren’t any details right now, so we’ll have to be patient and see what comes out of this.

Via Phoronix and Harley.

How to Build a Single Kernel Module (Driver) in Ubuntu

March 6th, 2015 6 comments

When I bought UNI-T UT61E digital multimeter,  I planned to to use the open source tool Sigrok to capture voltage, current or resistance data with my Ubuntu 14.04 machine. Unfortunately, it was just not working for me and I kept getting some “Invalid function byte” error messages, so I asked on Sigrok mailing list, and since it worked for others, I was in big troubles. It turned out the RS-232 to USB dongle I used:

was most likely to culprit, so I decided to buy another random USB to serial dongle on eBay, and after a few weeks I received it only to find out it had the exact same VID:PID, so I was out of luck. Finally, I gave up on Sigrok on Linux, and tested the power consumption of some Rockchip RK3288 & Amlogic S802 devices in a Windows 7 virtual machine running in my Ubuntu 14.04 host PC. A few days later, Karl Parsonn left a comment saying ch341 driver just ignored parity (UNI-T DMM use odd parity), but that he wrote a patch that should eventually make it to mainline.

Ubuntu_14.04_CH341_Driver

Since I did not want to wait I decided to build ch341.ko with the patched driver, and I can now use Sigrok with my HL-340 USB-Serial adapter successfully, but I’ll write more about that in another post, and today, I’ll document the steps I followed to build the driver for my machine.

Instructions to build a kernel module in Ubuntu are already available, but the patch for ch341 driver is for Linux 3.18.6, and Ubuntu 14.04 comes with Linux 3.13. So I had two choices:

  1. Backport the driver to Linux 3.13
  2. Upgrade my Ubuntu kernel to 3.18

I decided to go with option 1 at first, but I quickly changed my mind as there’s been a bit too many modifications between the two versions, and it started to be time consuming. So it was time for plan B, or rather option 2. I could probably have use the Karl’s Linux kernel, but I remembered having read that Canonical makes some changes to the Linux kernel, so instead I went to http://kernel.ubuntu.com/~kernel-ppa/mainline/ to download and install Linux 3.18 in my machine (This is 3.18.0, but with hindsights I should have gone with 3.18.6 instead, but it still worked):

This steps requires a reboot. In case it does not boot at all, you should be able to boot one of the older Linux kernel via grub, and remove the new mainline kernel, so I believe this step is relatively safe.

Then I checkout the Linux kernel and downloaded and applied Ubuntu specific patchsets:

Backup the current driver:

Then I mostly followed the build instructions found on Askubuntu to setup the kernel to build modules:

and update the code with the new driver, build and install the module:

Finally run depmod, unload the old module if needed, and load the newly built module.

Done. I’ve now got a CH341 driver that supports no parity or odd/even parities.

ARM Releases Kernel Drivers for Mali-T880 / T860 GPUs, User Space Drivers for Mali-T76x GPUs

February 23rd, 2015 17 comments

ARM Mali GPU drivers includes both open source kernel drivers, and binary userspace drivers supporting framebuffer and/ior X11 implementation. The former is rarely an issue and is quickly released, but the latter requires porting and testing for a specific hardware platform, as well legal work, which greatly delay the releases.

ARM_Mali_GPU_Drivers

Release r5p0-06rel0 for User Space Binary Drivers

Mali-T880 GPU was announced at the beginning of the month together with ARM Cortex A72, and on February 17, 2015, ARM released an update to their Mali-T600 series, Mali-T700 series & Mali-T860/T880 GPU kernel device drivers with revision r5p1-00rel0 that adds supports to Mali-T860 and Mali-T880 GPU. These open source drivers are available for Android and Linux, and also support early Mali-T700 and T600 GPUs.

Separately, the company has also released Mali-T76X GPU drivers for Firefly board powered by Rockchip RK3288 quad core Cortex A17 processor featuring a Mali-T764 GPU. The first release only supports the framebuffer driver, but ARM is expecting to be able to release the X11 version in the next release (r5p1) planned at the end of March, which means some Linux desktop graphics accelerated will soon be available on Rockchip RK3288, and not only some OpenGL ES 3.0 demos on the framebuffer. The latest release (r5p0-06rel0) also supports Exynos powered Arndale Octa board, Samsung Chromebook 2, Arndale board, and Samsung Chromebook. According to an ARM representative, Rockchip also plans to release their own Linux GPU drivers targeting “TopMetal” hardware platform (should probably read PopMetal).

Linux 3.18 Released

December 10th, 2014 2 comments

Linus Torvalds released Linux Kernel 3.18 last Sunday:

It’s been a quiet week, and the patch from rc7 is tiny, so 3.18 is out.

I’d love to say that we’ve figured out the problem that plagues 3.17 for a couple of people, but we haven’t. At the same time, there’s absolutely no point in having everybody else twiddling their thumbs when a couple of people are actively trying to bisect an older issue, so holding up the release just didn’t make sense. Especially since that would just have then held things up entirely over the holiday break.

So the merge window for 3.19 is open, and DaveJ will hopefully get his bisection done (or at least narrow things down sufficiently that we have that “Ahaa” moment) over the next week. But in solidarity with Dave (and to make my life easier too 😉 let’s try to avoid introducing any _new_ nasty issues, ok?

Linus

Linux 3.17 added support for Xbox One controllers, USB device sharing over IP, more secure random numbers, several modifications for perf and more.

Some of the changes made to Linux 3.18 include:

  • Performance improvements for the networking stack thanks to bulk network packet transmission, which “allows a relatively small system to drive a high-speed interface at full wire speed, even when small packets are being transmitted.”
  • Faster suspend and resume by replacing a 100ms polling loop with proper completion notification. This will mostly be noticeable on systems with a large number of cores. Git pull.
  • Berkeley Packet Filter bpf() system call. “The hooks to use this code (in tracing and packet filtering, for example) will take a little longer, but the core support for a “universal virtual machine” in the kernel is now present.”
  • Nouveau drivers for Nvidia GPUs now supports basic DisplayPort audio
  • Several filesystems improvements, notably for BTRFS and F2FS
  • Audio hardware. Codecs: Cirrus Logic CS35L32, Everest ES8328 and Freescale ES8328; others: Generic Freescale sound cards, Analog Devices SSM4567 audio amplifier

New features and improvements specific to the ARM architecture include:

  • Allwinner
    • Allwinner A31/A23 –  RTC  & Watchdog
    • Allwinner A23 – MMC, pinctrl, DMA and I2C
    • New boards: Olimex A20-OLinuXino-Lime, Merrii Hummingbird A20, and HSG H702 tablet board.
  • Rockchip
    • Added new clock-type for the cpuclk
    • Ethernet: Added support for Rockchip SoC layer device tree bindings for arc-emac driver, and emac nodes to the rk3188 device tree.
    • Added driver for Rockchip Successive Approximation Register (SAR) ADC.
    • RK808 PMIC: Added regulator driver, clkout driver, and mfd driver.
  • Amlogic – Added MesonX support, only Meson6 for now (Amlogic AML8726-MX). DTS for Geniatech ATV1200 media player
  • Added basic support for BCM63138 DSL SoC, Texas Instruments AM57xx family, Atmel SAMA5D4, Qualcomm IPQ8064, Renesas r8a7794 SoC,
  • New Device tree files for various board and products: Gateworks GW5520, SAMA5D4ek board,  i.MX1 Armadeus APF9828, i.MX1 ADS board, Technexion Thunder support (TAO3530 SOM based, Sony Xperia Z1, IFC6540 board, CM-QS600 SoM,  etc…

I could find a few changes for MIPS architecture in Linux 3.18 too:

  • SEAD3: Nuke PIC32 I2C driver.
  • Loongson: Make platform serial setup always built-in
  • Netlogic: handle modular USB case & AHCI builds
  • tlbex: Fix potential HTW race on TLBL/M/S handlers
  • cpu-probe: Set the FTLB probability bit on supported cores
  • fix EVA & non-SMP non-FPU FP context signal handling
  • Etc.. You can find a few more changes @ http://lwn.net/Articles/623825/

A more thorough changelog for Linux 3.18 will soon be published on Kernelnewbies.org. Remember to also check ARM architecture and drivers sections, for more details about changes related to ARM platforms.