Changeset 3693
- Timestamp:
- 02/07/08 22:56:12 (10 months ago)
- Files:
-
- trunk/freewrt/package/base-files/files/etc/hotplug.d/usb/01-mount (modified) (1 diff)
- trunk/freewrt/package/e2fsprogs/Makefile (modified) (2 diffs)
- trunk/freewrt/rules.mk (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/Makefile (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/extra/arch/mips/bcm947xx/prom.c (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/extra/arch/mips/bcm947xx/setup.c (modified) (6 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/arch/mips/bcm947xx/time.c (modified) (2 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/gpio (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/leds (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/Kconfig (modified) (6 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/Makefile (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/b43_pci_bridge.c (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/driver_chipcommon.c (modified) (11 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/driver_extif.c (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/driver_mipscore.c (modified) (6 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/driver_pcicore.c (modified) (19 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/main.c (modified) (34 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/pci.c (modified) (13 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/pcmcia.c (modified) (9 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/scan.c (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/ssb_private.h (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/drivers/usb (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/extra/drivers/usb)
- trunk/freewrt/target/linux/brcm-2.6/extra/fs (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/asm-mips/mach-bcm947xx/gpio.h (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/asm-mips/mach-bcm947xx/war.h (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/gpio_dev.h (deleted)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/ssb/ssb.h (modified) (11 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/ssb/ssb_driver_chipcommon.h (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/ssb/ssb_driver_extif.h (modified) (2 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/ssb/ssb_driver_mips.h (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/ssb/ssb_driver_pci.h (modified) (2 diffs)
- trunk/freewrt/target/linux/brcm-2.6/extra/include/linux/ssb/ssb_regs.h (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/1000-eeprom_93cx6.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1000-eeprom_93cx6.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1001-squashfs.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1001-squashfs.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1002-lzma_decompress.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1002-lzma_decompress.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1003-squashfs_lzma.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1003-squashfs_lzma.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1004-extra_optimization.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1004-extra_optimization.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1006-gcc4_inline_fix.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1006-gcc4_inline_fix.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1007-samsung_flash.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1007-samsung_flash.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1009-revert_intel_flash_breakage.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1009-revert_intel_flash_breakage.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1010-disable_old_squashfs_compatibility.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1010-disable_old_squashfs_compatibility.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1011-mips_boot.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1011-mips_boot.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1012-mips_cpu_tlb.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1012-mips_cpu_tlb.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1013-mips_generic_gpio_support.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1013-mips_generic_gpio_support.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1060-rootfs_split.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1060-rootfs_split.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1065-block2mtd_init.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1065-block2mtd_init.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1100-netfilter_layer7_2.9.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1100-netfilter_layer7_2.9.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1101-netfilter_layer7_pktmatch.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1101-netfilter_layer7_pktmatch.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1110-ipp2p_0.8.1rc1.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1110-ipp2p_0.8.1rc1.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1120-openswan-2.4.0.kernel-2.6-natt.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1120-openswan-2.4.0.kernel-2.6-natt.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1130-netfilter-ipset.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1130-netfilter-ipset.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1140-netfilter_time.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1140-netfilter_time.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1150-netfilter_imq.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1150-netfilter_imq.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1160-netfilter_route.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1160-netfilter_route.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1170-netfilter_chaostables.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1170-netfilter_chaostables.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1180-netfilter_depends.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1180-netfilter_depends.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1200-sched_esfq.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1200-sched_esfq.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1201-multiple_default_gateways.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1201-multiple_default_gateways.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1202-mips-freestanding.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1202-mips-freestanding.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1204-jffs2_eofdetect.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1204-jffs2_eofdetect.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1207-powerpc_asm_segment_h.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1207-powerpc_asm_segment_h.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1208-rtl8110sb_fix.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1208-rtl8110sb_fix.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1209-mini_fo.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1209-mini_fo.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1210-mac80211_include_wireless_dev.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1210-mac80211_include_wireless_dev.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1213-kobject_uevent.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1213-kobject_uevent.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1300-ssb_integrate.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1300-ssb_integrate.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1310-ssb_pcicore_fixes.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1310-ssb_pcicore_fixes.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1510-Yaffs.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1510-Yaffs.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1900-headers_type_and_time.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1900-headers_type_and_time.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1902-darwin_scripts_include.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1902-darwin_scripts_include.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1903-stddef_include.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1903-stddef_include.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/1904-ls_time_locale.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/1904-ls_time_locale.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/2100-board_support.patch (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2110-flash_map.patch (modified) (2 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2120-b44_ssb_support.patch (modified) (70 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2130-remove_scache.patch (modified) (6 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2150-cpu_fixes.patch (modified) (11 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2160-kmap_coherent.patch (modified) (4 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2170-cpu_wait.patch (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/patches/2200-b44_ssb_fixup.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/2200-b44_ssb_fixup.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/2210-ssb_fixes.patch (modified) (8 diffs)
- trunk/freewrt/target/linux/brcm-2.6/patches/2220-bcm5354.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2225-bcm5354_ssbrev.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2230-ohci-ssb.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2230-ssb_arch_setup.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/2230-ssb_arch_setup.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/2240-extif_fixes.patch (copied) (copied from trunk/freewrt/target/linux/brcm-2.6/patches/2240-extif_fixes.patch)
- trunk/freewrt/target/linux/brcm-2.6/patches/2250-ohci-ssb-usb2.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2260-ohci-set-dma-mask.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2300-fork_cacheflush.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2310-no_highpage.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2400-b43-pci_ssb_bridge.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2410-aec62xx_pci_enable.patch (deleted)
- trunk/freewrt/target/linux/brcm-2.6/patches/2500-lzma_initramfs.patch (deleted)
- trunk/freewrt/target/linux/generic-2.6.24 (deleted)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/freewrt/package/base-files/files/etc/hotplug.d/usb/01-mount
r3686 r3693 13 13 path=/mnt/${dev}_${part##*part} 14 14 mkdir -p ${path} 15 [ -x /usr/sbin/fsck ] && /usr/sbin/fsck -a -V /dev/discs/${dev}/${part} >> /var/log/fsck.log 2>&116 15 mount ${part} ${path} 17 16 done trunk/freewrt/package/e2fsprogs/Makefile
r3686 r3693 9 9 PKG_NAME:= e2fsprogs 10 10 PKG_VERSION:= 1.39 11 PKG_RELEASE:= 311 PKG_RELEASE:= 2 12 12 PKG_MD5SUM:= 06f7806782e357797fad1d34b7ced0c6 13 13 MASTER_SITES:= ${MASTER_SITE_SOURCEFORGE:=e2fsprogs/} … … 34 34 ${INSTALL_DIR} ${IDIR_E2FSPROGS}/usr/lib 35 35 ${INSTALL_DIR} ${IDIR_E2FSPROGS}/usr/sbin 36 ${INSTALL_BIN} ${WRKINST}/usr/sbin/fsck ${IDIR_E2FSPROGS}/usr/sbin/ 37 ${INSTALL_BIN} ${WRKINST}/usr/sbin/fsck.ext2 ${IDIR_E2FSPROGS}/usr/sbin/ 38 ln -s fsck.ext2 ${IDIR_E2FSPROGS}/usr/sbin/fsck.ext3 39 ln -s fsck.ext2 ${IDIR_E2FSPROGS}/usr/sbin/e2fsck 36 ${INSTALL_BIN} ${WRKINST}/usr/sbin/e2fsck ${IDIR_E2FSPROGS}/usr/sbin/ 37 ${INSTALL_BIN} ${WRKINST}/usr/sbin/mke2fs ${IDIR_E2FSPROGS}/usr/sbin/ 40 38 ${INSTALL_BIN} ${WRKINST}/usr/sbin/tune2fs ${IDIR_E2FSPROGS}/usr/sbin/ 41 39 ${CP} ${WRKINST}/usr/lib/lib{blkid,com_err,e2p,ext2fs,uuid}.so.* \ trunk/freewrt/rules.mk
r3686 r3693 86 86 UNAME_R:= 2.6.21.1 87 87 else ifeq ($(strip ${FWRT_LINUX_2_6_BRCM_ASUS_WL500G_PREMIUM}),y) 88 UNAME_R:= 2.6.2 488 UNAME_R:= 2.6.22.1 89 89 else ifeq ($(strip ${FWRT_LINUX_2_4}),y) 90 90 UNAME_R:= 2.4.34 trunk/freewrt/target/linux/brcm-2.6/Makefile
r3686 r3693 1 include ${TOPDIR}/target/linux/generic-2.6.2 4/Makefile1 include ${TOPDIR}/target/linux/generic-2.6.22.1/Makefile trunk/freewrt/target/linux/brcm-2.6/extra/arch/mips/bcm947xx/prom.c
r3691 r3693 42 42 unsigned long mem; 43 43 44 //mips_machgroup = MACH_GROUP_BRCM;44 mips_machgroup = MACH_GROUP_BRCM; 45 45 mips_machtype = MACH_BCM47XX; 46 46 trunk/freewrt/target/linux/brcm-2.6/extra/arch/mips/bcm947xx/setup.c
r3691 r3693 32 32 #include <linux/serial_core.h> 33 33 #include <linux/serial_reg.h> 34 #include <linux/serial_8250.h>35 34 #include <asm/bootinfo.h> 36 35 #include <asm/time.h> … … 56 55 57 56 /* Set the watchdog timer to reset immediately */ 58 ssb_chipco_watchdog _timer_set(&ssb.chipco, 1);57 ssb_chipco_watchdog(&ssb.chipco, 1); 59 58 while (1) 60 59 cpu_relax(); … … 65 64 /* Disable interrupts and watchdog and spin forever */ 66 65 local_irq_disable(); 67 ssb_chipco_watchdog _timer_set(&ssb.chipco, 0);66 ssb_chipco_watchdog(&ssb.chipco, 0); 68 67 while (1) 69 68 cpu_relax(); … … 109 108 } 110 109 111 static int bcm47xx_get_invariants(struct ssb_bus *bus, struct ssb_init_invariants *iv)112 {113 char *s;114 115 // TODO116 //iv->boardinfo.vendor =117 if ((s = nvram_get("boardtype")))118 iv->boardinfo.type = (u16)simple_strtoul(s, NULL, 0);119 if ((s = nvram_get("boardrev")))120 iv->boardinfo.rev = (u16)simple_strtoul(s, NULL, 0);121 bcm47xx_fill_sprom(&iv->sprom);122 return 0;123 }124 125 110 void __init plat_mem_setup(void) 126 111 { … … 129 114 struct ssb_mipscore *mcore; 130 115 131 err = ssb_bus_ssbbus_register(&ssb, SSB_ENUM_BASE, bcm47xx_ get_invariants);116 err = ssb_bus_ssbbus_register(&ssb, SSB_ENUM_BASE, bcm47xx_fill_sprom); 132 117 if (err) { 133 118 const char *msg = "Failed to initialize SSB bus (err %d)\n"; … … 173 158 pm_power_off = bcm47xx_machine_halt; 174 159 160 board_time_init = bcm47xx_time_init;//FIXME move into ssb 175 161 } 176 162 trunk/freewrt/target/linux/brcm-2.6/extra/arch/mips/bcm947xx/time.c
r3692 r3693 36 36 37 37 void __init 38 plat_time_init(void)38 bcm47xx_time_init(void) 39 39 { 40 40 unsigned long hz; … … 55 55 } 56 56 57 //void __init 58 //plat_timer_setup(struct irqaction *irq) 59 //{ 60 // /* Enable the timer interrupt */ 61 // setup_irq(7, irq); 62 // } 63 64 //TODO: remove this function 57 void __init 58 plat_timer_setup(struct irqaction *irq) 59 { 60 /* Enable the timer interrupt */ 61 setup_irq(7, irq); 62 } trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/Kconfig
r3691 r3693 1 1 menu "Sonics Silicon Backplane" 2 3 config SSB_POSSIBLE4 bool5 depends on HAS_IOMEM6 default y7 2 8 3 config SSB 9 4 tristate "Sonics Silicon Backplane support" 10 depends on SSB_POSSIBLE5 depends on EXPERIMENTAL 11 6 help 12 Support for the Sonics Silicon Backplane bus. 13 You only need to enable this option, if you are 14 configuring a kernel for an embedded system with 15 this bus. 16 It will be auto-selected if needed in other 17 environments. 7 Support for the Sonics Silicon Backplane bus 18 8 19 The module will be called ssb .9 The module will be called ssb 20 10 21 If unsure, say N. 22 23 config SSB_PCIHOST_POSSIBLE 24 bool 25 depends on SSB && PCI 26 default y 11 If unsure, say M 27 12 28 13 config SSB_PCIHOST 29 14 bool "Support for SSB on PCI-bus host" 30 depends on SSB _PCIHOST_POSSIBLE15 depends on SSB && PCI 31 16 default y 32 17 help … … 36 21 If unsure, say Y 37 22 38 config SSB_PCMCIAHOST_POSSIBLE39 bool40 depends on SSB && PCMCIA && EXPERIMENTAL41 default y42 43 23 config SSB_PCMCIAHOST 44 bool "Support for SSB on PCMCIA-bus host (EXPERIMENTAL)"45 depends on SSB _PCMCIAHOST_POSSIBLE24 bool "Support for SSB on PCMCIA-bus host" 25 depends on SSB && PCMCIA 46 26 help 47 27 Support for a Sonics Silicon Backplane on top … … 52 32 config SSB_SILENT 53 33 bool "No SSB kernel messages" 54 depends on SSB && EMBEDDED34 depends on SSB 55 35 help 56 36 This option turns off all Sonics Silicon Backplane printks. … … 76 56 # ChipCommon and ExtIf serial support routines. 77 57 78 config SSB_DRIVER_PCICORE_POSSIBLE79 bool80 depends on SSB_PCIHOST81 default y82 83 58 config SSB_DRIVER_PCICORE 84 59 bool "SSB PCI core driver" 85 depends on SSB_DRIVER_PCICORE_POSSIBLE 60 depends on SSB && SSB_PCIHOST 61 default y 86 62 help 87 63 Driver for the Sonics Silicon Backplane attached … … 91 67 92 68 config SSB_PCICORE_HOSTMODE 93 bool "Hostmode support for SSB PCI core (EXPERIMENTAL)"94 depends on SSB_DRIVER_PCICORE && SSB_DRIVER_MIPS && EXPERIMENTAL69 bool "Hostmode support for SSB PCI core" 70 depends on SSB_DRIVER_PCICORE && SSB_DRIVER_MIPS 95 71 help 96 72 PCIcore hostmode operation (external PCI bus). 97 73 98 74 config SSB_DRIVER_MIPS 99 bool "SSB Broadcom MIPS core driver (EXPERIMENTAL)"100 depends on SSB && MIPS && EXPERIMENTAL75 bool "SSB Broadcom MIPS core driver" 76 depends on SSB && MIPS 101 77 select SSB_SERIAL 102 78 help … … 107 83 108 84 config SSB_DRIVER_EXTIF 109 bool "SSB Broadcom EXTIF core driver (EXPERIMENTAL)"110 depends on SSB_DRIVER_MIPS && EXPERIMENTAL85 bool "SSB Broadcom EXTIF core driver" 86 depends on SSB_DRIVER_MIPS 111 87 help 112 88 Driver for the Sonics Silicon Backplane attached trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/Makefile
r3691 r3693 1 # core 2 ssb-y += main.o scan.o 1 ssb-builtin-drivers-y += driver_chipcommon.o 2 ssb-builtin-drivers-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o 3 ssb-builtin-drivers-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o 3 4 4 # host support 5 ssb-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o 6 ssb-$(CONFIG_SSB_PCMCIAHOST) += pcmcia.o 5 ssb-hostsupport-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o 6 ssb-hostsupport-$(CONFIG_SSB_PCMCIAHOST) += pcmcia.o 7 7 8 # built-in drivers 9 ssb-y += driver_chipcommon.o 10 ssb-$(CONFIG_SSB_DRIVER_MIPS) += driver_mipscore.o 11 ssb-$(CONFIG_SSB_DRIVER_EXTIF) += driver_extif.o 12 ssb-$(CONFIG_SSB_DRIVER_PCICORE) += driver_pcicore.o 8 obj-$(CONFIG_SSB) += ssb.o 13 9 14 # b43 pci-ssb-bridge driver 15 # Not strictly a part of SSB, but kept here for convenience 16 ssb-$(CONFIG_SSB_PCIHOST) += b43_pci_bridge.o 17 18 obj-$(CONFIG_SSB) += ssb.o 10 ssb-objs := main.o scan.o \ 11 $(ssb-hostsupport-y) $(ssb-builtin-drivers-y) trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/driver_chipcommon.c
r3691 r3693 17 17 18 18 /* Clock sources */ 19 enum ssb_clksrc{19 enum { 20 20 /* PCI clock */ 21 21 SSB_CHIPCO_CLKSRC_PCI, … … 38 38 { 39 39 ssb_write32(cc->dev, offset, value); 40 }41 42 static inline void chipco_write32_masked(struct ssb_chipcommon *cc, u16 offset,43 u32 mask, u32 value)44 {45 value &= mask;46 value |= chipco_read32(cc, offset) & ~mask;47 chipco_write32(cc, offset, value);48 40 } 49 41 … … 94 86 break; 95 87 default: 96 SSB_WARN_ON(1);88 assert(0); 97 89 } 98 90 } 99 91 100 92 /* Get the Slow Clock Source */ 101 static enum ssb_clksrcchipco_pctl_get_slowclksrc(struct ssb_chipcommon *cc)93 static int chipco_pctl_get_slowclksrc(struct ssb_chipcommon *cc) 102 94 { 103 95 struct ssb_bus *bus = cc->dev->bus; 104 u32 uninitialized_var(tmp);96 u32 tmp = 0; 105 97 106 98 if (cc->dev->id.revision < 6) { … … 132 124 static int chipco_pctl_clockfreqlimit(struct ssb_chipcommon *cc, int get_max) 133 125 { 134 int uninitialized_var(limit);135 enum ssb_clksrcclocksrc;136 int divisor = 1;126 int limit; 127 int clocksrc; 128 int divisor; 137 129 u32 tmp; 138 130 … … 147 139 break; 148 140 default: 149 SSB_WARN_ON(1); 141 assert(0); 142 divisor = 1; 150 143 } 151 144 } else if (cc->dev->id.revision < 10) { 152 145 switch (clocksrc) { 153 146 case SSB_CHIPCO_CLKSRC_LOPWROS: 147 divisor = 1; 154 148 break; 155 149 case SSB_CHIPCO_CLKSRC_XTALOS: … … 159 153 divisor *= 4; 160 154 break; 155 default: 156 assert(0); 157 divisor = 1; 161 158 } 162 159 } else { … … 185 182 limit = 25000000; 186 183 break; 184 default: 185 assert(0); 186 limit = 0; 187 187 } 188 188 limit /= divisor; … … 236 236 pll_on_delay = chipco_read32(cc, SSB_CHIPCO_PLLONDELAY); 237 237 tmp = (((pll_on_delay + 2) * 1000000) + (minfreq - 1)) / minfreq; 238 SSB_WARN_ON(tmp & ~0xFFFF);238 assert((tmp & ~0xFFFF) == 0); 239 239 240 240 cc->fast_pwrup_delay = tmp; … … 265 265 } 266 266 267 /* Get the processor clock */268 void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,269 u32 *plltype, u32 *n, u32 *m)270 {271 *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);272 *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);273 switch (*plltype) {274 case SSB_PLLTYPE_2:275 case SSB_PLLTYPE_4:276 case SSB_PLLTYPE_6:277 case SSB_PLLTYPE_7:278 *m = chipco_read32(cc, SSB_CHIPCO_CLOCK_MIPS);279 break;280 case SSB_PLLTYPE_3:281 /* 5350 uses m2 to control mips */282 *m = chipco_read32(cc, SSB_CHIPCO_CLOCK_M2);283 break;284 default:285 *m = chipco_read32(cc, SSB_CHIPCO_CLOCK_SB);286 break;287 }288 }289 290 /* Get the bus clock */291 267 void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc, 292 268 u32 *plltype, u32 *n, u32 *m) … … 343 319 chipco_write32(cc, SSB_CHIPCO_PROG_WAITCNT, tmp); /* 0x01020a0c for a 100Mhz clock */ 344 320 } 345 }346 347 /* Set chip watchdog reset timer to fire in 'ticks' backplane cycles */348 void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc, u32 ticks)349 {350 /* instant NMI */351 chipco_write32(cc, SSB_CHIPCO_WATCHDOG, ticks);352 321 } 353 322 … … 384 353 /* Internal backplane clock */ 385 354 baud_base = ssb_clockspeed(bus); 386 div = chipco_read32(cc, SSB_CHIPCO_CLKDIV) 387 & SSB_CHIPCO_CLKDIV_UART; 355 div = 2; /* Minimum divisor */ 356 chipco_write32(cc, SSB_CHIPCO_CLKDIV, 357 (chipco_read32(cc, SSB_CHIPCO_CLKDIV) 358 & ~SSB_CHIPCO_CLKDIV_UART) | div); 388 359 } else { 389 360 /* Fixed internal backplane clock */ trunk/freewrt/target/linux/brcm-2.6/extra/drivers/ssb/driver_mipscore.c
r3691 r3693 14 14 #include <linux/serial_core.h> 15 15 #include <linux/serial_reg.h> 16 #include < linux/time.h>16 #include <asm/time.h> 17 17 18 18 #include "ssb_private.h" … … 118 118 } 119 119 120 /* XXX: leave here or move into separate extif driver? */ 121 static int ssb_extif_serial_init(struct ssb_device *dev, struct ssb_serial_ports *ports) 122 { 123 124 } 125 126 120 127 static void ssb_mips_serial_init(struct ssb_mipscore *mcore) 121 128 { 122 129 struct ssb_bus *bus = mcore->dev->bus; 123 130 131 //TODO if (EXTIF available 132 #if 0 133 extifregs_t *eir = (extifregs_t *) regs; 134 sbconfig_t *sb; 135 136 /* Determine external UART register base */ 137 sb = (sbconfig_t *)((ulong) eir + SBCONFIGOFF); 138 base = EXTIF_CFGIF_BASE(sb_base(R_REG(&sb->sbadmatch1))); 139 140 /* Determine IRQ */ 141 irq = sb_irq(sbh); 142 143 /* Disable GPIO interrupt initially */ 144 W_REG(&eir->gpiointpolarity, 0); 145 W_REG(&eir->gpiointmask, 0); 146 147 /* Search for external UARTs */ 148 n = 2; 149 for (i = 0; i < 2; i++) { 150 regs = (void *) REG_MAP(base + (i * 8), 8); 151 if (BCMINIT(serial_exists)(regs)) { 152 /* Set GPIO 1 to be the external UART IRQ */ 153 W_REG(&eir->gpiointmask, 2); 154 if (add) 155 add(regs, irq, 13500000, 0); 156 } 157 } 158 159 /* Add internal UART if enabled */ 160 if (R_REG(&eir->corecontrol) & CC_UE) 161 if (add) 162 add((void *) &eir->uartdata, irq, sb_clock(sbh), 2); 163 164 #endif 124 165 if (bus->extif.dev) 125 166 mcore->nr_serial_ports = ssb_extif_serial_init(&bus->extif, mcore->serial_ports); … … 134 175 struct ssb_bus *bus = mcore->dev->bus; 135 176 136 mcore->flash_buswidth = 2;137 177 if (bus->chipco.dev) { 138 178 mcore->flash_window = 0x1c000000; 139 mcore->flash_window_size = 0x02000000; 140 if ((ssb_read32(bus->chipco.dev, SSB_CHIPCO_FLASH_CFG) 141 & SSB_CHIPCO_CFG_DS16) == 0) 142 mcore->flash_buswidth = 1; 179 mcore->flash_window_size = 0x800000; 143 180 } else { 144 181 mcore->flash_window = 0x1fc00000; 145 mcore->flash_window_size = 0x00400000; 146 } 147 } 148 149 u32 ssb_cpu_clock(struct ssb_mipscore *mcore) 182 mcore->flash_window_size = 0x400000; 183 } 184 } 185 186 187 static void ssb_cpu_clock(struct ssb_mipscore *mcore) 188 { 189 } 190 191 void ssb_mipscore_init(struct ssb_mipscore *mcore) 150 192 { 151 193 struct ssb_bus *bus = mcore->dev->bus; 152 u32 pll_type, n, m, rate = 0;153 154 if (bus->extif.dev) {155 ssb_extif_get_clockcontrol(&bus->extif, &pll_type, &n, &m);156 } else if (bus->chipco.dev) {157 ssb_chipco_get_clockcpu(&bus->chipco, &pll_type, &n, &m);158 } else159 return 0;160 161 if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) {162 rate = 200000000;163 } else {164 rate = ssb_calc_clock_rate(pll_type, n, m);165 }166 167 if (pll_type == SSB_PLLTYPE_6) {168 rate *= 2;169 }170 171 return rate;172 }173 174 void ssb_mipscore_init(struct ssb_mipscore *mcore)175 {176 struct ssb_bus *bus;177 194 struct ssb_device *dev; 178 195 unsigned long hz, ns; … … 184 201 ssb_dprintk(KERN_INFO PFX "Initializing MIPS core...\n"); 185 202 186 bus = mcore->dev->bus;187 203 hz = ssb_clockspeed(bus); 188 204 if (!hz) … … 190 206 ns = 1000000000 / hz; 191 207 192 if (bus->extif.dev) 193 ssb_extif_timing_init(&bus->extif, ns); 194 else if (bus->chipco.dev) 208 //TODO 209 #if 0 210 if (have EXTIF) { 211 /* Initialize extif so we can get to the LEDs and external UART */ 212 W_REG(&eir->prog_config, CF_EN); 213 214 /* Set timing for the flash */ 215 tmp = CEIL(10, ns) << FW_W3_SHIFT; /* W3 = 10nS */ 216 tmp = tmp | (CEIL(40, ns) << FW_W1_SHIFT); /* W1 = 40nS */ 217 tmp = tmp | CEIL(120, ns); /* W0 = 120nS */ 218 W_REG(&eir->prog_waitcount, tmp); /* 0x01020a0c for a 100Mhz clock */ 219 220 /* Set programmable interface timing for external uart */ 221 tmp = CEIL(10, ns) << FW_W3_SHIFT; /* W3 = 10nS */ 222 tmp = tmp | (CEIL(20, ns) << FW_W2_SHIFT); /* W2 = 20nS */ 223 tmp = tmp | (CEIL(100, ns) << FW_W1_SHIFT); /* W1 = 100nS */ 224 tmp = tmp | CEIL(120, ns); /* W0 = 120nS */ 225 W_REG(&eir->prog_waitcount, tmp); 226 } 227 else... chipcommon 228 #endif 229 if (bus->chipco.dev) 195 230 ssb_chipco_timing_init(&bus->chipco, ns); 196 231 … … 199 234 dev = &(bus->devices[i]); 200 235 dev->irq = ssb_mips_irq(dev) + 2; 201 switch (dev->id.coreid) { 202 case SSB_DEV_USB11_HOST: 203 /* shouldn't need a separate irq line for non-4710, most of them have a proper 204 * external usb controller on the pci */ 205 if ((bus->chip_id == 0x4710) && (irq <= 4)) { 206 set_irq(dev, irq++); 207 break; 208 } 209 /* fallthrough */ 210 case SSB_DEV_PCI: 211 case SSB_DEV_ETHERNET: 212 case SSB_DEV_80211: 213 case SSB_DEV_USB20_HOST: 214 /* These devices get their own IRQ line if available, the rest goes on IRQ0 */ 215 if (irq <= 4) { 216 set_irq(dev, irq++); 217 break; 218 } 236 switch(dev->id.coreid) { 237 case SSB_DEV_USB11_HOST: 238 /* shouldn't need a separate irq line for non-4710, most of them have a proper 239 * external usb controller on the pci */ 240 if ((bus->chip_id == 0x4710) && (irq <= 4)) { 241 set_irq(dev, irq++); 242 break; 243 } 244 &nb
