Commit Graph

896 Commits (eed031d4603f5c46055856f6dcce260235ee842f)

Author SHA1 Message Date
Jonas Gorski eed031d460 brcm63xx: brcm63xxpart: fix buffer overrun in of parser
We never account for the added partitions from the tag parser, so
allocated two partioness less than needed. This can cause issues when
the memory gets reused before the mtd code can actually add the
partitions.

Fixes oopses like:
[    0.920000] mtd: device 2 (rootfs) set to be root filesystem
[    0.924000] 1 squashfs-split partitions found on MTD device rootfs
[    0.932000] 0x0000002e0000-0x0000003f0000 : "rootfs_data"
[    0.940000] 0x000000010000-0x0000003f0000 : "linux"
[    0.948000] CPU 0 Unable to handle kernel paging request at virtual address 00010203, epc == 8028ddf8, ra == 801ad5d4
[    0.956000] Oops[#1]:
[    0.956000] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.18.8 #22
[    0.956000] task: 8181da78 ti: 8181e000 task.ti: 8181e000
[    0.956000] $ 0   : 00000000 10008f00 00010203 81049e40
[    0.956000] $ 4   : 00010203 000000d0 00000000 000000fd
[    0.956000] $ 8   : 00000000 80015490 00000000 80370000
[    0.956000] $12   : 00000000 00000001 00000000 2f736269
[    0.956000] $16   : 00010203 000000d0 8007bde0 81482000
[    0.956000] $20   : 00000000 00000004 81481f80 803c4b78
[    0.956000] $24   : 00000000 00000000
[    0.956000] $28   : 8181e000 8181fbe8 80b20000 801ad5d4
[    0.956000] Hi    : 00000000
[    0.956000] Lo    : 00000000
[    0.956000] epc   : 8028ddf8 strlen+0x4/0x20
[    0.956000]     Not tainted
[    0.956000] ra    : 801ad5d4 kstrdup+0x30/0x84
[    0.956000] Status: 10008f03 KERNEL EXL IE
[    0.956000] Cause : 00800008
[    0.956000] BadVA : 00010203
[    0.956000] PrId  : 0002a010 (Broadcom BMIPS4350)
[    0.956000] Modules linked in:
[    0.956000] Process swapper/0 (pid: 1, threadinfo=8181e000, task=8181da78, tls=00000000)
[    0.956000] Stack : 8148aa00 803c4bcc 00000000 801cd9d0 00000000 8148a400 818a1400 003f0000
          81482000 8007bde0 8148aa00 800ac78c 8148aa00 00000004 8037ae30 8181fc4c
          8148aa00 803bc074 803c0000 80074b84 00000000 00010000 00000004 ffffffff
          8037ae30 00000004 8148aa00 00000004 803c4b80 818a1400 803c0000 00000005
          81481f80 80074ce0 8181fc84 00000005 81879800 8008ece4 00000000 003f0000
          ...
[    0.956000] Call Trace:
[    0.956000] [<8028ddf8>] strlen+0x4/0x20
[    0.956000] [<801ad5d4>] kstrdup+0x30/0x84
[    0.956000] [<8007bde0>] allocate_partition+0x58/0x93c
[    0.956000] [<80074ce0>] add_mtd_partitions+0x90/0x144
[    0.956000] [<801cc228>] mtd_device_parse_register+0x78/0xcc
[    0.956000] [<801e7870>] of_flash_probe+0x658/0x728
[    0.956000] [<80216ee0>] platform_drv_probe+0x24/0x60
[    0.956000] [<801221f4>] driver_probe_device+0xcc/0x214
[    0.956000] [<800466f8>] __driver_attach+0x7c/0xb4
[    0.956000] [<800c38bc>] bus_for_each_dev+0x94/0xa4
[    0.956000] [<800c35e4>] bus_add_driver+0x104/0x1ec
[    0.956000] [<80122400>] driver_register+0xac/0x100
[    0.956000] [<80113a5c>] do_one_initcall+0x148/0x204
[    0.956000] [<803cbd1c>] kernel_init_freeable+0x168/0x220
[    0.956000] [<800157bc>] kernel_init+0x10/0x114
[    0.956000] [<800108a8>] ret_from_kernel_thread+0x14/0x1c
[    0.956000]
[    0.956000]
Code: 03e00008  27bd0028  00801021 <80430000> 10600003  00000000  080a377e  24420001  03e00008
[    1.192000] ---[ end trace 9d89ccbcae27fe40 ]---
[    1.200000] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.200000]
[    1.200000] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44787
2015-03-15 14:19:22 +00:00
Jonas Gorski 9d893d39bd brcm63xx: kmod-bcm63xx-udc: fix module path for 3.18+
Fix the module path for linux 3.18+.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44785
2015-03-15 14:19:10 +00:00
Jonas Gorski 12301a79b7 brcm63xx: fix 6368 cpu1 reg typo
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44784
2015-03-15 14:19:07 +00:00
John Crispin d15ac306fa kernel: move KERNFS to generic config
KERNFS symbol is selected by SYSFS, so place it in generic config.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44615
2015-03-06 07:56:47 +00:00
John Crispin f04a268a04 kernel: disable ARCH_NEEDS_CPU_IDLE_COUPLED
Disable ARCH_NEEDS_CPU_IDLE_COUPLED by-default in generic config, since
only one platfrom (omap) needs them.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44614
2015-03-06 07:56:34 +00:00
John Crispin fa097e5ae5 kernel: disbale HAMRADIO in generic config
HAMRADIO enabled in all generic configs, but no one platform directly
use related drivers/protocols. This symbol is only used for kmod-ax25
package modules. Furthermore, half of platforms explicitly disables
this symbol, what silently disables build of modules for kmod-ax25
package.

So disable HAMRADIO by-default in generic config, add it to kmod-ax25
package and remove it from platform specific configs.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44613
2015-03-06 07:56:21 +00:00
John Crispin 6617845711 kernel: move MTD_SPLIT_SUPPORT to generic config
CONFIG_MTD_SPLIT_SUPPORT symbol default value is 'y' and many platform
specific configs explicitly enables it, while no one platform disables
this symbol. So place it in generic config and remove from platform
specific configs.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>

SVN-Revision: 44612
2015-03-06 07:56:08 +00:00
Jonas Gorski 3069934e37 brcm47xx, brcm63xx: disable CONFIG_MIPS_O32_FP64_SUPPORT
The flag is experimental and requires toolchain support, which we don't
provide. Also neither target has an FPU so it becomes meaningless
without the FPU emulator enabled.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44584
2015-03-01 11:37:18 +00:00
Jonas Gorski 18322746de brcm63xx: prefer gpio-button-hotplug over button-hotplug
Saves us pulling in the input system, shaving off a few kb from image
sizes.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44582
2015-03-01 11:37:06 +00:00
Jonas Gorski dd618e499f brcm63xx: fix DTS LEDs and buttons
- A4001N/A4001N1: fix swapped green and red LEDs
- CVG834G: add missing LED
- RTA1320: reorder LEDs by GPIO#
- V2500V: add missing LEDs and buttons
- WAP-5813n: fix WPS button (GPIO 35)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44577
2015-02-28 19:59:50 +00:00
Jonas Gorski 40e6eae61f brcm63xx: fix ethernet breakage in 3.18
Linux commit d75b1ade567ffab ("net: less interrupt masking in NAPI")
chose the samantics of the napi poll return value, which caused napi to
not resume interrups/polling anymore.

Fix the return value to restore expected behaviour.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44576
2015-02-28 19:59:46 +00:00
Jonas Gorski 6df9324642 brcm63xx: fix BCM63268 interrupt register locations for legacy probe
Legacy probe passed the IRQSTAT registers instead of the IRQMASK
registers causing all register accesses to be offset by 16 bytes.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44575
2015-02-28 19:59:34 +00:00
Jonas Gorski c2a89871c2 brcm63xx: fix gpio register usage
The driver expected data then dir, but both dts and legacy code passed
dir then data. Fix this by making the driver expect the registers in
ascending order, i.e. dir then data.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44574
2015-02-28 19:59:26 +00:00
Jonas Gorski b694c45d33 brcm63xx: backport and enable DT spi-gpio no CS support
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 44570
2015-02-27 23:48:48 +00:00
Jonas Gorski b6ad4b7332 brcm63xx: fix image generation and broken patch
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 44569
2015-02-27 23:48:32 +00:00
Jonas Gorski 8ff23c60e2 brcm63xx: remove gpio base workaround
Now that all gpio users without named gpios use DT, we do not need
to fix the gpio controller bases anymore.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44567
2015-02-27 17:40:09 +00:00
Jonas Gorski b82cb155fc brcm63xx: move buttons and leds to dts files
Register buttons and leds through DT for all available dts,
and remove them from the board files.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
[jogo: remove leds/buttons from board files
       fix wrong led polarities for dsl-274xb-c2, cpva642, p870hw
       comment out spi-gpio and associated leds]

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44566
2015-02-27 17:40:04 +00:00
Jonas Gorski eea227c60d brcm63xx: probe gpio controllers through DT
Add a generic mmio gpio controller based driver and probe it
through device tree.

Use aliases for base calculation until we converted all users to
device tree or named gpios.

Convert bcm63xx_enet's ephy-reset gpio to use a named gpio.

While at it, remove the duplicate reset gpio defintion for livebox.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44565
2015-02-27 17:39:49 +00:00
Jonas Gorski 1efb7398e1 brcm63xx: convert BTV2500V to dts
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44564
2015-02-27 17:39:29 +00:00
Jonas Gorski 90c15beee6 brcm63xx: convert RTA1320 to dts
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44563
2015-02-27 17:39:21 +00:00
Jonas Gorski 5a9b7c28c3 brcm63xx: convert RTA1025 to dts
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44562
2015-02-27 17:39:13 +00:00
Jonas Gorski 9a65e1a570 brcm63xx: use dtb for cvg834g
Add a dtsi for bcm3368, add a dts and profile for cvg834g, and convert
it to use ImageDTB. Since HCS requires more arguments, enhance the max
arguments of the call.
The image name is intentionally left blank to prevent non-initramfs
images to be built, as they currently contain no rootfs and consequently
won't work.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44561
2015-02-27 17:39:07 +00:00
Jonas Gorski 69b327247c brcm63xx: image: move image argument to front in *DTB calls
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44560
2015-02-27 17:38:51 +00:00
Jonas Gorski f3c071b376 brcm63xx: add dts and profile for Livebox
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44559
2015-02-27 17:38:46 +00:00
Jonas Gorski dd7625ef15 brcm63xx: allow lzma to use 32MB RAM
Most 16 MiB RAM devices don't even load elf kernels, so it's safe to
assume we have at least 32 MB RAM. This fixes tftp booting with the
default package set as this already produces an uncompressed
kernel > 8 MiB.

New limit is 8 MiB compressed / 24 MiB compressed.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44558
2015-02-27 17:38:28 +00:00
Jonas Gorski 92eb27f56d package: mtd: move bcm963xx_tag definition into source code
Remove the need for the header file to be exported - we don't need most
of it anyway; all we care about are the offset of the rootfs length and
header crc fields.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44557
2015-02-27 17:38:25 +00:00
Jonas Gorski bb54859543 brcm63xx: do not align squashfs rootfs start
We do not need to align the start of read only rootfs's to erase blocks.
This allows us to write the squashfs rootfs directly behind the kernel,
potentially freeing up one erase block.

We still need to align for jffs2, so add a flag for imagetag to
optionally align the rootfs start.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44556
2015-02-27 17:38:14 +00:00
Jonas Gorski d4652e817a brcm63xx: drop call to prepare_generic_squashfs
We do not use the result, so no need to call it.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44555
2015-02-27 17:38:09 +00:00
Luka Perkov 81db848656 targets: base-files: diag.sh does not need to be executable
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 44305
2015-02-07 19:58:58 +00:00
Luka Perkov 92e6e80080 targets: files in uci-defaults do not need to be executables
Signed-off-by: Luka Perkov <luka@openwrt.org>

SVN-Revision: 44304
2015-02-07 19:58:52 +00:00
John Crispin 019ea725aa add "preinit_regular" diag.sh set_state argument
This new argument is used right after starting regular preinit (which
happens if failsafe wasn't triggered). The main purpose of "preinit"
argument is to indicate that failsafe can be triggered, however we were
missing a way to inform user that we don't wait for a trigger anymore.
With this change it's clear when failsafe mode can be triggered.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43715
2014-12-15 10:37:00 +00:00
Jonas Gorski bdb1ee51f8 brcm63xx: fix a few issues in irq chip drivers
Fix locking and lock usage, making it compile for SMP.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43578
2014-12-08 16:11:52 +00:00
Jonas Gorski ed7d8a0450 brcm63xx: alphabetically order image generation
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43577
2014-12-08 16:11:32 +00:00
Jonas Gorski bc4dd8e119 brcm63xx: refresh patches
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43576
2014-12-08 16:11:26 +00:00
Jonas Gorski 3fa17f6d58 brcm63xx: add DT support for USR9108
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43575
2014-12-08 16:11:08 +00:00
Jonas Gorski 218582e8ea brcm63xx: add DT support for F5D7633
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43574
2014-12-08 16:11:03 +00:00
Jonas Gorski d5f1dd9079 brcm63xx: add DT support for DG834GT/PN
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43573
2014-12-08 16:10:54 +00:00
Jonas Gorski b0ae41f849 brcm63xx: add DT support for TD-W8900GB
According to the vendor tarball, the TD-w8900GB's flash has 64k erase
block size, but CFE spans two blocks. So fixup the image offset
accordingly but keep block size at its default (64k).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
[jogo: add commit message, add image offset, change nvram offset]
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43572
2014-12-08 16:10:46 +00:00
Jonas Gorski 84200cf189 brcm63xx: add DT support for DSL-2640B
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43571
2014-12-08 16:10:41 +00:00
Jonas Gorski 929ade0648 brcm63xx: add DT support for CPVA642
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43570
2014-12-08 16:10:17 +00:00
Jonas Gorski 387fd3ca26 brcm63xx: add kernel 3.18 support
Add 3.18 support based on 3.18-rc6. Only netboot tested.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43461
2014-12-01 13:27:26 +00:00
Jonas Gorski e8068f0b1b brcm63xx: register interrupt-controllers through DT when possible
Add the required nodes for the interrupt controllers and register
them through DT when a DTB is present.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43457
2014-12-01 00:52:07 +00:00
Jonas Gorski 443d730da8 brcm63xx: dtsi: add missing ranges properity to ubus nodes
Allows nodes behind it to be mapped.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43456
2014-12-01 00:51:56 +00:00
Jonas Gorski d9a2c55806 brcm63xx: dtsi: add missing properties to cpu nodes
Mark them as cpu nodes and add the addresses.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43455
2014-12-01 00:51:53 +00:00
Jonas Gorski ef4f69adc0 brcm63xx: convert to irq domain
Add irq-domain aware irqchip drivers for the irq controllers of bcm63xx
and switch to use them.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 43454
2014-12-01 00:51:51 +00:00
Jonas Gorski bb312899f6 brcm63xx: refresh patches
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43453
2014-12-01 00:51:24 +00:00
Jonas Gorski 2b46097364 brcm63xx: add DT support for DSL-2650U
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43452
2014-12-01 00:51:17 +00:00
Jonas Gorski 61637aea1b brcm63xx: add DT support for DSL-2740B/DSL-2741B rev F1
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43451
2014-12-01 00:51:12 +00:00
Jonas Gorski 53214ca548 brcm63xx: Add DT support for F@ST2504n
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43450
2014-12-01 00:51:08 +00:00
Jonas Gorski 40350a5daf brcm63xx: add DT support for F@ST2704V2
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 43449
2014-12-01 00:51:04 +00:00