10 May, 2013

1 commit

  • Pull m68knommu updates from Greg Ungerer:
    "The bulk of the changes are generalizing the ColdFire v3 core support
    and adding in 537x CPU support. Also a couple of other bug fixes, one
    to fix a reintroduction of a past bug in the romfs filesystem nommu
    support."

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68knommu: enable Timer on coldfire 532x
    m68knommu: fix ColdFire 5373/5329 QSPI base address
    m68knommu: add support for configuring a Freescale M5373EVB board
    m68knommu: add support for the ColdFire 537x family of CPUs
    m68knommu: make ColdFire M532x platform support more v3 generic
    m68knommu: create and use a common M53xx ColdFire class of CPUs
    m68k: remove unused asm/dbg.h
    m68k: Set ColdFire ACR1 cache mode depending on kernel configuration
    romfs: fix nommu map length to keep inside filesystem
    m68k: clean up unused "config ROMVECSIZE"

    Linus Torvalds
     

29 Apr, 2013

2 commits

  • The ColdFire 537x family is very similar internally to the ColdFire 532x
    family. So with just a little extra configuration we can configure and
    target them as well.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The current CONFIG_M532x support definitions are actually common to a larger
    set of version 3 ColdFire CPU types. In the future we want to add support for
    the 537x family. It is very similar to the 532x internally, and will be able
    to use most of the same definitions.

    Create a CONFIG_M53xx option that is enabled to support any of the common
    532x and 537x CPU types. Convert the current users of CONFIG_M532x to use
    CONFIG_M53xx instead.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     

21 Mar, 2013

1 commit


17 Dec, 2012

1 commit

  • Pull m68knommu updates from Greg Ungerer:
    "This one has a major restructuring of the non-mmu 68000 support.

    It merges all the related SoC types that use the original 68000 cpu
    core internally so they can share the same core code. It also allows
    for supporting the original stand alone 68000 cpu in its own right.

    There is also a generalization of the clock support of the ColdFire
    parts, some merging of common ColdFire code, and a couple of bug fixes
    as well."

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68knommu: modify clock code so it can be used by all ColdFire CPU types
    m68knommu: add clock definitions for 54xx ColdFire CPU types
    m68knommu: add clock definitions for 5407 ColdFire CPU types
    m68knommu: add clock definitions for 5307 ColdFire CPU types
    m68knommu: add clock definitions for 528x ColdFire CPU types
    m68knommu: add clock definitions for 527x ColdFire CPU types
    m68knommu: add clock definitions for 5272 ColdFire CPU types
    m68knommu: add clock definitions for 525x ColdFire CPU types
    m68knommu: add clock definitions for 5249 ColdFire CPU types
    m68knommu: add clock definitions for 523x ColdFire CPU types
    m68knommu: add clock definitions for 5206 ColdFire CPU types
    m68knommu: add clock creation support macro for other ColdFire CPUs
    m68k: fix unused variable warning in mempcy.c
    m68knommu: make non-MMU page_to_virt() return a void *
    m68knommu: merge ColdFire 5249 and 525x definitions
    m68knommu: disable MC68000 cpu target when MMU is selected
    m68knommu: allow for configuration of true 68000 based systems
    m68knommu: platform code merge for 68000 core cpus

    Linus Torvalds
     

05 Dec, 2012

2 commits

  • As pointed out by Geert, MC68000 target needs to be disabled when
    MMU support is enabled.

    From Geert:

    This needs a "depends on !MMU".
    Else allmodconfig will select it, causing -m68000 to be passed to the assembler,
    which may break the build depending on your version of binutils, a.o.

    arch/m68k/kernel/entry.S:186: Error: invalid instruction for this
    architecture; needs 68020 or higher (68020 [68k, 68ec020], 68030
    [68ec030], 68040 [68ec040], 68060 [68ec060]) -- statement `bfextu
    %sp@(50){#0,#4},%d0' ignored
    arch/m68k/kernel/entry.S:211: Error: invalid operand mode for this
    architecture; needs 68020 or higher -- statement `jbsr
    @(sys_call_table,%d0:l:4)@(0)' ignored

    Cfr. http://kisskb.ellerman.id.au/kisskb/buildresult/7416877/

    Signed-off-by: Luis Alves
    Signed-off-by: Greg Ungerer

    Luis Alves
     
  • Allow the M68000 option to be user configurable, for systems based on
    the original stand alone 68000 CPU.

    Signed-off-by: Luis Alves
    Signed-off-by: Greg Ungerer

    Luis Alves
     

14 Nov, 2012

1 commit

  • This config item has not carried much meaning for a while now and is
    almost always enabled by default. As agreed during the Linux kernel
    summit, remove it.

    CC: Geert Uytterhoeven
    Signed-off-by: Kees Cook
    Signed-off-by: Geert Uytterhoeven

    Kees Cook
     

17 Aug, 2012

2 commits


04 Aug, 2012

1 commit

  • Pull m68k updates from Geert Uytterhoeven.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: Make sys_atomic_cmpxchg_32 work on classic m68k
    m68k/apollo: Rename "timer" to "apollo_timer"
    zorro: Remove unused zorro_bus.devices
    m68k: Remove never used asm/shm.h
    m68k/sun3: Remove unselectable code in prom_init()
    m68k: Use asm-generic version of
    m68k: Replace m68k-specific _[se]bss by generic __bss_{start,stop}
    mtd/uclinux: Use generic __bss_stop instead of _ebss
    m68knommu: Allow ColdFire CPUs to use unaligned accesses
    m68k: Remove five unused headers
    m68k: CPU32 does not support unaligned accesses
    m68k: Introduce config option CPU_HAS_NO_UNALIGNED
    m68k: delay, muldi3 - Use CONFIG_CPU_HAS_NO_MULDIV64
    m68k: Move CPU_HAS_* config options
    m68k: Remove duplicate FPU config option
    m68knommu: Clean up printing of sections
    m68k: Use asm-generic version of
    m68k: Use Kbuild logic to import asm-generic headers

    Linus Torvalds
     

16 Jul, 2012

3 commits

  • Add support for the Coldfire 5441x (54410/54415/54416/54417/54418). Currently
    we only support noMMU mode. It requires the PIT patch posted previously as it
    uses the PIT instead of the dma timer as a clock source so we can get all that
    GENERIC_CLOCKEVENTS goodness. It also adds some simple clk definitions and
    very simple minded power management. The gpio code is tweeked and some
    additional devices are added to devices.c. The Makefile uses -mv4e as
    apparently, the only difference a v4m (m5441x) and a v4e is the later has a
    FPU, which I don't think should matter to us in the kernel.

    Signed-off-by: Steven King
    Signed-off-by: Greg Ungerer

    Steven King
     
  • Basic support for the Coldfire 5251/5253.

    Signed-off-by: Steven king
    Signed-off-by: Greg Ungerer

    Steven King
     
  • If we're not connecting external GPIO extenders via i2c or spi or whatever, we
    probably don't need GPIOLIB. If we provide an alternate implementation of
    the GPIOLIB functions to use when only on-chip GPIO is needed, we can change
    ARCH_REQUIRE_GPIOLIB to ARCH_WANTS_OPTIONAL_GPIOLIB so that GPIOLIB becomes
    optional.

    The downside is that in the GPIOLIB=n case, we lose all error checking done by
    gpiolib, ie multiply allocating the gpio, free'ing gpio etc., so that the
    only checking that can be done is if we reference a gpio on an external part.
    Targets that need the extra error checking can still select GPIOLIB=y.

    For the case where GPIOLIB=y, we can simplify the table of gpio chips to use a
    single chip, eliminating the tables of chips in the 5xxx.c files. The
    original motivation for the definition of multiple chips was to match the way
    many of the Coldfire variants defined their gpio as a spare array in memory.
    However, all this really gains us is some error checking when we request a
    gpio, gpiolib can check that it doesn't fall in one of the holes. If thats
    important, I think we can still come up with a better way of accomplishing
    that.

    Also in this patch is some general cleanup and reorganizing of the gpio header
    files (I'm sure I must have had a reason why I sometimes used a prefix of
    mcf_gpio and other times mcfgpio but for the life of me I can't think of it
    now).

    Signed-off-by: Steven King
    Signed-off-by: Greg Ungerer

    Steven King
     

27 Jun, 2012

1 commit

  • All of the current Linux supported ColdFire CPUs handle unaligned
    memory accesses. So remove the CONFIG_CPU_HAS_NO_UNALIGNED option
    selection for ColdFire. If we ever support a specific ColdFire CPU
    that does not support unaligned accesses then we can insert the
    CONFIG_CPU_HAS_NO_UNALIGNED for that specific CPU type.

    Signed-off-by: Greg Ungerer
    Signed-off-by: Geert Uytterhoeven

    Greg Ungerer
     

10 Jun, 2012

3 commits


25 May, 2012

1 commit

  • Pull GPIO driver changes from Grant Likely:
    "Lots of gpio changes, both to core code and drivers.

    Changes do touch architecture code to remove the need for separate
    arm/gpio.h includes in most architectures.

    Some new drivers are added, and a number of gpio drivers are converted
    to use irq_domains for gpio inputs used as interrupts. Device tree
    support has been amended to allow multiple gpio_chips to use the same
    device tree node.

    Remaining changes are primarily bug fixes."

    * tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6: (33 commits)
    gpio/generic: initialize basic_mmio_gpio shadow variables properly
    gpiolib: Remove 'const' from data argument of gpiochip_find()
    gpio/rc5t583: add gpio driver for RICOH PMIC RC5T583
    gpiolib: quiet gpiochip_add boot message noise
    gpio: mpc8xxx: Prevent NULL pointer deref in demux handler
    gpio/lpc32xx: Add device tree support
    gpio: Adjust of_xlate API to support multiple GPIO chips
    gpiolib: Implement devm_gpio_request_one()
    gpio-mcp23s08: dbg_show: fix pullup configuration display
    Add support for TCA6424A
    gpio/omap: (re)fix wakeups on level-triggered GPIOs
    gpio/omap: fix broken context restore for non-OFF mode transitions
    gpio/omap: fix missing check in *_runtime_suspend()
    gpio/omap: remove cpu_is_omapxxxx() checks from *_runtime_resume()
    gpio/omap: remove suspend/resume callbacks
    gpio/omap: remove retrigger variable in gpio_irq_handler
    gpio/omap: remove saved_wakeup field from struct gpio_bank
    gpio/omap: remove suspend_wakeup field from struct gpio_bank
    gpio/omap: remove saved_fallingdetect, saved_risingdetect
    gpio/omap: remove virtual_irq_start variable
    ...

    Conflicts:
    drivers/gpio/gpio-samsung.c

    Linus Torvalds
     

12 May, 2012

1 commit

  • Rather than requiring architectures that use gpiolib but don't have any
    need to define anything custom to copy an asm/gpio.h provide a Kconfig
    symbol which architectures must select in order to include gpio.h and
    for other architectures just provide the trivial implementation directly.

    This makes it much easier to do gpiolib updates and is also a step towards
    making gpiolib APIs available on every architecture.

    For architectures with existing boilerplate code leave a stub header in
    place which warns on direct inclusion of asm/gpio.h and includes
    linux/gpio.h to catch code that's doing this. Direct inclusion of
    asm/gpio.h has long been deprecated.

    Signed-off-by: Mark Brown
    Acked-by: Jonas Bonn
    Acked-by: Tony Luck
    Acked-by: Linus Walleij
    Signed-off-by: Grant Likely

    Mark Brown
     

16 Apr, 2012

1 commit


30 Dec, 2011

3 commits

  • The ColdFire 547x and 548x CPUs have internal MMU hardware. All code
    to support this is now in, so we can build kernels with it enabled.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan

    Greg Ungerer
     
  • While you can build multiplatform kernels for machines with classic
    m68k processors, you cannot mix support for classic m68k and coldfire
    processors. To avoid such hybrid kernels, introduce CONFIG_M68KCLASSIC
    as an antipole for CONFIG_COLDFIRE, and make all specific processor
    support depend on one of them.
    All classic m68k machine support also needs to depend on this.

    The defaults (CONFIG_M68KCLASSIC if MMU, CONFIG_COLDFIRE if !MMU) are
    chosen such to make most of the existing configs build and work.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Greg Ungerer

    Geert Uytterhoeven
     
  • Modify the user space access functions to support the ColdFire V4e cores
    running with MMU enabled.

    The ColdFire processors do not support the "moves" instruction used by
    the traditional 680x0 processors for moving data into and out of another
    address space. They only support the notion of a single address space,
    and you use the usual "move" instruction to access that.

    Create a new config symbol (CONFIG_CPU_HAS_ADDRESS_SPACES) to mark the
    CPU types that support separate address spaces, and thus also support
    the sfc/dfc registers and the "moves" instruction that go along with that.

    The code is almost identical for user space access, so lets just use a
    define to choose either the "move" or "moves" in the assembler code.

    Signed-off-by: Greg Ungerer
    Acked-by: Matt Waddel
    Acked-by: Kurt Mahan
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     

24 Dec, 2011

3 commits

  • The traditional 68000 processors and the newer reduced instruction set
    ColdFire processors do not support the 32*32->64 multiply or the 64/32->32
    divide instructions. This is not a difference based on the presence of
    a hardware MMU or not.

    Create a new config symbol to mark that a CPU type doesn't support the
    longer multiply/divide instructions. Use this then as a basis for using
    the fast 64bit based divide (in div64.h) and for linking in the extra
    libgcc functions that may be required (mulsi3, divsi3, etc).

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • We have two implementations of the IP checksuming code for the m68k arch.
    One uses the more advanced instructions available in 68020 and above
    processors, the other uses the simpler instructions available on the
    original 68000 processors and the modern ColdFire processors.

    This simpler code is pretty much the same as the generic lib implementation
    of the IP csum functions. So lets just switch over to using that. That
    means we can completely remove the checksum_no.c file, and only have the
    local fast code used for the more complex 68k CPU family members.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The selection of the CONFIG_GENERIC_ATOMIC64 option is not specific to the
    MMU being present and enabled. It is a property of certain CPU families.
    So select it based on those CPU types being selected.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     

18 Oct, 2011

1 commit

  • The current mmu and non-mmu Kconfig files can be merged to form
    a more general selection of options. The current break up of options
    is due to the simple brute force merge from the m68k and m68knommu
    arch directories.

    Many of the options are not at all specific to having the MMU enabled
    or not. They are actually associated with a particular CPU type or
    platform type.

    Ultimately as we support all processors with the MMU disabled we need
    many of these options to be selectable without the MMU option enabled.
    And likewise some of the ColdFire processors, which currently are only
    supported with the MMU disabled, do have MMU hardware, and will need
    to have options selected on CPU type, not MMU disabled.

    This patch removes the old mmu and non-mmu Kconfigs and instead breaks
    up the configuration into four areas: cpu, machine, bus, devices.

    The Kconfig.cpu lists all the options associated with selecting a CPU,
    and includes options specific to each CPU type as well.

    Kconfig.machine lists all options associated with selecting a machine
    type. Almost always the machines selectable is restricted by the chosen
    CPU.

    Kconfig.bus contains options associated with selecting bus types on the
    various machine types. That includes PCI bus, PCMCIA bus, etc.

    Kconfig.devices contains options for drivers and driver associated
    options.

    Signed-off-by: Greg Ungerer

    Greg Ungerer