Skip to content
Snippets Groups Projects
  1. Sep 30, 2011
    • Li Yang's avatar
      powerpc/85xx: Add support for new P102x/P2020 RDB style boards · 14aa71e6
      Li Yang authored
      
      The following boards share a common design but with minor variations
      between them:
      
      P1020MSBG-PC
      P1020RDB-PC
      P1020UTM-PC
      P1021RDB-PC
      P1024RDB
      P1025RDB
      P2020RDB-PC
      
      The P1020RDB-PC shares its roots in the existing P1020RDB board design,
      however uses DDR3 instead of DDR2.
      P2020RDB-PC differs from the P102x RDB-PC with 64-bit DDR and 100Mhz SYSCLK.
      
      Key features on these boards include:
      * DDR3
      * NOR flash
      * NAND flash (on RDB's only)
      * SPI flash (on RDB's only)
      * SDHC/MMC card slot
      * VSC7385 Ethernet switch (on P1020MBG, P1020RDB, & P1021RDB)
      * PCIE slot and mini-PCIE slots
      
      As these boards use soldered DDR chips not regular DIMMs, an on-board EEPROM
      is used to store SPD data. In case of absent or corrupted SPD, falling back
      to timing data embedded in the source code will be used. Raw timing data is
      extracted from DDR chip datasheet. Different speeds of DDR are supported
      with this approach. ODT option is forced to fit this set of boards, again
      because they don't have regular DIMMs.
      
      CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS is defined as 5ms to meet
      specification for writing timing.
      
      VSC firmware Address is defined by default in config file for eTSEC1.
      
      SD width is based off DIP switch. DIP switch is detected on the
      board by reading i2c bus and setting the appropriate mux values.
      
      Some boards have QE module in the silicon (P1021 and P1025). QE and eLBC
      have pins multiplexing. QE function needs to be disabled to access Nor Flash
      and CPLD. QE-UEC and QE-UART can be enabled for linux kernel by setting "qe"
      in hwconfig. In addition, QE-UEC and QE-TDM also have pins multiplexing, to
      enable QE-TDM for linux kernel, set "qe;tdm" in hwconfig. Syntax is as below
      
      'setenv hwconfig qe' to enable QE UEC/UART and disable Nor-Flash/CPLD.
      'setenv hwconfig 'qe;tdm'' to enalbe QE TDM and disable Nor-Flash/CPLD.
      
      Signed-off-by: default avatarYork Sun <yorksun@freescale.com>
      Signed-off-by: default avatarLi Yang <leoli@freescale.com>
      Signed-off-by: default avatarZhao Chenhui <b26998@freescale.com>
      Signed-off-by: default avatarMatthew McClintock <msm@freescale.com>
      Signed-off-by: default avatarPoonam Aggrwal <poonam.aggrwal@freescale.com>
      Signed-off-by: default avatarPriyanka Jain <Priyanka.Jain@freescale.com>
      Signed-off-by: default avatarTang Yuantian <b29983@freescale.com>
      Signed-off-by: default avatarramneek.mehresh <ramneek.mehresh@freescale.com>
      Signed-off-by: default avatarPrabhakar Kushwaha <prabhakar@freescale.com>
      Signed-off-by: default avatarMatthew McClintock <msm@freescale.com>
      Signed-off-by: default avatarXie Xiaobo <X.Xie@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarJerry Huang <Chang-Ming.Huang@freescale.com>
      Signed-off-by: default avatarAkhil Goyal <akhil.goyal@freescale.com>
      14aa71e6
    • Timur Tabi's avatar
      powerpc/85xx: relocate CCSR before creating the initial RAM area · 6ca88b09
      Timur Tabi authored
      
      Before main memory (DDR) is initialized, the on-chip L1 cache is used as a
      memory area for the stack and the global data (gd_t) structure.  This is
      called the initial RAM area, or initram.  The L1 cache is locked and the TLBs
      point to a non-existent address (so that there's no chance it will overlap
      main memory or any device).  The L1 cache is also configured not to write
      out to memory or the L2 cache, so everything stays in the L1 cache.
      
      One of the things we might do while running out of initram is relocate CCSR.
      On reset, CCSR is typically located at some high 32-bit address, like
      0xfe000000, and this may not be the best place for CCSR.  For example, on
      36-bit systems, CCSR is relocated to 0xffe000000, near the top of 36-bit
      memory space.
      
      On some future Freescale SOCs, the L1 cache will be forced to write to the
      backing store, so we can no longer have the TLBs point to non-existent address.
      Instead, we will point the TLBs to an unused area in CCSR.  In order for this
      technique to work, CCSR needs to be relocated before the initram memory is
      enabled.
      
      Unlike the original CCSR relocation code in cpu_init_early_f(), the TLBs
      we create now for relocating CCSR are deleted after the relocation is finished.
      cpu_init_early_f() will still need to create a TLB for CCSR (at the new
      location) for normal U-Boot purposes.  This is done to keep the impact to
      existing U-Boot code minimal and to better isolate the CCSR relocation code.
      
      Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      6ca88b09
    • Timur Tabi's avatar
      powerpc/85xx: introduce and document CONFIG_SYS_CCSRBAR macros · e46fedfe
      Timur Tabi authored
      
      Introduce the CONFIG_SYS_CCSRBAR_PHYS_HIGH and CONFIG_SYS_CCSRBAR_PHYS_LOW
      macros, which contain the high and low portions of CONFIG_SYS_CCSRBAR_PHYS.
      This is necessary for the assembly-language code that relocates CCSR, since
      the assembler does not understand 64-bit constants.
      
      CONFIG_SYS_CCSRBAR_PHYS is automatically defined from the
      CONFIG_SYS_CCSRBAR_PHYS_HIGH and CONFIG_SYS_CCSRBAR_PHYS_LOW macros, so it
      should not be defined in a board header file.  Similarly,
      CONFIG_SYS_CCSRBAR_DEFAULT is defined for each SOC in config_mpc85xx.h, so
      it should also not be defined in the board header file.
      
      CONFIG_SYS_CCSR_DO_NOT_RELOCATE is a "short-cut" macro that guarantees that
      CONFIG_SYS_CCSRBAR_PHYS is set to the same value as CONFIG_SYS_CCSRBAR_DEFAULT,
      and so CCSR will not be relocated.
      
      Since CONFIG_SYS_CCSRBAR_DEFAULT is locked to a fixed value, multi-stage U-Boot
      builds (e.g. NAND) are required to relocate CCSR only during the last stage
      (i.e. the "real" U-Boot).  All other stages should define
      CONFIG_SYS_CCSR_DO_NOT_RELOCATE to ensure that CCSR is not relocated.
      
      README is updated with descriptions of all the CONFIG_SYS_CCSRBAR_xxx macros.
      
      Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      e46fedfe
    • Kumar Gala's avatar
    • Ramneek Mehresh's avatar
      powerpc/85xx: Add ULPI and UTMI USB Phy support for P1010/P1014 · 1b719e66
      Ramneek Mehresh authored
      
      Add UTMI and ULPI PHY support for USB controller on qoriq series of
      processors with internal UTMI PHY implemented, for example P1010/P1014
       - Use both getenv() and hwconfig to get USB phy type till getenv()
         is depricated
       - Introduce CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY to specify if soc
         has internal UTMI phy
      
      Signed-off-by: default avatarRamneek Mehresh <ramneek.mehresh@freescale.com>
      Acked-by: default avatarRemy Bohmer <linux@bohmer.net>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      1b719e66
  2. Sep 29, 2011
  3. Sep 28, 2011
  4. Sep 27, 2011
  5. Sep 24, 2011
  6. Sep 23, 2011
  7. Sep 22, 2011
  8. Sep 21, 2011
  9. Sep 20, 2011
  10. Sep 19, 2011
  11. Sep 13, 2011
  12. Sep 12, 2011
Loading