aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/cns3xxx
Commit message (Collapse)AuthorAgeFilesLines
* kernel: makefiles: make use of new var KERNEL_PATCHVERFelix Fietkau2014-10-241-1/+1
| | | | | | | | | | | replace all occurences of LINUX_VERSION with the cleaner approach. future kernel upgrades must mostly touch only one file. the only platform left is netlogic, because it uses a intermediate kernel 3.14.16 Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43047 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: Adopt irq_domain support for cns3xxx gpio driverFelix Fietkau2014-10-081-7/+23
| | | | | | | | | Have gpio driver adopt irqdomain support so that there are non-overlapping allocations of irq numbers mapped to gpio's. Signed-off-by: Pushpal Sidhu <psidhu@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42844 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix shared PCI interrupt mappingFelix Fietkau2014-10-071-5/+2
| | | | | | | | | | | | | | This patch originally failed to combine INTA/B/C/D onto a single ARM CPU interrupt. Instead, it mapped INTA/B/C and excluded D. This patch corrects the issue by mapping all four interrupts to the single ARM CPU interrupt. The original intent of the patch still holds as the newer PCB take advantage of isolated interrupts. This fix only applies to older PCB's that do not route INTA/B/C/D to unique external ARM CPU interrupts. Signed-off-by: Pushpal Sidhu <psidhu@gateworks.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42830 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix register for enabling MMC/SD pinsFelix Fietkau2014-10-071-2/+1
| | | | | | | | also fixes a GPIO related regression from the upgrade to 3.10 Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42829 3c298f89-4303-0410-b956-a3cf2f4a3e73
* targets: remove useless quotes around KERNELNAMEFelix Fietkau2014-10-051-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42780 3c298f89-4303-0410-b956-a3cf2f4a3e73
* 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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42400 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: add myself as maintainerFelix Fietkau2014-08-011-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41928 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> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41922 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: update to linux 3.10Felix Fietkau2014-07-3143-915/+683
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41917 3c298f89-4303-0410-b956-a3cf2f4a3e73
* cns3xxx: fix initramfs buildFelix Fietkau2014-07-311-0/+4
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41915 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