• Serge Semin's avatar
    mips: Add MIPS Warrior P5600 support · 281e3aea
    Serge Semin authored
    This is a MIPS32 Release 5 based IP core with XPA, EVA, dual/quad issue
    exec pipes, MMU with two-levels TLB, UCA, MSA, MDU core level features
    and system level features like up to six P5600 calculation cores, CM2
    with L2 cache, IOCU/IOMMU (though might be unused depending on the
    system-specific IP core configuration), GIC, CPC, virtualisation module,
    eJTAG and PDtrace.
    
    As being MIPS32 Release 5 based core it provides all the features
    available by the CPU_MIPS32_R5 config, while adding a few more like
    UCA attribute support, availability of CPU-freq (by means of L2/CM
    clock ratio setting), EI/VI GIC modes detection at runtime.
    
    In addition to this if P5600 architecture is enabled modern GNU GCC
    provides a specific tuning for P5600 processors with respect to the
    classic MIPS32 Release 5. First of all branch-likely avoidance is
    activated only when the code is compiled with the speed optimization
    (avoidance is always enabled for the pure MIPS32 Release 5
    architecture). Secondly the madd/msub avoidance is enabled since
    madd/msub utilization isn't profitable due to overhead of getting the
    result out of the HI/LO registers. Multiply-accumulate instructions are
    activated and utilized together with the necessary code reorder when
    multiply-add/multiply-subtract statements are met. Finally load/store
    bonding is activated by default. All of these optimizations may make
    the code relatively faster than if just MIP32 release 5 architecture
    was requested.
    Co-developed-by: default avatarAlexey Malahov <Alexey.Malahov@baikalelectronics.ru>
    Signed-off-by: default avatarAlexey Malahov <Alexey.Malahov@baikalelectronics.ru>
    Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: Paul Burton <paulburton@kernel.org>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: devicetree@vger.kernel.org
    Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
    281e3aea
module.h 4.47 KB