1. 29 1月, 2009 8 次提交
    • T
      powerpc/fsl-booke: Allow larger CAM sizes than 256 MB · c8f3570b
      Trent Piepho 提交于
      The code that maps kernel low memory would only use page sizes up to 256
      MB.  On E500v2 pages up to 4 GB are supported.
      
      However, a page must be aligned to a multiple of the page's size.  I.e.
      256 MB pages must aligned to a 256 MB boundary.  This was enforced by a
      requirement that the physical and virtual addresses of the start of lowmem
      be aligned to 256 MB.  Clearly requiring 1GB or 4GB alignment to allow
      pages of that size isn't acceptable.
      
      To solve this, I simply have adjust_total_lowmem() take alignment into
      account when it decides what size pages to use.  Give it PAGE_OFFSET =
      0x7000_0000, PHYSICAL_START = 0x3000_0000, and 2GB of RAM, and it will map
      pages like this:
      PA 0x3000_0000 VA 0x7000_0000 Size 256 MB
      PA 0x4000_0000 VA 0x8000_0000 Size 1 GB
      PA 0x8000_0000 VA 0xC000_0000 Size 256 MB
      PA 0x9000_0000 VA 0xD000_0000 Size 256 MB
      PA 0xA000_0000 VA 0xE000_0000 Size 256 MB
      
      Because the lowmem mapping code now takes alignment into account,
      PHYSICAL_ALIGN can be lowered from 256 MB to 64 MB.  Even lower might be
      possible.  The lowmem code will work down to 4 kB but it's possible some of
      the boot code will fail before then.  Poor alignment will force small pages
      to be used, which combined with the limited number of TLB1 pages available,
      will result in very little memory getting mapped.  So alignments less than
      64 MB probably aren't very useful anyway.
      Signed-off-by: NTrent Piepho <tpiepho@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      c8f3570b
    • T
      powerpc/fsl-booke: Remove code duplication in lowmem mapping · f88747e7
      Trent Piepho 提交于
      The code to map lowmem uses three CAM aka TLB[1] entries to cover it.  The
      size of each is stored in three globals named __cam0, __cam1, and __cam2.
      All the code that uses them is duplicated three times for each of the three
      variables.
      
      We have these things called arrays and loops....
      
      Once converted to use an array, it will be easier to make the number of
      CAMs configurable.
      Signed-off-by: NTrent Piepho <tpiepho@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      f88747e7
    • K
      powerpc/fsl-booke: Cleanup init/exception setup to be runtime · 105c31df
      Kumar Gala 提交于
      We currently have a few variants of fsl-booke processors (e500v1, e500v2,
      e500mc, and e200).  They all have minor differences that we had previously
      been handling via ifdefs.
      
      To move towards having this support the following changes have been made:
      
      * PID1, PID2 only exist on e500v1 & e500v2 and should not be accessed on
        e500mc or e200.  We use MMUCFG[NPIDS] to determine which case we are
        since we only touch PID1/2 in extremely early init code.
      
      * Not all IVORs exist on all the processors so introduce cpu_setup
        functions for each variant to setup the proper IVORs that are either
        unique or exist but have some variations between the processors
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      105c31df
    • A
      powerpc/83xx: Add PCI-E support for all MPC83xx boards with PCI-E · 0585a155
      Anton Vorontsov 提交于
      This patch adds pcie nodes to the appropriate dts files, plus adds
      some probing code for the boards.
      
      Also, remove of_device_is_avaliable() check from the mpc837x_mds.c
      board file, as mpc83xx_add_bridge() has the same check now.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      0585a155
    • A
      powerpc/fsl_pci: Add MPC83xx PCI-E controller RC mode support · 598804cd
      Anton Vorontsov 提交于
      This patch adds support for PCI-Express controllers as found on the
      newer MPC83xx chips.
      
      The work is loosely based on the Tony Li's patch[1], but unlike the
      original patch, this patch implements sliding window for the Type 1
      transactions using outbound window translations, so we don't have to
      ioremap the whole PCI-E configuration space.
      
      [1] http://ozlabs.org/pipermail/linuxppc-dev/2008-January/049028.htmlSigned-off-by: NTony Li <tony.li@freescale.com>
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      598804cd
    • L
      Linux 2.6.29-rc3 · 18e352e4
      Linus Torvalds 提交于
      18e352e4
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · c4568d6c
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/mm: Fix handling of _PAGE_COHERENT in BAT setup code
        powerpc/pseries: Correct VIO bus accounting problem in CMO env.
        powerpc: More printing warning fixes for the l64 to ll64 conversion
        powerpc: Remove arch/ppc cruft from Kconfig
        powerpc: Printing fix for l64 to ll64 conversion: phyp_dump.c
        powerpc/embedded6xx: Update defconfigs
        powerpc/8xx: Update defconfigs
        powerpc/86xx: Update defconfigs
        powerpc/83xx: Update defconfigs
        powerpc/85xx: Update defconfigs
        powerpc/mpc8313erdb: fix kernel panic because mdio device is not probed
        powerpc/4xx: Update multi-board PowerPC 4xx defconfigs
        powerpc/44x: Update PowerPC 44x defconfigs
        powerpc/40x: Update PowerPC 40x defconfigs
        powerpc/85xx: Fix typo in mpc8572ds dts
        powerpc/44x: Warp patches for the new NDFC driver
        powerpc/4xx: DTS: Add Add'l SDRAM0 Compatible and Interrupt Info
      c4568d6c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 78a768b6
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: fix 5329 ColdFire periphal addressing
        uclinux: add process name to allocation error message
        m68knommu: correct the mii calculations for 532x ColdFire FEC
        m68knommu: add ColdFire M532x to the FEC configuration options
        m68knommu: fix syscall restarting
        m68knommu: remove the obsolete and long unused comempci chip support
        m68knommu: remove the no longer used PCI support option
        m68knommu: remove obsolete and unused eLIA board
        m68knommu: set NO_DMA
        m68knommu: fix cache flushing for the 527x ColdFire processors
        m68knommu: fix ColdFire 5272 serial baud rates in mcf.c
        m68knommu: use one exist from execption
      78a768b6
  2. 28 1月, 2009 32 次提交