aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/cns3xxx
Commit message (Collapse)AuthorAgeFilesLines
* cns3xxx: fix PCIe->PCI bridge access (fixes #18422)Felix Fietkau2014-11-271-0/+11
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43414
* cns3xxx: add experimental 3.18 supportFelix Fietkau2014-11-2725-0/+1431
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43406
* cns3xxx: fix pcie root bridge topologyFelix Fietkau2014-11-272-2/+55
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43403
* cns3xxx: add missing dma mask for ethernet deviceFelix Fietkau2014-11-261-1/+6
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43399
* cns3xxx: switch to using the upstream dwc2 driver instead of dwc_otgFelix Fietkau2014-11-2626-22978/+51
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43398
* cns3xxx: update to linux 3.14Felix Fietkau2014-11-2626-66/+89
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43397
* cns3xxx: remove bogus image added in r38703Felix Fietkau2014-11-261-4/+0
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43396
* cns3xxx: set base device for ethernet port netdevsFelix Fietkau2014-11-261-0/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43395
* cns3xxx: fix passing the device to dma mapping opsFelix Fietkau2014-11-261-17/+20
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43394
* 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> SVN-Revision: 43047
* 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> SVN-Revision: 42844
* 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> SVN-Revision: 42830
* 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> SVN-Revision: 42829
* targets: remove useless quotes around KERNELNAMEFelix Fietkau2014-10-051-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 42780
* 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> SVN-Revision: 42400
* cns3xxx: add myself as maintainerFelix Fietkau2014-08-011-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41928
* cns3xxx: fix building initramfs and non-initramfs togetherFelix Fietkau2014-08-011-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41922
* cns3xxx: update to linux 3.10Felix Fietkau2014-07-3143-915/+683
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41917
* cns3xxx: fix initramfs buildFelix Fietkau2014-07-311-0/+4
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 41915
* 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> SVN-Revision: 40915
* 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> SVN-Revision: 40592
* Add GW2385 supportImre Kaloz2014-03-121-0/+30
| | | | | | | Signed-off-by: Tim Harvey <tharvey@gateworks.com> Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 39894
* 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> SVN-Revision: 39892
* 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> SVN-Revision: 39778
* 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> SVN-Revision: 39762
* 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> SVN-Revision: 39761
* 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> SVN-Revision: 38703
* add pushbutton GPIO for GW2380/82/83Imre Kaloz2013-11-101-0/+3
| | | | | | Signed-off-by: Tim Harvey <tharvey@gateworks.com> SVN-Revision: 38702
* build: unify arm target cflagsFelix Fietkau2013-09-261-1/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 38211
* build: unify target independent optimization optionsFelix Fietkau2013-07-291-1/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 37600
* 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> SVN-Revision: 37049
* kernel: update linux 3.8 to 3.8.13Gabor Juhos2013-05-261-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36724
* kernel: update linux 3.8 to 3.8.12Gabor Juhos2013-05-081-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36576
* kernel: update linux 3.8 to 3.8.11Gabor Juhos2013-05-011-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36507
* kernel: update linux 3.8 to 3.8.10Gabor Juhos2013-04-301-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36493
* kernel: update linux 3.8 to 3.8.9Gabor Juhos2013-04-261-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36453
* kernel: update linux 3.8 to 3.8.8Gabor Juhos2013-04-191-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36363
* kernel: update linux 3.8 to 3.8.7Gabor Juhos2013-04-141-1/+1
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36332
* 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> SVN-Revision: 36309
* 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> SVN-Revision: 36241
* kernel: update linux 3.8 to 3.8.6Gabor Juhos2013-04-063-39/+11
| | | | | | Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 36215
* 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> SVN-Revision: 36039
* cns3xxx: ethernet - clean the tx ring before refilling the rx ring to reduce ↵Felix Fietkau2013-03-111-4/+4
| | | | | | memory pressure SVN-Revision: 35953
* cns3xxx: ethernet - clean the tx ring only in the poll function, not in the ↵Felix Fietkau2013-03-111-6/+11
| | | | | | xmit handler SVN-Revision: 35952
* cns3xxx: increase number of ethernet driver rx buffersFelix Fietkau2013-03-101-1/+1
| | | | SVN-Revision: 35951
* cns3xxx: prevent the ethernet driver from accessing uninitialized dma ↵Felix Fietkau2013-03-101-1/+2
| | | | | | descriptor entries SVN-Revision: 35950
* cns3xxx: minor ethernet driver cleanupFelix Fietkau2013-03-101-35/+19
| | | | SVN-Revision: 35949
* cns3xxx: use kmalloc instead of kzalloc for ethernet rx buffersFelix Fietkau2013-03-101-1/+1
| | | | SVN-Revision: 35943
* 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. SVN-Revision: 35942
* cns3xxx: fix ethernet driver memory barrier usageFelix Fietkau2013-03-101-5/+8
| | | | SVN-Revision: 35941