Kernel-Log – Was 3.7 bringt (5): CPU- und Plattform-Code
Linux 3.7 unterstützt ARM64, Intels Sicherheitsfunktion SMAP und enthält jetzt Patches für die Raspberry-Pi-CPU. Der nächste Kernel bringt zudem neue Tracing-Werkzeuge und Verbesserungen zur Zusammenarbeit mit Microsofts Hypervisor.
- Thorsten Leemhuis
Nach der Freigabe-Mail von Linux 3.7-rc6 deutete vieles auf eine Veröffentlichung von Linux 3.7 rund um den ersten Advent hin. In der Mail zur siebten Vorabversion klang es dann allerdings ein wenig so, als gäbe es vielleicht doch noch einen weiteren RC. Ein solcher vertagt die Fertigstellung einer Version typischerweise um eine Woche; weitere Verzögerungen dürfte es aber wohl nur geben, wenn die Kernel-Entwickler zur Fehlerbeseitigung noch umfangreichere Änderungen vornehmen müssen, die eine längere Testphase erfordern.
Die folgende Beschreibung zu den Neuerungen an Prozessor- und Plattform-Code schließt daher nun die Kernel-Log-Mini-Serie "Was 3.7 bringt" ab. Die ersten vier Teile der Serie hatten sich den für Linux 3.7 integrierten Änderungen gewidmet, die die Kernel-Entwickler in den Bereichen Dateisysteme und Storage, Netzwerk, Infrastruktur sowie Treiber vorgenommen haben.
64-Bit-ARM
Der Linux-Kernel unterstützt nun den 64-Bit-ARM-Befehlssatz (u. a. 1, 2, 3, 4). Der Code für den offiziell AArch64 genannte Befehlssatz wurde größtenteils von ARM-Mitarbeitern entwickelt und landete im Verzeichnis arch/arm64/ der Kernel-Quellen, wie es einige Kernel-Entwickler bei der ersten Vorstellung des Codes gefordert hatten. Dadurch ist der Code unabhängig von jenem für 32-Bit-ARM.
Solch eine Trennung hatte es zunächst auch bei den 32- und 64-Bit-Unterstützung für x86- und Power-Prozessoren gegeben; später wurden die 32- und 64-Bit-Verzeichnisse dann bei beiden Architekturen zusammengelegt. Einige Entwickler hatten ein Trennung von 32- und 64-Bit-ARM-Code daher in Frage gestellt; sie wurde letztlich aber doch umgesetzt, weil einige führenden Entwickler des ARM-Codes das für den besten Ansatz hielten. Auch Torvalds sieht die Trennung eher kritisch, wie ein schnippischer Kommentar in der Freigabe-Mail zur ersten Vorabversion von Linux 3.7 zeigt.
Bei der Maschinenabfrage mit uname(2) meldet der Kernel nicht ARM64, sondern das sperrige AArch64, weil einige Programme zur Unterstützung des 64-Bit-ARM-Befehlssatzes diese erwartet. Dazu gehören die Binutils, die AArch64 seit Version 2.23.51.0.2 unterstützen; die Glibc beherrscht AArch64 mit der anstehenden Version 2.17. Auch in den Hauptentwicklungszweig der GCC ist AArch64-Unterstützung eingeflossen; sie soll Bestandteil der GCC 4.8 werden.
Der 64-Bit-taugliche ARM-Befehlssatz wurde im Herbst 2011 mit der ARMv8-Mikroarchitektur angekündigt; die ersten 64-Bit-Prozessorkerne Cortex-A53 und -A57 hat ARM kürzlich vorgestellt. Eine Reihe von Unternehmen will die Kerne einsetzen; AppliedMicro hat einen ARMv8-Kern bereits in einem FPGA implementiert und versprochen, noch vor Jahresende könnten die ersten X-Gene-Chips starten. Die Firma arbeitet zusammen mit ARM und Red Hat an einer Server-Distribution mit ARM64-Linux; die Technik dafür treibt auch eine Arbeitsgruppe von Linaro voran, an der diese drei und einige weitere Unternehmen beteiligt sind.
ARM-Multiplatform
Kurzfristig für ARM-Linux noch viel wichtiger als die 64-Bit-ARM-Unterstützung ist der für Linux 3.7 aufgenommene Multiplatform Support. Damit lässt sich nun ein Kernel-Image erzeugen, das auf verschiedenen 32-Bit-ARM-Plattformen arbeitet. Solch ein Kernel-Image unterstützt bei 3.7 Highbank, Mvebu, Picoxcell, Socfpga und Vexpress; bei späteren Kernel-Versionen soll weiterer Plattform-Code konvertiert werden, damit ein Kernel-Image auf möglichst vielen verschiedenen ARM-Plattformen arbeitet, wie es in der x86-PC-Welt normal ist.
Die Multiplattfom-Unterstützung ist eines der Ziele der zahlreichen Aufräumarbeiten und Umbauten, welche die Linux-ARM-Entwickler schon seit einer Weile durchführen. Hintergründe zu diesem Vorhaben liefern der Artikel "Supporting multi-platform ARM kernels" auf LWN.net und die Videoaufzeichnung eines Vortrags von Linaro-Entwickler Arnd Bergmann, der ab Zeitcode 26:15 auf den Multiplatform Support eingeht.
Die Kernel-Entwickler haben zudem Unterstützung für den Broadcom BCM2835 in Linux integriert (u.a. 1, 2, 3, 4) – ein mit ARM-Kern ausgestatteter SOC (System-on-Chip), der unter anderem den Raspberry Pi antreibt. Die Patches wurden bislang außerhalb des Kernels gepflegt.
Virtualisierung
Zusammen mit Entwicklerversionen des Xen-Hypervisor 4.3 kann Linux jetzt virtuelle Maschinen betreiben, die mit Hilfe der Virtualisierungsfunktionen einiger neuerer ARM-Kerne laufen (u. a. 1, 2). KVM-Unterstützung für die ARM-Virtualisierungsfunktionen ist noch in Vorbereitung.
Über den Key-Value-Pair-Gasttreiber für Microsofts Hyper-V kann ein Linux-Gast nun Informationen zur Netzwerkkonfiguration mit Microsofts Hypervisor austauschen (1, 2). Der Hintergrunddienst hv_kvp_daemon im Tools-Verzeichnis des Linux-Kernels erhielt Erweiterungen zum Austausch solcher Informationen (u. a. 1, 2). Da sich die Schritte zum Setzen und Auslesen der Netzwerkkonfiguration bei den gängigen Linux-Distributionen unterscheiden, greift der Daemon für einige Arbeiten auf Skripte zurück, die sich leicht an die verschiedenen Gegebenheiten anpassen lassen; Beispielskripte zum Konfiguration eines Netzwerkinterfaces oder Auslesen der DNS-Konfiguration stießen ebenfalls zum Kernel.
Über den Parameter "use_bio=1" kann der Virtio-Blockgeräte-Treiber virtio-blk nun einen alternativen Betriebsmodus aktivieren, der bei schnellen Datenträgern den Datenaustausch zwischen Gast und Wirt beschleunigen kann. Das zeigen Messwerte des Entwicklers im Commit-Kommentar, die mit einer Ramdisk und einer PCIe-Flash-Karte von Fusion IO erzeugt wurden; mit einem SATA-Datenträger ist der neue Ansatz allerdings langsamer. Einige weitere wichtige Änderungen im Bereich Virtualisierung erläutern die Mails mit den Haupt-Git-Pull-Request für den KVM-Code von Linux und die Unterstützung von Xen.
Tracing
Zur Tracing-Infrastruktur stieß das Events-Analye-Werkzeug "perf kvm", mit dem sich unter anderem auswerten lässt, wie häufig und aus welchen Gründen von einem KVM-Gast in das Wirtsystem gewechselt wurde ("VM-EXIT").
Das ist aber nur eine von vielen Verbesserungen am Tracing-Code. Neu ist etwa auch das systemweite Tracing-Tool "perf trace". Dessen Entwickler vergleicht den initialen Funktionsumfang im Commit-Kommentar grob mit dem "ehrwürdigen" Werkzeug strace; das neue Werkzeug setze aber auf die Perf-Infrastuktur des Kernels und solle dadurch weitere Funktionen ermöglichen.
Die Kernel Probes (Kprobes) können nun statische Ftrace-Prüfpunkte statt Breakpoints nutzen, wenn es diese an der untersuchten Stelle gibt; das soll den Analyse-Overhead reduzieren. Ebenfalls neu ist Basis-Unterstützung in Perf für die PMU (Performance Monitoring Unit) von Intels Coprozessor Xeon Phi.
Abschottung
Der Linux-Kernel unterstützt nun die Prozessor-Sicherheitsfunktion SMAP (Supervisor Mode Access Prevention) (u.a. 1, 2, 3, 4). Intel will diese Technik mit den Haswell-Prozessoren einführen, die offenbar ab dem ersten Halbjahr 2013 die aktuelle Ivy-Bridge-Generation ablösen sollen. SMAP soll den Speicherbereich von Programmen vor ungewollten Änderungen durch den Kernel schützen; über Kernel-Bugs erzeugen Angreifer solche Speicheränderungen manchmal in Programmen, die mit Root-Rechten laufen, um sich darüber höhere Rechte zu verschaffen. Details zur Technik liefern Intels Architecture Instruction Set Extensions Programming Reference ab Seite 408, ein Beitrag im Grsecurity-Forum und der Artikel "Supervisor Mode Access Protection".
Verschiedenes
Wie bei den meisten der im letzten Jahr veröffentlichten Linux-Versionen haben die Kernel-Entwickler auch für Linux 3.7 einige Krypto-Algorithmen des Kernels optimiert. Durch Verbesserungen am Treiber aesni_intel etwa sollen bestimmte Operationen dreimal so hohen Durchsatz erzielen, wie der Entwickler mit Tcrypt-Messwerten im Commit-Kommentar zeigt .
Das dem Kernel beiliegende Userspace-Diagnose-Programm Turbostat bietet nun eine eigene Option, um die Zahl der aufgetretenen SMIs (System Management Interrupts) anzuzeigen; außerdem liefert es jetzt mehr Informationen zur maximal möglichen Turbo-Boost-Frequenz.
Wenn die ACPI-Tabelle eine Beschreibung für die Komponenten eines Systems enthält, lassen sich diese nun in den Sysfs-Verzeichnissen der jeweiligen Komponente über die Datei firmware_node/description auslesen.
Im Verzeichniss tools/power/acpi/ der Kernel-Quellen finde sich nun das Userspace-Diagnose-Werkzeug acpidump, das die ACPI-Tabellen in einer ASCII-Datei speichert; die Informationen können Entwickler die Fehlersuche erleichtern, die keinen Zugriff auf das betroffene System haben.
Der Sparc-Code kann jetzt mit dem Niagara 4 umzugehen.
Der Power- und PowerPC-Code von Linux unterstützt nun Userspace-Tracing mit Uprobes und bei manchen Prozessoren bis zu 64 TByte Speicher; Letzteres wurde aber noch nicht getestet.
Die kleinen Perlen
Die kleinen Perlen
Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutenden Änderungen:
ACPI, PCI, PM, ...
- [
1] ACPI: Allow ACPI binding with USB-3.0 hub - [
N2] ACPICA: Add support for complex _PLD buffers. - [
] ACPICA: Add Windows8/Server2012 string for _OSI method. - [
] ACPICA: Headers: Add new ACPI 5 HEST notify type values. - [
] ACPICA: Update version to 20120816. - [
] ACPICA: Update version to 20120913 - [
C] acpi-cpufreq: Add compatibility for legacy AMD cpb sysfs knob - [
DN1] acpi-cpufreq: Add support for disabling dynamic overclocking - [
C] acpi-cpufreq: Add support for modern AMD CPUs - [
] ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop - [
] ACPI: EC: Make the GPE storm threshold a module parameter - [
C] bcma: detect and register NAND flash device - [
C] bcma: detect and register serial flash device - [
C DN1] cpufreq: Add a generic cpufreq-cpu0 driver - [
C] cpufreq: Add warning message to powernow-k8 - [
] cpufreq / ondemand: update frequency when limits are relaxed - [
1] cpufreq: Remove support for hardware P-state chips from powernow-k8 - [
C N1] dmaengine: add TI EDMA DMA engine driver - [
C N2] dmaengine: mmp-pdma support - [
] dmaengine: mmp_tdma: add dt support - [
] dma: tegra: enable/disable dma clock - [
DN] Documentation:Chinese translation of Documentation/IRQ.txt - [
C DN] drivers: bus: add a new driver for omap-ocp2scp - [
C] drivers: bus: Move the OMAP interconnect driver to drivers/bus/ - [
D] Honor state disabling in the cpuidle ladder governor - [
C D 1] hwmon: exynos4: move thermal sensor driver to driver/thermal directory - [
] intel_idle: enable IVB Xeon support - [
I] ioat: Adding Ivy Bridge IOATDMA PCI device IDs - [
] iommu/amd: Add call-back routine for HPET MSI - [
] iommu/amd: Add initialization routines for AMD interrupt remapping - [
] iommu/amd: Add IOAPIC remapping routines - [
] iommu/amd: Add IRTE invalidation routine - [
] iommu/amd: Add routines to manage irq remapping tables - [
] iommu/amd: Add slab-cache for irq remapping tables - [
] iommu/amd: Implement MSI routines for interrupt remapping - [
] iommu/amd: Print message to system log when irq remapping is enabled - [
] iommu/amd: Update MAINTAINERS entry - [
] iommu/tegra: smmu: debugfs for TLB/PTC statistics - [
] PCI: Add accessors for PCI Express Capability - [
1] PCI: Introduce pci_pcie_type(dev) to replace pci_dev->pcie_type - [
C D] PCI: Remove the fakephp driver - [
C] PM / Domains: Add power off/on function for system core suspend stage - [
DN] PM / OPP: Initialize OPP table from device tree - [
C DN2] thermal: add generic cpufreq cooling implementation - [
C N] thermal: add Renesas R-Car thermal sensor support - [
C 2] thermal: exynos5: add exynos5250 thermal sensor driver support - [
] Thermal: Introduce cooling states range support - [
] Thermal: Introduce multiple cooling states support - [
] Thermal: Introduce simple arbitrator for setting device cooling state - [
D] Thermal: set upper and lower limits - [
N] tools/power/acpi/acpidump: create acpidump(8), local make install targets - [
N1] tools/power/acpi/acpidump: version 20051111 - [
] tools/power/acpi/acpidump: version 20060606 - [
] tools/power/acpi/acpidump: version 20070714 - [
] tools/power/acpi/acpidump: version 20071116 - [
] tools/power/acpi/acpidump: version 20101221 - find dynamic tables in sysfs - [
1] tools/power turbostat: add [-d MSR#][-D MSR#] options to print counter deltas - [
] tools/power turbostat: add [-m MSR#] option
Crypto
- [
] crypto: caam - add IPsec ESN support - [
C N2] crypto: cast5 - add x86_64/avx assembler implementation - [
1] crypto: cast5-avx - tune assembler code for more performance - [
N] crypto: cast5 - prepare generic module for optimized implementations - [
C N3] crypto: cast6 - add x86_64/avx assembler implementation - [
1] crypto: cast6-avx - tune assembler code for more performance - [
N] crypto: cast6 - prepare generic module for optimized implementations - [
DN] Crypto: CESA: Add support for DT based instantiation. - [
] crypto: talitos - add IPsec ESN support - [
1] crypto: talitos - support for assoc data provided as scatterlist - [
5] crypto: testmgr - add larger cast6 testvectors - [
1] crypto: twofish-avx - tune assembler code for more performance - [
DN] Documentation: sysfs for Physical Presence Interface - [
D] Documentation: Update git repository URL for Smack userland tools - [
N1] driver: add PPI support in tpm driver - [
N] drivers/char/tpm: Add securityfs support for event log - [
C N] hw_random: add support for the TPM chip as a hardware RNG source - [
D] ima: audit log hashes - [
] ima: digital signature verification support - [
C N] powerpc/crypto: add 842 crypto driver - [
C N4] powerpc/crypto: add 842 hardware compression driver - [
D] Smack: implement revoking all rules for a subject label - [
N1] tpm: modularize event log collection
Virtualization
- [
N] arm: introduce a DTS for Xen unprivileged virtual machines - [
] Drivers: hv: kvp: Copy the address family information - [
C] KVM: Add config to support ple or cpu relax optimzation - [
DN] KVM: Add documentation on hypercalls - [
D] KVM: Add ppc hypercall documentation - [
D 1] KVM: Add resampling irqfds for level triggered interrupts - [
] KVM: Choose better candidate for directed yield - [
C] KVM: Depend on HIGH_RES_TIMERS - [
1] KVM: inline kvm_apic_present() and kvm_lapic_enabled() - [
D 1] KVM: introduce readonly memslot - [
1] KVM: optimize apic interrupt delivery - [
N1] KVM: s390: Add architectural trace events - [
N1] KVM: s390: Add implementation-specific trace events - [
] KVM: use jump label to optimize checking for HW enabled APIC in APIC_BASE MSR - [
] KVM: use jump label to optimize checking for in kernel local apic presence - [
] KVM: use jump label to optimize checking for SW enabled apic in spurious interrupt register - [
] KVM: VMX: Allow vm86 virtualization of big real mode - [
] MAINTAINERS: add myself as Xen ARM maintainer - [
N2] tools: Add guest trace agent as a user tool - [
N] Tools: hv: Add an example script to retrieve dhcp state - [
] Tools: hv: Correctly type string variables - [
] Tools: hv: Further refactor kvp_get_ip_address() - [
] Tools: hv: Gather address family information - [
] Tools: hv: Gather DHCP information - [
] Tools: hv: Gather DNS information - [
] Tools: hv: Gather ipv[4,6] gateway information - [
] Tools: hv: Gather subnet information - [
] Tools: hv: Get rid of some unused variables - [
] Tools: hv: Implement the KVP verb - KVP_OP_GET_IP_INFO - [
1] Tools: hv: Implement the KVP verb - KVP_OP_SET_IP_INFO - [
] Tools: hv: Prepare to expand kvp_get_ip_address() functionality - [
] Tools: hv: Rename the function kvp_get_ip_address() - [
] Tools: hv: Represent the ipv6 mask using CIDR notation - [
C] virtio: add help to CONFIG_VIRTIO option. - [
C] virtio_balloon: not EXPERIMENTAL any more. - [
] virtio: support reserved vqs - [
C] x86: KVM guest: merge CONFIG_KVM_CLOCK into CONFIG_KVM_GUEST - [
N] xen/arm: empty implementation of grant_table arch specific functions - [
N] xen/arm: hypercalls - [
C] xen/arm: introduce CONFIG_XEN on ARM - [
N] xen/arm: page.h definitions - [
N] xen/arm: receive Xen events on ARM - [
N] xen/arm: sync_bitops - [
] xen/gndev: Xen backend support for paged out grant targets V4. - [
] xen/mmu: Use Xen specific TLB flush instead of the generic one. - [
] xen-pciback: support wild cards in slot specifications - [
] xen pv-on-hvm: add pfn_is_ram helper for kdump - [
] xen/pv-on-hvm kexec: add quirk for Xen 3.4 and shutdown watches. - [
] xen/vga: add the xen EFI video mode support
CPU architectures
x86
- [
] x86-32, smap: Add STAC/CLAC instructions to 32-bit kernel entry - [
] x86, amd: Disable way access filter on Piledriver CPUs - [
] x86, cpufeature: Add feature bit for SMAP - [
D 1] x86, fpu: decouple non-lazy/eager fpu restore from xsave - [
D] x86, fpu: enable eagerfpu by default for xsaveopt - [
D] x86, fpu: make eagerfpu= boot param tri-state - [
3] x86, fpu: Unify signal handling code paths for x86 and x86_64 kernels - [
1] x86, fpu: use non-lazy fpu restore for processors supporting xsave - [
C] x86/Kconfig: Clean up Kconfig defaults - [
] x86/Kconfig: Disable CONFIG_CRC_T10DIF in defconfigs - [
] x86/Kconfig: Switch to ext4 in defconfigs - [
] x86/Kconfig: Turn off CONFIG_BLK_DEV_RAM - [
] x86/Kconfig: Turn off DEBUG_NX_TEST module in defconfigs - [
] x86/Kconfig: Update defconfigs to current results of "make savedefconfig" - [
C] x86, mce: Enable MCA support by default - [
D] x86/mce: Provide boot argument to honour bios-set CMCI threshold - [
] x86, microcode, AMD: Rewrite patch application procedure - [
] x86, smap: Add CR4 bit for SMAP - [
D 1] x86/smp: Don't ever patch back to UP if we unplug cpus
ARM
- [
] AM35xx: Add missing hwmod entry for the HDQ/1-Wire present in AM3505/3517 CPUs. - [
N7] arm64: 32-bit (compat) applications support - [
] arm64: Add support for /proc/sys/debug/exception-trace - [
N1] arm64: Assembly macros and definitions - [
N1] arm64: Atomic operations - [
C N2] arm64: Build infrastructure - [
N1] arm64: Cache maintenance routines - [
N1] arm64: CPU support - [
N6] arm64: Debugging support - [
N1] arm64: Device specific operations - [
N] arm64: DMA mapping API - [
N1] arm64: ELF definitions - [
N] arm64: Floating point and SIMD - [
C N1] arm64: Generic timers support - [
N] arm64: IRQ handling - [
DN2] arm64: Kernel booting and initialisation - [
N1] arm64: Loadable modules - [
N1] arm64: Miscellaneous header files - [
N1] arm64: Miscellaneous library functions - [
DN3] arm64: MMU definitions - [
N2] arm64: MMU fault handling and page tab ansprechen könnenle management - [
N2] arm64: MMU initialisation - [
D] arm64: Move PCI_IOBASE closer to MODULES_VADDR - [
N2] arm64: Process management - [
N1] arm64: Signal handling support - [
N2] arm64: SMP support - [
N1] arm64: System calls handling - [
N1] arm64: TLB maintenance functionality - [
N1] arm64: User access library functions - [
N2] arm64: VDSO support - [
N] ARM: 7511/1: opcodes: Opcode definitions for the Virtualization Extensions - [
DN] ARM: 7516/1: plat-versatile: add DT support to FPGA IRQ - [
DN1] ARM: 7517/1: integrator: initial device tree support - [
C] ARM: 7524/1: support syscall tracing - [
C] ARM: 7531/1: mark kernelmode mem{cpy,set} non-experimental - [
DN1] arm: add documentation describing Marvell families of SoC - [
DN1] arm: add documentation describing Marvell families of SoC - [
D] ARM: Add fixed PCI i/o mapping - [
N] ARM: add v7 multi-platform defconfig - [
DN] ARM: cache: add dt support for tauros2 cache - [
C] ARM: clps711x: Added simple clock framework - [
C 2] ARM: clps711x: Remove board support for CEIVA - [
C N5] arm/crypto: Add optimized AES and SHA1 routines - [
] ARM: dove: Add crypto engine to DT - [
C] ARM: dove: add device tree based machine descriptor - [
N] ARM: dove: add device tree descriptors - [
] ARM: dove: Add pcie clock support - [
N] ARM: dove: SolidRun CuBox DT - [
C] ARM: drop experimental status for hotplug and Thumb2 - [
DN] ARM: dt: mmp-dma: add binding file - [
N] ARM: dts: Add basic dts file for Samsung Trats board - [
N] arm/dts: Add omap36xx.dtsi file and rename omap3-beagle to omap3-beagle-xm - [
] ARM/dts: Add pinctrl driver entries for omap5 - [
N1] ARM: dts: Add pinctrl node entries for SAMSUNG EXYNOS4210 SoC - [
N] ARM: dts: EMIF and LPDDR2 device tree data for OMAP4 boards - [
N1] ARM: dts: Move parts common to EXYNOS4 from exynos4210.dtsi to exynos4.dtsi - [
N] ARM: dts: omap2: Add McBSP entries for OMAP2420 and OMAP2430 SoC - [
N] ARM: dts: OMAP3: Add support for Gumstix Overo with Tobi expansion board - [
N] arm/dts: regulator: Add tps65217 device tree data - [
N] arm/dts: regulator: Add tps65910 device tree data - [
1] ARM: dt: tegra: harmony: add regulators - [
C] ARM: enable SUSPEND/ARCH_SUSPEND_POSSIBLE for ARCH_TEGRA - [
C] ARM: EXYNOS: Add generic PWM lookup support for SMDK4X12 - [
C] ARM: EXYNOS: Add generic PWM lookup support for SMDKV310 - [
DN] ARM: EXYNOS: Adds G-Scaler device from Device Tree - [
C] ARM: EXYNOS: Enable pinctrl driver support for EXYNOS4 device tree enabled platform - [
C] ARM: EXYNOS: Use generic pwm driver in Origen board - [
D] ARM: highbank: add coherent DMA setup - [
C] ARM: imx51: build in pinctrl support - [
C] ARM: imx53: build in pinctrl support - [
C N3] ARM: imx53: support device tree boot only - [
] ARM: i.MX5: Add nand oftree support - [
DN1] ARM: imx6q: replace clk_register_clkdev with clock DT lookup - [
C N] ARM: initial DTS support for km_kirkwood - [
C N] ARM: kirkwood: DT board setup for Seagate FreeAgent Dockstar - [
N] ARM: kirkwood: DT descriptor for Seagate FreeAgent Dockstar - [
C N] ARM: Kirkwood: Iomega ix2-200 DT support - [
C N] ARM: ks8695: add board support for the OpenGear boards based on the KS8695 - [
C N] ARM: ks8695: add board support for the SnapGear boards based on the KS8695 - [
C] ARM: ks8695: convert to generic time and clocksource - [
C 2] ARM: mach-omap1: retire custom LED code - [
C 9] ARM: mach-pnx4008: Remove architecture - [
C] arm: mmp: make all SOCs use common clock by default - [
C N] ARM: msm: Add DT support for 8960 - [
DN] ARM: msm: Add DT support to msm_timer - [
C] ARM: msm: Make 8660 a DT only target - [
C] ARM: msm: Remove non-DT targets from 8960 - [
N] arm: mvebu: add basic address decoding support to Armada 370/XP - [
N] ARM: mvebu: Add pinctrl support to Armada XP SoCs - [
C] arm: mvebu: split Kconfig options for Armada 370 and XP - [
C] ARM: mx27pdk: Add audio support - [
C 5] ARM: mxs: remove board files - [
7] ARM: mxs: remove iomux driver - [
C 3] ARM: mxs: remove platform device codes - [
C] ARM: nomadik: configure Nomadik for pin control - [
C 1] ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ - [
N8] ARM: OMAP3+: hwmod: Add AM33XX HWMOD data - [
C] ARM: OMAP5: Enable arch timer support - [
C] ARM: OMAP: Add initialisation for the real-time counter. - [
D] ARM: perf: add devicetree bindings for 11MPcore, A5, A7 and A15 PMUs - [
] ARM: PMU: Add runtime PM Support - [
C 3] ARM: PRIMA2: convert to common clk and finish full clk tree - [
C N] ARM: pxa3xx: add generic DT machine code - [
C 9] ARM: Remove mach-bcmring - [
N] ARM: SoC: convert Tegra to SMP operations - [
N1] ARM: SoC: convert VExpress/RealView to SMP operations - [
N] ARM: tegra20: add CPU hotplug support - [
N] ARM: tegra30: add CPU hotplug support - [
N] ARM: tegra: Add Avionic Design Medcom-Wide support - [
N] ARM: tegra: Add Avionic Design Plutux support - [
N] ARM: tegra: Add Avionic Design Tamonten Evaluation Carrier support - [
N1] ARM: tegra: Add Avionic Design Tamonten support - [
C 2] ARM: tegra: dma: remove legacy APB DMA driver - [
C 9] ARM: tegra: Port tegra to generic clock framework - [
C 1] ARM: tegra: remove board (but not DT) support for Harmony - [
C 1] ARM: tegra: remove board (but not DT) support for Paz00 - [
C 1] ARM: tegra: remove board (but not DT) support for TrimSlice - [
C 2] ARM: u300: retire ancient platforms - [
C 2] ARM: ux500: Switch to use common clock framework - [
C 1] ARM: vexpress: convert to multi-platform - [
] ARM: virt: Add boot-time diagnostics - [
C] ARM: virt: Add CONFIG_ARM_VIRT_EXT option - [
] ARM: virt: arch_timers: enable access to physical timers - [
D] ARM: virt: Update documentation for hyp mode entry support - [
N1] arm: vt8500: Add device tree files for VIA/Wondermedia SoC's - [
C DN1] ARM: vt8500: Add support for UHCI companion controller - [
N1] arm: vt8500: clk: Add Common Clock Framework support - [
DN1] arm: vt8500: doc: Add device tree bindings for arch-vt8500 devices - [
C N1] arm: vt8500: gpio: Devicetree support for arch-vt8500 - [
C N6] arm: vt8500: Update arch-vt8500 to devicetree support. - [
DN] ARM: vt8500: Update vt8500-ehci driver to support device tree. - [
] ARM: zImage/virt: hyp mode entry support for the zImage loader - [
C] ASoC: tegra: remove support of legacy DMA driver based access - [
DN1] Documentation:Chinese translation of Documentation/arm64/booting.txt - [
DN] Documentation:Chinese translation of Documentation/arm64/memory.txt - [
DN1] Documentation: Chinese translation of Documentation/arm/Booting - [
C] spi: tegra: remove support of legacy DMA driver based access
PPC
- [
N1] powerpc/85xx: add Freescale P5040 SOC and SEC v5.2 device trees - [
C] powerpc/85xx: add HOTPLUG_CPU support - [
C N1] powerpc/85xx: Add support for P5040DS board - [
C N1] powerpc/85xx: introduce support for the Freescale / iVeia P1022RDK - [
1] powerpc/85xx: remove P1020RDB and P2020RDB CAMP device trees - [
C] powerpc: Add denormalisation exception handling for POWER6/7 - [
1] powerpc/eeh: Probe mode support - [
D] powerpc: Update Integrated Flash controller device tree bindings
Various
- [
C] arch/unicore32: remove CONFIG_EXPERIMENTAL - [
C] Blackfin: add bf548 v0.4 revision - [
C 1] CRIS: Remove VCS simulator specific code - [
] Improve atomic.h robustness - [
C] microblaze: Support 4k/16k/64k pages - [
] MIPS: Add base architecture support for RI and XI. - [
N6] MIPS: Add core files for MIPS SEAD-3 development platform. - [
] MIPS: Add detection of DSP ASE Revision 2. - [
] MIPS: Add EIC support for GIC. - [
] MIPS: Add support for the 1074K core. - [
C 2] MIPS: Alchemy: Merge PB1100/1500 support into DB1000 code. - [
C 2] MIPS: Alchemy: merge PB1550 support into DB1550 code - [
C N4] MIPS: Alchemy: Single kernel for DB1200/1300/1550 - [
I] MIPS: ath79: add USB platform setup code for AR934X - [
] MIPS: BCM63XX: add external irq support for BCM6345 - [
1] MIPS: BCM63XX: Add register and IRQ definitions for USB 2.0 device - [
N] MIPS: BCM63XX: Create platform_device for USBD - [
CI N] MIPS: Changes to configuration files for SEAD-3 platform. - [
C] MIPS: introduce CPU_GENERIC_DUMP_TLB - [
C] MIPS: introduce CPU_R4K_CACHE_TLB - [
C] MIPS: introduce CPU_R4K_FPU - [
1] MIPS: JZ4740: Export timer API - [
] MIPS: Make GIC code platform independent. - [
C 2] MIPS: MIPSsim: Remove the MIPSsim platform. - [
C 1] MIPS: MT: Remove kspd. - [
C N] MIPS: Netlogic: Add support for built in DTB - [
] MIPS: OCTEON: Add detection of cnf71xx parts. - [
N] MIPS: OCTEON: Add register definitions for SPI host hardware. - [
2] MIPS: OCTEON: Add support for cn68XX interrupt controller. - [
1] MIPS: Octeon: Make interrupt controller work with threaded handlers. - [
N9] MIPS: OCTEON: Update register definitions. - [
] MIPS: Optimise TLB handlers for MIPS32/64 R2 cores. - [
] MIPS: Optimize pgd_init and pmd_init - [
] MIPS: Optimize TLB refill for RI/XI configurations. - [
] MIPS: perf: Add cpu feature bit for PCI (performance counter interrupt) - [
] MIPS: perf: Add perf functionality for BMIPS5000 - [
C] MIPS: perf: Split the Kconfig option CONFIG_MIPS_MT_SMP - [
N] s390: add eadm facility bits - [
N] s390: add eadm related structures - [
C N1] s390: add scm block driver - [
C N] s390: add scm bus driver - [
N1] s390: add support for runtime instrumentation - [
1] s390: add support for transactional memory - [
] s390: add support to start the kernel in 64 bit mode. - [
C N2] s390/bpf,jit: BPF Just In Time compiler for s390 - [
N1] s390/cache: expose cpu cache topology via sysfs - [
C N1] s390/cio: add eadm subchannel driver - [
C] s390/cmpxchg,percpu: implement cmpxchg_double() - [
N1] s390/exceptions: switch to relative exception table entries - [
C N] s390/mm: add page table dumper - [
C N1] s390/scm_block: force cluster writes - [
N1] s390/string: provide asm lib functions for memcpy and memcmp - [
N] s390/zcrypt: Add support for CEX4 crypto card - [
N1] s390/zcryt: Handle AP configuration changes - [
C N3] sparc64: Add AES driver making use of the new aes opcodes. - [
N] sparc64: Add auto-loading mechanism to crypto-opcode drivers. - [
C N2] sparc64: Add CAMELLIA driver making use of the new camellia opcodes. - [
C N] sparc64: Add CRC32C driver making use of the new crc32c opcode. - [
C N2] sparc64: Add DES driver making use of the new des opcodes. - [
] sparc64: Add detection for features new in SPARC-T4. - [
] sparc64: Add hypervisor interfaces for SPARC-T4 perf counter access. - [
C N] sparc64: Add MD5 driver making use of the 'md5' instruction. - [
] sparc64: Add PCR ops for SPARC-T4. - [
C N] sparc64: Add SHA1 driver making use of the 'sha1' instruction. - [
C N] sparc64: Add SHA224/SHA256 driver making use of the 'sha256' instruction. - [
C N1] sparc64: Add SHA384/SHA512 driver making use of the 'sha512' instruction. - [
N1] sparc64: Add SPARC-T4 optimized memcpy. - [
] sparc64: Add SPARC-T4 perf event support. - [
N] sparc64: Niagara-4 bzero/memset, plus use MRU stores in page copy. - [
C 1] sparc64: Only support 4MB huge pages and 8KB base pages. - [
] sparc64: Support 2GB and 16GB page sizes for kernel linear mappings. - [
3] sparc64: Support transparent huge pages. - [
N9] UAPI: (Scripted) Disintegrate arch/mips/include/asm - [
C 1] xtensa: adopt generic io routines - [
C] xtensa: drop CONFIG_EMBEDDED_RAMDISK
Platform and low-level drivers
- [
1] charger-manager: Add support sysfs entry for charger - [
] charger-manager: Support limit of maximum possible - [
C] char/misc: remove CONFIG_EXPERIMENTAL dependencies - [
DN8] Chinese translation of Documentation/gpio.txt - [
N] clk: add Loongson1B clock support - [
C N1] clk: convert ARM RealView to common clk - [
N1] clk: mmp: add clock definition for mmp2 - [
N1] clk: mmp: add clock definition for pxa168 - [
N1] clk: mmp: add clock definition for pxa910 - [
N1] clk: mmp: add mmp specific clocks - [
DN] clk: mxs: replace imx23 clk_register_clkdev with clock DT lookup - [
DN1] clk: mxs: replace imx28 clk_register_clkdev with clock DT lookup - [
N] clk: ux500: First version of clock definitions for ux500 - [
C] clk: versatile: make config option boolean - [
C N] clock: max77686: Add driver for Maxim 77686 32Khz crystal oscillator. - [
DN] devicetree: serial: Add documentation for imx serial - [
DN] Documentation: add description of DT binding for the gpio-mvebu driver - [
D] Documentation: Add the AB8500 CODEC device to the MFD AB8500 doc - [
DN] Documentation: Define the MOP500 Audio Machine Driver Device Tree bindings - [
DN] Documentation: Define the MSP Driver Device Tree bindings - [
D] documentation: dt: bindings: cpsw: fixing the examples for directly using it in dts file - [
DN] Documentation: dt: device tree bindings for LPDDR2 memories - [
DN] Documentation: dt: emif: device tree bindings for TI's EMIF sdram controller - [
D] Documentation: dt: i2c: trivial-devices: Update for tmp102 - [
D] Documentation: dt: Update the OMAP documentation with Overo/Toby - [
D 1] Documentation: Fixes some translation error in Documentation/zh_CN/gpio.txt - [
DN] Document: devicetree: add OF documents for lantiq falcon pinctrl - [
DN] Document: devicetree: add OF documents for lantiq xway pinctrl - [
N] drivers: bus: ocp2scp: add pdata support - [
DN1] drivers/misc/lis3lv02d: add generic DT matching code - [
D] drivers/misc/lis3lv02d/lis3lv02d_i2c.c: add lis3lv02d device tree init - [
] drivers/rtc/rtc-isl1208.c: add support for the ISL1218 - [
N9] dtc: import latest upstream dtc - [
D] dt: Document: correct tegra20/30 pinctrl slew-rate name - [
DN] dt: Document general interrupt controller bindings - [
DN] dt/misc: add bindings documentation for ifm camera sensor interface - [
DN] gpio: 74x164: dts: Add documentation for the dt binding - [
C DN1] gpio: Add Avionic Design N-bit GPIO expander support - [
C N] gpio: Add basic support for TWL6040 GPOs - [
D] gpio: adnp: dt: Reference generic interrupt binding - [
C N2] gpio: introduce gpio-mvebu driver for Marvell SoCs - [
D] gpio: samsung: add devicetree init for s3c24xx arches - [
D] gpio: samsung: Update documentation - [
D] gpio/twl4030: get platform data from device tree - [
C N3] leds: Add new LED driver for lm355x chips - [
C N1] leds: Add new LED driver for lm3642 chips - [
N] leds: add output driver configuration for pca9633 led driver - [
] leds-clevo-mail: add MODULE_DEVICE_TABLE - [
] leds: leds-gpio: adopt pinctrl support - [
D] leds-lp5523: add channel name in the platform data - [
] leds-lp5523: add new device id for LP55231 - [
C] leds-lp5523: support new LP55231 device - [
N1] memory: emif: add device tree support to emif driver - [
DN1] mfd: 88pm860x: Device tree support - [
C N2] mfd: Add lp8788 mfd driver - [
C DN2] mfd: Add MAX8907 core driver - [
C DN] mfd: Add syscon driver based on regmap - [
C N4] mfd: DA9055 core driver - [
D] mfd: dt: tps6586x: Add power off control - [
D] mfd: dt: tps65910: Add power off control - [
I] mfd: lpc_ich: Add Device IDs for Intel Lynx Point-LP PCH - [
D] mfd: max8907: Add power off control - [
C N1] mfd: omap-usb-tll: HOST TLL platform driver - [
] mfd: palmas: Add device tree handling to mfd - [
] mfd: palmas: Add pdata/data for rest of children - [
C DN1] mfd: smsc: Add support for smsc gpio io/keypad driver - [
DN] mfd: twl4030-audio: Add DT support - [
DN] mfd: twl4030-audio: Add DT support - [
D] mfd: twl6040: Add twl6040-gpio child - [
] mfd: wm5110: Add register patches for revision B - [
D] misc/at25, dt: Improve at25 SPI eeprom device tree bindings. - [
DN] mmc: atmel-mci: add device tree support - [
D] mmc: dt: Add card-detection properties to core binding. - [
DN] mmc: dw_mmc: add device tree support - [
C DN1] mmc: dw_mmc: add support for exynos specific implementation of dw-mshc - [
] mmc: eSDHC: Add ADMA mode support - [
DN] mmc: pxa-mci: add DT bindings - [
DN] mmc: sdhci-dove: DT support for sdhci-dove - [
DN1] mmc: sdhci-s3c: Add device tree support - [
D] mmc: sdhci-spear: Add clk_{un}prepare() support - [
DN] mmc: sdhci-spear: add device tree bindings - [
1] mmc: support BKOPS feature for eMMC - [
] mtd: add JEDEC ID for w25q32dw to chip table - [
C DN3] mtd: add LPC32xx MLC NAND driver - [
C DN3] mtd: add LPC32xx SLC NAND driver - [
D] mtd: at91: add dt parameters for Atmel PMECC - [
2] mtd: at91: atmel_nand: add Programmable Multibit ECC controller support - [
C] mtd: autcpu12-nvram: Convert driver to platform_device - [
C N] mtd: basic (read only) driver for BCMA serial flash - [
C N] mtd: bcm47part driver for BCM47XX chipsets - [
C] mtd: delete SBC82xx/SBC8560 MTD mapping support - [
D] mtd: gpmi: add on-flash BBT support for gpmi nand - [
C 3] mtd: kill MTD_NAND_VERIFY_WRITE - [
C N] mtd: lantiq: Add NAND support on Lantiq XWAY SoC. - [
N] mtd: lpc32xx_mlc: Make driver independent of AMBA DMA engine driver - [
N] mtd: lpc32xx_slc: Make driver independent of AMBA DMA engine driver - [
] mtd: m25p80: Add support for Atmel at45db081d - [
] mtd: m25p80: Add support for m25pe20 - [
] mtd: m25p80: add support for Micron N25Q128 - [
] mtd: m25p80: add support for Micron N25Q256A - [
] mtd: m25p80: Add support for serial flash STM/Micron N25Q032 - [
] mtd: m25p80: add support for Spansion s25sl064p chip - [
] mtd: m25p80: add support for the EON EN25Q64 chip - [
] mtd: mxc_nand: add i.MX53 support - [
] mtd: nand: Added a device flag for subpage read support - [
DN] mtd: nand: davinci: add OF support for davinci nand controller - [
D] mtd: nand: remove NAND_BBT_SEARCH option - [
D] mtd: physmap_of: Add "no-unaligned-direct-access" DT property - [
DN] MTD: pxa3xx-nand: add devicetree bindings - [
C 3] mtd: remove bcmring NAND driver - [
N1] mtd: tests: test for multi-bit error correction - [
C N1] OF: pinctrl: MIPS: lantiq: adds support for FALCON SoC - [
C N4] OF: pinctrl: MIPS: lantiq: implement lantiq/xway pinctrl support - [
DN] onewire: w1-gpio: add DT bindings - [
C DN3] pinctrl: add bcm2835 driver - [
C N2] pinctrl: add exynos4210 specific extensions for samsung pinctrl driver - [
C DN4] pinctrl: add samsung pinctrl and gpiolib driver - [
D] pinctrl: document semantics vs GPIO - [
C DN2] pinctrl: mvebu: add pinctrl driver for Armada 370 - [
C DN2] pinctrl: mvebu: add pinctrl driver for Armada XP - [
C DN2] pinctrl: mvebu: dove pinctrl driver - [
C DN3] pinctrl: mvebu: kirkwood pinctrl driver - [
C DN3] pinctrl: mvebu: pinctrl driver core - [
C N4] pinctrl/nomadik: add ASIC DB8450 pinctrl driver - [
C N1] pinctrl/nomadik: add STn8815 ASIC support - [
C DN9] pinctrl: pinctrl-imx: add imx35 pinctrl driver - [
D] pinctrl: pinctrl-single: Add pinctrl-single,bits type of mux - [
N1] pinctrl: sirf: add DT-binding pinmux mapping support - [
C N2] power_supply: Add new lp8788 charger driver - [
D] power_supply: Add new power supply AUTHENTIC property - [
D] power_supply: Add new power supply properties CHARGE_CURRENT/VOLTAGE_MAX - [
C N5] power_supply: Enable battery-charger for 88pm860x - [
D] ptp: clarify the clock_name sysfs attribute - [
D] pwm: add devm_pwm_get() and devm_pwm_put() - [
C N1] pwm: Add Ingenic JZ4740 support - [
] pwm: Add support for configuring the PWM polarity - [
D] pwm: dt: Fix description of second PWM cell - [
DN] pwm: i.MX: add devicetree support - [
] pwm: i.MX: add functions to enable/disable pwm. - [
C] pwm: Move AB8500 PWM driver to PWM framework - [
C N1] pwm: Move PUV3 PWM driver to PWM framework - [
C] pwm: Move TWL6030 PWM driver to PWM framework - [
] pwm: pwm-tiecap: Add support for configuring polarity of PWM - [
] pwm: pwm-tiehrpwm: Add support for configuring polarity of PWM - [
] regulator: 88pm860x: Add pre-regulator support for 88pm860x regulator - [
C N1] regulator: add MAX8907 driver - [
D] regulator: core: Support bypass mode - [
D] regulator: deprecate regulator-compatible DT property - [
C N1] regulator: Fairchild fan53555 support - [
] regulator: palmas: Add DT support - [
D] regulator: tps65217.txt: remove regulator-compatible from DT docs - [
D 1] regulator: tps6586x: add support for SYS rail - [
D] regulator: tps6586x: remove regulator-compatible from DT docs - [
C N] rtc: add Dallas DS2404 driver - [
DN] RTC: add DT bindings to pxa-rtc - [
C N] rtc: add MAX8907 RTC driver - [
C D] rtc-proc: permit the /proc/driver/rtc device to use other devices - [
C N1] rtc: rc5t583: add ricoh rc5t583 RTC driver - [
C DN1] rtc: snvs: add Freescale rtc-snvs driver - [
C N1] rtc: tps65910: add RTC driver for TPS65910 PMIC RTC - [
C DN2] serial: Add driver for LPC32xx High Speed UARTs - [
C N9] serial: New serial driver MAX310X - [
C N3] serial: New serial driver SCCNXP - [
D] serial/of-serial: Add LPC3220 standard UART compatible string - [
C DN1] spi: Add SPI master controller for OCTEON SOCs. - [
D] spi/dt: DT bindings documentation: "num-cs" property for SPI controllers - [
C DN1] spi: Master driver for NXP SC18IS602/603 - [
C N1] spi/mxs: Add SPI driver for mx233/mx28 - [
DN] spi/mxs: Add SSP/SPI device tree documentation - [
D] spi/mxs: Make the SPI block clock speed configurable via DT - [
D] spi/pl022: Add devicetree support - [
D] spi/pl022: Devicetree support w/o platform data - [
C 2] spi: remove completely broken Tegra driver - [
DN] spi: spi-gpio: Add DT bindings - [
D] tty: of_serial: add no-loopback-test property - [
C N1] tty/serial: Add kgdb_nmi driver - [
C] tty/serial: put (EXPERIMENTAL) marking back on N_GSM and SERIAL_IFX6X60 - [
C] tty/serial: remove CONFIG_EXPERIMENTAL dependencies - [
D] tty: uartclk value from serial_core exposed to sysfs
Ein "C" im Bereich "[ ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "I" ausgezeichneten Patches rüsten neue PCI- oder USB-IDs nach; jene mit "D" verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: Eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Patches mit einer "9" sind 90 KByte oder größer.
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl) (thl)