source: trunk/package/uboot-lantiq/patches/050-mips-enhancements.patch @ 20561

Last change on this file since 20561 was 20561, checked in by nbd, 6 years ago

add uboot-lantiq (based on a patch contributed by Lantiq)

File size: 3.0 KB
  • cpu/mips/start.S

    a b _start: 
    6969#elif defined(CONFIG_PURPLE) 
    7070        .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */ 
    7171        .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */ 
     72#elif defined(CONFIG_SYS_EBU_BOOT) 
     73        .word INFINEON_EBU_BOOTCFG /* EBU init code, fetched during booting */ 
     74        .word 0x00000000           /* phase of the flash                    */ 
    7275#else 
    7376        RVECENT(romReserved,2) 
    7477#endif 
    _start: 
    202205         * 128 * 8 == 1024 == 0x400 
    203206         * so this is address R_VEC+0x400 == 0xbfc00400 
    204207         */ 
    205 #ifdef CONFIG_PURPLE 
     208#ifndef CONFIG_PURPLE 
     209        XVECENT(romExcHandle,0x400);    /* bfc00400: Int, CauseIV=1 */ 
     210        RVECENT(romReserved,129); 
     211        RVECENT(romReserved,130); 
     212        RVECENT(romReserved,131); 
     213        RVECENT(romReserved,132); 
     214        RVECENT(romReserved,133); 
     215        RVECENT(romReserved,134); 
     216        RVECENT(romReserved,135); 
     217        RVECENT(romReserved,136); 
     218        RVECENT(romReserved,137); 
     219        RVECENT(romReserved,138); 
     220        RVECENT(romReserved,139); 
     221        RVECENT(romReserved,140); 
     222        RVECENT(romReserved,141); 
     223        RVECENT(romReserved,142); 
     224        RVECENT(romReserved,143); 
     225        XVECENT(romExcHandle,0x480);    /* bfc00480: EJTAG debug exception */ 
     226#else /* CONFIG_PURPLE */ 
    206227/* 0xbfc00400 */ 
    207228        .word   0xdc870000 
    208229        .word   0xfca70000 
    _start: 
    228249#endif /* CONFIG_PURPLE */ 
    229250        .align 4 
    230251reset: 
     252#ifdef CONFIG_SYS_MIPS_MULTI_CPU 
     253        mfc0    k0, CP0_EBASE 
     254        and     k0, EBASEF_CPUNUM 
     255        bne     k0, zero, ifx_mips_handler_cpux 
     256        nop 
     257#endif 
    231258 
    232259        /* Clear watch registers. 
    233260         */ 
    reset: 
    239266 
    240267        setup_c0_status_reset 
    241268 
     269#if defined(CONFIG_MIPS24KEC) || defined(CONFIG_MIPS34KC) 
     270        /* CONFIG7 register */ 
     271        /* Erratum "RPS May Cause Incorrect Instruction Execution" 
     272         * for 24KEC and 34KC */ 
     273        mfc0    k0, CP0_CONFIG, 7 
     274        li      k1, MIPS_CONF7_RPS 
     275        or      k0, k1 
     276        mtc0    k0, CP0_CONFIG, 7 
     277#endif 
     278 
    242279        /* Init Timer */ 
    243280        mtc0    zero, CP0_COUNT 
    244281        mtc0    zero, CP0_COMPARE 
    reset: 
    270307        jalr    t9 
    271308        nop 
    272309 
     310#ifndef CONFIG_SYS_MIPS_CACHE_OPER_MODE 
     311#define CONFIG_SYS_MIPS_CACHE_OPER_MODE CONF_CM_CACHABLE_NONCOHERENT 
     312#endif 
    273313        /* ... and enable them. 
    274314         */ 
    275         li      t0, CONF_CM_CACHABLE_NONCOHERENT 
     315        li      t0, CONFIG_SYS_MIPS_CACHE_OPER_MODE 
    276316        mtc0    t0, CP0_CONFIG 
    277317#endif /* !CONFIG_SKIP_LOWLEVEL_INIT */ 
    278318 
    romReserved: 
    419459 
    420460romExcHandle: 
    421461        b       romExcHandle 
     462 
     463        /* Additional handlers. 
     464         */ 
     465#ifdef CONFIG_SYS_MIPS_MULTI_CPU 
     466/* 
     467 * Stop Slave CPUs 
     468 */ 
     469ifx_mips_handler_cpux: 
     470        wait; 
     471        b ifx_mips_handler_cpux; 
     472        nop; 
     473#endif 
  • include/asm-mips/mipsregs.h

    a b  
    5757#define CP0_CAUSE $13 
    5858#define CP0_EPC $14 
    5959#define CP0_PRID $15 
     60#define CP0_EBASE $15,1 
    6061#define CP0_CONFIG $16 
    6162#define CP0_LLADDR $17 
    6263#define CP0_WATCHLO $18 
     
    395396#define  CAUSEF_BD              (_ULCAST_(1)   << 31) 
    396397 
    397398/* 
     399 * Bits in the coprocessor 0 EBase register 
     400 */ 
     401#define EBASEB_CPUNUM           0 
     402#define EBASEF_CPUNUM           (0x3ff << EBASEB_CPUNUM) 
     403#define EBASEB_EXPBASE          12 
     404#define EBASEF_EXPBASE          (0x3ffff << EBASEB_EXPBASE) 
     405 
     406/* 
    398407 * Bits in the coprocessor 0 config register. 
    399408 */ 
    400409/* Generic bits.  */ 
Note: See TracBrowser for help on using the repository browser.