Commit graph

15 commits

Author SHA1 Message Date
Alexey Brodkin
66f3edfd8b linux/arc*: disable MAC frame filter in DW GMAC
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>
2016-08-24 15:16:01 +02:00
Alexey Brodkin
334fdea08d archs38: Merge sd and ramfs subtargets in generic again
As it turned out we may actually build both initramfs and
SD-based images in one run with just a small tweak in
existing image/Makefile and so we do here.

We're back with one "generic" target for all ARC HS38-based bords.

Kudos to John for his patience and very helpful tips!

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Jo-Philipp Wich <jo@mein.io>
2016-08-20 05:33:47 +02:00
Alexey Brodkin
df4f41261c archs38: Introduce images for SD-cards
Historically on ARC we started from initramfs-based images because:
 a) It was much easier to debug especially when toolchain and other
    components were changing quite dynamically
 b) It was our usual approach for embedded Linux

But now with ARC port of Lede/OpenWRT getting more stable and mature
we're ready for more real-life scenarios with FS permanently stored
on SD-card. This essentially benefits from ability to setup devices
that survive reboots with all settings and extra packages kept in place.

Still we keep an ability to build images with initramfs.
This allows us to use storage-less simulators for testing still.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: John Crispin <john@phrozen.org>
2016-08-16 12:20:32 +02:00
Alexey Brodkin
7abf9eda8a archs38: Remove MMC kernel modules, they are built-in now
If we want to boot from SD-card we need to have corresponding
drivers already built-in so there's no point in having these
modules.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-08-16 12:20:12 +02:00
Alexey Brodkin
83bd1f81c4 archs38: Update kernel configuration
Now when we're switching to FS on SD-card it's necessary to have
full stack of MMC block & FC drivers built-in otherwise kernel won't
be able to mount FS with needed modules.

Also we enable parsing of input parameters passed to the kernel by
U-Boot. Otherwise kernel won't know where to look for command line and
what's worse device tree blob (we had to disable this by default for
cases when kernel is loaded by JTAG and core registers may have
undefined state lading to kernel going bonkers).

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-08-16 12:19:56 +02:00
Alexey Brodkin
5f55df433d archs38: Reduce generalization
As support of ARC HS38 in OpenWRT/Lede matures we don't need
debug-only output binaries any longer, so purging vmlinux for
AXS10x boards.

As for uImage for nSIM it makes completely no sense because there's no
way to run U-Boot on nSIM.

So we remove add_archs38_XXX scripts making code more compact and
cleaner.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-08-16 12:19:01 +02:00
Alexey Brodkin
a3cde14f5a arc: use patched .dts from sources
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>
2016-08-16 12:18:28 +02:00
Felix Fietkau
8e2764ce9b image.mk: clean up redundant code related to DEVICE_DTS
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>
2016-07-15 14:14:11 +02:00
Alexey Brodkin
697ee80388 Revert "linux: arc: disable kernel unwinding to fix modules loading"
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>
2016-07-11 14:19:47 +02:00
Alexey Brodkin
055ba75f92 linux/archs38: Add wireless AP capabilities similarly to axs101
Now when ath9k-htc USB dongle works with axs103 in OHCI mode
quite fine adding corresponding features to default configuration.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-07-11 14:19:47 +02:00
Alexey Brodkin
2005732ea7 linux/archs38: Disable USB 2.0
As of today USB 2.0 (AKA EHCI) doesn't work on axs103 board
and so there's no reason to build corresponding software for it.

Once USB 2.0 gets fixed on axs103 thi patch might be reverted.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-07-05 22:59:14 +02:00
Alexey Brodkin
acd41539d6 linux: arc: disable kernel unwinding to fix modules loading
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>
2016-06-22 19:32:06 +02:00
Alexey Brodkin
668dbec3f4 arc: Build uImage as well as vmlinux output files
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>
2016-06-05 23:23:57 +02:00
John Crispin
cb5711d72a archs38: remove network config override
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 48741
2016-02-18 08:35:21 +00:00
John Crispin
73015c4cb3 linux: add support of Synopsys ARCHS38-based boards
This patch introduces support of new boards with ARC HS38 cores.

ARC HS38 is a new generation of ARC cores which utilize ARCv2 ISA.
As with ARC770 we're addind support for 2 boards for now:

 [1] Synopsys SDP board (AXS103)
     This is the same base-board as in AXS101 but with
     FPGA-based CPU-tile where ARCHs38 core is implemented.

 [2] nSIM
     Again this is the same simulation engine but configured for
     new instruction set and features of new CPU.

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: 48740
2016-02-18 08:22:32 +00:00