Changeset 27217


Ignore:
Timestamp:
2011-06-18T17:24:44+02:00 (7 years ago)
Author:
hauke
Message:

brcm47xx: add support for kernel 3.0

Location:
trunk/target/linux/brcm47xx
Files:
5 deleted
15 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm47xx/config-3.0

    r27216 r27217  
    1616CONFIG_BCM47XX=y 
    1717CONFIG_BCM47XX_WDT=y 
     18CONFIG_BCMA_POSSIBLE=y 
     19# CONFIG_BRCMUTIL is not set 
    1820# CONFIG_BSD_PROCESS_ACCT is not set 
    1921# CONFIG_BUG is not set 
     
    4244CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 
    4345CONFIG_GENERIC_CMOS_UPDATE=y 
    44 CONFIG_GENERIC_FIND_LAST_BIT=y 
    45 CONFIG_GENERIC_FIND_NEXT_BIT=y 
    4646CONFIG_GENERIC_GPIO=y 
    4747CONFIG_GENERIC_IRQ_SHOW=y 
     
    7676CONFIG_IRQ_CPU=y 
    7777CONFIG_KALLSYMS=y 
     78# CONFIG_LANTIQ is not set 
    7879CONFIG_LEDS_GPIO=y 
    7980CONFIG_MACH_NO_WESTBRIDGE=y 
     
    9596# CONFIG_PREEMPT_RCU is not set 
    9697# CONFIG_QUOTACTL is not set 
     98# CONFIG_RTC_CLASS is not set 
    9799# CONFIG_SCSI_DMA is not set 
    98100# CONFIG_SERIAL_8250_DETECT_IRQ is not set 
  • trunk/target/linux/brcm47xx/patches-3.0/014-MIPS-BCM47xx-Setup-and-register-serial-early.patch

    r24885 r27217  
    1616--- a/arch/mips/bcm47xx/setup.c 
    1717+++ b/arch/mips/bcm47xx/setup.c 
    18 @@ -28,6 +28,8 @@ 
     18@@ -29,6 +29,8 @@ 
    1919 #include <linux/types.h> 
    2020 #include <linux/ssb/ssb.h> 
     
    2525 #include <asm/reboot.h> 
    2626 #include <asm/time.h> 
    27 @@ -166,6 +168,31 @@ static int bcm47xx_get_invariants(struct 
     27@@ -247,6 +249,31 @@ static int bcm47xx_get_invariants(struct 
    2828        return 0; 
    2929 } 
     
    5757 { 
    5858        int err; 
    59 @@ -191,6 +218,10 @@ void __init plat_mem_setup(void) 
     59@@ -277,6 +304,10 @@ void __init plat_mem_setup(void) 
    6060                } 
    6161        } 
  • trunk/target/linux/brcm47xx/patches-3.0/022-USB-Add-ehci-ssb-driver.patch

    r27008 r27217  
    11--- a/drivers/usb/host/Kconfig 
    22+++ b/drivers/usb/host/Kconfig 
    3 @@ -215,6 +215,19 @@ config USB_OXU210HP_HCD 
     3@@ -230,6 +230,19 @@ config USB_OXU210HP_HCD 
    44          To compile this driver as a module, choose M here: the 
    55          module will be called oxu210hp-hcd. 
     
    2323--- a/drivers/usb/host/ehci-hcd.c 
    2424+++ b/drivers/usb/host/ehci-hcd.c 
    25 @@ -1265,9 +1265,14 @@ MODULE_LICENSE ("GPL"); 
    26  #define PLATFORM_DRIVER                tegra_ehci_driver 
     25@@ -1282,9 +1282,14 @@ MODULE_LICENSE ("GPL"); 
     26 #define PLATFORM_DRIVER                ehci_grlib_driver 
    2727 #endif 
    2828  
     
    3939 #endif 
    4040  
    41 @@ -1327,10 +1332,20 @@ static int __init ehci_hcd_init(void) 
     41@@ -1344,10 +1349,20 @@ static int __init ehci_hcd_init(void) 
    4242        if (retval < 0) 
    4343                goto clean4; 
     
    6161 #endif 
    6262 #ifdef OF_PLATFORM_DRIVER 
    63 @@ -1361,6 +1376,9 @@ module_init(ehci_hcd_init); 
     63@@ -1378,6 +1393,9 @@ module_init(ehci_hcd_init); 
    6464  
    6565 static void __exit ehci_hcd_cleanup(void) 
     
    118118+       ehci->caps = hcd->regs; 
    119119+       ehci->regs = hcd->regs + 
    120 +               HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase)); 
     120+               HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase)); 
    121121+ 
    122122+       dbg_hcs_params(ehci, "reset"); 
  • trunk/target/linux/brcm47xx/patches-3.0/023-usb_ehci_ohci.patch

    r27008 r27217  
    153153--- a/drivers/usb/host/ehci-hcd.c 
    154154+++ b/drivers/usb/host/ehci-hcd.c 
    155 @@ -1333,17 +1333,21 @@ static int __init ehci_hcd_init(void) 
     155@@ -1350,17 +1350,21 @@ static int __init ehci_hcd_init(void) 
    156156                goto clean4; 
    157157 #endif 
     
    175175        platform_driver_unregister(&XILINX_OF_PLATFORM_DRIVER); 
    176176 clean4: 
    177 @@ -1376,9 +1380,11 @@ module_init(ehci_hcd_init); 
     177@@ -1393,9 +1397,11 @@ module_init(ehci_hcd_init); 
    178178  
    179179 static void __exit ehci_hcd_cleanup(void) 
  • trunk/target/linux/brcm47xx/patches-3.0/110-flash_map.patch

    r23945 r27217  
    11--- a/drivers/mtd/maps/Kconfig 
    22+++ b/drivers/mtd/maps/Kconfig 
    3 @@ -328,6 +328,12 @@ config MTD_CFI_FLAGADM 
     3@@ -332,6 +332,12 @@ config MTD_CFI_FLAGADM 
    44          Mapping for the Flaga digital module. If you don't have one, ignore 
    55          this setting. 
     
    1616--- a/drivers/mtd/maps/Makefile 
    1717+++ b/drivers/mtd/maps/Makefile 
    18 @@ -29,6 +29,7 @@ obj-$(CONFIG_MTD_PMC_MSP_EVM)   += pmcms 
     18@@ -28,6 +28,7 @@ obj-$(CONFIG_MTD_PMC_MSP_EVM)   += pmcms 
    1919 obj-$(CONFIG_MTD_PCMCIA)       += pcmciamtd.o 
    2020 obj-$(CONFIG_MTD_RPXLITE)      += rpxlite.o 
  • trunk/target/linux/brcm47xx/patches-3.0/150-cpu_fixes.patch

    r27008 r27217  
    296296                protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); 
    297297        if (!cpu_icache_snoops_remote_store && scache_size) 
    298 @@ -1308,6 +1322,17 @@ static void __cpuinit coherency_setup(vo 
     298@@ -1309,6 +1323,17 @@ static void __cpuinit coherency_setup(vo 
    299299         * silly idea of putting something else there ... 
    300300         */ 
     
    314314        case CPU_R4000SC: 
    315315        case CPU_R4000MC: 
    316 @@ -1364,6 +1389,15 @@ void __cpuinit r4k_cache_init(void) 
     316@@ -1365,6 +1390,15 @@ void __cpuinit r4k_cache_init(void) 
    317317                break; 
    318318        } 
     
    330330        setup_scache(); 
    331331  
    332 @@ -1422,5 +1456,13 @@ void __cpuinit r4k_cache_init(void) 
     332@@ -1423,5 +1457,13 @@ void __cpuinit r4k_cache_init(void) 
    333333 #if !defined(CONFIG_MIPS_CMP) 
    334334        local_r4k___flush_cache_all(NULL); 
     
    346346--- a/arch/mips/mm/tlbex.c 
    347347+++ b/arch/mips/mm/tlbex.c 
    348 @@ -1187,6 +1187,9 @@ static void __cpuinit build_r4000_tlb_re 
     348@@ -1188,6 +1188,9 @@ static void __cpuinit build_r4000_tlb_re 
    349349                        /* No need for uasm_i_nop */ 
    350350                } 
     
    356356                build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ 
    357357 #else 
    358 @@ -1706,6 +1709,9 @@ build_r4000_tlbchange_handler_head(u32 * 
     358@@ -1707,6 +1710,9 @@ build_r4000_tlbchange_handler_head(u32 * 
    359359                                   struct uasm_reloc **r, unsigned int pte, 
    360360                                   unsigned int ptr) 
  • trunk/target/linux/brcm47xx/patches-3.0/160-kmap_coherent.patch

    r21707 r27217  
    4949--- a/arch/mips/mm/init.c 
    5050+++ b/arch/mips/mm/init.c 
    51 @@ -210,7 +210,7 @@ void copy_user_highpage(struct page *to, 
     51@@ -208,7 +208,7 @@ void copy_user_highpage(struct page *to, 
    5252        void *vfrom, *vto; 
    5353  
     
    5858                vfrom = kmap_coherent(from, vaddr); 
    5959                copy_page(vto, vfrom); 
    60 @@ -232,7 +232,7 @@ void copy_to_user_page(struct vm_area_st 
     60@@ -230,7 +230,7 @@ void copy_to_user_page(struct vm_area_st 
    6161        struct page *page, unsigned long vaddr, void *dst, const void *src, 
    6262        unsigned long len) 
     
    6767                void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); 
    6868                memcpy(vto, src, len); 
    69 @@ -250,7 +250,7 @@ void copy_from_user_page(struct vm_area_ 
     69@@ -248,7 +248,7 @@ void copy_from_user_page(struct vm_area_ 
    7070        struct page *page, unsigned long vaddr, void *dst, const void *src, 
    7171        unsigned long len) 
  • trunk/target/linux/brcm47xx/patches-3.0/210-b44_phy_fix.patch

    r24162 r27217  
    5151        if (bp->phy_addr == B44_PHY_ADDR_NO_PHY) 
    5252                return 0; 
    53 @@ -2088,6 +2120,8 @@ static int __devinit b44_get_invariants( 
     53@@ -2089,6 +2121,8 @@ static int __devinit b44_get_invariants( 
    5454         * valid PHY address. */ 
    5555        bp->phy_addr &= 0x1F; 
  • trunk/target/linux/brcm47xx/patches-3.0/220-bcm5354.patch

    r26127 r27217  
    11--- a/drivers/ssb/driver_chipcommon.c 
    22+++ b/drivers/ssb/driver_chipcommon.c 
    3 @@ -285,6 +285,8 @@ void ssb_chipco_resume(struct ssb_chipco 
     3@@ -317,6 +317,8 @@ void ssb_chipco_resume(struct ssb_chipco 
    44 void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc, 
    55                              u32 *plltype, u32 *n, u32 *m) 
     
    1010        *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); 
    1111        switch (*plltype) { 
    12 @@ -308,6 +310,8 @@ void ssb_chipco_get_clockcpu(struct ssb_ 
     12@@ -340,6 +342,8 @@ void ssb_chipco_get_clockcpu(struct ssb_ 
    1313 void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc, 
    1414                                 u32 *plltype, u32 *n, u32 *m) 
  • trunk/target/linux/brcm47xx/patches-3.0/301-kmod-fuse-dcache-bug-r4k.patch

    r27008 r27217  
    1919 { 
    2020        struct flush_cache_page_args args; 
    21 @@ -1466,3 +1466,7 @@ void __cpuinit r4k_cache_init(void) 
     21@@ -1467,3 +1467,7 @@ void __cpuinit r4k_cache_init(void) 
    2222        coherency_setup(); 
    2323 #endif 
  • trunk/target/linux/brcm47xx/patches-3.0/302-kmod-fuse-dcache-bug-fuse.patch

    r27008 r27217  
    3434--- a/fs/fuse/inode.c 
    3535+++ b/fs/fuse/inode.c 
    36 @@ -1200,6 +1200,10 @@ static int __init fuse_init(void) 
     36@@ -1202,6 +1202,10 @@ static int __init fuse_init(void) 
    3737        printk(KERN_INFO "fuse init (API version %i.%i)\n", 
    3838               FUSE_KERNEL_VERSION, FUSE_KERNEL_MINOR_VERSION); 
  • trunk/target/linux/brcm47xx/patches-3.0/310-no_highpage.patch

    r23911 r27217  
    3434--- a/arch/mips/mm/init.c 
    3535+++ b/arch/mips/mm/init.c 
    36 @@ -204,30 +204,6 @@ void kunmap_coherent(void) 
     36@@ -202,30 +202,6 @@ void kunmap_coherent(void) 
    3737        preempt_check_resched(); 
    3838 } 
  • trunk/target/linux/brcm47xx/patches-3.0/700-ssb-gigabit-ethernet-driver.patch

    r27008 r27217  
    99 #include <net/checksum.h> 
    1010 #include <net/ip.h> 
    11 @@ -488,8 +489,9 @@ static void _tw32_flush(struct tg3 *tp, 
     11@@ -515,7 +516,8 @@ static void _tw32_flush(struct tg3 *tp, 
    1212 static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val) 
    1313 { 
    1414        tp->write32_mbox(tp, off, val); 
    15 -       if (!(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) && 
    16 -           !(tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND)) 
    17 +       if ((tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES) || 
    18 +           (!(tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) && 
    19 +            !(tp->tg3_flags2 & TG3_FLG2_ICH_WORKAROUND))) 
     15-       if (!tg3_flag(tp, MBOX_WRITE_REORDER) && !tg3_flag(tp, ICH_WORKAROUND)) 
     16+       if (tg3_flag(tp, FLUSH_POSTED_WRITES) || 
     17+           (!tg3_flag(tp, MBOX_WRITE_REORDER) && !tg3_flag(tp, ICH_WORKAROUND))) 
    2018                tp->read32_mbox(tp, off); 
    2119 } 
    2220  
    23 @@ -499,7 +501,7 @@ static void tg3_write32_tx_mbox(struct t 
     21@@ -525,7 +527,7 @@ static void tg3_write32_tx_mbox(struct t 
    2422        writel(val, mbox); 
    25         if (tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) 
     23        if (tg3_flag(tp, TXD_MBOX_HWBUG)) 
    2624                writel(val, mbox); 
    27 -       if (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) 
    28 +       if ((tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) || (tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES)) 
     25-       if (tg3_flag(tp, MBOX_WRITE_REORDER)) 
     26+       if (tg3_flag(tp, MBOX_WRITE_REORDER) || tg3_flag(tp, FLUSH_POSTED_WRITES)) 
    2927                readl(mbox); 
    3028 } 
    3129  
    32 @@ -782,7 +784,7 @@ static void tg3_switch_clocks(struct tg3 
     30@@ -804,7 +806,7 @@ static void tg3_switch_clocks(struct tg3 
    3331  
    3432 #define PHY_BUSY_LOOPS 5000 
     
    3937        u32 frame_val; 
    4038        unsigned int loops; 
    41 @@ -796,7 +798,7 @@ static int tg3_readphy(struct tg3 *tp, i 
     39@@ -818,7 +820,7 @@ static int tg3_readphy(struct tg3 *tp, i 
    4240  
    4341        *val = 0x0; 
     
    4846        frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & 
    4947                      MI_COM_REG_ADDR_MASK); 
    50 @@ -831,7 +833,12 @@ static int tg3_readphy(struct tg3 *tp, i 
     48@@ -853,7 +855,12 @@ static int tg3_readphy(struct tg3 *tp, i 
    5149        return ret; 
    5250 } 
     
    6260        u32 frame_val; 
    6361        unsigned int loops; 
    64 @@ -847,7 +854,7 @@ static int tg3_writephy(struct tg3 *tp, 
     62@@ -869,7 +876,7 @@ static int tg3_writephy(struct tg3 *tp, 
    6563                udelay(80); 
    6664        } 
     
    7169        frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & 
    7270                      MI_COM_REG_ADDR_MASK); 
    73 @@ -880,6 +887,11 @@ static int tg3_writephy(struct tg3 *tp, 
     71@@ -902,6 +909,11 @@ static int tg3_writephy(struct tg3 *tp, 
    7472        return ret; 
    7573 } 
     
    8078+} 
    8179+ 
    82  static int tg3_bmcr_reset(struct tg3 *tp) 
    83  { 
    84         u32 phy_control; 
    85 @@ -2488,6 +2500,9 @@ static int tg3_nvram_read(struct tg3 *tp 
     80 static int tg3_phy_cl45_write(struct tg3 *tp, u32 devad, u32 addr, u32 val) 
     81 { 
     82        int err; 
     83@@ -2532,6 +2544,9 @@ static int tg3_nvram_read(struct tg3 *tp 
    8684 { 
    8785        int ret; 
    8886  
    89 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) 
     87+       if (tg3_flag(tp, IS_SSB_CORE)) 
    9088+               return -ENODEV; 
    9189+ 
    92         if (!(tp->tg3_flags & TG3_FLAG_NVRAM)) 
     90        if (!tg3_flag(tp, NVRAM)) 
    9391                return tg3_nvram_read_using_eeprom(tp, offset, val); 
    9492  
    95 @@ -2812,8 +2827,10 @@ static int tg3_power_down_prepare(struct 
     93@@ -2855,8 +2870,10 @@ static int tg3_power_down_prepare(struct 
    9694        tg3_frob_aux_power(tp); 
    9795  
     
    106104  
    107105                val &= ~((1 << 16) | (1 << 4) | (1 << 2) | (1 << 1) | 1); 
    108 @@ -3340,6 +3357,14 @@ relink: 
     106@@ -3377,6 +3394,14 @@ relink: 
    109107        if (current_link_up == 0 || (tp->phy_flags & TG3_PHYFLG_IS_LOW_POWER)) { 
    110108                tg3_phy_copper_begin(tp); 
    111109  
    112 +               if (tp->tg3_flags3 & TG3_FLG3_ROBOSWITCH) { 
     110+               if (tg3_flag(tp, ROBOSWITCH)) { 
    113111+                       current_link_up = 1; 
    114112+                       current_speed = SPEED_1000; /* FIXME */ 
     
    119117+ 
    120118                tg3_readphy(tp, MII_BMSR, &bmsr); 
    121                 if (!tg3_readphy(tp, MII_BMSR, &bmsr) && 
    122                     (bmsr & BMSR_LSTATUS)) 
    123 @@ -6916,6 +6941,11 @@ static int tg3_poll_fw(struct tg3 *tp) 
     119                if ((!tg3_readphy(tp, MII_BMSR, &bmsr) && (bmsr & BMSR_LSTATUS)) || 
     120                    (tp->mac_mode & MAC_MODE_PORT_INT_LPBACK)) 
     121@@ -6962,6 +6987,11 @@ static int tg3_poll_fw(struct tg3 *tp) 
    124122        int i; 
    125123        u32 val; 
    126124  
    127 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) { 
     125+       if (tg3_flag(tp, IS_SSB_CORE)) { 
    128126+               /* We don't use firmware. */ 
    129127+               return 0; 
     
    133131                /* Wait up to 20ms for init done. */ 
    134132                for (i = 0; i < 200; i++) { 
    135 @@ -7206,6 +7236,14 @@ static int tg3_chip_reset(struct tg3 *tp 
     133@@ -7251,6 +7281,14 @@ static int tg3_chip_reset(struct tg3 *tp 
    136134                tw32(0x5000, 0x400); 
    137135        } 
    138136  
    139 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) { 
     137+       if (tg3_flag(tp, IS_SSB_CORE)) { 
    140138+               /* BCM4785: In order to avoid repercussions from using potentially 
    141139+                * defective internal ROM, stop the Rx RISC CPU, which is not 
     
    148146  
    149147        if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) { 
    150 @@ -7360,9 +7398,12 @@ static int tg3_halt_cpu(struct tg3 *tp, 
     148@@ -7408,9 +7446,12 @@ static int tg3_halt_cpu(struct tg3 *tp, 
    151149                return -ENODEV; 
    152150        } 
    153151  
    154152-       /* Clear firmware's nvram arbitration. */ 
    155 -       if (tp->tg3_flags & TG3_FLAG_NVRAM) 
     153-       if (tg3_flag(tp, NVRAM)) 
    156154-               tw32(NVRAM_SWARB, SWARB_REQ_CLR0); 
    157 +       if (!(tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE)) { 
     155+       if (!tg3_flag(tp, IS_SSB_CORE)) { 
    158156+               /* Clear firmware's nvram arbitration. */ 
    159 +               if (tp->tg3_flags & TG3_FLAG_NVRAM) 
     157+               if (tg3_flag(tp, NVRAM)) 
    160158+                       tw32(NVRAM_SWARB, SWARB_REQ_CLR0); 
    161159+       } 
     
    164162 } 
    165163  
    166 @@ -7425,6 +7466,11 @@ static int tg3_load_5701_a0_firmware_fix 
     164@@ -7472,6 +7513,11 @@ static int tg3_load_5701_a0_firmware_fix 
    167165        const __be32 *fw_data; 
    168166        int err, i; 
    169167  
    170 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) { 
     168+       if (tg3_flag(tp, IS_SSB_CORE)) { 
    171169+               /* We don't use firmware. */ 
    172170+               return 0; 
     
    176174  
    177175        /* Firmware blob starts with version numbers, followed by 
    178 @@ -7483,6 +7529,11 @@ static int tg3_load_tso_firmware(struct 
     176@@ -7528,6 +7574,11 @@ static int tg3_load_tso_firmware(struct 
    179177        unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size; 
    180178        int err, i; 
    181179  
    182 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) { 
     180+       if (tg3_flag(tp, IS_SSB_CORE)) { 
    183181+               /* We don't use firmware. */ 
    184182+               return 0; 
    185183+       } 
    186184+ 
    187         if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) 
    188                 return 0; 
    189   
    190 @@ -8701,6 +8752,11 @@ static void tg3_timer(unsigned long __op 
     185        if (tg3_flag(tp, HW_TSO_1) || 
     186            tg3_flag(tp, HW_TSO_2) || 
     187            tg3_flag(tp, HW_TSO_3)) 
     188@@ -8825,6 +8876,11 @@ static void tg3_timer(unsigned long __op 
    191189  
    192190        spin_lock(&tp->lock); 
    193191  
    194 +       if (tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES) { 
     192+       if (tg3_flag(tp, FLUSH_POSTED_WRITES)) { 
    195193+               /* BCM4785: Flush posted writes from GbE to host memory. */ 
    196194+               tr32(HOSTCC_MODE); 
    197195+       } 
    198196+ 
    199         if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) { 
     197        if (!tg3_flag(tp, TAGGED_STATUS)) { 
    200198                /* All of this garbage is because when using non-tagged 
    201199                 * IRQ status the mailbox/status_block protocol the chip 
    202 @@ -10372,6 +10428,11 @@ static int tg3_test_nvram(struct tg3 *tp 
    203         if (tp->tg3_flags3 & TG3_FLG3_NO_NVRAM) 
     200@@ -10448,6 +10504,11 @@ static int tg3_test_nvram(struct tg3 *tp 
     201        if (tg3_flag(tp, NO_NVRAM)) 
    204202                return 0; 
    205203  
    206 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) { 
     204+       if (tg3_flag(tp, IS_SSB_CORE)) { 
    207205+               /* We don't have NVRAM. */ 
    208206+               return 0; 
     
    212210                return -EIO; 
    213211  
    214 @@ -11253,7 +11314,7 @@ static int tg3_ioctl(struct net_device * 
     212@@ -11442,7 +11503,7 @@ static int tg3_ioctl(struct net_device * 
    215213                        return -EAGAIN; 
    216214  
     
    221219  
    222220                data->val_out = mii_regval; 
    223 @@ -11271,7 +11332,7 @@ static int tg3_ioctl(struct net_device * 
     221@@ -11458,7 +11519,7 @@ static int tg3_ioctl(struct net_device * 
    224222                        return -EAGAIN; 
    225223  
     
    230228  
    231229                return err; 
    232 @@ -11891,6 +11952,12 @@ static void __devinit tg3_get_5717_nvram 
     230@@ -12188,6 +12249,13 @@ static void __devinit tg3_get_5720_nvram 
    233231 /* Chips other than 5700/5701 use the NVRAM for fetching info. */ 
    234232 static void __devinit tg3_nvram_init(struct tg3 *tp) 
    235233 { 
    236 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) { 
     234+       if (tg3_flag(tp, IS_SSB_CORE)) { 
    237235+               /* No NVRAM and EEPROM on the SSB Broadcom GigE core. */ 
    238 +               tp->tg3_flags &= ~(TG3_FLAG_NVRAM | TG3_FLAG_NVRAM_BUFFERED); 
     236+               tg3_flag_clear(tp, NVRAM); 
     237+               tg3_flag_clear(tp, NVRAM_BUFFERED); 
    239238+               return; 
    240239+       } 
     
    243242             (EEPROM_ADDR_FSM_RESET | 
    244243              (EEPROM_DEFAULT_CLOCK_PERIOD << 
    245 @@ -12154,6 +12221,9 @@ static int tg3_nvram_write_block(struct 
     244@@ -12454,6 +12522,9 @@ static int tg3_nvram_write_block(struct 
    246245 { 
    247246        int ret; 
    248247  
    249 +       if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) 
     248+       if (tg3_flag(tp, IS_SSB_CORE)) 
    250249+               return -ENODEV; 
    251250+ 
    252         if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) { 
     251        if (tg3_flag(tp, EEPROM_WRITE_PROT)) { 
    253252                tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl & 
    254253                       ~GRC_LCLCTRL_GPIO_OUTPUT1); 
    255 @@ -13615,6 +13685,11 @@ static int __devinit tg3_get_invariants( 
     254@@ -13863,6 +13934,11 @@ static int __devinit tg3_get_invariants( 
    256255              GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701))) 
    257                 tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG; 
    258   
    259 +       if (tp->tg3_flags3 & TG3_FLG3_FLUSH_POSTED_WRITES) { 
     256                tg3_flag_set(tp, SRAM_USE_CONFIG); 
     257  
     258+       if (tg3_flag(tp, FLUSH_POSTED_WRITES)) { 
    260259+               tp->write32_tx_mbox = tg3_write_flush_reg32; 
    261260+               tp->write32_rx_mbox = tg3_write_flush_reg32; 
     
    263262+ 
    264263        /* Get eeprom hw config before calling tg3_set_power_state(). 
    265          * In particular, the TG3_FLG2_IS_NIC flag must be 
     264         * In particular, the TG3_FLAG_IS_NIC flag must be 
    266265         * determined before calling tg3_set_power_state() so that 
    267 @@ -14012,6 +14087,10 @@ static int __devinit tg3_get_device_addr 
     266@@ -14274,6 +14350,8 @@ static int __devinit tg3_get_device_addr 
    268267        } 
    269268  
    270269        if (!is_valid_ether_addr(&dev->dev_addr[0])) { 
    271 +               if (tp->tg3_flags3 & TG3_FLG3_IS_SSB_CORE) 
     270+               if (tg3_flag(tp, IS_SSB_CORE)) 
    272271+                       ssb_gige_get_macaddr(tp->pdev, &dev->dev_addr[0]); 
    273 +       } 
    274 +       if (!is_valid_ether_addr(&dev->dev_addr[0])) { 
    275272 #ifdef CONFIG_SPARC 
    276273                if (!tg3_get_default_macaddr_sparc(tp)) 
    277274                        return 0; 
    278 @@ -14512,6 +14591,7 @@ static char * __devinit tg3_phy_string(s 
     275@@ -14772,6 +14850,7 @@ static char * __devinit tg3_phy_string(s 
    279276        case TG3_PHY_ID_BCM5704:        return "5704"; 
    280277        case TG3_PHY_ID_BCM5705:        return "5705"; 
     
    284281        case TG3_PHY_ID_BCM5714:        return "5714"; 
    285282        case TG3_PHY_ID_BCM5780:        return "5780"; 
    286 @@ -14715,6 +14795,13 @@ static int __devinit tg3_init_one(struct 
     283@@ -14961,6 +15040,13 @@ static int __devinit tg3_init_one(struct 
    287284                tp->msg_enable = tg3_debug; 
    288285        else 
    289286                tp->msg_enable = TG3_DEF_MSG_ENABLE; 
    290287+       if (pdev_is_ssb_gige_core(pdev)) { 
    291 +               tp->tg3_flags3 |= TG3_FLG3_IS_SSB_CORE; 
     288+               tg3_flag_set(tp, IS_SSB_CORE); 
    292289+               if (ssb_gige_must_flush_posted_writes(pdev)) 
    293 +                       tp->tg3_flags3 |= TG3_FLG3_FLUSH_POSTED_WRITES; 
     290+                       tg3_flag_set(tp, FLUSH_POSTED_WRITES); 
    294291+               if (ssb_gige_have_roboswitch(pdev)) 
    295 +                       tp->tg3_flags3 |= TG3_FLG3_ROBOSWITCH; 
     292+                       tg3_flag_set(tp, ROBOSWITCH); 
    296293+       } 
    297294  
     
    300297--- a/drivers/net/tg3.h 
    301298+++ b/drivers/net/tg3.h 
    302 @@ -2065,6 +2065,9 @@ 
    303  #define  NIC_SRAM_RGMII_INBAND_DISABLE  0x00000004 
    304  #define  NIC_SRAM_RGMII_EXT_IBND_RX_EN  0x00000008 
    305  #define  NIC_SRAM_RGMII_EXT_IBND_TX_EN  0x00000010 
    306 +#define TG3_FLG3_IS_SSB_CORE           0x00000800 
    307 +#define TG3_FLG3_FLUSH_POSTED_WRITES   0x00001000 
    308 +#define TG3_FLG3_ROBOSWITCH            0x00002000 
    309   
    310  #define NIC_SRAM_RX_MINI_BUFFER_DESC   0x00001000 
    311   
    312 @@ -2971,6 +2974,7 @@ struct tg3 { 
     299@@ -2901,6 +2901,9 @@ enum TG3_FLAGS { 
     300        TG3_FLAG_57765_PLUS, 
     301        TG3_FLAG_APE_HAS_NCSI, 
     302        TG3_FLAG_5717_PLUS, 
     303+       TG3_FLAG_IS_SSB_CORE, 
     304+       TG3_FLAG_FLUSH_POSTED_WRITES, 
     305+       TG3_FLAG_ROBOSWITCH, 
     306  
     307        /* Add new flags before this comment and TG3_FLAG_NUMBER_OF_FLAGS */ 
     308        TG3_FLAG_NUMBER_OF_FLAGS,       /* Last entry in enum TG3_FLAGS */ 
     309@@ -3051,6 +3054,7 @@ struct tg3 { 
    313310 #define TG3_PHY_ID_BCM5704             0x60008190 
    314311 #define TG3_PHY_ID_BCM5705             0x600081a0 
     
    318315 #define TG3_PHY_ID_BCM5714             0x60008340 
    319316 #define TG3_PHY_ID_BCM5780             0x60008350 
    320 @@ -3007,7 +3011,7 @@ struct tg3 { 
     317@@ -3088,7 +3092,7 @@ struct tg3 { 
    321318         (X) == TG3_PHY_ID_BCM5906 || (X) == TG3_PHY_ID_BCM5761 || \ 
    322319         (X) == TG3_PHY_ID_BCM5718C || (X) == TG3_PHY_ID_BCM5718S || \ 
  • trunk/target/linux/brcm47xx/patches-3.0/830-tg3_add_pci_ids.patch

    r27008 r27217  
    99--- a/drivers/net/tg3.c 
    1010+++ b/drivers/net/tg3.c 
    11 @@ -217,9 +217,12 @@ static DEFINE_PCI_DEVICE_TABLE(tg3_pci_t 
     11@@ -235,9 +235,12 @@ static DEFINE_PCI_DEVICE_TABLE(tg3_pci_t 
    1212        {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901_2)}, 
    1313        {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S_2)}, 
     
    2424--- a/include/linux/pci_ids.h 
    2525+++ b/include/linux/pci_ids.h 
    26 @@ -2074,6 +2074,7 @@ 
     26@@ -2076,6 +2076,7 @@ 
    2727 #define PCI_DEVICE_ID_NX2_57711E       0x1650 
    2828 #define PCI_DEVICE_ID_TIGON3_5705      0x1653 
     
    3232 #define PCI_DEVICE_ID_TIGON3_5722      0x165a 
    3333 #define PCI_DEVICE_ID_TIGON3_5723      0x165b 
    34 @@ -2089,11 +2090,13 @@ 
     34@@ -2091,11 +2092,13 @@ 
    3535 #define PCI_DEVICE_ID_TIGON3_5754M     0x1672 
    3636 #define PCI_DEVICE_ID_TIGON3_5755M     0x1673 
  • trunk/target/linux/brcm47xx/patches-3.0/920-cache-wround.patch

    r26524 r27217  
    3535--- a/arch/mips/mm/tlbex.c 
    3636+++ b/arch/mips/mm/tlbex.c 
    37 @@ -834,6 +834,9 @@ build_get_pgde32(u32 **p, unsigned int t 
     37@@ -835,6 +835,9 @@ build_get_pgde32(u32 **p, unsigned int t 
    3838 #endif 
    3939        uasm_i_addu(p, ptr, tmp, ptr); 
     
    4545 #endif 
    4646        uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 
    47 @@ -1187,12 +1190,12 @@ static void __cpuinit build_r4000_tlb_re 
     47@@ -1188,12 +1191,12 @@ static void __cpuinit build_r4000_tlb_re 
    4848                        /* No need for uasm_i_nop */ 
    4949                } 
     
    6161 #endif 
    6262  
    63 @@ -1204,6 +1207,9 @@ static void __cpuinit build_r4000_tlb_re 
     63@@ -1205,6 +1208,9 @@ static void __cpuinit build_r4000_tlb_re 
    6464                build_update_entries(&p, K0, K1); 
    6565                build_tlb_write_entry(&p, &l, &r, tlb_random); 
     
    7171        } 
    7272 #ifdef CONFIG_HUGETLB_PAGE 
    73 @@ -1709,12 +1715,12 @@ build_r4000_tlbchange_handler_head(u32 * 
     73@@ -1710,12 +1716,12 @@ build_r4000_tlbchange_handler_head(u32 * 
    7474                                   struct uasm_reloc **r, unsigned int pte, 
    7575                                   unsigned int ptr) 
     
    8787 #endif 
    8888  
    89 @@ -1751,6 +1757,9 @@ build_r4000_tlbchange_handler_tail(u32 * 
     89@@ -1752,6 +1758,9 @@ build_r4000_tlbchange_handler_tail(u32 * 
    9090        build_update_entries(p, tmp, ptr); 
    9191        build_tlb_write_entry(p, l, r, tlb_indexed); 
  • trunk/target/linux/brcm47xx/patches-3.0/976-ssb_increase_pci_delay.patch

    r25085 r27217  
    11--- a/drivers/ssb/driver_pcicore.c 
    22+++ b/drivers/ssb/driver_pcicore.c 
    3 @@ -370,7 +370,7 @@ static void ssb_pcicore_init_hostmode(st 
     3@@ -375,7 +375,7 @@ static void ssb_pcicore_init_hostmode(st 
    44        set_io_port_base(ssb_pcicore_controller.io_map_base); 
    55        /* Give some time to the PCI controller to configure itself with the new 
Note: See TracChangeset for help on using the changeset viewer.