Commit graph

31 commits

Author SHA1 Message Date
Alexey Brodkin
aab344d227 arc770: backport upstream fix for unaligned access
This commit reverts 42f3c1f ("arc770: fix broken upstream change")
and simultaneously adds back-ported fix from Linus' tree:
a524c218bc94 ("ARC: [arcompact] brown paper bag bug in unaligned
access delay slot fixup").

Note mentioned patch will appear in stable trees soon as well so
IMHO there's not much sense in adding this separate patch in lede/master branch.
As well as we will get rid of it here in 17.01 once we bump 4.4 kernel here
later down the line.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Felix Fietkau <nbd@nbd.name>
Cc: John Crispin <john@phrozen.org>
Cc: Jo-Philipp Wich <jo@mein.io>
2017-02-09 09:14:45 +01:00
Jo-Philipp Wich
62bf0d4958 arc770: fix broken upstream change
Add a patch to revert upstream commit 9aed02feae57bf7a40cb04ea0e3017cb7a998db4
which introduces syntax errors.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-02-07 09:32:02 +01:00
Felix Fietkau
515d012e6d arc770: gzip rootfs image to save some space
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-13 16:59:28 +01:00
Felix Fietkau
90f0ca0ddc arc770: build dtb files in Image/Prepare so that they are available for Device/*
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-11 16:35:03 +01:00
Felix Fietkau
1b17f4f260 arc770: fix parallel build issue
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-01-11 13:02:42 +01:00
Álvaro Fernández Rojas
87b2b89959 tools: remove old mkdosfs symlink from dosfstools
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-10-12 11:59:09 +02:00
Álvaro Fernández Rojas
d14c28fc80 kernel: update kernel 4.4 to version 4.4.20
Refresh patches for all targets that support kernel 4.4.
Compile-tested on brcm2708 only.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-09-15 08:10:55 +02:00
Felix Fietkau
aa53f78038 build: fix subtarget descriptions
Move Target/Description above the target.mk include

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-04 13:35:11 +02:00
Alexey Brodkin
30d75720fa arc770: 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>
Cc: Jo-Philipp Wich <jo@mein.io>
2016-08-28 13:51:42 +02:00
Alexey Brodkin
ca519d4f8d arc770: 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-28 13:51:42 +02:00
Alexey Brodkin
cf3364a363 arc770: 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-28 13:51:42 +02:00
Alexey Brodkin
07e653725a arc770: Reduce generalization
As support of ARC 770 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_arcYYY_XXX scripts making code more compact and
cleaner.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-08-28 13:51:41 +02:00
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
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
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
9ef282cd96 arc770: enable unaligned access handling simulation in software
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
2016-04-09 10:25:16 +00:00
John Crispin
cac43c0b71 arc770: build kmod-ath9k-htc wpad-mini by default
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
2016-04-09 10:25:13 +00:00
Felix Fietkau
57776e68ce base-files: remove default /etc/config/network, generate it via board.d instead
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48493
2016-01-25 16:30:41 +00:00
Felix Fietkau
e620f4d6f8 arc: clean-up and move CFLAGS to include/target.mk
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
2016-01-18 17:52:03 +00:00
Felix Fietkau
018e84f58d arc770/axs101: fix console output
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
2016-01-18 17:51:54 +00:00
Felix Fietkau
d475624f64 arc770: move arc patches to target/linux/generic
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
2016-01-15 10:49:11 +00:00
Felix Fietkau
4514589182 arc770: bump linux kernel from 4.3 to 4.4
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
2016-01-15 10:49:01 +00:00
Hauke Mehrtens
cdb83aaf5f kernel/4.3: update to version 4.3.3
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de

SVN-Revision: 48224
2016-01-12 20:52:19 +00:00
Felix Fietkau
2499a57d92 targets: add kernel image dependencies on device tree files
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48146
2016-01-06 18:39:06 +00:00
Jo-Philipp Wich
67e1c87012 all: drop old uci-defaults.sh
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
2015-12-11 15:26:06 +00:00
Jo-Philipp Wich
08848936dd all: remove redundant board.d/00_model files
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 47753
2015-12-04 11:07:06 +00:00
Jo-Philipp Wich
3348308afd arc770: switch from uci-defaults to board.d
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 47743
2015-12-03 23:08:02 +00:00
Felix Fietkau
576621f1e3 linux: add support of Synopsys ARC770-based boards
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
2015-11-22 19:06:07 +00:00