Commit Graph

64 Commits

Author SHA1 Message Date
Daniel Golle
5a1e4a7fdb oxnas: reduce size of ATA DMA descriptor space
After years of trying to find the reason for random kernel crashes
while both CPU and SATA are under load it has been found.
Some odd commented-out #defines in kref's single-port driver [1] which
were copied from the vendor driver made me develop a theory:
The IO-mapped memory area for DMA descriptors apparetly got some holes
just before the alignment boundaries.
This feels like an off-by-one bug in the hardware or maybe those fields
are used internally by the SATA controller's firmware.
Whatever the cause is: they cannot be used and trying to use them
results in reading back unexpected stuff and ends up with oopsing
Unable to handle kernel paging request at virtual address d085c004

Work around the issue by reducing the area used for bmdma descriptors.
This reduces SATA performance (iops) quite a bit, but finally makes
things work reliably. Possibly one could optimize this much more by
really just skipping the holes in that memory area -- however, that
seems to be non-trivial with the driver and libata in it's current form
(suggestions are welcome).
The 'proper' way to have good SATA performance would be to make use of
the hardware RAID features (one can use the JBOD mode to access even
just a single disc transparently through the RAID controller integrated
in the SATA host instead of accessing the SATA ports 'raw' as we do
now).

[1]: https://github.com/kref/linux-oxnas/blob/master/drivers/ata/sata_oxnas.c#L25

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 5793112f75,
including fixup commit d75e753063)
2020-08-29 01:17:26 +01:00
Daniel Golle
74ef848b96 oxnas: also akitio,mycloud uses PCIe apparently
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-12 01:06:33 +01:00
Daniel Golle
0e9b11213e oxnas: enable pcie_phy on boards utilizing PCIe
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-12 00:35:16 +01:00
Daniel Golle
87a81455a1 oxnas: replace oxnas-restart with version to be submitted to upstream
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-11 13:39:33 +01:00
Daniel Golle
35a7f79096 oxnas: use generic filenames for image and DTS
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-11 03:43:30 +01:00
Daniel Golle
8ad0ba3a07 oxnas: move PCIe controller outside of simple-bus
Move PCIe controller outside down to SoC level to avoid resource
mapping problems.
Also add more detailed error handling when mapping registers.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-10 23:04:28 +01:00
Daniel Golle
e7aa4c0db7 oxnas: pcie: model shared resource as external pcie-phy driver
Refactor pcie-oxnas to have shared resources in syscon and new pcie-phy
driver. Hopefully this revives PCIe...

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-04 23:40:43 +01:00
Daniel Golle
3bb9dcf446 oxnas: convert pcie to builtin_platform_driver
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-04 04:04:52 +01:00
Daniel Golle
302f7d57a9 oxnas: restart: use register definitions from dt-bindings
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-03 22:09:33 +01:00
Daniel Golle
dcb08049ae oxnas: cleanup and improve pcie driver
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-03 21:50:55 +01:00
Daniel Golle
c1a8054114 oxnas: add SoC restart driver for reboot
Refresh oxnas kernel config while at it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-03 02:46:05 +01:00
Daniel Golle
42f2e07ba0 oxnas: cloudengines,pogoplug*: enable USB ports
Reported-by: Jörg Fischer <fischer.loepsingen@yahoo.de>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-02 18:54:30 +01:00
Daniel Golle
6b2874707a oxnas: switch to DTS aliases for LEDs and use generic diag.sh
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-01 23:51:19 +01:00
Daniel Golle
e2fea41ad6 oxnas: fix forgotten MTD partition name
Fixes: 858aebc0ef ("oxnas: unify MTD partition names")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-01 22:15:43 +01:00
Daniel Golle
5fac36d5aa oxnas: switch to kmod-ledtrig-usb-port
Add port handles for both USB 2.0 ports so they can be used as
trigger-source for USB LEDs.
Suggestions for pogoplug and akitio,mycloud devices are welcome.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-01 04:09:00 +01:00
Daniel Golle
858aebc0ef oxnas: unify MTD partition names
Use 'u-boot' and 'u-boot-env' like the majority of OpenWrt targets
does...

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-03-01 03:36:32 +01:00
Daniel Golle
994428f395 oxnas: add missing NAND partitions
add kernel and other missing NAND flash partitions to allow booting
using stock loader instead of the 2nd-stage bootloader.
This will ease installation from stock firmware on pogoplugs as well
as stg212 aka. medion nas.

Existing users of OpenWrt on those boards will have to boot initramfs
generated after this commit and subsequently flash first the ubinized
image, then again run initramfs to flash sysupgrade.tar image, and
then restore bootcmd in U-Boot environment back to the original setting
('nboot 60500000 0 440000' or something like that) instead of jumping
into the now no longer used 2nd-stage loader.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2019-02-28 13:03:26 +01:00
Petr Štetiar
9292822023 oxnas: dts: Unify naming of gpio-led nodes
In DTS Checklist[1] we're now demanding proper generic node names, as
the name of a node should reflect the function of the device and use
generic name for that[2]. Everybody seems to be copy&pasting from DTS
files available in the repository today, so let's unify that naming
there as well and provide proper examples.

1. https://openwrt.org/submitting-patches#dts_checklist
2. https://github.com/devicetree-org/devicetree-specification/blob/master/source/devicetree-basics.rst#generic-names-recommendation

Signed-off-by: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [split up]
2019-01-24 15:53:04 +01:00
Petr Štetiar
4a954e8620 oxnas: dts: Unify naming of gpio-keys nodes
In DTS Checklist[1] we're now demanding proper generic node names, as
the name of a node should reflect the function of the device and use
generic name for that[2]. Everybody seems to be copy&pasting from DTS
files available in the repository today, so let's unify that naming
there as well and provide proper examples.

1. https://openwrt.org/submitting-patches#dts_checklist
2. https://github.com/devicetree-org/devicetree-specification/blob/master/source/devicetree-basics.rst#generic-names-recommendation

Signed-off-by: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [split up]
2019-01-24 15:53:03 +01:00
Daniel Golle
b831eb5363 oxnas: kd20: correct memory size to 256MB
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-11-08 14:41:42 +01:00
Daniel Golle
9bcc08958b oxnas: add console=ttyS0,115200 argument to bootargs
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-11-04 21:43:37 +01:00
Paul Wassi
e348ccc4e6 treewide: fix some cosmetic glitches in dts files
- fix single spaces hidden by a tab
- replace indentation with spaces by tabs
- make empty lines empty
- drop trailing whitespace
- drop unnecessary blank lines

Signed-off-by: Mathias Kresin <dev@kresin.me>
Signed-off-by: Paul Wassi <p.wassi@gmx.at>
2018-08-27 19:31:17 +02:00
Daniel Golle
dcc34574ef oxnas: bring in new oxnas target
Reboot the oxnas target based on Linux 4.14 by rebasing our support on
top of the now-existing upstream kernel support.
This commit brings oxnas support to the level of v4.17 having upstream
drivers for Ethernet, Serial and NAND flash.
Botch up OpenWrt's local drivers for EHCI, SATA and PCIe based on the
new platform code and device-tree.
Re-introduce base-files from old oxnas target which works for now but
needs further clean-up towards generic board support.

Functional issues:
 * PCIe won't come up (hence no USB3 on Shuttle KD20)
 * I2C bus of Akitio myCloud device is likely not to work (missing
   debounce support in new pinctrl driver)

Code-style issues:
 * plla/pllb needs further cleanup -- currently their users or writing
   into the syscon regmap after acquireling the clk instead of using
   defined clk_*_*() functions to setup multipliers and dividors.
 * PCIe phy needs its own little driver.
 * SATA driver is a monster and should be split into an mfd having
   a raidctrl regmap, sata controller, sata ports and sata phy.

Tested on MitraStar STG-212 aka. Medion Akoya MD86xxx and Shuttle KD20.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-06-01 15:45:06 +02:00
Daniel Golle
17511a7ea8 oxnas: kill old oxnas target
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2018-06-01 15:45:06 +02:00
Daniel Golle
870b7bee44 oxnas: remove some kprintf calls from NAND driver
They were added for debugging and I forgot to remove them.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-01-07 14:47:04 +01:00
Daniel Golle
a46c9a4038 oxnas: remove support for pre-4.4 kernels from drivers
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-01-04 19:42:24 +01:00
Hauke Mehrtens
321aca6661 oxnas: fix syntax in ox820-akitio.dts
This commit introduced a syntax error in ox820-akitio.dts which is
fixed now:
commit 5cde94d9ab
Author: Daniel Golle <daniel@makrotopia.org>
Date:   Sat Sep 24 01:14:53 2016 +0200
    oxnas: backport upstream NAND driver

This caused the folowing error message in the build bot:
Error: arch/arm/boot/dts/ox820-akitio.dts:146.3-147.1 syntax error
FATAL ERROR: Unable to parse input tree
scripts/Makefile.lib:293: recipe for target 'arch/arm/boot/dts/ox820-akitio.dtb' failed
make[5]: *** [arch/arm/boot/dts/ox820-akitio.dtb] Error 1

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2017-01-02 13:34:57 +01:00
Daniel Golle
5cde94d9ab oxnas: backport upstream NAND driver
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2017-01-01 10:07:58 +01:00
Mathias Kresin
2b55c83e68 treewide: dts: use keycode defines from input dt-binding
All compiled device tree files not mentioned are binary identical to the
former ones.

Fix the obvious decimal/hex confusion for the power key of ramips/M2M.dts.

Due to the include of the input binding header, the BTN_* node names in:

  - ramips/GL-MT300A.dts
  - ramips/GL-MT300N.dts
  - ramips/GL-MT750.dts
  - ramips/Timecloud.dts

will be changed by the compiler to the numerical equivalent.

Move the binding include of lantiq boards to the file where they are
used the first time to hint the user where the values do come from.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-13 07:07:58 +01:00
Mathias Kresin
77b807999d treewide: dts: use C style includes
No functional change but allows me to use one script to compile all
device tree source files.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-11-12 21:04:15 +01:00
Daniel Golle
a810e7789a oxnas: add mem=128M to stg-212 built-in cmdline for legacy u-boot
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-09-04 04:58:54 +02:00
Daniel Golle
c773a2c46e oxnas: kd20: generate image compatible with stock firmware
* adjust MTD partitions to match vendor's scheme
 * generate *factory.tar.gz image compatible with stock web-if
   firmware upgrade interface

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-09-04 04:58:36 +02:00
Daniel Golle
c5ec5e1f7f oxnas: revert to kernel 4.1
A bug resulting in the NAND not being detected by newer kernels has
kept me sleepless for months and yet I wasn't able to discover the
cause.
Bring back patches and files for 4.1 until this has been resolved.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-07-18 18:35:32 +02:00
Daniel Golle
118b5ae7b2 oxnas: drop compatibility with old kernels from mach-ox820
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-05-20 08:48:19 +02:00
Daniel Golle
97ce23c347 oxnas: drop compatibility with old kernels from pinctrl
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-05-20 08:48:19 +02:00
Daniel Golle
f90f379a7f oxnas: drop compatibility with old kernels from irq-rps
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-05-20 08:48:18 +02:00
Daniel Golle
53a9809080 oxnas: drop compatibility with old kernels from dwmac-oxnas
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2016-05-20 08:48:18 +02:00
Luka Perkov
9f4e0c7751 oxnas: add missing semicolon
A missing semicolon in the gpio-keys-polled section of ox820-akitio.dts
caused the build to break. Add it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 49219
2016-04-24 16:42:14 +00:00
Hauke Mehrtens
012da658a4 oxnas: add support for Akitio MyCloud mini
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 49197
2016-04-19 20:12:41 +00:00
John Crispin
e9db6eb8b2 oxnas: sync cpu-hotplug with mach-realview
Make mach-oxnas/hotplug.c look more similar to mach-realview/hotplug.c,
just cosmetics and maintainability concerns, no functional changes.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 49044
2016-03-20 14:41:29 +00:00
John Crispin
b64f159bc8 oxnas: add spinlock in pinctrl driver
Try to address a race-condition in pinctrl-oxnas.c

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 49043
2016-03-20 14:41:25 +00:00
John Crispin
daf7ab04ba oxnas: also reset GPIO B registers on boot
Clear both, SYS_CTRL_*_SEL and SEC_CTRL_*_SEL on boot instead of
writing to SYS_CTRL_*_SEL twice which looks like a copy-paste error.
Thanks to anonymous to bring this up in #21892!

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 49042
2016-03-20 14:41:21 +00:00
John Crispin
300be15e84 oxnas: complete NAND driver clean-up
some bit rot was accidentally left-out in r48986, remove it.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 48997
2016-03-10 21:19:58 +00:00
John Crispin
61f27ca3e4 oxnas: clean-up NAND driver to fix probing issue
A re-write of the driver based on xway_nand.c and constants as
well as the cmd_ctrl() function from the original oxnas_nand.c
resulted in a extremely similar looking file (see diffsize),
and fixes the issue of NAND not being detected on newer kernels.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 48986
2016-03-10 19:11:28 +00:00
Felix Fietkau
cee6c07cf3 oxnas: prepare platform and drivers for Linux 4.4
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 48338
2016-01-18 23:34:51 +00:00
John Crispin
6944a95091 oxnas: move gmac soc glue from mach to stmmac driver
Still a lot of kernel-version ifdef'ery, but imho that's easy to remove
once obsoleted and avoids duplicate code in the meantime.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 47218
2015-10-19 10:09:36 +00:00
John Crispin
54b8ddf9e7 oxnas: prepare pinctrl for kernel >=4.2
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 47217
2015-10-19 10:09:30 +00:00
John Crispin
26329f650c oxnas: prepare irqchip driver for kernel >=4.2
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 47216
2015-10-19 10:09:23 +00:00
John Crispin
392b93f579 oxnas: fix duplicate include in clk-oxnas
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 47215
2015-10-19 10:09:16 +00:00
John Crispin
ec9ffe892f oxnas: remove obsolete __cpuinit
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 47214
2015-10-19 10:09:07 +00:00