source: trunk/target/linux/brcm47xx/patches-2.6.32/920-cache-wround.patch @ 19781

Last change on this file since 19781 was 19781, checked in by hauke, 7 years ago

[brcm47xx] refresh patches

File size: 3.4 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 + SSB_IMSTATE))) 
     23#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() 
     24 
     25static inline unsigned long bcm4710_dummy_rreg(void) { 
     26      return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))); 
     27} 
     28 
     29#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr)) 
     30 
     31static inline unsigned long bcm4710_fill_tlb(void *addr) { 
     32      return (*(unsigned long *)addr); 
     33} 
     34 
     35#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void*)(addr)) 
     36 
     37static inline void bcm4710_protected_fill_tlb(void *addr) { 
     38      unsigned long x; 
     39      get_dbe(x, (unsigned long *)addr);; 
     40} 
    2441 
    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)); }) 
    2742#else 
    2843#define BCM4710_DUMMY_RREG() 
    2944 
  • arch/mips/mm/tlbex.c

    a b build_get_pgde32(u32 **p, unsigned int t 
    601601#endif 
    602602        uasm_i_addu(p, ptr, tmp, ptr); 
    603603#else 
     604#ifdef CONFIG_BCM47XX 
     605        uasm_i_nop(p); 
     606#endif 
    604607        UASM_i_LA_mostly(p, ptr, pgdc); 
    605608#endif 
    606609        uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 
    static void __cpuinit build_r4000_tlb_re 
    739742                /* No need for uasm_i_nop */ 
    740743        } 
    741744 
    742 #ifdef CONFIG_BCM47XX 
    743         uasm_i_nop(&p); 
    744 #endif 
    745745#ifdef CONFIG_64BIT 
    746746        build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ 
    747747#else 
     748# ifdef CONFIG_BCM47XX 
     749        uasm_i_nop(&p); 
     750# endif 
    748751        build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ 
    749752#endif 
    750753 
    static void __cpuinit build_r4000_tlb_re 
    756759        build_update_entries(&p, K0, K1); 
    757760        build_tlb_write_entry(&p, &l, &r, tlb_random); 
    758761        uasm_l_leave(&l, p); 
     762#ifdef CONFIG_BCM47XX 
     763        uasm_i_nop(&p); 
     764#endif 
    759765        uasm_i_eret(&p); /* return from trap */ 
    760766 
    761767#ifdef CONFIG_HUGETLB_PAGE 
    build_r4000_tlbchange_handler_head(u32 * 
    11961202                                   struct uasm_reloc **r, unsigned int pte, 
    11971203                                   unsigned int ptr) 
    11981204{ 
    1199 #ifdef CONFIG_BCM47XX 
    1200         uasm_i_nop(p); 
    1201 #endif 
    12021205#ifdef CONFIG_64BIT 
    12031206        build_get_pmde64(p, l, r, pte, ptr); /* get pmd in ptr */ 
    12041207#else 
     1208# ifdef CONFIG_BCM47XX 
     1209        uasm_i_nop(p); 
     1210# endif 
    12051211        build_get_pgde32(p, pte, ptr); /* get pgd in ptr */ 
    12061212#endif 
    12071213 
    build_r4000_tlbchange_handler_tail(u32 * 
    12381244        build_update_entries(p, tmp, ptr); 
    12391245        build_tlb_write_entry(p, l, r, tlb_indexed); 
    12401246        uasm_l_leave(l, *p); 
     1247#ifdef CONFIG_BCM47XX 
     1248        uasm_i_nop(p); 
     1249#endif 
    12411250        uasm_i_eret(p); /* return from trap */ 
    12421251 
    12431252#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.