source: trunk/target/linux/brcm47xx/patches-2.6.36/920-cache-wround.patch @ 23278

Last change on this file since 23278 was 23278, checked in by hauke, 6 years ago

brcm47xx: add patches for kernel 2.6.36

File size: 3.3 KB
  • arch/mips/include/asm/r4kcache.h

    a b  
    2020#ifdef CONFIG_BCM47XX 
    2121#include <asm/paccess.h> 
    2222#include <linux/ssb/ssb.h> 
    23 #define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) 
     23#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() 
     24 
     25static inline unsigned long bcm4710_dummy_rreg(void) 
     26{ 
     27      return *(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE)); 
     28} 
     29 
     30#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void *)(addr)) 
     31 
     32static inline unsigned long bcm4710_fill_tlb(void *addr) 
     33{ 
     34      return *(unsigned long *)addr; 
     35} 
     36 
     37#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void *)(addr)) 
     38 
     39static inline void bcm4710_protected_fill_tlb(void *addr) 
     40{ 
     41      unsigned long x; 
     42      get_dbe(x, (unsigned long *)addr);; 
     43} 
    2444 
    25 #define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr)) 
    26 #define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); }) 
    2745#else 
    2846#define BCM4710_DUMMY_RREG() 
    2947 
  • arch/mips/mm/tlbex.c

    a b build_get_pgde32(u32 **p, unsigned int t 
    712712#endif 
    713713        uasm_i_addu(p, ptr, tmp, ptr); 
    714714#else 
     715#ifdef CONFIG_BCM47XX 
     716        uasm_i_nop(p); 
     717#endif 
    715718        UASM_i_LA_mostly(p, ptr, pgdc); 
    716719#endif 
    717720        uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 
    static void __cpuinit build_r4000_tlb_re 
    873876                /* No need for uasm_i_nop */ 
    874877        } 
    875878 
    876 #ifdef CONFIG_BCM47XX 
    877         uasm_i_nop(&p); 
    878 #endif 
    879879#ifdef CONFIG_64BIT 
    880880        build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ 
    881881#else 
     882# ifdef CONFIG_BCM47XX 
     883        uasm_i_nop(&p); 
     884# endif 
    882885        build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ 
    883886#endif 
    884887 
    static void __cpuinit build_r4000_tlb_re 
    890893        build_update_entries(&p, K0, K1); 
    891894        build_tlb_write_entry(&p, &l, &r, tlb_random); 
    892895        uasm_l_leave(&l, p); 
     896#ifdef CONFIG_BCM47XX 
     897        uasm_i_nop(&p); 
     898#endif 
    893899        uasm_i_eret(&p); /* return from trap */ 
    894900 
    895901#ifdef CONFIG_HUGETLB_PAGE 
    build_r4000_tlbchange_handler_head(u32 * 
    13261332                                   struct uasm_reloc **r, unsigned int pte, 
    13271333                                   unsigned int ptr) 
    13281334{ 
    1329 #ifdef CONFIG_BCM47XX 
    1330         uasm_i_nop(p); 
    1331 #endif 
    13321335#ifdef CONFIG_64BIT 
    13331336        build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */ 
    13341337#else 
     1338# ifdef CONFIG_BCM47XX 
     1339        uasm_i_nop(p); 
     1340# endif 
    13351341        build_get_pgde32(p, pte, ptr); /* get pgd in ptr */ 
    13361342#endif 
    13371343 
    build_r4000_tlbchange_handler_tail(u32 * 
    13681374        build_update_entries(p, tmp, ptr); 
    13691375        build_tlb_write_entry(p, l, r, tlb_indexed); 
    13701376        uasm_l_leave(l, *p); 
     1377#ifdef CONFIG_BCM47XX 
     1378        uasm_i_nop(p); 
     1379#endif 
    13711380        uasm_i_eret(p); /* return from trap */ 
    13721381 
    13731382#ifdef CONFIG_64BIT 
  • arch/mips/kernel/genex.S

    a b  
    2222#include <asm/page.h> 
    2323#include <asm/thread_info.h> 
    2424 
     25#ifdef CONFIG_BCM47XX 
     26# ifdef eret 
     27#  undef eret 
     28# endif 
     29# define eret                                   \ 
     30        .set push;                              \ 
     31        .set noreorder;                         \ 
     32         nop;                                   \ 
     33         nop;                                   \ 
     34         eret;                                  \ 
     35        .set pop; 
     36#endif 
     37 
    2538#define PANIC_PIC(msg)                                  \ 
    2639                .set push;                              \ 
    2740                .set    reorder;                        \ 
    NESTED(except_vec3_generic, 0, sp) 
    5467        .set    noat 
    5568#ifdef CONFIG_BCM47XX 
    5669        nop 
    57         nop 
    5870#endif 
    5971#if R5432_CP0_INTERRUPT_WAR 
    6072        mfc0    k0, CP0_INDEX 
    NESTED(except_vec3_r4000, 0, sp) 
    7991        .set    push 
    8092        .set    mips3 
    8193        .set    noat 
     94#ifdef CONFIG_BCM47XX 
     95        nop 
     96#endif 
    8297        mfc0    k1, CP0_CAUSE 
    8398        li      k0, 31<<2 
    8499        andi    k1, k1, 0x7c 
Note: See TracBrowser for help on using the repository browser.