DW GMAC on ARC SDP boards doesn't enter promiscuous mode if
Ethernet PHY haven't got established link. Good examples are
auto-negotiation in progress or disconnected cable.
We do see Linux kernel sets GMAC's MAC filter register
properly but GMAC's hardware doesn't accept new settings.
We believe it is a hardware issue, most probably problem of
integration of DW GMAC and PHY on the board.
As a work-around we completely disable frame filtering
in GMAC hardware (once and for good) which forces GMAC to enter
promiscuous mode with the first write to MAC filter register.
That gives us working bridge that consists of eth0 and wlan0
(USB Wi-Fi dongle). I.e. we finally have working "Dumb AP" setup made
of ARC AXS10x boards.
Given that hack is quite dirty (in loaded wired networks this will
effectively load CPU with junk packets even if user doesn't need promisc
mode) and there's no indication any other boards with DW GMAC suffer
from the same issue we're patching only kernel for ARC boards.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: John Crispin <john@phrozen.org>,
Cc: Felix Fietkau <nbd@nbd.name>
Instead of using off-the-tree .dts files for ARC boards we're
switching to use in-tree ones. And for that to work properly
we apply upstream patch that adds currently missing "model"
property.
Upstream patch and discussion could be found here:
http://lists.infradead.org/pipermail/linux-snps-arc/2016-August/001394.html
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Jonas Gorski <jonas.gorski@gmail.com>
Cc: John Crispin <john@phrozen.org>
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>
This reverts commit acd41539d6.
There's a fix in upstream that will at some point land in 4.4 stable as
well so we'll get rid of this hack and with the next commit will apply
upstream fix.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
With update of binutils for ARC (this is now based on upstream 2.26)
we noticed issues with loadable kernel modules.
Something like that was happening:
--------------------->8-------------------
mbcache: unknown relocation: 49
insmod: can't insert './mbcache.ko': invalid module format
--------------------->8-------------------
More details could be found in that discussion in binutils mailing list:
http://thread.gmane.org/gmane.comp.gnu.binutils/74662
As of now the simplest work-around is to disable in-kernel unwinder
for now. That will at least allow us to use modules again.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Vineet Gupta <vgupta@synopsys.com>
Cc: John Crispin <john@phrozen.org>
Initially for ARC we were building vmlinux images because it
was both simpler and more convenient to debug Linux kernel
in runt-time via JTAG. Now when base system works quite nice
we may finally use U-Boot for loading the system image as
well. Still we keep building vmlinux images as some of our
boards are development boards and loading images with JTAG
could be at some points very beneficial.
Note for U-Boot header it's required to specify 2 values:
* loading address
* entry point (if it doesn't match loading address)
and in case of ARC entry point (EP) not only differs from
loading address but also changes from build to build due to
initramfs being placed between loading address and text section.
To accommodate that feature we have to calculate EP after
vmlinux gets built and before call to mkimage.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
This enables misaligned access handling by software in Linux kernel.
With some wireless drivers (ath9k-htc and mt7601u for example) we see
misaligned accesses here and there and to cope with that without
fixing stuff in the drivers we're just gracefully handling it on ARC.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
SVN-Revision: 49134
AXS101 beind a development board lacks built-in wireles inerfaces.
So we have to use external USB dongles to turn the board into
wireless router.
The best USB Wi-Fi dongles to work in AP-mode seem to be based on
ath9k-htc chipset.
And so with that change we add support of mentioned dongles in
default and axs101 builds.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
SVN-Revision: 49133
Most of currently mentioned CFLAGS in arc770/Makefile
are not really required because:
[1] "-Os -pipe" are set by default in include/target.mk
[2] "-fno-caller-saves" gets enabled via menuconfig
as an extra compiler flag for developers
So the only one that makes sense is "-matomic" and
that one is really essential. Without it many software
packges won't build complainin on unresolved atomic ops.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Jo-Philipp Wich <jow@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 48326
While bumping kernel version kernel command line was
unintentionally modified in attempt to make it closer
to upstream version.
In case of AXS that has not only serial port but HDMI/USB
both capable of being debug console we have 2 entries in
kernel's command line:
------------------->8-----------------
console=tty0 console=ttyS3,115200n8
------------------->8-----------------
But as it turned out OpenWRT uses procd as init instead of
Busybox. And in its turn procd gets the first "console"
entry from kernel command line (/proc/cmdline) and uses it
if default inittab is used:
------------------->8-----------------
...
::askconsole:/bin/ash --login
------------------->8-----------------
So what we got is non-functional serial console.
That change removes "console=tty0" which brings serial
console back to life.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Jo-Philipp Wich <jow@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 48325
Given those patches are relevant to any ARC platform and even
ISA version it makes perfect sense for patches to exist
in one place instead of being duplicated for each new ARC-based ASIC.
Note this is a prerequisite for upstreaming of ARC HS38 support in
OpenWRT.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Jo-Philipp Wich <jow@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 48241
This switch involved:
[1] Regeneration of config (few options went away)
[2] Regeneration of patches so they apply cleanly (different offsets)
[3] Update of .dts files because we now explicitly specify
memory regions in use as opposed to previously used offset
from 0x8000_0000
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Jo-Philipp Wich <jow@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 48240
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 patch introduces support of new boards with ARC cores.
[1] Synopsys SDP board
This is a new-generation development board from Synopsys that
consists of base-board and CPU tile-board (which might have a real
ASIC or FPGA with CPU image).
It sports a lot of DesignWare peripherals like GMAC, USB, SPI, I2C
etc and is intended to be used for early development of ARC-based
products.
[2] nSIM
This is a virtual board implemented in Synopsys proprietary
software simulator (even though available for free for open source
community). This board has only serial port as a peripheral and so
it is meant to be used for runtime testing which is especially
useful during bring-up of new tools and platforms.
What's also important ARC cores are very configurable so there're
many variations of options like cache sizes, their line lengths,
additional hardware blocks like multipliers, dividers etc. And this
board could be used to make sure built software still runs on
different HW configurations.
Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Jo-Philipp Wich <jow@openwrt.org>
Cc: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
SVN-Revision: 47589