Commit Graph

64 Commits

Author SHA1 Message Date
Rafał Miłecki
a8b0e75291 brcm47xx: verify also standard TRX images during sysupgrade
It allows detecting data corruption for plain TRX as well.

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

SVN-Revision: 45318
2015-04-09 05:36:16 +00:00
Rafał Miłecki
3fad95446a brcm47xx: fix WRT300N devices magics for sysupgrade check
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45317
2015-04-09 05:22:10 +00:00
Rafał Miłecki
44b128b0aa brcm47xx: switch to the otrx for verifying TRX images
This adds checking CRC32 of provided firmware image.

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

SVN-Revision: 45316
2015-04-09 05:22:04 +00:00
Rafał Miłecki
9c5aa7c528 brcm47xx: image: share function checking TRX in provided firmware
This will allow us to calculate crc32 in a shared code.

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

SVN-Revision: 45202
2015-03-31 21:16:19 +00:00
Rafał Miłecki
8ec31f25e3 brcm47xx: fix checking cross-vendors firmware images
This change won't allow installing e.g. Netgear firmware on Linksys
device.

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

SVN-Revision: 45174
2015-03-31 07:26:30 +00:00
Rafał Miłecki
a445846305 brcm47xx: display all errors (not just the 1st one) when checking image
This way people forcing upgrade will know what may go wrong.

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

SVN-Revision: 45172
2015-03-31 06:05:35 +00:00
Rafał Miłecki
44dfe17576 brcm47xx: recognize more device specific firmwares
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45171
2015-03-31 05:39:33 +00:00
Rafał Miłecki
b34040f990 brcm47xx: compare provided firmware magic with device magic
This makes sysupgrade reject firmware images for different devices.
Right now only support for 2 sample devices is implemented.

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

SVN-Revision: 45170
2015-03-30 22:06:11 +00:00
Rafał Miłecki
81b8d95f2c brcm47xx: support for flashing CHK and CyberTAN images
This will allow simple sysupgrade-s including simpler reverting to the
original firmware.

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

SVN-Revision: 43799
2014-12-30 17:19:36 +00:00
Rafał Miłecki
cca3990b16 brcm47xx: verify if CHK/CyberTAN contains valid TRX
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43798
2014-12-30 17:19:02 +00:00
Rafał Miłecki
c3e9796cd5 brcm47xx: extract magics from specific upgrade images (and still reject them)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43718
2014-12-15 11:09:14 +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
Rafał Miłecki
a5b6b7e419 brcm47xx: detect (and still reject for now) CyberTAN fw format
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43714
2014-12-15 09:59:44 +00:00
Rafał Miłecki
b5b4bdc066 brcm47xx: use separated function in upgrade to detect file type
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43708
2014-12-15 08:51:14 +00:00
John Crispin
20940138ac scripts: fix wrong usage of '==' operator
[base-files] shell-scripting: fix wrong usage of '==' operator

normally the '==' is used for invoking a regex parser and is a bashism.
all of the fixes just want to compare a string. the used busybox-ash
will silently "ignore" this mistake, but make it portable/clean at least.

this patch does not change the behavior/logic of the scripts.

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 42911
2014-10-14 12:21:11 +00:00
Hauke Mehrtens
7a3b3b9d73 brcm47xx: don't create named switch_vlan sections
It doesn't seem to be used anywhere, it's incompatible with other
targets and can be confusing. People may think they need to update
section name every time they change VLAN ID (well, even I was doing
that).

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

SVN-Revision: 41835
2014-07-26 12:33:48 +00:00
Hauke Mehrtens
6f417d5b4b brcm47xx: fix special board handling for some devices
Some devices were renamed when converted from diag to in kernel board detection and it was not changed in netconfig. Devices not in the
kernel board detection are removed now.

This should close: #17111, #16968, #13202

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 41663
2014-07-14 22:16:19 +00:00
Hauke Mehrtens
163fe41c75 brcm47xx: get switch name from swconfig first
Without this patch the switch config for the adm switch did not worked,
because hey are not names eth0.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 41512
2014-07-05 12:15:03 +00:00
Hauke Mehrtens
9467896172 brcm47xx: migrate basic network settings from old releases
Old OpenWrt releases were using network configs that are not valid
anymore. They were specifying ports tagging in a different way (or were
not tagging CPU at all) and were using VID 0 which is a reserved value.

Modifying network configuration to apply all needed changes would be
pretty tricky. Script /etc/init.d/netconfig that generates new config is
quite complex itself.
So instead let's save the most important settings, regenerate config
from the scratch and restore values. This should work for 99% of users.

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

SVN-Revision: 41500
2014-07-03 21:40:59 +00:00
Hauke Mehrtens
9dc5fb9103 bcm47xx: use eth0 for switch name
This fixes some strange problems with tg3. I assume that the Ethernet
driver was not brought up if the switch was named switch0.

This was reported and tested by ernesto (Faulp3lz).

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 41042
2014-06-07 15:41:41 +00:00
John Crispin
f933a741a9 target/linux/*/base-files/lib/upgrade/platform.sh - wrong check for ARGC
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
2014-06-02 12:43:22 +00:00
Hauke Mehrtens
f912b47931 brcm47xx: parse model from cpuinfo
Instead of looking into the proc entry provided by broadcom-diag use
the board info from /proc/cpuinfo to get the board we are on.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 39256
2014-01-12 18:56:57 +00:00
Hauke Mehrtens
bcdea80b0b brcm47xx: fix led indication
Use the new led api also on brcm47xx.
The led for failsafe indication is searched for.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 39255
2014-01-12 18:56:36 +00:00
Hauke Mehrtens
edab966e45 brcm47xx: fix network failsafe indication
Remove the code used on the old switch driver.
The Ethernet drive is loaded as a module and needs some time to get up
therefor we added some wait function.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 39254
2014-01-12 18:56:15 +00:00
Hauke Mehrtens
d7ebbd0ac7 brcm47xx: use "firmware" partition name
Some time ago, after switching to the mainline bcm47xxpart driver
following patch has been applied:

commit 03cef8725d2062335ffc3de50fc037b294fd458c
Author: hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date:   Sat Apr 6 22:22:26 2013 +0000

    brcm47xx: use old partition names again for kernel 3.8

    This fixes sysupgrade. The partition names are used all over the Internet in various howtos.

    Thank you russell for spotting this problem.

I propose to revert this change and make sysupgrade use "firmware"
instead. This makes brcm47xx compatible with widely used ar71xx and
after all "firmware" sounds like a much better name for... the firmware.

This change doesn't affect "sysupgrade" usage, because it never takes a
partition name as a parameter. This change only affects users using mtd
tool directly. Hopefully there are not many howtos using "mtd" command.

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

SVN-Revision: 38973
2013-12-01 16:32:32 +00:00
Hauke Mehrtens
32cbc948a1 brcm47xx: fix netconfig for inverted vlan?ports in nvram
This was observed on the Belkin Share F7D7302.

SVN-Revision: 38769
2013-11-11 23:04:47 +00:00
Hauke Mehrtens
97b15fc45b brcm47xx: add support for ipv6 in default network config
Modify /etc/init.d/netconfig to use UCI defaults for building the
default network config, which includes appropriate defaults for IPV6.

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 38294
2013-10-02 23:22:18 +00:00
Hauke Mehrtens
e2b2e3886b brcm47xx: run mtd fixtrx linux every time
With this patch it is possible to boot a device with kernel 3.10 a second time.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 37625
2013-07-31 17:41:52 +00:00
Hauke Mehrtens
f8d55e7541 brcm47xx: use b53 phy driver for the switch in kernel 3.10
This makes it possible to use swconfig to controll the switch.

This was tested with devices using b43 and bgmac.
This was not tested on devices using tg3.
This does not support the adm switch used in some very old devices.

SVN-Revision: 37304
2013-07-14 14:11:17 +00:00
Hauke Mehrtens
3bc90a4d23 brcm47xx: fix switch handling
This fixes some problems with the switch handling

 * It now send the messages again to indicate a button for failsafe mode should be pressed
 * it does not leak packages between wan and lan any more
 * the switch works again in normal mode

The Ethernet connection has to be up when the switch driver switch-robo
is insmoded therefor we just do it again.
Explicitly set enable_vlan to prevent leaking packages.

This should close #13869, #13868 and #13716

SVN-Revision: 37286
2013-07-14 13:19:58 +00:00
Hauke Mehrtens
ef0b9be95e brcm47xx: do not load the kernel modules needed for Ethernet manually
add the boot flag to make the kernel modules needed for Ethernet and
diag load on startup.

SVN-Revision: 37284
2013-07-14 12:59:00 +00:00
Hauke Mehrtens
e800436de3 brcm47xx: do not change nvram without user interaction
SVN-Revision: 37281
2013-07-14 12:56:42 +00:00
Hauke Mehrtens
e041d370a7 brcm47xx: proc gets mounted without this patch
SVN-Revision: 37272
2013-07-13 21:42:19 +00:00
Hauke Mehrtens
8dabd7a26b brcm47xx: remove obsolete hotplug stuff
SVN-Revision: 37271
2013-07-13 20:38:33 +00:00
John Crispin
39df8d1a45 brcm47xx: dont manually insmod switch drivers
Signed-off-by: John Crispin <bloic@openwrt.org>

SVN-Revision: 36993
2013-06-21 16:53:15 +00:00
Hauke Mehrtens
4a46687d25 brcm47xx: use old partition names again for kernel 3.8
This fixes sysupgrade. The partition names are used all over the Internet in various howtos.

Thank you russell for spotting this problem.

SVN-Revision: 36235
2013-04-06 22:22:26 +00:00
Hauke Mehrtens
694050a4cf brcm47xx: netconfig: add bacis support for swconfig
Parse the cpu port from swconfig and explicitly mark the cpu port as tagged.

SVN-Revision: 35911
2013-03-09 19:24:43 +00:00
Hauke Mehrtens
9afdb046d3 brcm47xx: do not use vlan0 any more.
The Broadcom switch driver says that vlan0 should not be used with any switch other than bcm5325.

This makes OpenWrt always use vlan1 and vlan2 instead.

SVN-Revision: 35704
2013-02-20 15:31:43 +00:00
Hauke Mehrtens
1a8218d6e4 brcm47xx: add initial support for kernel 3.8
This contains the following new bigger changes:
 * new partition parser which still could lake some features or have bugs
 * new nand flash driver
 * using physmap-flash flash driver for parallel flash
 * some changes to the serial flash driver

With these changes OpenWrt starts using more of the mainline flash drivers.

SVN-Revision: 35632
2013-02-16 20:28:24 +00:00
Hauke Mehrtens
9de704a03b brcm47xx: improve cpuport detection for filesafe
Do not try to load bcm57xx.ko any more this is not needed for kernel 2.6 and 3.X
Ask the switch driver where the CPU port is.

SVN-Revision: 35624
2013-02-16 16:24:15 +00:00
Hauke Mehrtens
92d16f38d7 brcm47xx: fix network config on simpleshare
The included patch will generate a correct network configuration on the simpletech simpleshare.

Thank you for the patch Will Holmes (RealOpty)

This closes #12361.

SVN-Revision: 35623
2013-02-16 15:24:48 +00:00
Hauke Mehrtens
d9580d224a brcm47xx: try to automatically detect if the wan port is at port 4 and not at port 0.
This should fix #13000.

SVN-Revision: 35617
2013-02-16 12:37:24 +00:00
Hauke Mehrtens
c0f6c75cf7 brcm47xx: if the cpuport of the switch is port 8 assume vlan0ports: "1 2 3 4 8" and vlan0ports: "0 8"
SVN-Revision: 35597
2013-02-14 12:38:16 +00:00
Hauke Mehrtens
54ca3eed5d brcm47xx: configure vlan correctly on some recent devices.
SVN-Revision: 35587
2013-02-13 16:05:52 +00:00
Hauke Mehrtens
a1e3c0ca46 Add Failsafe support for Linksys E3000V1 / WRT610NV2
Adds specification of the correct cpu_port for Linksys E3000V1 and WRT610NV2
in /lib/preinit/05_init_interfaces_brcm.  The list of devices will need to
be expanded.  Is there a way to determine the correct cpu_port to use in a
generic sense; for instance, if "/proc/switch/eth0/port/8" exists, or if
"/sys/class/net/eth0/device/driver/module/drivers/bcma:bgmac" exists?  Could
a similar method be used in "/etc/init.d/netconfig"?

Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>

SVN-Revision: 35491
2013-02-04 22:40:57 +00:00
Hauke Mehrtens
c2198aba32 brcm47xx: Fix switch config on 4716/53115 devices
Signed-off-by: Jonathan McCrohan <jmccrohan@gmail.com>

SVN-Revision: 35490
2013-02-04 22:38:37 +00:00
Hauke Mehrtens
68aeb7af8e brcm47xx: load pps_core and ptp before tg3 to make the interface available for failsafe.
SVN-Revision: 35341
2013-01-27 21:48:28 +00:00
Hauke Mehrtens
4443997fd8 brcm47xx: add bgmac driver
This Ethernet driver is in early development stage and still has some problems.
This was working on my bcm4716 based device.

Thanks to Rafał Miłecki <zajec5@gmail.com> for writing this driver.

SVN-Revision: 34995
2013-01-03 02:05:22 +00:00
Hauke Mehrtens
8f6bdcffa1 brcm47xx: build b44 as a module
SVN-Revision: 34994
2013-01-03 02:00:25 +00:00
Hauke Mehrtens
22d62d311a brcm47xx: run ifup before starting the switch
In addition check_module is not needed, nobody checks the return value.

SVN-Revision: 34993
2013-01-03 01:59:43 +00:00