There are many targets using user space scripts to generate firmware but
bcm53xx doesn't need this, so let's disable that kernel option.
This lets us avoid some scary-looking kernel warnings like:
brcmfmac 0001:04:00.0: Falling back to user helper
firmware brcm!brcmfmac43602-pcie.txt: firmware_loading_store: map pages failed
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Rob suggested I should use of_machine_is_compatible insteak of a new
property and updated patch has been sent.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Refresh patches on all 4.4 supported platforms.
077-0005-bgmac-stop-clearing-DMA-receive-control-register-rig.patch
removed as now upstream.
Compile & run tested: ar71xx - Archer C7 v2
Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
This patch bumps the 4.4 kernel from .28 to .30 and refreshes the patches.
Compile-tested on ar71xx, x86/64, ramips/mt7621, brcm47xx and kirkwood.
Run-tested on ar71xx & ramips/mt7621, brcm47xx and kirkwood (last two confirmed
by P. Wassi).
Signed-off-by: Stijn Segers <francesco.borromini@inventati.org>
We don't have any code for enabling it automatically yet but it allows
adding entries manually to the /etc/config/system.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
The main difference is it supports DT binding. This allows us to use DT
for specifying controller and the new standalone USB 3.0 PHY driver.
Thanks to that we don't need out of tree patch adding PHY initialization
to the controller driver anymore.
This problem has been fixed by upstream commit 757de492f2d ("xhci: fix
platform quirks overwrite regression in 4.7-rc1").
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This drops built-in support for USB 2.0 PHY and starts using separated
driver that was upstreamed & backported some time ago.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Only add them where they are actually required.
Should help with compatibility issues with stock U-Boot images that
access UBI
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Previous version was based on code from kernel 2.6.22 with Broadcom two
trivial modifications. This updates the copy to the version from current
kernel and refreshes the patch.
This was tested for regressions on Netgear R6250 (BCM4708A0), D-Link
DIR-885L (BCM4709C0) and Tenda AC9 (BCM47189B0).
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
We finally got kernel booting on this device and LAN ports are working,
so it won't "brick" the device. One more big missing thing is WAN port
support. It requires fix for BCM53125 to get switch port 5 working.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Over a year ago in a commit ac96a1665a ("bcm53xx: update Disable MMU
and Dcache during decompression") we switched to Florian's patch for
workarounding CFE bug. The main difference was using a part of existing
__armv7_mmu_cache_flush instead of implementing flushing separately.
This worked well for Northstar devices but doesn't work for BCM53573 as
these devices simply don't start booting with Florian's patch. It's
because of the ldmfd ASM instruction in the __armv7_mmu_cache_flush.
So this commit switches back to using standalone implementation. This
time instead of copying Broadcom's copy of cache-v7.S, we just make a
copy of the original file on our own. Unfortunately we can't cross-dir
compile cache-v7.S from ../../mm/ as that one also adds __INITDATA with
define_cache_functions v7 which would just trigger
> Error: unrecognized/unsupported machine ID (r1 = 0x0000007f).
The only real change Broadcom did in copied .S file was modifying mcr
instruction to use c6 instead of c14. It isn't clear to me if we really
need it, but let's use it for now.
By the way we also update commit message of the
[PATCH] ARM: BCM5301X: Disable MMU and Dcache during decompression
This makes kernel booting on BCM53573 successfully.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
It was adding unused variable:
drivers/mtd/devices/m25p80.c: In function 'm25p80_write':
drivers/mtd/devices/m25p80.c:85:6: warning: unused variable 'i' [-Wunused-variable]
int i;
^
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
It adds and uses ILP clock that requires some other work (in progress)
for upstreaming it. Other than that it adds a quick fix for bcma to add
serial flash before trying to read SPROM.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
It wasn't accepted upstream as there was a discusson on Northstar vs.
BCM53573. Once we get a new ARM arch Kconfig entry it should be
possible to upstream it.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This generates proper images when using CONFIG_TARGET_MULTI_PROFILE and
CONFIG_TARGET_PER_DEVICE_ROOTFS.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Thanks to this images for SoftMAC devices don't get brcmfmac anymore and
b43 is added for devices with (quite poor) support only.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This allows building images for selected devices with brcmfmac only
(without b43 which is for SoftMAC devices).
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Reviewed-by: Jo-Philipp Wich <jo@mein.io>
It is used by a core build template, so the variable should be
initialized and added to DEVICE_VARS in the core.
Same for DEVICE_DTS_DIR
Signed-off-by: Felix Fietkau <nbd@nbd.name>
We call all commands normally, with standard echoing. It's useful for
debugging with V=s. Don't make lzma compression an exception, it's a bit
confusing this way.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
We don't want checksum to cover any part of UBI as even its part with
SquashFS may be changed due to e.g. flash wearing.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
This reverts commit b3be33f135.
CFE is known to fail in some non-standard cases, e.g. when using kernel
or format different that what was tested by Broadcom. This kernel change
triggered some problem with booting OpenWrt kernel stored in Seama.
As long as Seama checksum was covering enough data, it was working fine.
We need to change it however, because calculating MD5 over part of UBI
containing SquashFS is unsafe. UBI may move PEBs depending on flash
wearing level which would break CFE booting the image.
For some reason this kernel change was breaking CFE. Calculating MD5
over 0x47ffc0 B data or less (there is 0x40 B long header) was stopping
booting process at:
Starting program at 0x00008000
As our kernel is usually 0x3fffc0 B it was affected by this problem.
Reverting this change fixes sysupgrade (which already uses kernel size
for MD5 calculation) and will allow us to adjust "fixseama" command call
on the first boot.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
In kernel 4.7 there is upstreamed b53 driver using (mostly?) the same
symbols as our b53 does. Change our symbols so both drivers can coexist
in kernel tree.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Acked-by: Jonas Gorski <jonas.gorski@gmail.com>
Both scripts modified by this patch were added by me. First of all I
incorrectly added OpenWrt as Copyright holder. It was wrong because:
1) I simply can't transfer my moral rights according to the Polish law
2) Transfering copyrights (economic rights) requires an agreement which
I didn't sign with OpenWrt(.org).
Other than that I don't find these trivial scripts important enough to
put info about *my* copyrights in a header so this patch just drops them
completely.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
For some time now m25p80 supports 32 MiB flashes and we just needed to
patch spi-nor to support JEDEC incompatible w25q128. Also by switching
to m25p80 we gain accelerated SPI flash reads.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 49260
It was already increased for NAND devices so do the same for the ones
with serial memory.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 49207
This reverts commit r48961. It didn't fix PCIe host driver issue as
there are more aborts triggered by it.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 49120
4.3 isn't oficially used anymore but it may be useful for debugging PCI
host driver regression. SPROM driver doesn't seem to work correctly with
4.3:
[ 2.336686] bcma: bus0: Using fallback SPROM failed (err -2)
[ 2.342366] bcma: bus0: No SPROM available
but it at least compiles now.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 49113
Initially 4.4 didn't work on bcm53xx because network was breaking few
seconds after setting interfaces. It's fixed since r48059 (switching
from 4.4-rc5 to 4.4-rc7).
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 48510
It was never tested, most likely not working (because of le32_to_cpu)
and not upstreamed.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 48060
Replace former uci-defaults.sh implementation with the uci-defaults-new.sh one
and update all users accordingly.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47867
This replaces old bcm53xx patch for scanning whole flash and makes
bcm47xxpart compatible with NAND.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 47800
This removes calls to ucidef_set_interfaces_lan_wan() and
ucidef_set_interfaces_lan() on boards where all relevant info can be
inferred from the switch definition.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47722
This changes uci-defaults-new.sh, config_generate and all relevant board.d
files in order combine ucidef_add_switch() and ucidef_add_switch_ports() into
a single function.
Also removes now superfluous enable and reset arguments.
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
SVN-Revision: 47721
This updates the iProc PCIe driver to the version currently submitted
for kernel 4.5.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47688
Broadcom submitted new SMP patches for this SoC to upstream Linux, add
them to OpenWrt.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47687
This also deactivates some workaround for erratas only seen in older
CPU cores and L2 cores not used in this SoC.
This partly reverts commit r44947.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47686
This patch is currently placed directly behind the SMP patches and has
nothing to do with SMP, move it to an other position.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47685
compat-wireless/backports now contains a bcm47xx_nvram.h file to
backport some of the functions in it which are used by the bcmfmac
driver. This file just checks for the kernel versions and provide an
empty implementations on older kernel versions. This is OK on most
systems, but on bcm47xx / bcm53xx systems we want to call the real
functions here. This commit removes the file from backports in our
build process like we do it with the bcma and ssb header files. Instead
we add a recent version into our kernel so all code uses only one
header file. On bcm47xx / bcm53xx the real implementations of this code
will be used.
Reported-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47467
According to the info from NVRAM we should use port 8 for the CPU (and
interface eth2). Unfortunately it doesn't work right now, so lets switch
to the port 5.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Forwardport of r46586 from 15.05
SVN-Revision: 47281
These patches are written by Broadcom and will be in mainline Linux
kernel soon. I had some problems to get them backported to kernel 4.1,
so currently they are only available for 4.3.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47253
The files directory is now split up into the files which are needed for
every kernel version and the files only needed by kernel 4.1. The files
in files-4.1 are already merged into mainline kernel 4.3. This patch
only removed patches which were merged into mainline kernel 4.3.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47251
This replaces our SMP implementation with a very similar version which
is Broadcom currently trying to get into mainline kernel.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47247
Add device tree files for Broadcom Northstar based SVKs. Since the
bcm5301x.dtsi already exists, all that is necessary is the dts files to
enable the UARTs. With these files, the SVKs are able to boot to shell.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 47246
This moves arch patches affecting many DTS files. Thanks to this change
we can put some ready-to-mainline patches at 300-319 and simplify
backporting process.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 46889
The "linux,part-probe" dts parsing is a pretty neat generic feature.
It has been posted to kernel.org and could easily be reused by all
targets.
This change moves the patch to the 3.18 and 4.1 generic folders, and
makes the feature available to all platforms who may want to use it.
Signed-off-by: Mathieu Olivari <mathieu@codeaurora.org>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46654
Instead of letting each target define it themselves, create on in
include/image.mk and let the targets use it.
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 46596
One argument was removed with kernel 4.1 from xhci_handshake() which
caused a compile error.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46369
Follow upstream patch and handle it using &uart0. Also disable &uart1 as
it's most likely unused. This will allow us to get valuable reports and
upstream these changes.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 46140
This patch adds the missing parts to use the upstream Broadcom PCIe
driver and makes use of it.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46130
Instead of setting the l2c_aux_val variable in the board code make it
possible to set these through device tree and make use of that.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46129
This only removes the patches already applied upstream and makes the
rest apply cleanly.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 46128
This stabilizes USB support. The old patch was handling initialization
in a different order that was causing some problems with few USB 3.0
devices. Some weren't detected, some were working unstable, sometimes
USB 3.0 could hang the whole controller.
A still known issue (but not a regression) is controller hang triggered
by connecting USB 1.1 device when not having OHCI controller enabled
(kmod-usb-ohci).
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45997
Extracting TRX to separated file in /tmp/ just wastes some RAM while we
can just pass a proper extracting command to the default_do_upgrade.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45912
Extracting full TRX out of vendor format is not needed as otrx supports
passing TRX offset. This saves some RAM during sysupgrade.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45911
There is also a OHCI controller, activate it for USB 1.1 support.
This should close#19601.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 45716
This device seems to have switch port 7 connected to the CPU:
vlan1ports=1 2 3 5 7*
vlan2ports=0 7u
it should be handled by eth1 and NVRAM seems to confirm that (no
et0macaddr entry, existing et1macaddr & et1phyaddr entries).
One of the remaining ports (4/8?) may be connected to the Quantenna SoC.
Original firmware boot log contains following messages:
(0x00,0x5d)Port 5 States Override: 0xfb
(0x00,0x5f)Port 7 States Override: 0xfb
(0x00,0x0e)Port 8 States Override: 0x0a
(why does it force port 5 state?!)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45692
It has 3 Ethernet interfaces, each of them connected to separated switch
port. Default NVRAM uses switch port 8 as CPU which is connected to the
3rd interface (eth2).
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45681
There are some rare devices without NAND, like Netgear EX6200 or
TP-LINK Archer C8.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45545
This is needed as prepare_generic_squashfs generates more data (in our
case 0x40004 B) and it's complex for sysupgrade to extract UBI image out
of TRX.
Signed-off-by: Dan Haab <dhaab@luxul.com>
SVN-Revision: 45541
It seems to have few ports connected to CPU (only for CPU sending data?)
as part of "SMP dual core 3 GMAC setup" feature.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45403
In most cases it allows reverting back to the vendor firmware (as they
usually don't use UBI). If users wants to do that we can't do anything
anyway. Erease counters will be just lost. The only thing we do is warn:
"Flashing firmware without UBI for rootfs. All erase counters will be
lost."
It still requires forcing sysupgrade.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45392
We can now detect that provided firmware contains kernel and UBI image
partitions. Flashing it in a sane way (keeping erase counters) still
needs to be implemented.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45391
With previous version of patch info about need of erasing blocks was
stored once per boot. It was breaking in following scenario:
1) First boot after installation (erasing blocks after 0xdeadc0de)
2) Doing sysupgrade (with ubidetach & ubiformat)
3) Attaching UBI again (it caused all blocks to be erased)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 45387
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
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
First of all this patch was broken since adding 3.18 for bcm53xx. It was
modifying ARCH_BRCMSTB instead of ARCH_BCM_5301X.
Secondly we don't need it as ARCH_MULTIPLATFORM selects
ARCH_WANT_OPTIONAL_GPIOLIB for us.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 44383
Ths will allow us to use early 3xx numbers for patches designed for
sending mainline.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 44057
The only reason this patch was helping was moving bcma init *after*
of_serial init. It was a bit of luck because both drivers use
device_initcall.
It isn't really a correct way to provide early logging.
Now we have earlyprintk support in bcm53xx we can drop this patch.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 43981
When there is no device connected to the controller we should not start
the controller. This also changes between PCIe 1.0 and PCIe 2.0 speed
based on the device. This code is based on code from the new Broadcom
PCIe controller driver.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 43748
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
This is required because it has to be called at very precise moment. See
comment in driver for details.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
SVN-Revision: 43611
This adds some updates to the NAND driver and refreshed the config.
Most of these changes are done in preparation for mainling it.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 43546
This adds some updates to the PCIe driver and refreshed the config.
Most of these changes are done in preparation for mainling it.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 43545
This brings ssb and bcma to wireless-testing tag master-2014-12-05
In addition it also adds the ARM-BCM5301X-Add-IRQs-to-Broadcom-s-bus-
axi-in-DTS-f.patch which adds the irq number in a way it is done in the
mainline kernel.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 43544