This patch adds support for Huawei E970 wireless gateway devices.
It has been tested on an E970 labelled as T-Mobile web'n'walk Box IV.
E960/B970 should work too, from what I know it's basically the same hardware.
The device has a Broadcom BCM5354 SoC and a built-in 3G USB modem.
It uses a hardware watchdog which needs GPIO-7 to be toggled at least
every 1-2 seconds. This patch uses gpio_wdt module (see my previous
patch today) to take care of this.
Tested and works: 3G wan, wlan+LED, VLAN config, failsafe using reset
button, image to be used for upgrade from OEM firmware's web interface
Link to the wiki page I've created: <http://wiki.openwrt.org/toh/huawei/e970>
Issue:
* lzma-loader crashes, so gzipped kernel is used. Presumably due to watchdog
reset during kernel decompress.
Signed-off-by: Mathias Adam <m.adam--openwrt@adamis.de>
SVN-Revision: 38011
A new type of partition with magic FCTY was found on Huawei E970:
46 43 54 59 4b 51 37 4e 41 42 31 38 41 32 39 30 |FCTYKQ7NAB18A290|
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 38005
This is important patch for new devices that support unaligned
addressing. That devices suffer from the backward-compatibility bug in
DMA engine. In theory we should be able to use old mechanism, but in
practice DMA address seems to be randomly copied into status register
when hardware reaches end of a ring. This breaks reading slot number
from status register and we can't use DMA anymore.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 38004
This is based on a patch by Mathias Adam.
Signed-off-by: Mathias Adam <m.adam--openwrt@adamis.de>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38001
Without this patch it is impossible to read et_swtype, because the 1
byte space is needed for the terminating null byte. Now it should be
possible to read decimal and hex vars of max 8 bit.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37999
Most of the bcm47xx devices use TRX format for storing kernel and some
partition like Squashfs or JFFS2. This is pretty flexible solution, CFE
(the bootloader) just writes (and later boots) TRX at some hardcoded
place and paritions can vary in the size.
However some devices don't use TRX format. Very recently we have
discovered ZTE H218N that has kernel and rootfs partitions at some
"random" places.
This patch allows Linux find a rootfs partition after installing custom
image with a CFE bootloader.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 37998
* Use different structs depending on the number of nvram variables to check.
* Add detection of ZTE H218N, this closes#14151.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37996
Some devices (BCM4749, BCM5357, BCM53572) have internal switch that
requires initialization. We already have code for this, but because
of the typo in code it was never working. This resulted in network not
working for some routers and possibility of soft-bricking them.
Use correct bit for switch initialization and fix typo in the define.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 37993
This patch adds board detection for the Linksys E1000 V2.1 router, as well
as GPIO support for same.
This fixes bug #14135. Currently, wired networking isn't working on the
router, and I haven't tried the wireless, but with this patch, OpenWRT
successfully boots, and all the LEDs and buttons work properly.
Signed-off-by: Zachary Catlin <zcatlin@indiana.edu>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37977
This uses a new switch driver.
The old ADMTEK Adm6996 switch is not supported any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37650
This is untested, but probably needed to make it work with the phy lib switch driver.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37649
bcm47xx_nvram_gpio_pin() returns a gpio pin number for a given name based
on configuration data in nvram.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 37644
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
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
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
I recently picked up a WNDR3700 to put OpenWRT on, and only after tearing into the box did I find it
was one of the v3 boards, with poor OpenWRT support. This patch should add the board detection and
LED/button control to the broadcom-diag module, and should generate a netgear .chk image that the
bootloader and stock firmware will accept.
The changes to the broadcom-diag module are more than a few lines because the WNDR3700v3 is driving
its LEDs through an HC164 8-bit shift register.
Signed-off-by: Owen Kirby <osk@exegin.com>
SVN-Revision: 36482
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
WNDR3400v2 is based on BCM53xx . Image that is created breaks the router somehow therefore "#".
CFE and NVRAM contain different vars - example:
CFE line original: Device eth0: hwaddr 74-44-01-37-C6-69, ipaddr 192.168.1.1, mask 255.255.255.0
CFE after openwrt: Device eth0: hwaddr 00-FF-FF-FF-FF-FF, ipaddr 192.168.1.1, mask 255.255.255.0
Logs were posted earlier on this mailing list: https://lists.openwrt.org/pipermail/openwrt-devel/2012-July/016174.html
Different logs with factory firmware are in the wiki: http://wiki.openwrt.org/toh/netgear/wndr3400#wndr3400v2
(and on wikidevi for example)
Signed off by: Dirk Neukirchen <dirkneukirchen@web.de>
SVN-Revision: 35790
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
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
Adjust the "AutoLoad" number for the BGMAC module to be prior
to the switch modules. This probably isn't real important as
the modules are loaded in the correct order by preinit anyway.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 35625
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
The mac address should be aligned to u16 to prevent an unaligned access
in drivers/ssb/pci.c where it is casted to __be16.
This closes#9824.
SVN-Revision: 35618
This also removes kmod-ocf, because kmod-crypto-ocf is automatically selected by kmod-ocf-ubsec-ssb.
Thank you Manuel Munz <freifunk@somakoma.de> for the patch.
SVN-Revision: 35509
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
The default profile now contains Ethernet drivers for all the types
found on supported boards. There are other profiles for each Ethernet
driver.
SVN-Revision: 35314
Update the default IRQ assignment for unrecognized devices per
the upstream change.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 35121
1) Fix what appears to be a logic error in bgmac_phy_advertise.
2) Fix bgmac_ioctl to use passed phy_id; needed for switch-robo
interface w/ the driver to work correctly. I still have the issue
with the interface always being HD when the speed/duplex is set
manually (e.g., echo "100FD" > /proc/switch/eth0/port/N/media).
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 35052
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
Adjust the IRQ Flag value from 8 to 7 for I2S Core for BCM4716 and
BCM4748 (per the Broadcom SDK). IRQ Flag values greater than 7 are
ignored when setting the interrupt masks.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 34990
The behaviour of calling 'mount' differed depending on whether it called
the busybox-mount, the mount of util-linux, the mount defined in
/lib/functions.sh and /lib/functions/boot.sh
/etc/preinit even included /lib/functions.sh and /lib/functions/boot.sh,
both re-defining 'mount'.
SVN-Revision: 34792
I noticed these changes when reviewing the 2011 Broadcom SDK. I haven't
noticed any obvious changes in behavior with them applied; but thought I
should at least pass them on.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 34670
The irq signal numbers that are send by the cpu are increased by 2 from
the number programmed into the mips core by bcma.
Return the irq number on which the irqs are send in bcma_core_irq() now.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 34669
These patches are not specific to bcm47xx and will be used on other
platforms as well.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 34501
The ASUS WL-520gU and some other similar Asus devices have a BCM5354
running at 200MHZ and not at 240 which is the default for this SoC.
This fixes#4083.
SVN-Revision: 34325
In the old configuration the SoC issued a reboot if the watchdog was
killed also if it was kill with TERM and not KILL.
This will fix#11724.
SVN-Revision: 34324
For sysupgrade the generic image should be used and the special image for the wgt634u is just needed for initial flashing over CFE.
russell reported that with this patch sysupgrdae did not worked for him any more and he could not reproduce the error described in #11420.
With the patch the linux partition also contained the loader which is in the first 128KB.
SVN-Revision: 34201
CONFIG_SSB_DRIVER_GIGE is set in the target config of the brcm47xx target, so it will always be activated and the kmod-ssb-gige is not needed any more.
The kmod-ssb-gige package is not generated in an build as it does not contain any files and the makes the image builder fail when generating a image integrating this package.
SVN-Revision: 34150
The image format for the wgt634u is different from the normal format.
Without this patch the partition parser detects a 128kb bigger
partition after every update.
This closes#11420
Thank you b.sander for the patch.
SVN-Revision: 33935
* update the flash driver for bcm47xx to use the stubs already in bcma
* do some misc enhancements to the flash drivers for bcm47xx
SVN-Revision: 33920
Before it was tried to initialize the deactivated PCIe core in client
mode, but this causes the SoC to hang. Just do not initialize it at all
and ignore the core it is not working and nothing is connected to it
when the specific bit is set in the boardflags.
SVN-Revision: 33620
Sometimes the PCIe card indicates that it has a sprom somewhere and we
are able to read the memory region, but it is empty and not valid. In
these cases we should try to use the fallback sprom as a last chance.
SVN-Revision: 33601
The chip common and the PCIe code are accessing the sprom struct which
is not filled when these cores are initialized. Fix this by adding an
early initialize and fill the sprom struct before accessing it in other
code.
SVN-Revision: 33600
The bcma based SoCs with a ieee80211 core on the SoC and an other
connected via PCIe or USB store the sprom for the SoC with a sb/1/
prefix. The SoC with just one wifi core do not use prefixes. The
BCM4706 do not use a prefix for the SoC part at all, because the prefix
is the path to the ieee80211 core and there is non on the BCM4706.
SVN-Revision: 33597
Sometimes the port 0 was the WAN port or there could be some device
where the port 0 is not wired to an actual Ethernet port. Now telnet in
failsafe will listen on all ports of the switch so user do not have to
search for the correct port any more. This change will make the switch
leak traffic between the WAN and the LAN port, but you should not use
failsafe while connected to a untrusted network.
SVN-Revision: 33544
When not removing support for the wait instruction, when ruining on the
BCM4706 SoC the system stops after msleep() without an exception. I
haven't seen this problem on the other Broadcom SoCs with a 74K CPU,
but in the Broadcom SDK it is deactivated for all CPUs of this type.
SVN-Revision: 33496
I did not add the last patch, because it add some stubs for the flash drivers and our patches have to be changed for that, if the flash support in bcma is able to do something I will integrate it.
This also contains 3 additional patches fixing some bugs in bcma.
SVN-Revision: 32880
The existing code (prior to the patch) does an "ioremap_nocache" on a
subset of a memory region that I think has already been mapped, and then
un-maps that smaller region when it is finished.
Thanks Nathan Hintz for the patch
SVN-Revision: 31481