12 Feb, 2019

2 commits

  • ARM/MP: 814220—B-Cache maintenance by set/way operations can execute out of order.

    Description:
    The v7 ARM states that all cache and branch predictor maintenance operations
    that do not specify an address execute, relative to each other, in program
    order. However, because of this erratum, an L2 set/way cache maintenance
    operation can overtake an L1 set/way cache maintenance operation, this would
    cause the data corruption.

    This ERRATA affected the Cortex-A7 and present in r0p2, r0p3, r0p4, r0p5.

    This patch is the SW workaround by adding a DSB before changing cache levels as
    the ARM ERRATA: ARM/MP: 814220 told in the ARM ERRATA documentation.

    Signed-off-by: Jason Liu
    (cherry picked from commit 0e9a87bbd4f7d1c48e42c65aa94939a7283599dd)

    Conflicts:
    arch/arm/mach-imx/Kconfig

    Jason Liu
     
  • Need increase the FORCE_MAX_ZONEORDER to 14 for high resolution camera
    (GPU 2D user case). The default value 11(4MB) is not enough now.

    Signed-off-by: Jason Liu
    (cherry picked from commit fff642ffe868cb55f5caec0501e36fd28b6ece50)

    Xianzhong
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

12 Sep, 2017

1 commit

  • Pull ARM updates from Russell King:
    "Low priority fixes and updates for ARM:

    - add some missing includes

    - efficiency improvements in system call entry code when tracing is
    enabled

    - ensure ARMv6+ is always built as EABI

    - export save_stack_trace_tsk()

    - fix fatal signal handling during mm fault

    - build translation table base address register from scratch

    - appropriately align the .data section to a word boundary where we
    rely on that data being word aligned"

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8691/1: Export save_stack_trace_tsk()
    ARM: 8692/1: mm: abort uaccess retries upon fatal signal
    ARM: 8690/1: lpae: build TTB control register value from scratch in v7_ttb_setup
    ARM: align .data section
    ARM: always enable AEABI for ARMv6+
    ARM: avoid saving and restoring registers unnecessarily
    ARM: move PC value into r9
    ARM: obtain thread info structure later
    ARM: use aliases for registers in entry-common
    ARM: 8689/1: scu: add missing errno include
    ARM: 8688/1: pm: add missing types include

    Linus Torvalds
     

23 Aug, 2017

1 commit

  • The JIT compiler emits ARM 32 bit instructions. Currently, It supports
    eBPF only. Classic BPF is supported because of the conversion by BPF core.

    This patch is essentially changing the current implementation of JIT compiler
    of Berkeley Packet Filter from classic to internal with almost all
    instructions from eBPF ISA supported except the following
    BPF_ALU64 | BPF_DIV | BPF_K
    BPF_ALU64 | BPF_DIV | BPF_X
    BPF_ALU64 | BPF_MOD | BPF_K
    BPF_ALU64 | BPF_MOD | BPF_X
    BPF_STX | BPF_XADD | BPF_W
    BPF_STX | BPF_XADD | BPF_DW

    Implementation is using scratch space to emulate 64 bit eBPF ISA on 32 bit
    ARM because of deficiency of general purpose registers on ARM. Currently,
    only LITTLE ENDIAN machines are supported in this eBPF JIT Compiler.

    Tested on ARMv7 with QEMU by me (Shubham Bansal).

    Testing results on ARMv7:

    1) test_bpf: Summary: 341 PASSED, 0 FAILED, [312/333 JIT'ed]
    2) test_tag: OK (40945 tests)
    3) test_progs: Summary: 30 PASSED, 0 FAILED
    4) test_lpm: OK
    5) test_lru_map: OK

    Above tests are all done with following flags enabled discreatly.

    1) bpf_jit_enable=1
    a) CONFIG_FRAME_POINTER enabled
    b) CONFIG_FRAME_POINTER disabled
    2) bpf_jit_enable=1 and bpf_jit_harden=2
    a) CONFIG_FRAME_POINTER enabled
    b) CONFIG_FRAME_POINTER disabled

    See Documentation/networking/filter.txt for more information.

    Signed-off-by: Shubham Bansal
    Signed-off-by: David S. Miller

    Shubham Bansal
     

02 Aug, 2017

1 commit

  • Always enable AEABI for ARMv6+, as these use the double-word exclusives
    which must be passed an even register to avoid errors such as:

    /tmp/ccG2rCwe.s:905: Error: even register required -- `ldrexd r5,r6,[r7]'
    /tmp/ccG2rCwe.s:909: Error: even register required -- `strexd sl,r3,r4,[r7]'

    Signed-off-by: Russell King

    Russell King
     

28 Jul, 2017

1 commit

  • Just like ARCH_MULTIPLATFORM, we want to use ARM_PATCH_PHYS_VIRT
    when possible, but that fails for NOMMU or XIP_KERNEL configurations.
    Using 'imply' instead of 'select' gets this right and only uses
    the symbol when we don't have to hardcode the address anyway.

    Signed-off-by: Arnd Bergmann
    Acked-by: Alexander Sverdlin

    Arnd Bergmann
     

09 Jul, 2017

1 commit

  • Pull ARM updates from Russell King:

    - add support for ftrace-with-registers, which is needed for kgraft and
    other ftrace tools

    - support for mremap() for the sigpage/vDSO so that checkpoint/restore
    can work

    - add timestamps to each line of the register dump output

    - remove the unused KTHREAD_SIZE from nommu

    - align the ARM bitops APIs with the generic API (using unsigned long
    pointers rather than void pointers)

    - make the configuration of userspace Thumb support an expert option so
    that we can default it on, and avoid some hard to debug userspace
    crashes

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8684/1: NOMMU: Remove unused KTHREAD_SIZE definition
    ARM: 8683/1: ARM32: Support mremap() for sigpage/vDSO
    ARM: 8679/1: bitops: Align prototypes to generic API
    ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS
    ARM: make configuration of userspace Thumb support an expert option
    ARM: 8673/1: Fix __show_regs output timestamps

    Linus Torvalds
     

07 Jul, 2017

1 commit

  • Pull dma-mapping infrastructure from Christoph Hellwig:
    "This is the first pull request for the new dma-mapping subsystem

    In this new subsystem we'll try to properly maintain all the generic
    code related to dma-mapping, and will further consolidate arch code
    into common helpers.

    This pull request contains:

    - removal of the DMA_ERROR_CODE macro, replacing it with calls to
    ->mapping_error so that the dma_map_ops instances are more self
    contained and can be shared across architectures (me)

    - removal of the ->set_dma_mask method, which duplicates the
    ->dma_capable one in terms of functionality, but requires more
    duplicate code.

    - various updates for the coherent dma pool and related arm code
    (Vladimir)

    - various smaller cleanups (me)"

    * tag 'dma-mapping-4.13' of git://git.infradead.org/users/hch/dma-mapping: (56 commits)
    ARM: dma-mapping: Remove traces of NOMMU code
    ARM: NOMMU: Set ARM_DMA_MEM_BUFFERABLE for M-class cpus
    ARM: NOMMU: Introduce dma operations for noMMU
    drivers: dma-mapping: allow dma_common_mmap() for NOMMU
    drivers: dma-coherent: Introduce default DMA pool
    drivers: dma-coherent: Account dma_pfn_offset when used with device tree
    dma: Take into account dma_pfn_offset
    dma-mapping: replace dmam_alloc_noncoherent with dmam_alloc_attrs
    dma-mapping: remove dmam_free_noncoherent
    crypto: qat - avoid an uninitialized variable warning
    au1100fb: remove a bogus dma_free_nonconsistent call
    MAINTAINERS: add entry for dma mapping helpers
    powerpc: merge __dma_set_mask into dma_set_mask
    dma-mapping: remove the set_dma_mask method
    powerpc/cell: use the dma_supported method for ops switching
    powerpc/cell: clean up fixed mapping dma_ops initialization
    tile: remove dma_supported and mapping_error methods
    xen-swiotlb: remove xen_swiotlb_set_dma_mask
    arm: implement ->dma_supported instead of ->set_dma_mask
    mips/loongson64: implement ->dma_supported instead of ->set_dma_mask
    ...

    Linus Torvalds
     

05 Jul, 2017

2 commits

  • Russell King
     
  • Pull ARM SoC platform updates from Arnd Bergmann:
    "SoC platform changes (arch/arm/mach-*). This merge window, the bulk is
    for a few platforms:

    - Andres Färber adds initial support for the Actions Semi S500 (aka
    'owl') platform, a close relative of the S900 platform he adds for
    arm64.

    - in mach-omap2, we remove more legacy code

    - Rockchips gains support for the RV1108 SoC designed for camera
    applications.

    - For Atmel, we gain support for MMU-less SoCs (SAME70/V71/S70/V70)

    - Minor updates for other platforms, including davinci, s3c64xx,
    prima2, stm32, broadcom nsp, amlogic, pxa, imx and renesas"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (74 commits)
    ARM: owl: smp: Drop bogus holding pen
    ARM: owl: Drop custom machine
    ARM: owl: smp: Implement SPS power-gating for CPU2 and CPU3
    soc: actions: owl-sps: Factor out owl_sps_set_pg() for power-gating
    soc: actions: Add Owl SPS
    dt-bindings: power: Add Owl SPS power domains
    MAINTAINERS: Update Actions Semi section with SPS
    ARM: owl: Implement CPU enable-method for S500
    MAINTAINERS: Add Actions Semi Owl section
    ARM: Prepare Actions Semi S500
    ARM: socfpga: Increase max number of GPIOs
    ARM: stm32: Introduce MACH_STM32F469 flag
    ARM: prima2: remove redundant select CPU_V7
    ARM: davinci: fix const warnings
    ARM: shmobile: pm-rmobile: Use GENPD_FLAG_ALWAYS_ON
    ARM: OMAP4: hwmod_data: add SHAM crypto accelerator
    ARM: OMAP4: hwmod data: add des
    ARM: OMAP4: hwmod data: add aes2
    ARM: OMAP4: hwmod data: add aes1
    ARM: pxa: Delete an error message for a failed memory allocation in pxa3xx_u2d_probe()
    ...

    Linus Torvalds
     

04 Jul, 2017

4 commits

  • Pull driver core updates from Greg KH:
    "Here is the big driver core update for 4.13-rc1.

    The large majority of this is a lot of cleanup of old fields in the
    driver core structures and their remaining usages in random drivers.
    All of those fixes have been reviewed by the various subsystem
    maintainers. There's also some small firmware updates in here, a new
    kobject uevent api interface that makes userspace interaction easier,
    and a few other minor things.

    All of these have been in linux-next for a long while with no reported
    issues"

    * tag 'driver-core-4.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (56 commits)
    arm: mach-rpc: ecard: fix build error
    zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()
    driver-core: remove struct bus_type.dev_attrs
    powerpc: vio_cmo: use dev_groups and not dev_attrs for bus_type
    powerpc: vio: use dev_groups and not dev_attrs for bus_type
    USB: usbip: convert to use DRIVER_ATTR_RW
    s390: drivers: convert to use DRIVER_ATTR_RO/WO
    platform: thinkpad_acpi: convert to use DRIVER_ATTR_RO/RW
    pcmcia: ds: convert to use DRIVER_ATTR_RO
    wireless: ipw2x00: convert to use DRIVER_ATTR_RW
    net: ehea: convert to use DRIVER_ATTR_RO
    net: caif: convert to use DRIVER_ATTR_RO
    TTY: hvc: convert to use DRIVER_ATTR_RW
    PCI: pci-driver: convert to use DRIVER_ATTR_WO
    IB: nes: convert to use DRIVER_ATTR_RW
    HID: hid-core: convert to use DRIVER_ATTR_RO and drv_groups
    arm: ecard: fix dev_groups patch typo
    tty: serdev: use dev_groups and not dev_attrs for bus_type
    sparc: vio: use dev_groups and not dev_attrs for bus_type
    hid: intel-ish-hid: use dev_groups and not dev_attrs for bus_type
    ...

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "A rather large update for timers/timekeeping:

    - compat syscall consolidation (Al Viro)

    - Posix timer consolidation (Christoph Helwig / Thomas Gleixner)

    - Cleanup of the device tree based initialization for clockevents and
    clocksources (Daniel Lezcano)

    - Consolidation of the FTTMR010 clocksource/event driver (Linus
    Walleij)

    - The usual set of small fixes and updates all over the place"

    * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (93 commits)
    timers: Make the cpu base lock raw
    clocksource/drivers/mips-gic-timer: Fix an error code in 'gic_clocksource_of_init()'
    clocksource/drivers/fsl_ftm_timer: Unmap region obtained by of_iomap
    clocksource/drivers/tcb_clksrc: Make IO endian agnostic
    clocksource/drivers/sun4i: Switch to the timer-of common init
    clocksource/drivers/timer-of: Fix invalid iomap check
    Revert "ktime: Simplify ktime_compare implementation"
    clocksource/drivers: Fix uninitialized variable use in timer_of_init
    kselftests: timers: Add test for frequency step
    kselftests: timers: Fix inconsistency-check to not ignore first timestamp
    time: Add warning about imminent deprecation of CONFIG_GENERIC_TIME_VSYSCALL_OLD
    time: Clean up CLOCK_MONOTONIC_RAW time handling
    posix-cpu-timers: Make timespec to nsec conversion safe
    itimer: Make timeval to nsec conversion range limited
    timers: Fix parameter description of try_to_del_timer_sync()
    ktime: Simplify ktime_compare implementation
    clocksource/drivers/fttmr010: Factor out clock read code
    clocksource/drivers/fttmr010: Implement delay timer
    clocksource/drivers: Add timer-of common init routine
    clocksource/drivers/tcb_clksrc: Save timer context on suspend/resume
    ...

    Linus Torvalds
     
  • Pull x86 mm updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Continued work to add support for 5-level paging provided by future
    Intel CPUs. In particular we switch the x86 GUP code to the generic
    implementation. (Kirill A. Shutemov)

    - Continued work to add PCID CPU support to native kernels as well.
    In this round most of the focus is on reworking/refreshing the TLB
    flush infrastructure for the upcoming PCID changes. (Andy
    Lutomirski)"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
    x86/mm: Delete a big outdated comment about TLB flushing
    x86/mm: Don't reenter flush_tlb_func_common()
    x86/KASLR: Fix detection 32/64 bit bootloaders for 5-level paging
    x86/ftrace: Exclude functions in head64.c from function-tracing
    x86/mmap, ASLR: Do not treat unlimited-stack tasks as legacy mmap
    x86/mm: Remove reset_lazy_tlbstate()
    x86/ldt: Simplify the LDT switching logic
    x86/boot/64: Put __startup_64() into .head.text
    x86/mm: Add support for 5-level paging for KASLR
    x86/mm: Make kernel_physical_mapping_init() support 5-level paging
    x86/mm: Add sync_global_pgds() for configuration with 5-level paging
    x86/boot/64: Add support of additional page table level during early boot
    x86/boot/64: Rename init_level4_pgt and early_level4_pgt
    x86/boot/64: Rewrite startup_64() in C
    x86/boot/compressed: Enable 5-level paging during decompression stage
    x86/boot/efi: Define __KERNEL32_CS GDT on 64-bit configurations
    x86/boot/efi: Fix __KERNEL_CS definition of GDT entry on 64-bit configurations
    x86/boot/efi: Cleanup initialization of GDT entries
    x86/asm: Fix comment in return_from_SYSCALL_64()
    x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation
    ...

    Linus Torvalds
     
  • Pull EFI updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Rework the EFI capsule loader to allow for workarounds for
    non-compliant firmware (Ard Biesheuvel)

    - Implement a capsule loader quirk for Quark X102x (Jan Kiszka)

    - Enable SMBIOS/DMI support for the ARM architecture (Ard Biesheuvel)

    - Add CONFIG_EFI_PGT_DUMP=y support for x86-32 and kexec (Sai
    Praneeth)

    - Fixes for EFI support for Xen dom0 guests running under x86-64
    hosts (Daniel Kiper)"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/xen/efi: Initialize only the EFI struct members used by Xen
    efi: Process the MEMATTR table only if EFI_MEMMAP is enabled
    efi/arm: Enable DMI/SMBIOS
    x86/efi: Extend CONFIG_EFI_PGT_DUMP support to x86_32 and kexec as well
    efi/efi_test: Use memdup_user() helper
    efi/capsule: Add support for Quark security header
    efi/capsule-loader: Use page addresses rather than struct page pointers
    efi/capsule-loader: Redirect calls to efi_capsule_setup_info() via weak alias
    efi/capsule: Remove NULL test on kmap()
    efi/capsule-loader: Use a cached copy of the capsule header
    efi/capsule: Adjust return type of efi_capsule_setup_info()
    efi/capsule: Clean up pr_err/_info() messages
    efi/capsule: Remove pr_debug() on ENOMEM or EFAULT
    efi/capsule: Fix return code on failing kmap/vmap

    Linus Torvalds
     

01 Jul, 2017

1 commit

  • R/M classes of cpus can have memory covered by MPU which in turn might
    configure RAM as Normal i.e. bufferable and cacheable. It breaks
    dma_alloc_coherent() and friends, since data can stuck in caches now
    or be buffered.

    This patch factors out DMA support for NOMMU configuration into
    separate entity which provides dedicated dma_ops. We have to handle
    there several cases:
    - configurations with MMU/MPU setup
    - configurations without MMU/MPU setup
    - special case for M-class, since caches and MPU there are optional

    In general we rely on default DMA area for coherent allocations or/and
    per-device memory reserves suitable for coherent DMA, so if such
    regions are set coherent allocations go from there.

    In case MMU/MPU was not setup we fallback to normal page allocator for
    DMA memory allocation.

    In case we run M-class cpus, for configuration without cache support
    (like Cortex-M3/M4) dma operations are forced to be coherent and wired
    with dma-noop (such decision is made based on cacheid global
    variable); however, if caches are detected there and no DMA coherent
    region is given (either default or per-device), dma is disallowed even
    MPU is not set - it is because M-class implement system memory map
    which defines part of address space as Normal memory.

    Reported-by: Alexandre Torgue
    Reported-by: Andras Szemzo
    Tested-by: Benjamin Gaignard
    Tested-by: Andras Szemzo
    Tested-by: Alexandre TORGUE
    Reviewed-by: Robin Murphy
    Signed-off-by: Vladimir Murzin
    Acked-by: Arnd Bergmann
    Acked-by: Russell King
    [hch: removed the dma_supported() implementation that isn't required anymore]
    Signed-off-by: Christoph Hellwig

    Vladimir Murzin
     

29 Jun, 2017

1 commit

  • …l/git/afaerber/linux-actions into next/soc

    Pull "Actions Semi ARM SoC for v4.13" from Andreas Färber:

    This adds a Kconfig symbol and mach-actions with board and SMP code,
    plus a MAINTAINERS entry.

    * tag 'actions-arm-soc-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/afaerber/linux-actions:
    MAINTAINERS: Update Actions Semi section with SPS
    ARM: owl: Implement CPU enable-method for S500
    MAINTAINERS: Add Actions Semi Owl section
    ARM: Prepare Actions Semi S500

    Arnd Bergmann
     

22 Jun, 2017

1 commit


21 Jun, 2017

1 commit


19 Jun, 2017

1 commit

  • The DYNAMIC_FTRACE_WITH_REGS configuration makes it possible for a
    ftrace operation to specify if registers need to saved/restored by
    the ftrace handler. This is needed by kgraft and possibly other
    ftrace-based tools, and the ARM architecture is currently lacking
    this feature. It would also be the first step to support the
    "Kprobes-on-ftrace" optimization on ARM.

    This patch introduces a new ftrace handler that stores the registers
    on the stack before calling the next stage. The registers are restored
    from the stack before going back to the instrumented function.

    A side-effect of this patch is to activate the support for
    ftrace_modify_call() as it defines ARCH_SUPPORTS_FTRACE_OPS for the
    ARM architecture.

    Signed-off-by: Abel Vesa
    Signed-off-by: Russell King

    Abel Vesa
     

14 Jun, 2017

1 commit


13 Jun, 2017

1 commit

  • This patch provides all required callbacks required by the generic
    get_user_pages_fast() code and switches x86 over - and removes
    the platform specific implementation.

    Signed-off-by: Kirill A. Shutemov
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Dave Hansen
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Josh Poimboeuf
    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20170606113133.22974-2-kirill.shutemov@linux.intel.com
    Signed-off-by: Ingo Molnar

    Kirill A. Shutemov
     

12 Jun, 2017

1 commit

  • When both enable CONFIG_ARM_LPAE=y and CONFIG_VMSPLIT_3G_OPT=y, which
    means use PAGE_OFFSET=0xB0000000 with ARM_LPAE, the kernel will boot
    fail and stop after uncompressed:

    Starting kernel ...

    Uart base = 0x20001000
    watchdog reg = 0x20013000
    dtb addr = 0x80840308
    Uncompressing Linux... done, booting the kernel.

    For ARM_LPAE only support 3:1, 2:2, 1:3 split of TTBR1, which mention in:
    http://elinux.org/images/6/6a/Elce11_marinas.pdf - p16

    So we should make VMSPLIT_3G_OPT depends on !ARM_LPAE to avoid trigger
    this bug.

    Acked-by: Nicolas Pitre
    Signed-off-by: Yisheng Xie
    Signed-off-by: Russell King

    Yisheng Xie
     

05 Jun, 2017

1 commit

  • Wire up the existing arm64 support for SMBIOS tables (aka DMI) for ARM as
    well, by moving the arm64 init code to drivers/firmware/efi/arm-runtime.c
    (which is shared between ARM and arm64), and adding a asm/dmi.h header to
    ARM that defines the mapping routines for the firmware tables.

    This allows userspace to access these tables to discover system information
    exposed by the firmware. It also sets the hardware name used in crash
    dumps, e.g.:

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = ed3c0000
    [00000000] *pgd=bf1f3835
    Internal error: Oops: 817 [#1] SMP THUMB2
    Modules linked in:
    CPU: 0 PID: 759 Comm: bash Not tainted 4.10.0-09601-g0e8f38792120-dirty #112
    Hardware name: QEMU KVM Virtual Machine, BIOS 0.0.0 02/06/2015
    ^^^

    NOTE: This does *NOT* enable or encourage the use of DMI quirks, i.e., the
    the practice of identifying the platform via DMI to decide whether
    certain workarounds for buggy hardware and/or firmware need to be
    enabled. This would require the DMI subsystem to be enabled much
    earlier than we do on ARM, which is non-trivial.

    Signed-off-by: Ard Biesheuvel
    Acked-by: Russell King
    Cc: Linus Torvalds
    Cc: Matt Fleming
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/20170602135207.21708-14-ard.biesheuvel@linaro.org
    Signed-off-by: Ingo Molnar

    Ard Biesheuvel
     

03 Jun, 2017

1 commit

  • arm and arm64 share lot of code relative to parsing CPU capacity
    information from DT, using that information for appropriate scaling and
    exposing a sysfs interface for chaging such values at runtime.

    Factorize such code in a common place (driver/base/arch_topology.c) in
    preparation for further additions.

    Suggested-by: Will Deacon
    Suggested-by: Mark Rutland
    Suggested-by: Catalin Marinas
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Greg Kroah-Hartman
    Signed-off-by: Juri Lelli
    Acked-by: Russell King
    Acked-by: Catalin Marinas
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Greg Kroah-Hartman

    Juri Lelli
     

10 May, 2017

1 commit

  • Pull ARM SoC platform updates from Olof Johansson:
    "SoC platform changes (arch/arm/mach-*). This merge window, the bulk is
    for a few platforms:

    Gemini:
    - Legacy platform that Linus Walleij has converted to multiplatform
    and DT, so a handful of various tweaks there, removal of some old
    stale support, etc.

    Atmel AT91:
    - Fixup of various power management related pieces
    - Move of SoC detection to a drivers/soc driver instead

    ST Micro STM32:
    - New SoC support: STM32H743

    TI platforms:
    - More driver support for Davinci (SATA in particular)
    - Removal of some old stale hwmod files (linkspace platform)

    Misc:
    - A couple of smaller patches for i.MX, sunxi, hisi"

    * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (57 commits)
    ARM: davinci: Add clock for CPPI 4.1 DMA engine
    ARM: mxs: add support for I2SE Duckbill 2 boards
    MAINTAINERS: Update the Allwinner sunXi entry
    ARM: i.MX25: globally disable supervisor protect
    ARM: at91: move SoC detection to its own driver
    ARM: at91: pm: correct typo
    ARM: at91: pm: Remove at91_pm_set_standby
    ARM: at91: pm: Merge all at91sam9*_pm_init
    ARM: at91: pm: Tie the USB clock mask to the pmc
    ARM: at91: pm: Tie the memory controller type to the ramc id
    ARM: at91: pm: Workaround DDRSDRC self-refresh bug with LPDDR1 memories.
    ARM: at91: pm: Simplify at91rm9200_standby
    ARM: at91: pm: Use struct at91_pm_data in pm_suspend.S
    ARM: at91: pm: Move global variables into at91_pm_data
    ARM: at91: pm: Move at91_ramc_read/write to pm.c
    ARM: at91: pm: Cleanup headers
    MAINTAINERS: Add memory drivers to AT91 entry
    MAINTAINERS: Update AT91 entry
    ARM: davinci: add pata_bk3710 libata driver support
    ARM: OMAP2+: mark omap_init_rng as __init
    ...

    Linus Torvalds
     

09 May, 2017

1 commit

  • Pull ARM updates from Russell King:
    "Lots of little things this time:

    - allow modules to be autoloaded according to the HWCAP feature bits
    (used primarily for crypto modules)

    - split module core and init PLT sections, since the core code and
    init code could be placed far apart, and the PLT sections need to
    be local to the code block.

    - three patches from Chris Brandt to allow Cortex-A9 L2 cache
    optimisations to be disabled where a SoC didn't wire up the out of
    band signals.

    - NoMMU compliance fixes, avoiding corruption of vector table which
    is not being used at this point, and avoiding possible register
    state corruption when switching mode.

    - fixmap memory attribute compliance update.

    - remove unnecessary locking from update_sections_early()

    - ftrace fix for DEBUG_RODATA with !FRAME_POINTER"

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
    ARM: 8672/1: mm: remove tasklist locking from update_sections_early()
    ARM: 8671/1: V7M: Preserve registers across switch from Thread to Handler mode
    ARM: 8670/1: V7M: Do not corrupt vector table around v7m_invalidate_l1 call
    ARM: 8668/1: ftrace: Fix dynamic ftrace with DEBUG_RODATA and !FRAME_POINTER
    ARM: 8667/3: Fix memory attribute inconsistencies when using fixmap
    ARM: 8663/1: wire up HWCAP/HWCAP2 feature bits to the CPU modalias
    ARM: 8666/1: mm: dump: Add domain to output
    ARM: 8662/1: module: split core and init PLT sections
    ARM: 8661/1: dts: r7s72100: add l2 cache
    ARM: 8660/1: shmobile: r7s72100: Enable L2 cache
    ARM: 8659/1: l2c: allow CA9 optimizations to be disabled

    Linus Torvalds
     

27 Apr, 2017

2 commits


19 Apr, 2017

1 commit

  • …it/atorgue/stm32 into next/soc

    STM32 SOC updates for v4.12, round 1.

    Highlights:
    ----------
    - Create a dedicated Kconfig for STM32 machine
    - Add support of STM32H743 MCU

    * tag 'stm32-soc-for-v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
    ARM: stm32: Add a new SOC - STM32H743
    ARM: stm32: Introduce MACH_STM32H743 flag
    ARM: stm32: create dedicated kconfig for STM32 machine

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

31 Mar, 2017

1 commit

  • Wire up the generic support for exposing CPU feature bits via the
    modalias in /sys/device/system/cpu. This allows udev to automatically
    load modules for things like crypto algorithms that are implemented
    using optional instructions.

    Since it is non-trivial to transparantly support both HWCAP and HWCAP2
    capabilities in the cpu_feature() macro (which allows a module's hwcap
    dependency and init routine to be declared using a single invocation of
    module_cpu_feature_match()), support only HWCAP2 for now, which covers
    the capabilities that are most likely to be useful in this manner.
    Module dependencies on HWCAP will need to be declared explicitly via a
    MODULE_DEVICE_TABLE(cpu, ...) declaration.

    Signed-off-by: Ard Biesheuvel
    Signed-off-by: Russell King

    Ard Biesheuvel
     

29 Mar, 2017

1 commit


24 Mar, 2017

1 commit


12 Mar, 2017

6 commits

  • This converts the Gemini platform to ARMv4 multiplatform, deleting
    the local include directory, moving an idiomatic local
    idling function into the .machine_init() call and getting rid of
    the Makefile.boot finally.

    Cc: Janos Laube
    Cc: Paulius Zaleckas
    Cc: Hans Ulli Kroll
    Cc: Florian Fainelli
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • This platform survives physical to virtual patching
    without any hickups, and can use AUTO_ZRELADDR.
    We still need to keep Makefile.boot but it is now empty.

    Cc: Janos Laube
    Cc: Paulius Zaleckas
    Cc: Hans Ulli Kroll
    Cc: Florian Fainelli
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • There is no boardfiles or anything else using the fixed IRQs
    anymore, switch the platform to use sparse IRQs and delete
    the header.

    Cc: Janos Laube
    Cc: Paulius Zaleckas
    Cc: Hans Ulli Kroll
    Cc: Florian Fainelli
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • Delete the Gemini boardfiles: we have corresponding, fully-featured
    device trees for all these boards. Delete the referenced include
    files. Delete the local config symbols, especially one for
    "swapped memory", as all supported boards have swapped memory, and
    would a new board be supported this is likely not the right way
    to achieve it anyways. Only the Kconfig options in the central
    arch/arm/Kconfig remains.

    Cc: Janos Laube
    Cc: Paulius Zaleckas
    Cc: Hans Ulli Kroll
    Cc: Florian Fainelli
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • This adds initial and compulsory device tree support to the
    Gemini ARMv4 platform.

    We are selecting a bunch of "absolute minimals" for getting a working
    system up with just device tree:

    - We select USE_OF for natural reasons or nothing works.

    - We select CLKSRC_OF and GEMINI_TIMER so we get timekeeping from
    the clocksource.

    - We select GPIO_GEMINI because these are used as irqchips, and
    for a generic driver it is not reasonable for those to have to
    select every possible irqchip in the world to work, the platform
    should simply provide the available irqchips.

    - We select a UART that can be exprected to work with
    SERIAL_OF_PLATFORM which is the name for an 8250 OF-probed
    serial port.

    - We select the syscon-based reset controller: it's not fun when
    "reboot" doesn't work because of Kconfig, so we just select
    POWER_RESET and POWER_RESET_SYSCON.

    - We perhaps a bit controversiallt select ARM_APPENDED_DTB, because
    this platform is using the ancient RedBoot, and can *NOT* be
    expected to upgrade its bootloaders. Appended device tree is
    simply how these devices have to work with device tree.

    Cc: Janos Laube
    Cc: Paulius Zaleckas
    Cc: Hans Ulli Kroll
    Cc: Florian Fainelli
    Signed-off-by: Linus Walleij

    Linus Walleij
     
  • In order to enable device tree boot on this machine we must first
    convert it to runtime-manage its irq handler, so do this.

    Cc: Janos Laube
    Cc: Paulius Zaleckas
    Cc: Hans Ulli Kroll
    Cc: Florian Fainelli
    Signed-off-by: Linus Walleij

    Linus Walleij
     

01 Mar, 2017

1 commit

  • Pull ARM updates from Russell King:

    - nommu updates from Afzal Mohammed cleaning up the vectors support

    - allow DMA memory "mapping" for nommu Benjamin Gaignard

    - fixing a correctness issue with R_ARM_PREL31 relocations in the
    module linker

    - add strlen() prototype for the decompressor

    - support for DEBUG_VIRTUAL from Florian Fainelli

    - adjusting memory bounds after memory reservations have been
    registered

    - unipher cache handling updates from Masahiro Yamada

    - initrd and Thumb Kconfig cleanups

    * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (23 commits)
    ARM: mm: round the initrd reservation to page boundaries
    ARM: mm: clean up initrd initialisation
    ARM: mm: move initrd init code out of arm_memblock_init()
    ARM: 8655/1: improve NOMMU definition of pgprot_*()
    ARM: 8654/1: decompressor: add strlen prototype
    ARM: 8652/1: cache-uniphier: clean up active way setup code
    ARM: 8651/1: cache-uniphier: include instead of
    ARM: 8650/1: module: handle negative R_ARM_PREL31 addends correctly
    ARM: 8649/2: nommu: remove Hivecs configuration is asm
    ARM: 8648/2: nommu: display vectors base
    ARM: 8647/2: nommu: dynamic exception base address setting
    ARM: 8646/1: mmu: decouple VECTORS_BASE from Kconfig
    ARM: 8644/1: Reduce "CPU: shutdown" message to debug level
    ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol
    ARM: 8640/1: Add support for CONFIG_DEBUG_VIRTUAL
    ARM: 8639/1: Define KERNEL_START and KERNEL_END
    ARM: 8638/1: mtd: lart: Rename partition defines to be prefixed with PART_
    ARM: 8637/1: Adjust memory boundaries after reservations
    ARM: 8636/1: Cleanup sanity_check_meminfo
    ARM: add CPU_THUMB_CAPABLE to indicate possible Thumb support
    ...

    Linus Torvalds