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
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
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
This makes brcm47xx target use the default gpio led and button driver
and not broadcom-diag any more.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 39253
This breaks some devices where the serial console is not at port 0 but
somewhere else.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 39060
The wait instruction is only broken on the BCM4706 and not on the other
similar SoCs.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38979
This sets both values to the OpenWrt default values. There is no reason
to use some brcm47xx specific values here.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38978
This adds support for vectored interrupts in this SoC.
This is supported by the 74K cpus.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38975
bcm47xx misses cpu overwrites for the features of the CPUs used in
these SoCs.
Instead of manually checking, it is now known at compile time for some
options and the compiler is able to remove the checks and optimize the
code.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38974
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
Some devices are using tty1 as the default console, also swap the early
boot console in such case. This is needed for the WGT634U.
Thank you Russell for reporting this.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38794
boardnum is unstable, so allow using NULL to make it unchecked.
A method for differentiating F7D3301 from F7D3302 using nvram is
unknown at this point. Reading the first 32bits of magic from the
"linux" mtd partition would do the trick, but these 2 are similar
enough that we don't need separate led/button definitions. Not knowing
which one you have is only a usability issue for upgrading the device:
they expect different magic numbers for their trx images.
Signed-off-by: Cody P Schafer <devel@codyps.com>
SVN-Revision: 38767
It is a problem when phydev is not set at this position and not the other way around.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38744
This patch makes it possible to use adm6996.c on first generation
BCM47XX devices with ADM switches.
This was tested on a WRT54GS version 1.0, thank you Dirk Neukirchen for
the device.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38699
When the mdio bus is unregistered the newly created phy will also be
unregistered and freed.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38539
On some devices with e.g. a BCM2535F switch the second MAC is used, but
we can not find a phy under all addresses between 0 and 31, 0xffffffff
is returned as phy id. If we can not find a phy at the expected address
create a dummy one.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38538
Without this patch we treated only phy addr 30 as an external phy, but
there is a register to check that. Now we do not have to try to reset
the switch to check for an external switch.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38502
sizeof when applied to a pointer typed expression gives the size of the
pointer.
Found by coccinelle spatch "misc/noderef.cocci"
Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
SVN-Revision: 38312
Early printk was disabled because it caused hangs on some devices, the
old patches were using the CFE console now we use the normal serial
console, it is at a constant address.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38309
Add patches like they are currently in the mainline mips tree and add
some more pending patches for board detection.
* Now the board name is shown under machine in /proc/cpuinfo.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38308
* do not try initialize a unused phy
* some improvements to the phylib patch
* do not turn the phy off when mac is off
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38306
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
The bgmac driver will be used on the brcm47xx and the bcm53xx target.
These are only the patches already applied in current net-next/master
branch.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38288
This adds support for Byte Queue Limits in bgmac and b44, now it is
possible to use more advanced network queue control algorithms.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38038
This updates the patches for BCM5354 to the version send for upstream
Linux inclusion.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38037
This is now the version which was send for mainline Linux kernel
inclusion. The data needed to detection a board is now stored in init
data.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 38036
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