1. 30 12月, 2011 2 次提交
    • G
      m68k/Kconfig: Separate classic m68k and coldfire early · ad8f955d
      Geert Uytterhoeven 提交于
      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: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      ad8f955d
    • G
      m68k: modify user space access functions to support ColdFire CPUs · e08d703c
      Greg Ungerer 提交于
      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: NGreg Ungerer <gerg@uclinux.org>
      Acked-by: NMatt Waddel <mwaddel@yahoo.com>
      Acked-by: NKurt Mahan <kmahan@xmission.com>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      e08d703c
  2. 24 12月, 2011 3 次提交
    • G
      m68k: handle presence of 64bit mul/div instructions cleanly · 84f3fb7a
      Greg Ungerer 提交于
      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: NGreg Ungerer <gerg@uclinux.org>
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      84f3fb7a
    • G
      m68k: simpler m68k and ColdFire CPU's can use generic csum code · 7f73bafc
      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: NGreg Ungerer <gerg@uclinux.org>
      7f73bafc
    • G
      m68k: selection of GENERIC_ATOMIC64 is not MMU specific · 5717a02b
      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: NGreg Ungerer <gerg@uclinux.org>
      5717a02b
  3. 18 10月, 2011 1 次提交
    • G
      m68k: reorganize Kconfig options to improve mmu/non-mmu selections · 0e152d80
      Greg Ungerer 提交于
      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: NGreg Ungerer <gerg@uclinux.org>
      0e152d80