aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/cns3xxx
Commit message (Collapse)AuthorAgeFilesLines
* cns3xxx: support isolated PCI interrupts on newer Laguna PCBsFelix Fietkau2014-09-021-0/+196
| | | | | | | | | | | | | | | | | | | The cns3xxx uses irq61 for pcie0_intr which in the case of a PCIe-to-PCI bridge ends up combining INTA/B/C/D on a single ARM CPU interrupt. This is not optimal when you have multiple cores. To overcome this limitation an enhancement was made on newer Laguna PCB's that support miniPCI cards to route the INTA/B/C/D signals to unique external ARM CPU interrupts which can help balance CPU core utilization and in some cases increase overall system performance or responsiveness. For more details see: http://trac.gateworks.com/wiki/multicoreprocessing#PCIInterruptsteering Signed-off-by: Tim Harvey <tharvey@gateworks.com> Backport of r42400 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42402 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: add myself as maintainerJohn Crispin2014-08-031-1/+1
| | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r41928 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@41976 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix building initramfs and non-initramfs togetherFelix Fietkau2014-08-011-1/+1
| | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r41922 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@41923 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: update to linux 3.10Felix Fietkau2014-07-3143-915/+683
| | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r41917 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@41921 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix initramfs buildFelix Fietkau2014-07-311-0/+4
| | | | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Backport of r41915 git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@41919 3c298f89-4303-0410-b956-a3cf2f4a3e73
* target/linux/*/base-files/lib/upgrade/platform.sh - wrong check for ARGCJohn Crispin2014-06-021-1/+1
| | | | | | | | | | | | | | | | | | | ARGC is a 'C-ism', but not known/valid in shell-syntax - insert the correct var $# (=number of args) here. under normal conditions this had no impact, but we should at least correct it. the error was observable like this: root@box:~ [ -e "/etc/functions.sh" ] && . /etc/functions.sh root@box:~ [ -e "/lib/functions.sh" ] && . /lib/functions.sh root@box:~ . /lib/upgrade/platform.sh root@box:~ . /lib/upgrade/common.sh root@box:~ platform_check_image /tmp/myfirmware.bin ash: bad number root@box:~ echo $? 0 Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40915 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: ethernet - revert: clean up tx descs only when neededFelix Fietkau2014-04-291-8/+4
| | | | | | | | | | | | | This reverts commit 0772ab938c0aedd7f4cc7127059d6ce8cf929dfa. Trying to optimize calls to eth_complete_tx in this fasion causes a regression where when sending only the tx queue can get disabled until a packet is received. This original call to eth_schedule_poll() is scheduled so it should not cause a performance issue. Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40592 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: Add GW2385 supportImre Kaloz2014-03-121-0/+30
| | | | | | | | | Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Imre Kaloz <kaloz@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39894 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: various dwc (OTG) driver fixupsImre Kaloz2014-03-128-95/+442
| | | | | | | | | Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Imre Kaloz <kaloz@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39892 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix uImage build issueFelix Fietkau2014-03-051-1/+1
| | | | | | | | | | The uImage target will always fail on a clean build due to dependency issues. Building the uImage isn't necessary anyway as its re-built with correct entry points in image/Makefile so remove it. Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39778 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: ethernet - clean up tx descs only when neededFelix Fietkau2014-02-271-4/+8
| | | | | | | | | | | We already clean up tx descriptors in the napi eth_poll() function so it would likely be rare to run out of available descriptors in eth_xmit. Thus we can clean them up only when needed and return busy only when we still don't have enough. Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39762 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: ethernet - resolve SMP issueFelix Fietkau2014-02-271-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The combination of r35942 and r35952 causes an issue where eth_schedule_poll() can be called from a different CPU between the call to napi_complete() and the setting of cur_index which can break the rx ring accounting and cause ethernet latency and/or ethernet stalls. The issue can be easilly created by adding a couple of artificial delays such as: @@ -715,6 +715,7 @@ static int eth_poll(struct napi_struct *napi, int budget) if (!received) { napi_complete(napi); +udelay(1000); enable_irq(IRQ_CNS3XXX_SW_R0RXC); } @@ -727,6 +728,7 @@ static int eth_poll(struct napi_struct *napi, int budget) rx_ring->cur_index = i; wmb(); +udelay(1000); enable_rx_dma(sw); return received; This patch moves the setting of cur_index back up where it needs to be and addresses the original corner case that r35942 was trying to catch in an improved fashion by checking to see if the rx descriptor ring has become full before interrupts were re-enabled so that a poll can be scheduled again and avoid an rx stall caused by rx interrupts ceasing to fire again. Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39761 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: add uImage image buildImre Kaloz2013-11-101-26/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add building of a standard uImage along with the combined kernel+rootfs - remove 'old' image build - that was for a very old and obsolete bootloader To update the bootloader for GW2387,GW2388,GW2391 (NOR Flash) from uboot: put latest NOR bootloader on tftp server: http://svn.gateworks.com/laguna/trunk/images/u-boot_nor.bin Laguna> setenv ipaddr <localip> Laguna> setenv ipaddr <serverip> Laguna> tftpboot 0x800000 laguna/u-boot-nor.bin Laguna> erase 0x10000000 +$(filesize) Laguna> cp.b 0x800000 0x10000000 $(filesize) Laguna> reset To update the bootloader for GW2380,GW2382,GW2383 (SPI Flash) from uboot: put latest SPI bootloader on tftp server: http://svn.gateworks.com/laguna/trunk/images/u-boot_spi.bin Laguna> setenv ipaddr <localip> Laguna> setenv ipaddr <serverip> Laguna> tftpboot 0x800000 laguna/u-boot-spi.bin Laguna> erase 0x60000000 +$(filesize) Laguna> cp.b 0x800000 0x60000000 $(filesize) Laguna> reset Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38703 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: add pushbutton GPIO for GW2380/82/83Imre Kaloz2013-11-101-0/+3
| | | | | | | | Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38702 3c298f89-4303-0410-b956-a3cf2f4a3e73
* build: unify arm target cflagsFelix Fietkau2013-09-261-1/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38211 3c298f89-4303-0410-b956-a3cf2f4a3e73
* build: unify target independent optimization optionsFelix Fietkau2013-07-291-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37600 3c298f89-4303-0410-b956-a3cf2f4a3e73
* targets: prepare for supporting normal and initramfs imagesFlorian Fainelli2013-06-272-2/+2
| | | | | | | | | | | | In order to support both normal images and initramfs, ensure that each target sets KERNELNAME properly so that the generic kernel building code can copy the corresponding files over $(KDIR) with the appropriate extension. Update the various paths to the kernel and wrapper images from $(LINUX_DIR)/arch/$(ARCH)/boot/$(foo) to $(KDIR)/$(foo). Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37049 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.13Gabor Juhos2013-05-261-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36724 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.12Gabor Juhos2013-05-081-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36576 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.11Gabor Juhos2013-05-011-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36507 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.10Gabor Juhos2013-04-301-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36493 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.9Gabor Juhos2013-04-261-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36453 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.8Gabor Juhos2013-04-191-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36363 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.7Gabor Juhos2013-04-141-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36332 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix USB ehci/ohci platform driverFelix Fietkau2013-04-102-4/+52
| | | | | | | | | | | Update ehci/ohci driver registration to conform to the new platform drivers. This fixes missing USB host support in 3.8.x Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36309 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: remove the watchdog IRQ from the resources, it breaks the driver ↵Felix Fietkau2013-04-072-6/+1
| | | | | | | | init and is useful only for testing Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36241 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.6Gabor Juhos2013-04-063-39/+11
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36215 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: update linux 3.8 to 3.8.3Gabor Juhos2013-03-152-2/+2
| | | | | | | | Also refresh the related generic/platform patches. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36039 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: ethernet - clean the tx ring before refilling the rx ring to reduce ↵Felix Fietkau2013-03-111-4/+4
| | | | | | memory pressure git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35953 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: ethernet - clean the tx ring only in the poll function, not in the ↵Felix Fietkau2013-03-111-6/+11
| | | | | | xmit handler git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35952 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: increase number of ethernet driver rx buffersFelix Fietkau2013-03-101-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35951 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: prevent the ethernet driver from accessing uninitialized dma ↵Felix Fietkau2013-03-101-1/+2
| | | | | | descriptor entries git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35950 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: minor ethernet driver cleanupFelix Fietkau2013-03-101-35/+19
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35949 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: use kmalloc instead of kzalloc for ethernet rx buffersFelix Fietkau2013-03-101-1/+1
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35943 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix an rx irq handling corner caseFelix Fietkau2013-03-101-5/+5
| | | | | | | | | | | | | | | | When an rx interrupt comes in, rx interrupts are disabled and NAPI polling is scheduled. During the NAPI poll, the driver first processes received frames in the ring, then fills the dma descriptor slots with new buffers and calls tx complete, before finally re-enabling rx interrupts and completing NAPI (if below the budget). If the hardware rx queue overflows before the napi complete is called, the hardware will not throw any further rx interrupts and rx processing stops completely. Fix this by keeping NAPI polling scheduled until it completes a poll without receiving any packets, and also handle NAPI completion before refilling rx or completing tx. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35942 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix ethernet driver memory barrier usageFelix Fietkau2013-03-101-5/+8
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35941 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: reduce buffer allocation size to 2048 bytes, improves ethernet ↵Felix Fietkau2013-03-101-1/+1
| | | | | | performance git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35917 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: remove linux 3.3 supportFelix Fietkau2013-03-1023-1558/+0
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35916 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: disable CONFIG_PROC_STRIPPED and add an init script to set the ↵Felix Fietkau2013-03-102-0/+22
| | | | | | ethernet cpu affinity (improves lan<->wlan bridging performance) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35915 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: add linux 3.8 support and use it by defaultFelix Fietkau2013-03-0931-25/+1543
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35908 3c298f89-4303-0410-b956-a3cf2f4a3e73
* Revert "[cns3xxx]: clean up PCI bus topology" (r35079)Felix Fietkau2013-03-021-27/+0
| | | | | | It breaks PCIe IRQ mapping and possibly other things git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35842 3c298f89-4303-0410-b956-a3cf2f4a3e73
* target: enable XZ BCJ decompressor code after r35097Florian Fainelli2013-01-141-0/+2
| | | | | | | | | Required to actually be able to mount squashfs xz compressed filesystems. Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35156 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: clean up PCI bus topologyImre Kaloz2013-01-101-0/+27
| | | | | | | | | This makes the PCI bus topology more standard for devices behind a bridge Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35079 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: clean up PCI bus topologyImre Kaloz2013-01-101-2/+2
| | | | | | | | | This makes the PCI bus topology more standard for devices behind a bridge Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35078 3c298f89-4303-0410-b956-a3cf2f4a3e73
* [cns3xxx]: add nol2x0 cmdline to disable l2x0 cacheImre Kaloz2012-12-232-2/+47
| | | | | | | | | | | | L2 cache via L2X0 cache controller available on some ARM boards can provide a performance boost in some situations but decrease performance in others. This adds a kernel cmdline to disable L2X0 for cns3xxx based boards. Signed-off-by: Tim Harvey <tharvey@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34874 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel: add missing USB configuration symbols after r34501Florian Fainelli2012-12-071-0/+2
| | | | | | Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34568 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix dwc_otg driver compat with udc-coreFlorian Fainelli2012-12-042-94/+0
| | | | | | | | | | | function. This removes those from the dwc_otg driver and removes the patch that comments out the linkage of udc-core so that the dwc_otg driver can co-exist happily with other USB Device Controllers. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34475 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: advertise pcie usb usbgadget featuresFlorian Fainelli2012-12-041-1/+1
| | | | | | | Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Florian Fainelli <florian@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34474 3c298f89-4303-0410-b956-a3cf2f4a3e73
* remove common symbols from 3.3 configsGabor Juhos2012-11-291-2/+0
| | | | | | | | The removed symbols are present in the generic configuration. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34403 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: merge gpio patchesLuka Perkov2012-11-122-206/+35
| | | | git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34174 3c298f89-4303-0410-b956-a3cf2f4a3e73