diff --git a/target/linux/brcm47xx/config-2.6.25 b/target/linux/brcm47xx/config-2.6.25 index 3777ab78e9..a6970f2cef 100644 --- a/target/linux/brcm47xx/config-2.6.25 +++ b/target/linux/brcm47xx/config-2.6.25 @@ -8,7 +8,6 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPROFILE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ARPD is not set -# CONFIG_ATMEL is not set CONFIG_B44=y CONFIG_B44_PCI=y CONFIG_B44_PCICORE_AUTOSELECT=y @@ -16,19 +15,13 @@ CONFIG_B44_PCI_AUTOSELECT=y CONFIG_BASE_SMALL=0 CONFIG_BCM47XX=y CONFIG_BITREVERSE=y -# CONFIG_BONDING is not set # CONFIG_BSD_DISKLABEL is not set # CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_BT_HCIVHCI is not set CONFIG_CEVT_R4K=y CONFIG_CFE=y -# CONFIG_CIFS_STATS is not set CONFIG_CLASSIC_RCU=y -# CONFIG_CLS_U32_MARK is not set -# CONFIG_CLS_U32_PERF is not set CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200" # CONFIG_CONFIGFS_FS is not set -# CONFIG_CONNECTOR is not set # CONFIG_CPU_BIG_ENDIAN is not set CONFIG_CPU_HAS_LLSC=y CONFIG_CPU_HAS_PREFETCH=y @@ -58,18 +51,13 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y # CONFIG_CPU_TX39XX is not set # CONFIG_CPU_TX49XX is not set # CONFIG_CPU_VR41XX is not set -# CONFIG_CRYPTO_AEAD is not set -# CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_GF128MUL is not set CONFIG_CSRC_R4K=y CONFIG_DEVPORT=y # CONFIG_DM9000 is not set CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_DMA_NONCOHERENT=y -# CONFIG_E100 is not set # CONFIG_E1000E_ENABLED is not set CONFIG_EARLY_PRINTK=y -CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CMOS_UPDATE=y @@ -84,7 +72,6 @@ CONFIG_HAVE_IDE=y # CONFIG_HAVE_KPROBES is not set # CONFIG_HAVE_KRETPROBES is not set CONFIG_HAVE_OPROFILE=y -# CONFIG_HID is not set CONFIG_HW_HAS_PCI=y CONFIG_HW_RANDOM=y CONFIG_HZ=250 @@ -96,27 +83,15 @@ CONFIG_HZ_250=y # CONFIG_IBM_NEW_EMAC_TAH is not set # CONFIG_IBM_NEW_EMAC_ZMII is not set # CONFIG_IDE is not set -# CONFIG_IEEE80211_SOFTMAC is not set -# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INPUT=y CONFIG_INPUT_EVDEV=y CONFIG_INPUT_POLLDEV=y -# CONFIG_IP6_NF_MATCH_FRAG is not set -# CONFIG_IP6_NF_MATCH_HL is not set -# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set -# CONFIG_IP6_NF_MATCH_OPTS is not set -# CONFIG_IP6_NF_MATCH_RT is not set -# CONFIG_IP6_NF_TARGET_HL is not set -CONFIG_IPW2200_QOS=y # CONFIG_IP_ROUTE_VERBOSE is not set CONFIG_IRQ_CPU=y # CONFIG_LEDS_ALIX is not set CONFIG_LEDS_GPIO=y # CONFIG_LEMOTE_FULONG is not set -# CONFIG_LLC2 is not set -# CONFIG_LZO_COMPRESS is not set -# CONFIG_LZO_DECOMPRESS is not set # CONFIG_MACH_ALCHEMY is not set # CONFIG_MACH_DECSTATION is not set # CONFIG_MACH_JAZZ is not set @@ -179,9 +154,6 @@ CONFIG_MTD_PARTITIONS=y # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_NET_EMATCH is not set -# CONFIG_NET_IPGRE_BROADCAST is not set -# CONFIG_NET_PKTGEN is not set -# CONFIG_NET_SCH_NETEM is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_NO_IOPORT is not set # CONFIG_PAGE_SIZE_16KB is not set @@ -194,8 +166,6 @@ CONFIG_PCI_DOMAINS=y # CONFIG_PMC_YOSEMITE is not set # CONFIG_PNX8550_JBS is not set # CONFIG_PNX8550_STB810 is not set -# CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_SYNC_TTY is not set # CONFIG_PROC_KCORE is not set # CONFIG_R6040 is not set CONFIG_RFKILL=y @@ -205,8 +175,7 @@ CONFIG_RFKILL_LEDS=y CONFIG_RTC_LIB=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_WAIT_SCAN is not set +# CONFIG_SCSI_DMA is not set # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set @@ -241,7 +210,6 @@ CONFIG_SSB_PCIHOST=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_POSSIBLE=y CONFIG_SSB_SERIAL=y -# CONFIG_SSB_SILENT is not set CONFIG_SYSVIPC_SYSCTL=y CONFIG_SYS_HAS_CPU_MIPS32_R1=y CONFIG_SYS_HAS_EARLY_PRINTK=y @@ -254,18 +222,8 @@ CONFIG_TICK_ONESHOT=y # CONFIG_TOSHIBA_RBTX4927 is not set # CONFIG_TOSHIBA_RBTX4938 is not set CONFIG_TRAD_SIGNALS=y -# CONFIG_USB is not set -# CONFIG_USB_ACM is not set -# CONFIG_USB_EHCI_HCD is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -# CONFIG_USB_OHCI_HCD is not set -# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_SUPPORT=y -# CONFIG_USB_UHCI_HCD is not set # CONFIG_VGASTATE is not set # CONFIG_VIA_RHINE is not set -# CONFIG_VIDEO_DEV is not set -# CONFIG_W1_CON is not set # CONFIG_WATCHDOG is not set CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/brcm47xx/config-2.6.28 b/target/linux/brcm47xx/config-2.6.28 index e39569d417..0569ed880c 100644 --- a/target/linux/brcm47xx/config-2.6.28 +++ b/target/linux/brcm47xx/config-2.6.28 @@ -8,7 +8,6 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SUPPORTS_OPROFILE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ARPD is not set -# CONFIG_ATMEL is not set CONFIG_B44=y CONFIG_B44_PCI=y CONFIG_B44_PCICORE_AUTOSELECT=y @@ -16,20 +15,13 @@ CONFIG_B44_PCI_AUTOSELECT=y CONFIG_BASE_SMALL=0 CONFIG_BCM47XX=y CONFIG_BITREVERSE=y -# CONFIG_BONDING is not set -# CONFIG_BROADCOM_PHY is not set # CONFIG_BSD_DISKLABEL is not set # CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_BT_HCIVHCI is not set CONFIG_CEVT_R4K=y CONFIG_CFE=y -# CONFIG_CIFS_STATS is not set CONFIG_CLASSIC_RCU=y -# CONFIG_CLS_U32_MARK is not set -# CONFIG_CLS_U32_PERF is not set CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200" # CONFIG_CONFIGFS_FS is not set -# CONFIG_CONNECTOR is not set # CONFIG_CPU_BIG_ENDIAN is not set CONFIG_CPU_HAS_LLSC=y CONFIG_CPU_HAS_PREFETCH=y @@ -60,13 +52,6 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y # CONFIG_CPU_TX39XX is not set # CONFIG_CPU_TX49XX is not set # CONFIG_CPU_VR41XX is not set -# CONFIG_CRYPTO_AEAD2 is not set -# CONFIG_CRYPTO_ALGAPI2 is not set -# CONFIG_CRYPTO_BLKCIPHER2 is not set -# CONFIG_CRYPTO_GF128MUL is not set -# CONFIG_CRYPTO_HASH2 is not set -# CONFIG_CRYPTO_MANAGER2 is not set -# CONFIG_CRYPTO_RNG2 is not set CONFIG_CSRC_R4K=y CONFIG_DEVPORT=y # CONFIG_DM9000 is not set @@ -75,7 +60,6 @@ CONFIG_DMA_NONCOHERENT=y CONFIG_EARLY_PRINTK=y # CONFIG_FIXED_PHY is not set # CONFIG_FREEZER is not set -CONFIG_FS_POSIX_ACL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CMOS_UPDATE=y @@ -92,7 +76,6 @@ CONFIG_HAVE_ARCH_KGDB=y # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_HAVE_IDE=y CONFIG_HAVE_OPROFILE=y -# CONFIG_HID is not set CONFIG_HW_HAS_PCI=y CONFIG_HW_RANDOM=y CONFIG_HZ=250 @@ -103,7 +86,6 @@ CONFIG_HZ_250=y # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set # CONFIG_IDE is not set -# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_INPUT=y CONFIG_INPUT_EVDEV=y @@ -116,7 +98,6 @@ CONFIG_KMOD=y # CONFIG_LEDS_ALIX is not set CONFIG_LEDS_GPIO=y # CONFIG_LEMOTE_FULONG is not set -# CONFIG_LLC2 is not set # CONFIG_MACH_ALCHEMY is not set # CONFIG_MACH_DECSTATION is not set # CONFIG_MACH_EMMA is not set @@ -177,9 +158,6 @@ CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_ROM is not set # CONFIG_MTD_SLRAM is not set # CONFIG_NATSEMI is not set -# CONFIG_NET_IPGRE_BROADCAST is not set -# CONFIG_NET_PKTGEN is not set -CONFIG_NF_CT_ACCT=y # CONFIG_NF_DEFRAG_IPV4 is not set # CONFIG_NO_IOPORT is not set # CONFIG_NXP_STB220 is not set @@ -198,8 +176,6 @@ CONFIG_PHYLIB=y # CONFIG_PMC_YOSEMITE is not set # CONFIG_PNX8550_JBS is not set # CONFIG_PNX8550_STB810 is not set -# CONFIG_PPP_MULTILINK is not set -# CONFIG_PPP_SYNC_TTY is not set # CONFIG_PROBE_INITRD_HEADER is not set # CONFIG_PROC_KCORE is not set # CONFIG_PROM_EMU is not set @@ -210,8 +186,7 @@ CONFIG_RFKILL_LEDS=y CONFIG_RTC_LIB=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y -# CONFIG_SCSI_MULTI_LUN is not set -# CONFIG_SCSI_WAIT_SCAN is not set +# CONFIG_SCSI_DMA is not set # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set @@ -229,8 +204,6 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SIBYTE_RHONE is not set # CONFIG_SIBYTE_SENTOSA is not set # CONFIG_SIBYTE_SWARM is not set -CONFIG_SND_MIPS=y -CONFIG_SOUND_OSS_CORE=y CONFIG_SSB=y CONFIG_SSB_B43_PCI_BRIDGE=y CONFIG_SSB_DEBUG=y @@ -255,20 +228,8 @@ CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y # CONFIG_TC35815 is not set CONFIG_TICK_ONESHOT=y CONFIG_TRAD_SIGNALS=y -# CONFIG_USB is not set -# CONFIG_USB_ACM is not set -# CONFIG_USB_EHCI_HCD is not set -CONFIG_USB_EHCI_HCD_SSB=y -# CONFIG_USB_NET_SMSC95XX is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set -# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set -# CONFIG_USB_OHCI_HCD is not set -CONFIG_USB_OHCI_HCD_SSB=y CONFIG_USB_SUPPORT=y -# CONFIG_USB_UHCI_HCD is not set # CONFIG_VGASTATE is not set # CONFIG_VIA_RHINE is not set -# CONFIG_VIDEO_DEV is not set -# CONFIG_W1_CON is not set # CONFIG_WATCHDOG is not set CONFIG_ZONE_DMA_FLAG=0 diff --git a/target/linux/brcm47xx/patches-2.6.25/211-b44_bcm4713_phy.patch b/target/linux/brcm47xx/patches-2.6.25/211-b44_bcm4713_phy.patch index eb084a416e..13f93bdb93 100644 --- a/target/linux/brcm47xx/patches-2.6.25/211-b44_bcm4713_phy.patch +++ b/target/linux/brcm47xx/patches-2.6.25/211-b44_bcm4713_phy.patch @@ -1,6 +1,6 @@ ---- a/drivers/net/b44.c 2008-11-16 15:33:32.000000000 +0100 -+++ b/drivers/net/b44.c 2008-11-18 10:36:18.000000000 +0100 -@@ -2094,6 +2094,11 @@ +--- a/drivers/net/b44.c ++++ b/drivers/net/b44.c +@@ -2094,6 +2094,11 @@ static int __devinit b44_get_invariants( return -EINVAL; } diff --git a/target/linux/brcm47xx/patches-2.6.28/100-board_support.patch b/target/linux/brcm47xx/patches-2.6.28/100-board_support.patch index eb8bf5f7c0..c6428ac02e 100644 --- a/target/linux/brcm47xx/patches-2.6.28/100-board_support.patch +++ b/target/linux/brcm47xx/patches-2.6.28/100-board_support.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h --- a/arch/mips/include/asm/bootinfo.h +++ b/arch/mips/include/asm/bootinfo.h @@ -57,6 +57,12 @@ @@ -14,10 +13,9 @@ diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h #define CL_SIZE COMMAND_LINE_SIZE extern char *system_type; -diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h -@@ -2061,6 +2061,7 @@ +@@ -2068,6 +2068,7 @@ #define PCI_DEVICE_ID_TIGON3_5906M 0x1713 #define PCI_DEVICE_ID_BCM4401 0x4401 #define PCI_DEVICE_ID_BCM4401B0 0x4402 diff --git a/target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch b/target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch index 7d19dfcd1a..5d2fd1e5eb 100644 --- a/target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch +++ b/target/linux/brcm47xx/patches-2.6.28/110-flash_map.patch @@ -1,4 +1,3 @@ -diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig --- a/drivers/mtd/maps/Kconfig +++ b/drivers/mtd/maps/Kconfig @@ -332,6 +332,12 @@ config MTD_CFI_FLAGADM @@ -14,10 +13,9 @@ diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig config MTD_REDWOOD tristate "CFI Flash devices mapped on IBM Redwood" depends on MTD_CFI && ( REDWOOD_4 || REDWOOD_5 || REDWOOD_6 ) -diff --git a/drivers/mtd/maps/Makefile b/drivers/mtd/maps/Makefile --- a/drivers/mtd/maps/Makefile +++ b/drivers/mtd/maps/Makefile -@@ -29,6 +29,7 @@ obj-$(CONFIG_MTD_PMC_MSP_RAMROOT)+= pmcmsp-ramroot.o +@@ -29,6 +29,7 @@ obj-$(CONFIG_MTD_PMC_MSP_RAMROOT)+= pmcm obj-$(CONFIG_MTD_PCMCIA) += pcmciamtd.o obj-$(CONFIG_MTD_RPXLITE) += rpxlite.o obj-$(CONFIG_MTD_TQM8XXL) += tqm8xxl.o diff --git a/target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch b/target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch index e80f51f000..167f67d19e 100644 --- a/target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch +++ b/target/linux/brcm47xx/patches-2.6.28/130-remove_scache.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -198,7 +198,6 @@ config MIPS_MALTA @@ -23,10 +22,9 @@ diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig config R5000_CPU_SCACHE bool select BOARD_SCACHE -diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c -@@ -755,6 +755,8 @@ static inline void cpu_probe_mips(struct cpuinfo_mips *c, unsigned int cpu) +@@ -755,6 +755,8 @@ static inline void cpu_probe_mips(struct case PRID_IMP_25KF: c->cputype = CPU_25KF; __cpu_name[cpu] = "MIPS 25Kc"; @@ -35,20 +33,18 @@ diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c break; case PRID_IMP_34K: c->cputype = CPU_34K; -diff --git a/arch/mips/mm/Makefile b/arch/mips/mm/Makefile --- a/arch/mips/mm/Makefile +++ b/arch/mips/mm/Makefile -@@ -31,6 +31,5 @@ obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex-gen.o tlb-r4k.o +@@ -31,6 +31,5 @@ obj-$(CONFIG_CPU_VR41XX) += c-r4k.o cex- obj-$(CONFIG_IP22_CPU_SCACHE) += sc-ip22.o obj-$(CONFIG_R5000_CPU_SCACHE) += sc-r5k.o obj-$(CONFIG_RM7000_CPU_SCACHE) += sc-rm7k.o -obj-$(CONFIG_MIPS_CPU_SCACHE) += sc-mips.o EXTRA_CFLAGS += -Werror -diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c -@@ -1121,7 +1121,6 @@ static void __init loongson2_sc_init(void) +@@ -1121,7 +1121,6 @@ static void __init loongson2_sc_init(voi extern int r5k_sc_init(void); extern int rm7k_sc_init(void); diff --git a/target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch b/target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch index e3d8899791..7abfbb2b69 100644 --- a/target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch +++ b/target/linux/brcm47xx/patches-2.6.28/150-cpu_fixes.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h --- a/arch/mips/include/asm/r4kcache.h +++ b/arch/mips/include/asm/r4kcache.h @@ -17,6 +17,20 @@ @@ -22,7 +21,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h /* * This macro return a properly sign-extended address suitable as base address * for indexed cache operations. Two issues here: -@@ -150,6 +164,7 @@ static inline void flush_icache_line_indexed(unsigned long addr) +@@ -150,6 +164,7 @@ static inline void flush_icache_line_ind static inline void flush_dcache_line_indexed(unsigned long addr) { __dflush_prologue @@ -30,7 +29,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h cache_op(Index_Writeback_Inv_D, addr); __dflush_epilogue } -@@ -169,6 +184,7 @@ static inline void flush_icache_line(unsigned long addr) +@@ -169,6 +184,7 @@ static inline void flush_icache_line(uns static inline void flush_dcache_line(unsigned long addr) { __dflush_prologue @@ -38,7 +37,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h cache_op(Hit_Writeback_Inv_D, addr); __dflush_epilogue } -@@ -176,6 +192,7 @@ static inline void flush_dcache_line(unsigned long addr) +@@ -176,6 +192,7 @@ static inline void flush_dcache_line(uns static inline void invalidate_dcache_line(unsigned long addr) { __dflush_prologue @@ -46,7 +45,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h cache_op(Hit_Invalidate_D, addr); __dflush_epilogue } -@@ -208,6 +225,7 @@ static inline void flush_scache_line(unsigned long addr) +@@ -208,6 +225,7 @@ static inline void flush_scache_line(uns */ static inline void protected_flush_icache_line(unsigned long addr) { @@ -54,7 +53,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h protected_cache_op(Hit_Invalidate_I, addr); } -@@ -219,6 +237,7 @@ static inline void protected_flush_icache_line(unsigned long addr) +@@ -219,6 +237,7 @@ static inline void protected_flush_icach */ static inline void protected_writeback_dcache_line(unsigned long addr) { @@ -62,7 +61,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h protected_cache_op(Hit_Writeback_Inv_D, addr); } -@@ -339,8 +358,52 @@ static inline void invalidate_tcache_page(unsigned long addr) +@@ -339,8 +358,52 @@ static inline void invalidate_tcache_pag : "r" (base), \ "i" (op)); @@ -116,7 +115,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h static inline void blast_##pfx##cache##lsize(void) \ { \ unsigned long start = INDEX_BASE; \ -@@ -352,6 +415,7 @@ static inline void blast_##pfx##cache##lsize(void) \ +@@ -352,6 +415,7 @@ static inline void blast_##pfx##cache##l \ __##pfx##flush_prologue \ \ @@ -124,7 +123,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h for (ws = 0; ws < ws_end; ws += ws_inc) \ for (addr = start; addr < end; addr += lsize * 32) \ cache##lsize##_unroll32(addr|ws, indexop); \ -@@ -366,6 +430,7 @@ static inline void blast_##pfx##cache##lsize##_page(unsigned long page) \ +@@ -366,6 +430,7 @@ static inline void blast_##pfx##cache##l \ __##pfx##flush_prologue \ \ @@ -132,7 +131,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h do { \ cache##lsize##_unroll32(start, hitop); \ start += lsize * 32; \ -@@ -384,6 +449,8 @@ static inline void blast_##pfx##cache##lsize##_page_indexed(unsigned long page) +@@ -384,6 +449,8 @@ static inline void blast_##pfx##cache##l current_cpu_data.desc.waybit; \ unsigned long ws, addr; \ \ @@ -141,7 +140,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h __##pfx##flush_prologue \ \ for (ws = 0; ws < ws_end; ws += ws_inc) \ -@@ -393,35 +460,37 @@ static inline void blast_##pfx##cache##lsize##_page_indexed(unsigned long page) +@@ -393,35 +460,37 @@ static inline void blast_##pfx##cache##l __##pfx##flush_epilogue \ } @@ -196,7 +195,7 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h prot##cache_op(hitop, addr); \ if (addr == aend) \ break; \ -@@ -431,13 +500,13 @@ static inline void prot##blast_##pfx##cache##_range(unsigned long start, \ +@@ -431,13 +500,13 @@ static inline void prot##blast_##pfx##ca __##pfx##flush_epilogue \ } @@ -217,7 +216,6 @@ diff --git a/arch/mips/include/asm/r4kcache.h b/arch/mips/include/asm/r4kcache.h +__BUILD_BLAST_CACHE_RANGE(inv_s, scache, Hit_Invalidate_SD,,, ) #endif /* _ASM_R4KCACHE_H */ -diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h --- a/arch/mips/include/asm/stackframe.h +++ b/arch/mips/include/asm/stackframe.h @@ -409,6 +409,10 @@ @@ -231,7 +229,6 @@ diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackfra eret .set mips0 .endm -diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S --- a/arch/mips/kernel/genex.S +++ b/arch/mips/kernel/genex.S @@ -52,6 +52,10 @@ NESTED(except_vec1_generic, 0, sp) @@ -245,7 +242,6 @@ diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S #if R5432_CP0_INTERRUPT_WAR mfc0 k0, CP0_INDEX #endif -diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c @@ -34,6 +34,9 @@ @@ -258,7 +254,7 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c /* * Special Variant of smp_call_function for use by cache functions: * -@@ -104,6 +107,9 @@ static void __cpuinit r4k_blast_dcache_page_setup(void) +@@ -104,6 +107,9 @@ static void __cpuinit r4k_blast_dcache_p { unsigned long dc_lsize = cpu_dcache_line_size(); @@ -268,7 +264,7 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c if (dc_lsize == 0) r4k_blast_dcache_page = (void *)cache_noop; else if (dc_lsize == 16) -@@ -118,6 +124,9 @@ static void __cpuinit r4k_blast_dcache_page_indexed_setup(void) +@@ -118,6 +124,9 @@ static void __cpuinit r4k_blast_dcache_p { unsigned long dc_lsize = cpu_dcache_line_size(); @@ -278,7 +274,7 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c if (dc_lsize == 0) r4k_blast_dcache_page_indexed = (void *)cache_noop; else if (dc_lsize == 16) -@@ -132,6 +141,9 @@ static void __cpuinit r4k_blast_dcache_setup(void) +@@ -132,6 +141,9 @@ static void __cpuinit r4k_blast_dcache_s { unsigned long dc_lsize = cpu_dcache_line_size(); @@ -288,7 +284,7 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c if (dc_lsize == 0) r4k_blast_dcache = (void *)cache_noop; else if (dc_lsize == 16) -@@ -647,6 +659,8 @@ static void local_r4k_flush_cache_sigtramp(void * arg) +@@ -647,6 +659,8 @@ static void local_r4k_flush_cache_sigtra unsigned long addr = (unsigned long) arg; R4600_HIT_CACHEOP_WAR_IMPL; @@ -297,7 +293,7 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c if (dc_lsize) protected_writeback_dcache_line(addr & ~(dc_lsize - 1)); if (!cpu_icache_snoops_remote_store && scache_size) -@@ -1271,6 +1285,17 @@ static void __cpuinit coherency_setup(void) +@@ -1271,6 +1285,17 @@ static void __cpuinit coherency_setup(vo * silly idea of putting something else there ... */ switch (current_cpu_type()) { @@ -345,10 +341,9 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c coherency_setup(); +#endif } -diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c -@@ -678,6 +678,9 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) +@@ -678,6 +678,9 @@ static void __cpuinit build_r4000_tlb_re /* No need for uasm_i_nop */ } @@ -358,7 +353,7 @@ diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c #ifdef CONFIG_64BIT build_get_pmde64(&p, &l, &r, K0, K1); /* get pmd in K1 */ #else -@@ -1085,6 +1088,9 @@ build_r4000_tlbchange_handler_head(u32 **p, struct uasm_label **l, +@@ -1085,6 +1088,9 @@ build_r4000_tlbchange_handler_head(u32 * struct uasm_reloc **r, unsigned int pte, unsigned int ptr) { diff --git a/target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch b/target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch index 383aabf17d..0219adfd59 100644 --- a/target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch +++ b/target/linux/brcm47xx/patches-2.6.28/160-kmap_coherent.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h --- a/arch/mips/include/asm/cpu-features.h +++ b/arch/mips/include/asm/cpu-features.h @@ -101,6 +101,9 @@ @@ -11,7 +10,6 @@ diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-fe /* * I-Cache snoops remote store. This only matters on SMP. Some multiprocessors -diff --git a/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h b/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h --- /dev/null +++ b/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h @@ -0,0 +1,13 @@ @@ -28,10 +26,9 @@ diff --git a/arch/mips/include/asm/mach-bcm47xx/cpu-feature-overrides.h b/arch/m +#define cpu_use_kmap_coherent 0 + +#endif /* __ASM_MACH_BCM47XX_CPU_FEATURE_OVERRIDES_H */ -diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c -@@ -494,7 +494,7 @@ static inline void local_r4k_flush_cache_page(void *args) +@@ -494,7 +494,7 @@ static inline void local_r4k_flush_cache */ map_coherent = (cpu_has_dc_aliases && page_mapped(page) && !Page_dcache_dirty(page)); @@ -40,7 +37,7 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c vaddr = kmap_coherent(page, addr); else vaddr = kmap_atomic(page, KM_USER0); -@@ -517,7 +517,7 @@ static inline void local_r4k_flush_cache_page(void *args) +@@ -517,7 +517,7 @@ static inline void local_r4k_flush_cache } if (vaddr) { @@ -49,10 +46,9 @@ diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c kunmap_coherent(); else kunmap_atomic(vaddr, KM_USER0); -diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c -@@ -212,7 +212,7 @@ void copy_user_highpage(struct page *to, struct page *from, +@@ -212,7 +212,7 @@ void copy_user_highpage(struct page *to, void *vfrom, *vto; vto = kmap_atomic(to, KM_USER1); @@ -61,7 +57,7 @@ diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c page_mapped(from) && !Page_dcache_dirty(from)) { vfrom = kmap_coherent(from, vaddr); copy_page(vto, vfrom); -@@ -234,7 +234,7 @@ void copy_to_user_page(struct vm_area_struct *vma, +@@ -234,7 +234,7 @@ void copy_to_user_page(struct vm_area_st struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { @@ -70,7 +66,7 @@ diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c page_mapped(page) && !Page_dcache_dirty(page)) { void *vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); memcpy(vto, src, len); -@@ -252,7 +252,7 @@ void copy_from_user_page(struct vm_area_struct *vma, +@@ -252,7 +252,7 @@ void copy_from_user_page(struct vm_area_ struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { diff --git a/target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch b/target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch index e526584d1c..f990b8534b 100644 --- a/target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch +++ b/target/linux/brcm47xx/patches-2.6.28/210-b44_phy_fix.patch @@ -1,7 +1,6 @@ -diff --git a/drivers/net/b44.c b/drivers/net/b44.c --- a/drivers/net/b44.c +++ b/drivers/net/b44.c -@@ -384,7 +384,7 @@ static void b44_set_flow_ctrl(struct b44 *bp, u32 local, u32 remote) +@@ -384,7 +384,7 @@ static void b44_set_flow_ctrl(struct b44 __b44_set_flow_ctrl(bp, pause_enab); } @@ -39,7 +38,7 @@ diff --git a/drivers/net/b44.c b/drivers/net/b44.c static int __devinit b44_get_invariants(struct b44 *bp) { struct ssb_device *sdev = bp->sdev; -@@ -2089,6 +2111,8 @@ static int __devinit b44_get_invariants(struct b44 *bp) +@@ -2089,6 +2111,8 @@ static int __devinit b44_get_invariants( * valid PHY address. */ bp->phy_addr &= 0x1F; diff --git a/target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch b/target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch index 723e638aea..a6a5e95198 100644 --- a/target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch +++ b/target/linux/brcm47xx/patches-2.6.28/220-bcm5354.patch @@ -1,7 +1,6 @@ -diff --git a/drivers/ssb/driver_chipcommon.c b/drivers/ssb/driver_chipcommon.c --- a/drivers/ssb/driver_chipcommon.c +++ b/drivers/ssb/driver_chipcommon.c -@@ -270,6 +270,8 @@ void ssb_chipco_resume(struct ssb_chipcommon *cc) +@@ -270,6 +270,8 @@ void ssb_chipco_resume(struct ssb_chipco void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc, u32 *plltype, u32 *n, u32 *m) { @@ -10,7 +9,7 @@ diff --git a/drivers/ssb/driver_chipcommon.c b/drivers/ssb/driver_chipcommon.c *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N); *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); switch (*plltype) { -@@ -293,6 +295,8 @@ void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc, +@@ -293,6 +295,8 @@ void ssb_chipco_get_clockcpu(struct ssb_ void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc, u32 *plltype, u32 *n, u32 *m) { @@ -19,10 +18,9 @@ diff --git a/drivers/ssb/driver_chipcommon.c b/drivers/ssb/driver_chipcommon.c *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N); *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); switch (*plltype) { -diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c --- a/drivers/ssb/driver_mipscore.c +++ b/drivers/ssb/driver_mipscore.c -@@ -161,6 +161,8 @@ u32 ssb_cpu_clock(struct ssb_mipscore *mcore) +@@ -161,6 +161,8 @@ u32 ssb_cpu_clock(struct ssb_mipscore *m if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) { rate = 200000000; @@ -31,7 +29,6 @@ diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c } else { rate = ssb_calc_clock_rate(pll_type, n, m); } -diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c --- a/drivers/ssb/main.c +++ b/drivers/ssb/main.c @@ -1011,6 +1011,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus) diff --git a/target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch b/target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch index a3d0481b46..85361ab740 100644 --- a/target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch +++ b/target/linux/brcm47xx/patches-2.6.28/250-ohci-ssb-usb2.patch @@ -1,7 +1,6 @@ -diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c --- a/drivers/usb/host/ohci-ssb.c +++ b/drivers/usb/host/ohci-ssb.c -@@ -106,10 +106,59 @@ static int ssb_ohci_attach(struct ssb_device *dev) +@@ -106,10 +106,59 @@ static int ssb_ohci_attach(struct ssb_de int err = -ENOMEM; u32 tmp, flags = 0; @@ -63,7 +62,7 @@ diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c hcd = usb_create_hcd(&ssb_ohci_hc_driver, dev->dev, dev_name(dev->dev)); -@@ -200,6 +249,7 @@ static int ssb_ohci_resume(struct ssb_device *dev) +@@ -200,6 +249,7 @@ static int ssb_ohci_resume(struct ssb_de static const struct ssb_device_id ssb_ohci_table[] = { SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOSTDEV, SSB_ANY_REV), SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_USB11_HOST, SSB_ANY_REV), diff --git a/target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch b/target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch index 7385993ce3..0b9dd51603 100644 --- a/target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch +++ b/target/linux/brcm47xx/patches-2.6.28/260-ohci-set-dma-mask.patch @@ -1,7 +1,6 @@ -diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c --- a/drivers/usb/host/ohci-ssb.c +++ b/drivers/usb/host/ohci-ssb.c -@@ -159,6 +159,11 @@ static int ssb_ohci_attach(struct ssb_device *dev) +@@ -159,6 +159,11 @@ static int ssb_ohci_attach(struct ssb_de else ssb_device_enable(dev, 0); diff --git a/target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch b/target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch index 767ba23041..32eb0bdd79 100644 --- a/target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch +++ b/target/linux/brcm47xx/patches-2.6.28/270-ehci-ssb.patch @@ -1,4 +1,3 @@ -diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -96,6 +96,19 @@ config USB_EHCI_HCD_PPC_OF @@ -21,7 +20,6 @@ diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig config USB_ISP116X_HCD tristate "ISP116X HCD support" depends on USB -diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -1034,8 +1034,16 @@ MODULE_LICENSE ("GPL"); @@ -43,7 +41,6 @@ diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c #error "missing bus glue for ehci-hcd" #endif -diff --git a/drivers/usb/host/ehci-ssb.c b/drivers/usb/host/ehci-ssb.c --- /dev/null +++ b/drivers/usb/host/ehci-ssb.c @@ -0,0 +1,201 @@ @@ -248,7 +245,6 @@ diff --git a/drivers/usb/host/ehci-ssb.c b/drivers/usb/host/ehci-ssb.c + SSB_DEVTABLE_END +}; +MODULE_DEVICE_TABLE(ssb, ssb_ehci_table); -diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c --- a/drivers/usb/host/ohci-ssb.c +++ b/drivers/usb/host/ohci-ssb.c @@ -17,6 +17,8 @@ @@ -268,7 +264,7 @@ diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c }; static inline -@@ -92,13 +95,25 @@ static const struct hc_driver ssb_ohci_hc_driver = { +@@ -92,13 +95,25 @@ static const struct hc_driver ssb_ohci_h static void ssb_ohci_detach(struct ssb_device *dev) { struct usb_hcd *hcd = ssb_get_drvdata(dev); @@ -294,7 +290,7 @@ diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c static int ssb_ohci_attach(struct ssb_device *dev) { struct ssb_ohci_device *ohcidev; -@@ -184,6 +199,14 @@ static int ssb_ohci_attach(struct ssb_device *dev) +@@ -184,6 +199,14 @@ static int ssb_ohci_attach(struct ssb_de ssb_set_drvdata(dev, hcd); diff --git a/target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch b/target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch index 87469d4390..686fb1b945 100644 --- a/target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch +++ b/target/linux/brcm47xx/patches-2.6.28/300-fork_cacheflush.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/include/asm/cacheflush.h b/arch/mips/include/asm/cacheflush.h --- a/arch/mips/include/asm/cacheflush.h +++ b/arch/mips/include/asm/cacheflush.h @@ -32,7 +32,7 @@ diff --git a/target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch b/target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch index 2420e81a31..23efb59a15 100644 --- a/target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch +++ b/target/linux/brcm47xx/patches-2.6.28/310-no_highpage.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h --- a/arch/mips/include/asm/page.h +++ b/arch/mips/include/asm/page.h @@ -32,6 +32,7 @@ @@ -9,7 +8,7 @@ diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h #include extern void build_clear_page(void); -@@ -67,13 +68,16 @@ static inline void clear_user_page(void *addr, unsigned long vaddr, +@@ -67,13 +68,16 @@ static inline void clear_user_page(void flush_data_cache_page((unsigned long)addr); } @@ -32,7 +31,6 @@ diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h /* * These are used to make use of C type-checking.. -diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c @@ -206,30 +206,6 @@ void kunmap_coherent(void) diff --git a/target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch b/target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch index ae7bd74dc6..570f0ec95b 100644 --- a/target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch +++ b/target/linux/brcm47xx/patches-2.6.28/400-arch-bcm47xx.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -53,6 +53,7 @@ config BCM47XX @@ -9,7 +8,6 @@ diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig select SSB_PCICORE_HOSTMODE if PCI select GENERIC_GPIO select SYS_HAS_EARLY_PRINTK -diff --git a/arch/mips/bcm47xx/Makefile b/arch/mips/bcm47xx/Makefile --- a/arch/mips/bcm47xx/Makefile +++ b/arch/mips/bcm47xx/Makefile @@ -3,4 +3,4 @@ @@ -18,7 +16,6 @@ diff --git a/arch/mips/bcm47xx/Makefile b/arch/mips/bcm47xx/Makefile -obj-y := gpio.o irq.o prom.o serial.o setup.o time.o wgt634u.o +obj-y := cfe_env.o gpio.o irq.o nvram.o prom.o serial.o setup.o time.o wgt634u.o -diff --git a/arch/mips/bcm47xx/irq.c b/arch/mips/bcm47xx/irq.c --- a/arch/mips/bcm47xx/irq.c +++ b/arch/mips/bcm47xx/irq.c @@ -1,5 +1,6 @@ @@ -48,7 +45,6 @@ diff --git a/arch/mips/bcm47xx/irq.c b/arch/mips/bcm47xx/irq.c void plat_irq_dispatch(void) { u32 cause; -diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c --- a/arch/mips/bcm47xx/nvram.c +++ b/arch/mips/bcm47xx/nvram.c @@ -24,10 +24,10 @@ @@ -64,7 +60,7 @@ diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c static char nvram_buf[NVRAM_SPACE]; static int cfe_env; -@@ -36,7 +36,7 @@ extern char *cfe_env_get(char *nv_buf, const char *name); +@@ -36,7 +36,7 @@ extern char *cfe_env_get(char *nv_buf, c /* Probe for NVRAM header */ static void __init early_nvram_init(void) { @@ -73,7 +69,6 @@ diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c struct nvram_header *header; int i; u32 base, lim, off; -diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c --- a/arch/mips/bcm47xx/setup.c +++ b/arch/mips/bcm47xx/setup.c @@ -2,7 +2,7 @@ @@ -124,18 +119,44 @@ diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c { int i = 0; -@@ -73,52 +83,141 @@ static void str2eaddr(char *str, char *dest) +@@ -73,52 +83,141 @@ static void str2eaddr(char *str, char *d } } -static int bcm47xx_get_invariants(struct ssb_bus *bus, - struct ssb_init_invariants *iv) +static void bcm47xx_fill_sprom(struct ssb_sprom *sprom) -+{ + { +- char buf[100]; + char *s; -+ + +- /* Fill boardinfo structure */ +- memset(&(iv->boardinfo), 0 , sizeof(struct ssb_boardinfo)); + memset(sprom, 0xFF, sizeof(struct ssb_sprom)); -+ + +- if (cfe_getenv("boardvendor", buf, sizeof(buf)) >= 0) +- iv->boardinfo.type = (u16)simple_strtoul(buf, NULL, 0); +- if (cfe_getenv("boardtype", buf, sizeof(buf)) >= 0) +- iv->boardinfo.type = (u16)simple_strtoul(buf, NULL, 0); +- if (cfe_getenv("boardrev", buf, sizeof(buf)) >= 0) +- iv->boardinfo.rev = (u16)simple_strtoul(buf, NULL, 0); +- +- /* Fill sprom structure */ +- memset(&(iv->sprom), 0, sizeof(struct ssb_sprom)); +- iv->sprom.revision = 3; +- +- if (cfe_getenv("et0macaddr", buf, sizeof(buf)) >= 0) +- str2eaddr(buf, iv->sprom.et0mac); +- if (cfe_getenv("et1macaddr", buf, sizeof(buf)) >= 0) +- str2eaddr(buf, iv->sprom.et1mac); +- if (cfe_getenv("et0phyaddr", buf, sizeof(buf)) >= 0) +- iv->sprom.et0phyaddr = simple_strtoul(buf, NULL, 10); +- if (cfe_getenv("et1phyaddr", buf, sizeof(buf)) >= 0) +- iv->sprom.et1phyaddr = simple_strtoul(buf, NULL, 10); +- if (cfe_getenv("et0mdcport", buf, sizeof(buf)) >= 0) +- iv->sprom.et0mdcport = simple_strtoul(buf, NULL, 10); +- if (cfe_getenv("et1mdcport", buf, sizeof(buf)) >= 0) +- iv->sprom.et1mdcport = simple_strtoul(buf, NULL, 10); + sprom->revision = 1; + if ((s = nvram_get("il0macaddr"))) + e_aton(s, sprom->il0mac); @@ -188,35 +209,7 @@ diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c +} + +static int bcm47xx_get_invariants(struct ssb_bus *bus, struct ssb_init_invariants *iv) - { -- char buf[100]; -- -- /* Fill boardinfo structure */ -- memset(&(iv->boardinfo), 0 , sizeof(struct ssb_boardinfo)); -- -- if (cfe_getenv("boardvendor", buf, sizeof(buf)) >= 0) -- iv->boardinfo.type = (u16)simple_strtoul(buf, NULL, 0); -- if (cfe_getenv("boardtype", buf, sizeof(buf)) >= 0) -- iv->boardinfo.type = (u16)simple_strtoul(buf, NULL, 0); -- if (cfe_getenv("boardrev", buf, sizeof(buf)) >= 0) -- iv->boardinfo.rev = (u16)simple_strtoul(buf, NULL, 0); -- -- /* Fill sprom structure */ -- memset(&(iv->sprom), 0, sizeof(struct ssb_sprom)); -- iv->sprom.revision = 3; -- -- if (cfe_getenv("et0macaddr", buf, sizeof(buf)) >= 0) -- str2eaddr(buf, iv->sprom.et0mac); -- if (cfe_getenv("et1macaddr", buf, sizeof(buf)) >= 0) -- str2eaddr(buf, iv->sprom.et1mac); -- if (cfe_getenv("et0phyaddr", buf, sizeof(buf)) >= 0) -- iv->sprom.et0phyaddr = simple_strtoul(buf, NULL, 10); -- if (cfe_getenv("et1phyaddr", buf, sizeof(buf)) >= 0) -- iv->sprom.et1phyaddr = simple_strtoul(buf, NULL, 10); -- if (cfe_getenv("et0mdcport", buf, sizeof(buf)) >= 0) -- iv->sprom.et0mdcport = simple_strtoul(buf, NULL, 10); -- if (cfe_getenv("et1mdcport", buf, sizeof(buf)) >= 0) -- iv->sprom.et1mdcport = simple_strtoul(buf, NULL, 10); ++{ + char *s; + + iv->boardinfo.vendor = SSB_BOARDVENDOR_BCM; @@ -247,15 +240,15 @@ diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c + panic(msg, err); + } + mcore = &ssb_bcm47xx.mipscore; -+ -+ s = nvram_get("kernel_args"); -+ if (s && !strncmp(s, "console=ttyS1", 13)) { -+ struct ssb_serial_port port; - err = ssb_bus_ssbbus_register(&ssb_bcm47xx, SSB_ENUM_BASE, - bcm47xx_get_invariants); - if (err) - panic("Failed to initialize SSB bus (err %d)\n", err); ++ s = nvram_get("kernel_args"); ++ if (s && !strncmp(s, "console=ttyS1", 13)) { ++ struct ssb_serial_port port; ++ + printk("Swapping serial ports!\n"); + /* swap serial ports */ + memcpy(&port, &mcore->serial_ports[0], sizeof(port)); @@ -301,7 +294,6 @@ diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c + return 0; +} +device_initcall(bcm47xx_register_gpiodev); -diff --git a/arch/mips/bcm47xx/time.c b/arch/mips/bcm47xx/time.c --- a/arch/mips/bcm47xx/time.c +++ b/arch/mips/bcm47xx/time.c @@ -22,11 +22,17 @@ diff --git a/target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch b/target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch index d03d34b331..dc49e1206f 100644 --- a/target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch +++ b/target/linux/brcm47xx/patches-2.6.28/500-lzma_initramfs.patch @@ -1,4 +1,3 @@ -diff --git a/init/initramfs.c b/init/initramfs.c --- a/init/initramfs.c +++ b/init/initramfs.c @@ -475,6 +475,69 @@ static void __init flush_window(void) @@ -71,7 +70,7 @@ diff --git a/init/initramfs.c b/init/initramfs.c static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only) { int written; -@@ -509,12 +572,28 @@ static char * __init unpack_to_rootfs(char *buf, unsigned len, int check_only) +@@ -509,12 +572,28 @@ static char * __init unpack_to_rootfs(ch inptr = 0; outcnt = 0; /* bytes in output buffer */ bytes_out = 0; @@ -105,7 +104,6 @@ diff --git a/init/initramfs.c b/init/initramfs.c buf += inptr; len -= inptr; } -diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh --- a/scripts/gen_initramfs_list.sh +++ b/scripts/gen_initramfs_list.sh @@ -287,7 +287,7 @@ if [ ! -z ${output_file} ]; then diff --git a/target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch b/target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch index 50b6fbdfe3..8bc0090858 100644 --- a/target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch +++ b/target/linux/brcm47xx/patches-2.6.28/601-mips-remove-pci-collision-check.patch @@ -1,7 +1,6 @@ -diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c -@@ -207,12 +207,10 @@ static int pcibios_enable_resources(struct pci_dev *dev, int mask) +@@ -207,12 +207,10 @@ static int pcibios_enable_resources(stru if ((idx == PCI_ROM_RESOURCE) && (!(r->flags & IORESOURCE_ROM_ENABLE))) continue; diff --git a/target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch b/target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch index f02269e025..27da5fc449 100644 --- a/target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch +++ b/target/linux/brcm47xx/patches-2.6.28/700-ssb-gigabit-ethernet-driver.patch @@ -1,4 +1,3 @@ -diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c @@ -40,6 +40,7 @@ @@ -9,7 +8,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c #include #include -@@ -428,8 +429,9 @@ static void _tw32_flush(struct tg3 *tp, u32 off, u32 val, u32 usec_wait) +@@ -428,8 +429,9 @@ static void _tw32_flush(struct tg3 *tp, static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val) { tp->write32_mbox(tp, off, val); @@ -21,7 +20,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c tp->read32_mbox(tp, off); } -@@ -439,7 +441,7 @@ static void tg3_write32_tx_mbox(struct tg3 *tp, u32 off, u32 val) +@@ -439,7 +441,7 @@ static void tg3_write32_tx_mbox(struct t writel(val, mbox); if (tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) writel(val, mbox); @@ -30,7 +29,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c readl(mbox); } -@@ -711,7 +713,7 @@ static void tg3_switch_clocks(struct tg3 *tp) +@@ -711,7 +713,7 @@ static void tg3_switch_clocks(struct tg3 #define PHY_BUSY_LOOPS 5000 @@ -39,7 +38,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c { u32 frame_val; unsigned int loops; -@@ -725,7 +727,7 @@ static int tg3_readphy(struct tg3 *tp, int reg, u32 *val) +@@ -725,7 +727,7 @@ static int tg3_readphy(struct tg3 *tp, i *val = 0x0; @@ -48,7 +47,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c MI_COM_PHY_ADDR_MASK); frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & MI_COM_REG_ADDR_MASK); -@@ -760,7 +762,12 @@ static int tg3_readphy(struct tg3 *tp, int reg, u32 *val) +@@ -760,7 +762,12 @@ static int tg3_readphy(struct tg3 *tp, i return ret; } @@ -62,7 +61,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c { u32 frame_val; unsigned int loops; -@@ -776,7 +783,7 @@ static int tg3_writephy(struct tg3 *tp, int reg, u32 val) +@@ -776,7 +783,7 @@ static int tg3_writephy(struct tg3 *tp, udelay(80); } @@ -71,7 +70,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c MI_COM_PHY_ADDR_MASK); frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & MI_COM_REG_ADDR_MASK); -@@ -809,6 +816,11 @@ static int tg3_writephy(struct tg3 *tp, int reg, u32 val) +@@ -809,6 +816,11 @@ static int tg3_writephy(struct tg3 *tp, return ret; } @@ -83,7 +82,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c static int tg3_bmcr_reset(struct tg3 *tp) { u32 phy_control; -@@ -2232,8 +2244,10 @@ static int tg3_set_power_state(struct tg3 *tp, pci_power_t state) +@@ -2232,8 +2244,10 @@ static int tg3_set_power_state(struct tg tg3_frob_aux_power(tp); /* Workaround for unstable PLL clock */ @@ -123,7 +122,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { /* Wait up to 20ms for init done. */ for (i = 0; i < 200; i++) { -@@ -5902,6 +5929,14 @@ static int tg3_chip_reset(struct tg3 *tp) +@@ -5902,6 +5929,14 @@ static int tg3_chip_reset(struct tg3 *tp tw32(0x5000, 0x400); } @@ -138,7 +137,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c tw32(GRC_MODE, tp->grc_mode); if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) { -@@ -6176,9 +6211,12 @@ static int tg3_halt_cpu(struct tg3 *tp, u32 offset) +@@ -6176,9 +6211,12 @@ static int tg3_halt_cpu(struct tg3 *tp, return -ENODEV; } @@ -154,7 +153,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c return 0; } -@@ -6259,6 +6297,11 @@ static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp) +@@ -6259,6 +6297,11 @@ static int tg3_load_5701_a0_firmware_fix struct fw_info info; int err, i; @@ -166,7 +165,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c info.text_base = TG3_FW_TEXT_ADDR; info.text_len = TG3_FW_TEXT_LEN; info.text_data = &tg3FwText[0]; -@@ -6817,6 +6860,11 @@ static int tg3_load_tso_firmware(struct tg3 *tp) +@@ -6817,6 +6860,11 @@ static int tg3_load_tso_firmware(struct unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size; int err, i; @@ -178,7 +177,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) return 0; -@@ -7776,6 +7824,11 @@ static void tg3_timer(unsigned long __opaque) +@@ -7776,6 +7824,11 @@ static void tg3_timer(unsigned long __op spin_lock(&tp->lock); @@ -190,7 +189,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS)) { /* All of this garbage is because when using non-tagged * IRQ status the mailbox/status_block protocol the chip -@@ -9469,6 +9522,11 @@ static int tg3_test_nvram(struct tg3 *tp) +@@ -9469,6 +9522,11 @@ static int tg3_test_nvram(struct tg3 *tp __le32 *buf; int i, j, k, err = 0, size; @@ -202,7 +201,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if (tg3_nvram_read_swab(tp, 0, &magic) != 0) return -EIO; -@@ -10262,7 +10320,7 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) +@@ -10262,7 +10320,7 @@ static int tg3_ioctl(struct net_device * return -EAGAIN; spin_lock_bh(&tp->lock); @@ -211,7 +210,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c spin_unlock_bh(&tp->lock); data->val_out = mii_regval; -@@ -10281,7 +10339,7 @@ static int tg3_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) +@@ -10281,7 +10339,7 @@ static int tg3_ioctl(struct net_device * return -EAGAIN; spin_lock_bh(&tp->lock); @@ -220,7 +219,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c spin_unlock_bh(&tp->lock); return err; -@@ -10759,6 +10817,12 @@ static void __devinit tg3_get_5906_nvram_info(struct tg3 *tp) +@@ -10759,6 +10817,12 @@ static void __devinit tg3_get_5906_nvram /* Chips other than 5700/5701 use the NVRAM for fetching info. */ static void __devinit tg3_nvram_init(struct tg3 *tp) { @@ -233,7 +232,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c tw32_f(GRC_EEPROM_ADDR, (EEPROM_ADDR_FSM_RESET | (EEPROM_DEFAULT_CLOCK_PERIOD << -@@ -10900,6 +10964,9 @@ static int tg3_nvram_read(struct tg3 *tp, u32 offset, u32 *val) +@@ -10900,6 +10964,9 @@ static int tg3_nvram_read(struct tg3 *tp { int ret; @@ -243,7 +242,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if (!(tp->tg3_flags & TG3_FLAG_NVRAM)) return tg3_nvram_read_using_eeprom(tp, offset, val); -@@ -11147,6 +11214,9 @@ static int tg3_nvram_write_block(struct tg3 *tp, u32 offset, u32 len, u8 *buf) +@@ -11147,6 +11214,9 @@ static int tg3_nvram_write_block(struct { int ret; @@ -253,7 +252,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if (tp->tg3_flags & TG3_FLAG_EEPROM_WRITE_PROT) { tw32_f(GRC_LOCAL_CTRL, tp->grc_local_ctrl & ~GRC_LCLCTRL_GPIO_OUTPUT1); -@@ -12205,7 +12275,6 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) +@@ -12205,7 +12275,6 @@ static int __devinit tg3_get_invariants( tp->write32 = tg3_write_flush_reg32; } @@ -261,7 +260,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c if ((tp->tg3_flags & TG3_FLAG_TXD_MBOX_HWBUG) || (tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER)) { tp->write32_tx_mbox = tg3_write32_tx_mbox; -@@ -12241,6 +12310,11 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) +@@ -12241,6 +12310,11 @@ static int __devinit tg3_get_invariants( GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701))) tp->tg3_flags |= TG3_FLAG_SRAM_USE_CONFIG; @@ -273,7 +272,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c /* Get eeprom hw config before calling tg3_set_power_state(). * In particular, the TG3_FLG2_IS_NIC flag must be * determined before calling tg3_set_power_state() so that -@@ -12640,6 +12714,10 @@ static int __devinit tg3_get_device_address(struct tg3 *tp) +@@ -12640,6 +12714,10 @@ static int __devinit tg3_get_device_addr } if (!is_valid_ether_addr(&dev->dev_addr[0])) { @@ -284,7 +283,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c #ifdef CONFIG_SPARC if (!tg3_get_default_macaddr_sparc(tp)) return 0; -@@ -13131,6 +13209,7 @@ static char * __devinit tg3_phy_string(struct tg3 *tp) +@@ -13131,6 +13209,7 @@ static char * __devinit tg3_phy_string(s case PHY_ID_BCM5704: return "5704"; case PHY_ID_BCM5705: return "5705"; case PHY_ID_BCM5750: return "5750"; @@ -292,7 +291,7 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c case PHY_ID_BCM5752: return "5752"; case PHY_ID_BCM5714: return "5714"; case PHY_ID_BCM5780: return "5780"; -@@ -13317,6 +13396,13 @@ static int __devinit tg3_init_one(struct pci_dev *pdev, +@@ -13317,6 +13396,13 @@ static int __devinit tg3_init_one(struct tp->msg_enable = tg3_debug; else tp->msg_enable = TG3_DEF_MSG_ENABLE; @@ -306,7 +305,6 @@ diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c /* The word/byte swap controls here control register access byte * swapping. DMA data byte swapping is controlled in the GRC_MODE -diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h @@ -2516,6 +2516,9 @@ struct tg3 { diff --git a/target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch b/target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch index eb5ec49d5f..63a71f05f4 100644 --- a/target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch +++ b/target/linux/brcm47xx/patches-2.6.28/800-fix_cfe_detection.patch @@ -1,4 +1,3 @@ -diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c --- a/arch/mips/bcm47xx/prom.c +++ b/arch/mips/bcm47xx/prom.c @@ -32,6 +32,7 @@ @@ -32,7 +31,7 @@ diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c - int argc = fw_arg0; - char **envp = (char **) fw_arg2; - int *prom_vec = (int *) fw_arg3; - +- - /* - * Check if a loader was used; if NOT, the 4 arguments are - * what CFE gives us (handle, 0, EPT and EPTSEAL) @@ -62,15 +61,16 @@ diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c - cfe_eptseal = prom_vec[3]; - } - } -+ cfe_eptseal = (uint32_t) fw_arg3; -+ cfe_handle = (uint32_t) fw_arg0; -+ cfe_ept = (uint32_t) fw_arg2; - if (cfe_eptseal != CFE_EPTSEAL) { - /* too early for panic to do any good */ - printk(KERN_ERR "CFE's entrypoint seal doesn't match."); - while (1) ; - } ++ cfe_eptseal = (uint32_t) fw_arg3; ++ cfe_handle = (uint32_t) fw_arg0; ++ cfe_ept = (uint32_t) fw_arg2; ++ + if (cfe_eptseal != CFE_EPTSEAL) + return -1; diff --git a/target/linux/brcm47xx/patches-2.6.28/810-ssb-add-pmu-support.patch b/target/linux/brcm47xx/patches-2.6.28/810-ssb-add-pmu-support.patch index dabd2130d1..7ab70aa54a 100644 --- a/target/linux/brcm47xx/patches-2.6.28/810-ssb-add-pmu-support.patch +++ b/target/linux/brcm47xx/patches-2.6.28/810-ssb-add-pmu-support.patch @@ -6,10 +6,8 @@ keeping track of what is upstream and what is not. Thanks. --mb -Index: linux-2.6.28.2/drivers/ssb/Makefile -=================================================================== ---- linux-2.6.28.2.orig/drivers/ssb/Makefile 2009-02-01 13:09:04.000000000 +0100 -+++ linux-2.6.28.2/drivers/ssb/Makefile 2009-02-01 13:09:31.000000000 +0100 +--- a/drivers/ssb/Makefile ++++ b/drivers/ssb/Makefile @@ -9,6 +9,7 @@ ssb-$(CONFIG_SSB_PCMCIAHOST) += pcmcia. # built-in drivers @@ -18,10 +16,8 @@ Index: linux-2.6.28.2/drivers/ssb/Makefile ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o -Index: linux-2.6.28.2/drivers/ssb/driver_chipcommon_pmu.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.28.2/drivers/ssb/driver_chipcommon_pmu.c 2009-02-03 19:07:23.000000000 +0100 +--- /dev/null ++++ b/drivers/ssb/driver_chipcommon_pmu.c @@ -0,0 +1,508 @@ +/* + * Sonics Silicon Backplane @@ -531,10 +527,8 @@ Index: linux-2.6.28.2/drivers/ssb/driver_chipcommon_pmu.c + ssb_pmu_pll_init(cc); + ssb_pmu_resources_init(cc); +} -Index: linux-2.6.28.2/drivers/ssb/driver_chipcommon.c -=================================================================== ---- linux-2.6.28.2.orig/drivers/ssb/driver_chipcommon.c 2009-02-01 13:07:03.000000000 +0100 -+++ linux-2.6.28.2/drivers/ssb/driver_chipcommon.c 2009-02-01 13:47:17.000000000 +0100 +--- a/drivers/ssb/driver_chipcommon.c ++++ b/drivers/ssb/driver_chipcommon.c @@ -26,19 +26,6 @@ enum ssb_clksrc { }; @@ -563,10 +557,8 @@ Index: linux-2.6.28.2/drivers/ssb/driver_chipcommon.c chipco_powercontrol_init(cc); ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST); calc_fast_powerup_delay(cc); -Index: linux-2.6.28.2/include/linux/ssb/ssb_driver_chipcommon.h -=================================================================== ---- linux-2.6.28.2.orig/include/linux/ssb/ssb_driver_chipcommon.h 2009-02-01 13:22:59.000000000 +0100 -+++ linux-2.6.28.2/include/linux/ssb/ssb_driver_chipcommon.h 2009-02-03 18:43:33.000000000 +0100 +--- a/include/linux/ssb/ssb_driver_chipcommon.h ++++ b/include/linux/ssb/ssb_driver_chipcommon.h @@ -181,6 +181,16 @@ #define SSB_CHIPCO_PROG_WAITCNT 0x0124 #define SSB_CHIPCO_FLASH_CFG 0x0128 diff --git a/target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch b/target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch index 5c4ecfe870..fc9613bd25 100644 --- a/target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch +++ b/target/linux/brcm47xx/patches-2.6.28/811-bcm47xx-fix-gpio-direction-retval.patch @@ -6,10 +6,8 @@ Fix this by ignoring the bitmask and always returning 0. The SSB GPIO functions -Index: linux-2.6.28.5/arch/mips/include/asm/mach-bcm47xx/gpio.h -=================================================================== ---- linux-2.6.28.5.orig/arch/mips/include/asm/mach-bcm47xx/gpio.h 2009-02-14 20:52:31.000000000 +0100 -+++ linux-2.6.28.5/arch/mips/include/asm/mach-bcm47xx/gpio.h 2009-02-14 21:01:20.000000000 +0100 +--- a/arch/mips/include/asm/mach-bcm47xx/gpio.h ++++ b/arch/mips/include/asm/mach-bcm47xx/gpio.h @@ -31,24 +31,28 @@ static inline void gpio_set_value(unsign static inline int gpio_direction_input(unsigned gpio)