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
This probably doesn't matter, but reads/writes are always 4 bytes, so always map 4 bytes.
Changes since v1: Moved changes to new patch file (234-bcma-always-map-4-bytes.patch).
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 31119
This patch add support for the NAND flash on BCM5357 based devices like the WNR3500Lv2.
Thank you Tathagata Das <tathagata@alumnux.com> for the patch
SVN-Revision: 30943
The patches are now grouped by the part what they are doing and are using three digest numbers.
This does not remove or adds anything
SVN-Revision: 30942
The SPROM is initialized in bcm47xx_fill_sprom, so move the call to bcm47xx_fill_sprom_ethernet after it.
Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
SVN-Revision: 30873
This adds support for parsing sprom form nvram for sprom version form 1 to 9.
It also adds sprom from nvram support for devices on the bcma bus.
SVN-Revision: 30638
Add workarround for BCM5357 and BCM4749.
This patch contains the following fixes from George Kashperko:
* separate subroutines for controller initialization workarounds -
following CodingStyle recommendations;
* __devinit __devexit __devinitconst annotations for CONFIG_HOTPLUG;
* fix leak in ssb_hcd_create_pdev/bcma_hcd_create_pdev - as hci_res being
kmalloc'ed is never freed anywhere while platform_device_add_resources
will kmemdup resources right away;
* fix compilation error in ssb_hcd_resume - it will fail as soon as
CONFIG_PM is selected.
SVN-Revision: 29734
Hi,
this patch adds the correct vlan definitions for the Siemens SE505v2. It
applies to trunk as well as backfire (please apply here too). On
backfire this also patches brcm-2,4, because brcm47xx base-files is just
symlinked to brcm-2.4.
It also fixes two whitespace issues.
Tested with brcm47xx on both trunk and backfire branch and works as
expected.
Signed-off-by: Manuel Munz <freifunk@somakoma.de>
SVN-Revision: 28336
Now we can assume that every brcm47xx kernel has the bcma module build
into the kernel. This is not needed for this version as this does not
support bcma as system bus but kernel 3.0 will.
SVN-Revision: 27733
2.4 isn't present anymore, so it will always be 2.6 (or newer). Since the
2.6 check will break with 3.0, remove it alltogether.
Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
SVN-Revision: 27185
The flash driver code should be cleaned up and the broad detection code should be placed into arch code and used here.
This fixes#9323
Thank you Will Holmes for the patch.
SVN-Revision: 27005
If there is no sprom on an ssb based pci device on the brcm47xx
architecture ssb now asks the architecture code to look into the nvram
to get some sprom data for this device. Now we are able to read out
pci/1/1/ foo or pci/1/3/ foo config options.
This will fix some problems where the wireless devices does not got an
mac address and the following message was show:
ssb: WARNING: Invalid SPROM CRC (corrupt SPROM)
SVN-Revision: 26801
The Netgear wgt634u uses minus between the hex digest of the mac
address and all other broadcom devices are using colons between the hex
digest. Now the mac address is correctly parsed also when minus is used.
SVN-Revision: 24749
This fixes a problem with wrt350n.
It boots only if this config option is set, otherwise it reboots after "Switching to clocksource MIPS"
Thank you sn9 for fixing this problem.
SVN-Revision: 24626
Broadcom removed these pci id, but at least the wrt350n has a Ethernet
controller with a pci id of 14e4:1676
Thank you sn9 for fixing this problem.
SVN-Revision: 24625
Readd the workarround from the old version again which was removed in r22296 and refresh the patches.
This should close#7874
Thank you Russell Senior for testing.
SVN-Revision: 23911
Reading the CFE properties causes system hangs on some devices. With
this patch nvram read will be successful very time so cfe will no be
read out. This code is not really correct but it will work around some
problems for some people.
Related ticket: #7693
SVN-Revision: 22663
CFE does not boot images generated with these checksums because of
wrong checksum.
After flashing then with tftp to my Asus wl500-GPv1 the following messages
are show:
Null Rescue Flag.
Boot program checksum is invalid
Hello!! Enter Rescue Mode: (Check error)
SVN-Revision: 22418
* reduce image size for CRC calculation by fs_mark size
sysupgrade sometimes failed for me and I noticed that it was due
to incorrect CRC values in trx-header after performing it.
It seems that the fs_mark was completely included in the calculation
and that it was nevertheless modified by sysupgrade while appending
the jffs data.
This only occurs for the first boot after sysupgrade as the flashmap
driver recalculates the CRC to an even smaller area when it boots.
SVN-Revision: 22396
more and more users are getting confused by this, and consider it a regression in brcm47xx,
because brcm-2.4 was not showing this message. It's not particularly interesting for debugging,
most of the time it only happens because of an unconnected port.
SVN-Revision: 22110
some CFE versions (i.e. WRT54G3Gv2-VF) expect two separate firmware
images which each consume half of the available flash space.
these changes check for the TRX header version and set the partition
size correctly.
Tested on G3Gv2-VF and Asus WL-500GP
SVN-Revision: 22019
'factory' and 'sysupgrade' did not make much sense. A discussion
with jow convinced me that .trx results in a helpdesk disaster.
So I decided to use '.bin' for normal bin-headers and '.noheader.bin'
for the trx-v2 image.
I fixed the wiki accordingly.
SVN-Revision: 22013