10 Aug, 2013

7 commits


24 Jul, 2013

1 commit


21 Jun, 2013

5 commits

  • Erratum A-006593 is "Atomic store may report failure but still allow
    the store data to be visible".

    The workaround is: "Set CoreNet Platform Cache register CPCHDBCR0 bit
    21 to 1'b1. This may have a small impact on synthetic write bandwidth
    benchmarks but should have a negligible impact on real code."

    Signed-off-by: Scott Wood
    Signed-off-by: Andy Fleming

    Scott Wood
     
  • Calculate reserved fields according to IFC bank count

    1. Move csor_ext register behind csor register and fix res offset
    2. Move ifc bank count to config_mpc85xx.h to support 8 bank count
    3. Guard fsl_ifc.h with CONFIG_FSL_IFC macro to eliminate the compile
    error on some devices that does not have IFC controller.

    Signed-off-by: Mingkai Hu
    Signed-off-by: Andy Fleming

    Mingkai Hu
     
  • Currently, the macro "CONFIG_SYS_FSL_SRIO_PCIE_BOOT_MASTER" can enable
    the master module of Boot from SRIO and PCIE on a platform. But this
    is not a silicon feature, it's just a specific booting mode based on
    the SRIO and PCIE interfaces. So it's inappropriate to put the macro
    into the file arch/powerpc/include/asm/config_mpc85xx.h.

    Change the macro "CONFIG_SYS_FSL_SRIO_PCIE_BOOT_MASTER" to
    "CONFIG_SRIO_PCIE_BOOT_MASTER", remove them from
    arch/powerpc/include/asm/config_mpc85xx.h file, and add those macros
    in configuration header file of each board which can support the
    master module of Boot from SRIO and PCIE.

    Signed-off-by: Liu Gang
    Signed-off-by: Andy Fleming

    Liu Gang
     
  • BSC9132 has 3 IFC banks.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • BSC9131RDB is a Freescale Reference Design Board for
    BSC9131 SoC which is a integrated device that contains
    one powerpc e500v2 core and one DSP starcore.

    To support DSP starcore
    -Creating LAW and TLB for DSP-CCSR space.
    -Creating LAW for DSP-core subsystem M2 memory

    Signed-off-by: Priyanka Jain
    Signed-off-by: Poonam Aggrwal
    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Andy Fleming

    Priyanka Jain
     

25 May, 2013

4 commits

  • B4420 is a subset of B4860. Merge them in config_mpc85xx.h to simplify
    the defines.
    - Removed #define CONFIG_SYS_FSL_NUM_CLUSTERS as this is used nowhere.
    - defined CONFIG_SYS_NUM_FM1_10GEC to 0 for B4420 as it does not have 10G.

    Also move CONFIG_E6500 out of B4860QDSds.h into config_mpc85xx.h.

    Signed-off-by: Poonam Aggrwal
    Signed-off-by: Andy Fleming

    Poonam Aggrwal
     
  • To align with chassis generation 2 spec, all cores are numbered in sequence.
    The cores may reside across multiple clusters. Each cluster has zero to four
    cores. The first available core is numbered as core 0. The second available
    core is numbered as core 1 and so on.

    Core clocks are generated by each clusters. To identify the cluster of each
    core, topology registers are examined.

    Cluster clock registers are reorganized to be easily indexed.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • T1040 and variants have e5500 cores and are compliant to QorIQ Chassis
    Generation 2. The major difference between T1040 and its variants is the
    number of cores and the number of L2 switch ports.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • T4160 is a subset of T4240. Merge them in config_mpc85xx.h to simplify
    the defines. Also move CONFIG_E6500 out of t4qds.h into config_mpc85xx.h.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     

15 May, 2013

2 commits

  • T4160 SoC is low power version of T4240. The T4160 combines eight dual
    threaded Power Architecture e6500 cores and two memory complexes (CoreNet
    platform cache and DDR3 memory controller) with the same high-performance
    datapath acceleration, networking, and peripheral bus interfaces.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • T4240 internal UTMI phy is different comparing to previous UTMI PHY
    in P3041.
    This patch adds USB 2.0 UTMI Dual PHY new memory map and enable it for
    T4240.
    The phy timing is very sensitive and moving the phy enable code to
    cpu_init.c will not work.

    Signed-off-by: Roy Zang
    Signed-off-by: Andy Fleming

    Roy Zang
     

03 May, 2013

4 commits


31 Jan, 2013

4 commits

  • When CoreNet Fabric (CCF) internal resources are consumed by the cores,
    inbound SRIO messaging traffic through RMan can put the device into a
    deadlock condition.

    This errata workaround forces internal resources to be reserved for
    upstream transactions. This ensures resources exist on the device for
    upstream transactions and removes the deadlock condition.

    The Workaround is for the T4240 silicon rev 1.0.

    Signed-off-by: Shengzhou Liu
    Signed-off-by: Andy Fleming

    Shengzhou Liu
     
  • The BSC9132 is a highly integrated device that targets the evolving
    Microcell, Picocell, and Enterprise-Femto base station market subsegments.

    The BSC9132 device combines Power Architecture e500 and DSP StarCore SC3850
    core technologies with MAPLE-B2P baseband acceleration processing elements
    to address the need for a high performance, low cost, integrated solution
    that handles all required processing layers without the need for an
    external device except for an RF transceiver or, in a Micro base station
    configuration, a host device that handles the L3/L4 and handover between
    sectors.

    The BSC9132 SoC includes the following function and features:
    - Power Architecture subsystem including two e500 processors with
    512-Kbyte shared L2 cache
    - Two StarCore SC3850 DSP subsystems, each with a 512-Kbyte private L2
    cache
    - 32 Kbyte of shared M3 memory
    - The Multi Accelerator Platform Engine for Pico BaseStation Baseband
    Processing (MAPLE-B2P)
    - Two DDR3/3L memory interfaces with 32-bit data width (40 bits including
    ECC), up to 1333 MHz data rate
    - Dedicated security engine featuring trusted boot
    - Two DMA controllers
    - OCNDMA with four bidirectional channels
    - SysDMA with sixteen bidirectional channels
    - Interfaces
    - Four-lane SerDes PHY
    - PCI Express controller complies with the PEX Specification-Rev 2.0
    - Two Common Public Radio Interface (CPRI) controller lanes
    - High-speed USB 2.0 host and device controller with ULPI interface
    - Enhanced secure digital (SD/MMC) host controller (eSDHC)
    - Antenna interface controller (AIC), supporting four industry
    standard JESD207/four custom ADI RF interfaces
    - ADI lanes support both full duplex FDD support & half duplex TDD
    - Universal Subscriber Identity Module (USIM) interface that
    facilitates communication to SIM cards or Eurochip pre-paid phone
    cards
    - Two DUART, two eSPI, and two I2C controllers
    - Integrated Flash memory controller (IFC)
    - GPIO
    - Sixteen 32-bit timers

    Signed-off-by: Naveen Burmi
    Signed-off-by: Poonam Aggrwal
    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Andy Fleming

    Prabhakar Kushwaha
     
  • B4420 is a reduced personality of B4860 with fewer core/clusters(both SC3900
    and e6500), fewer DDR controllers, fewer serdes lanes, fewer SGMII interfaces and
    reduced target frequencies.

    Key differences between B4860 and B4420
    ----------------------------------------
    B4420 has:
    1. Fewer e6500 cores: 1 cluster with 2 e6500 cores
    2. Fewer SC3900 cores/clusters: 1 cluster with 2 SC3900 cores per cluster.
    3. Single DDRC
    4. 2X 4 lane serdes
    5. 3 SGMII interfaces
    6. no sRIO
    7. no 10G

    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Poonam Aggrwal
    Signed-off-by: Andy Fleming

    Poonam Aggrwal
     
  • - Added some more serdes1 and serdes2 combinations
    serdes1= 0x2c, 0x2d, 0x2e
    serdes2= 0x7a, 0x8d, 0x98
    - Updated Number of DDR controllers to 2.
    - Added FMAN file for B4860, drivers/net/fm/b4860.c

    Signed-off-by: York Sun
    Signed-off-by: Shaveta Leekha
    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Sandeep Singh
    Signed-off-by: Poonam Aggrwal
    Signed-off-by: Andy Fleming

    Poonam Aggrwal
     

28 Nov, 2012

6 commits

  • Due to SerDes configuration error, if we set the PCI-e controller link width
    as x8 in RCW and add a narrower width(such as x4, x2 or x1) PCI-e device to
    PCI-e slot, it fails to train down to the PCI-e device's link width. According
    to p4080ds errata PCIe-A003, we reset the PCI-e controller link width to x4 in
    u-boot. Then it can train down to x2 or x1 width to make the PCI-e link between
    RC and EP.

    Signed-off-by: Yuanquan Chen
    Signed-off-by: Andy Fleming

    Yuanquan Chen
     
  • board configuration file is included before asm/config_mpc85xx.h.
    however, CONFIG_FSL_SATA_V2 is defined in asm/config_mpc85xx.h.
    it will never take effective in the board configuration file for
    this kind of code :

    #ifdef CONFIG_FSL_SATA_V2
    ...
    #endif

    To solve this problem, move CONFIG_FSL_SATA_V2 to board
    configuration header file.

    This patch reverts Timur's
    commit:3e0529f742e893653848494ffb9f7cd0d91304bf

    Signed-off-by: Roy Zang
    Signed-off-by: Andy Fleming

    Zang Roy-R61911
     
  • The work-around for erratum A-004580 ("Internal tracking loop can falsely
    lock causing unrecoverable bit errors") is implemented via the PBI
    (pre-boot initialization code, typically attached to the RCW binary).
    This is because the work-around is easier to implement in PBI than in
    U-Boot itself.

    It is still useful, however, for the 'errata' command to tell us whether
    the work-around has been applied. For A-004580, we can do this by verifying
    that the values in the specific registers that the work-around says to
    update.

    This change requires access to the SerDes lane sub-structure in
    serdes_corenet_t, so we make it a named struct.

    Signed-off-by: Timur Tabi
    Signed-off-by: Andy Fleming

    Timur Tabi
     
  • Once u-boot sets the spin table to cache-enabled memory, old kernel which
    uses cache-inhibit mapping without coherence will not work properly. We
    use this temporary fix until kernel has updated its spin table code.
    For now this fix is activated by default. To disable this fix for new
    kernel, set environmental variable "spin_table_compat=no". After kernel
    has updated spin table code, this default shall be changed.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • The work-around for erratum A-004849 ("CoreNet fabric (CCF) can exhibit a
    deadlock under certain traffic patterns causing the system to hang") is
    implemented via the PBI (pre-boot initialization code, typically attached
    to the RCW binary). This is because the work-around is easier to implement
    in PBI than in U-Boot itself.

    It is still useful, however, for the 'errata' command to tell us whether
    the work-around has been applied. For A-004849, we can do this by verifying
    that the values in the specific registers that the work-around says to
    update.

    Signed-off-by: Timur Tabi
    Signed-off-by: Andy Fleming

    Timur Tabi
     
  • The P5040 has an e5500 core, so CONFIG_SYS_PPC64 should be defined in
    config_mpc85xx.h. This macro was absent in the initial P5040 patch because
    it crossed paths with the patch that introduced the macro.

    Also delete CONFIG_SYS_FSL_ELBC_MULTIBIT_ECC, since it's not used in the
    upstream U-Boot. It's a holdover from the SDK.

    Signed-off-by: Timur Tabi
    Signed-off-by: Andy Fleming

    Timur Tabi
     

23 Oct, 2012

7 commits

  • Currently, the SRIO and PCIE boot master module will be compiled into the
    u-boot image if the macro "CONFIG_FSL_CORENET" has been defined. And this
    macro has been included by all the corenet architecture platform boards.
    But in fact, it's uncertain whether all corenet platform boards support
    this feature.

    So it may be better to get rid of the macro "CONFIG_FSL_CORENET", and add
    a special macro for every board which can support the feature. This
    special macro will be defined in the header file
    "arch/powerpc/include/asm/config_mpc85xx.h". It will decide if the SRIO
    and PCIE boot master module should be compiled into the board u-boot image.

    Signed-off-by: Liu Gang
    Signed-off-by: Andy Fleming

    Liu Gang
     
  • Move spin table to cached memory to comply with ePAPR v1.1.
    Load R3 with 64-bit value if CONFIG_SYS_PPC64 is defined.

    'M' bit is set for DDR TLB to maintain cache coherence.

    See details in doc/README.mpc85xx-spin-table.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • After DDR controller is enabled, it performs a calibration for the
    transmit data vs DQS paths. During this calibration, the DDR controller
    may make an inaccurate calculation, resulting in a non-optimal tap point.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • Boot space translation utilizes the pre-translation address to select
    the DDR controller target. However, the post-translation address will be
    presented to the selected DDR controller. It is possible that the pre-
    translation address selects one DDR controller but the post-translation
    address exists in a different DDR controller when using certain DDR
    controller interleaving modes. The device may fail to boot under these
    circumstances. Note that a DDR MSE error will not be detected since DDR
    controller bounds registers are programmed to be the same when configured
    for DDR controller interleaving.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • DDRC ver 4.7 adds DDR_SLOW bit in sdram_cfg_2 register. This bit needs to be
    set for speed lower than 1250MT/s.

    CDR1 and CDR2 are control driver registers. ODT termination valueis for
    IOs are defined. Starting from DDRC 4.7, the decoding of ODT for IOs is
    000 -> Termsel off
    001 -> 120 Ohm
    010 -> 180 Ohm
    011 -> 75 Ohm
    100 -> 110 Ohm
    101 -> 60 Ohm
    110 -> 70 Ohm
    111 -> 47 Ohm

    Add two write leveling registers. Each QDS now has its own write leveling
    start value. In case of zero value, the value of QDS0 will be used. These
    values are board-specific and are set in board files.

    Extend DDR register timing_cfg_1 to have 4 bits for each field.

    DDR control driver registers and write leveling registers are added to
    interactive debugging for easy access.

    Signed-off-by: York Sun
    Signed-off-by: Andy Fleming

    York Sun
     
  • The multirate ethernet media access controller (mEMAC) interfaces to
    10Gbps and below Ethernet/IEEE 802.3 networks via either RGMII/RMII
    interfaces or XAUI/XFI/SGMII/QSGMII using the high-speed SerDes interface.

    Signed-off-by: Sandeep Singh
    Signed-off-by: Poonam Aggrwal
    Signed-off-by: Roy Zang
    Signed-off-by: Andy Fleming

    Roy Zang
     
  • Add support for Freescale B4860 and variant SoCs. Features of B4860 are
    (incomplete list):

    Six fully-programmable StarCore SC3900 FVP subsystems, divided into three
    clusters-each core runs up to 1.2 GHz, with an architecture highly
    optimized for wireless base station applications
    Four dual-thread e6500 Power Architecture processors organized in one
    cluster-each core runs up to 1.8 GHz
    Two DDR3/3L controllers for high-speed, industry-standard memory interface
    each runs at up to 1866.67 MHz
    MAPLE-B3 hardware acceleration-for forward error correction schemes
    including Turbo or Viterbi decoding, Turbo encoding and rate matching,
    MIMO MMSE equalization scheme, matrix operations, CRC insertion and
    check, DFT/iDFT and FFT/iFFT calculations, PUSCH/PDSCH acceleration,
    and UMTS chip rate acceleration
    CoreNet fabric that fully supports coherency using MESI protocol between
    the e6500 cores, SC3900 FVP cores, memories and external interfaces.
    CoreNet fabric interconnect runs at 667 MHz and supports coherent and
    non-coherent out of order transactions with prioritization and
    bandwidth allocation amongst CoreNet endpoints.
    Data Path Acceleration Architecture, which includes the following:
    Frame Manager (FMan), which supports in-line packet parsing and general
    classification to enable policing and QoS-based packet distribution
    Queue Manager (QMan) and Buffer Manager (BMan), which allow offloading
    of queue management, task management, load distribution, flow ordering,
    buffer management, and allocation tasks from the cores
    Security engine (SEC 5.3)-crypto-acceleration for protocols such as
    IPsec, SSL, and 802.16
    RapidIO manager (RMAN) - Support SRIO types 8, 9, 10, and 11 (inbound and
    outbound). Supports types 5, 6 (outbound only)
    Large internal cache memory with snooping and stashing capabilities for
    bandwidth saving and high utilization of processor elements. The
    9856-Kbyte internal memory space includes the following:
    32 Kbyte L1 ICache per e6500/SC3900 core
    32 Kbyte L1 DCache per e6500/SC3900 core
    2048 Kbyte unified L2 cache for each SC3900 FVP cluster
    2048 Kbyte unified L2 cache for the e6500 cluster
    Two 512 Kbyte shared L3 CoreNet platform caches (CPC)
    Sixteen 10-GHz SerDes lanes serving:
    Two Serial RapidIO interfaces. Each supports up to 4 lanes and a total
    of up to 8 lanes
    Up to 8-lanes Common Public Radio Interface (CPRI) controller for glue-
    less antenna connection
    Two 10-Gbit Ethernet controllers (10GEC)
    Six 1G/2.5-Gbit Ethernet controllers for network communications
    PCI Express controller
    Debug (Aurora)
    Two OCeaN DMAs
    Various system peripherals
    182 32-bit timers

    Signed-off-by: York Sun
    Signed-off-by: Prabhakar Kushwaha
    Signed-off-by: Roy Zang
    Signed-off-by: Andy Fleming

    York Sun