18 Oct, 2011

3 commits

  • The changes in the mmu version of entry.h (entry_mm.h) and the non-mmu
    version (entry_no.h) are not about the presence or use of an MMU at all.
    The main changes are to support the ColdFire processors. The code for
    trap entry and exit for all types of 68k processor outside coldfire is
    the same.

    So merge the files back to a single entry.h and share the common 68k
    entry/exit code. Some changes are required for the non-mmu entry
    handlers to adopt the differing macros for system call and interrupt
    entry, but this is quite strait forward. The changes for the ColdFire
    remove a couple of instructions for the separate a7 register case, and
    are no worse for the older single a7 register case.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Most of the build logic is the same for the mmu and non-mmu m68k targets.
    Merge the top level architecture Makefiles back into a single Makefile.

    For the most part this is just adding the non-mmu processor types and
    their specific cflags and other options into the mmu Makefile.

    Note that all the BOARD setting logic that was in the non-mmu Makefile
    is completely removed. It was no longer being used at all.

    This has been build and run tested on ColdFire targets and ARAnyM.
    It has been build tested on all the m68k defconfig targets using a
    gcc-4.5.1 based toolchain.

    Signed-off-by: Greg Ungerer
    Acked-by: Sam Ravnborg

    Greg Ungerer
     
  • The problem has its root in the calculation of the set-port offsets (macro
    MCFGPIO_SETR() in arch/m68k/include/asm/gpio.h), this assumes that all ports
    have the same offset from the base port address (MCFGPIO_SETR) which is
    defined in mcf520xsim.h as an alias of MCFGIO_PSETR_BUSCTL. Because the BUSCTL
    and BE port do not have a set-register (see MCF5208 Reference Manual Page
    13-10, Table 13-3) the offset calculations went wrong.

    Because the BE and BUSCTL port do not seem useful in these parts, as they
    lack a set register, I removed them and adapted the gpio chip bases which
    are also used for the offset-calculations. Now both setting and resetting
    the chip selects works as expected from userland and from the kernelspace.

    Signed-off-by: Peter Turczak
    Signed-off-by: Greg Ungerer

    Peter Turczak
     

25 Jul, 2011

4 commits

  • commit 2502b667ea835ee16685c74b2a0d89ba8afe117a ("Change the m68knommu irq
    handling to use the generic irq framework.") removed the reporting of spurious
    interrupts on nommu (68328 and 68360).

    Bring it back in a generic way, using "atomic_t irq_err_count", as that's what
    most of the other architectures are using.

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

    Geert Uytterhoeven
     
  • Currently trap_init() is an empty function for m68knommu. Instead
    the vectors are being setup as part of the IRQ initialization.
    This is inconsistent with m68k and other architectures.

    Change the local init_vectors() to be trap_init(), and init the
    vectors at the correct time during startup. This will help merge of
    m68k and m68knommu trap code in the furture.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The ColdFire 5206 and 5206e CPU families are almost identical, we can
    easily merge the platform support code for them. All the differences
    are dealt with in the current include/asm/5206sim.h.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The non-MMU m68k targets can use the same asm/system.h as the MMU
    targets. So switch the current system_mm.h to be system.h and remove
    system_no.h.

    The assembly support code for the non-MMU resume functions needs to
    be modified to match the now common switch_to() macro. Specifically
    this means correctly saving and restoring the status flags in the case
    of the ColdFire resume, and some reordering of the code to not use
    registers before they are saved or after they are restored.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     

24 May, 2011

3 commits


31 Mar, 2011

1 commit


29 Mar, 2011

1 commit


25 Mar, 2011

1 commit

  • There is a lot of common code that could be shared between the m68k
    and m68knommu arch branches. It makes sense to merge the two branches
    into a single directory structure so that we can more easily share
    that common code.

    This is a brute force merge, based on a script from Stephen King
    , which was originally written by Arnd Bergmann
    .

    > The script was inspired by the script Sam Ravnborg used to merge the
    > includes from m68knommu. For those files common to both arches but
    > differing in content, the m68k version of the file is renamed to
    > _mm. and the m68knommu version of the file is moved into the
    > corresponding m68k directory and renamed _no. and a small
    > wrapper file . is used to select between the two version. Files
    > that are common to both but don't differ are removed from the m68knommu
    > tree and files and directories that are unique to the m68knommu tree are
    > moved to the m68k tree. Finally, the arch/m68knommu tree is removed.
    >
    > To select between the the versions of the files, the wrapper uses
    >
    > #ifdef CONFIG_MMU
    > #include _mm.
    > #else
    > #include _no.
    > #endif

    On top of this file merge I have done a simplistic merge of m68k and
    m68knommu Kconfig, which primarily attempts to keep existing options and
    menus in place. Other than a handful of options being moved it produces
    identical .config outputs on m68k and m68knommu targets I tested it on.

    With this in place there is now quite a bit of scope for merge cleanups
    in future patches.

    Signed-off-by: Greg Ungerer

    Greg Ungerer