Commit graph

85 commits

Author SHA1 Message Date
Christian Lamparter
ebaa82a2ca apm821xx: consolidate apm821xx device trees files
This patch moves the common SoC device tree entries
from the currently four supported platforms into a
common apm82181.dtsi.

Furthermore, this patch also changes the GPIO, IRQ and
input definitions of the supported platforms to use the
defined dt-bindings macros for GPIO_ACTIVE_LOW|HIGH,
KEY_WPS|RESTART|*, IRQ_TYPE_* when it's appropriate.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-12 21:04:15 +01:00
Christian Lamparter
3a112113e7 apm821xx: add amcc, usb-otg-405ex devicetree definition
This patch adds support for the amcc,usb-otg-405ex device
which is found in all APM82181 SoCs.
Note: The system can't use the generic "snps,dwc2" compatible
because of the special ahbcfg configuration. The default
GAHBCFG_HBSTLEN_INCR4 of snps,dwc2 can cause a system hang
when the USB and SATA is used concurrently.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-12 21:04:15 +01:00
Christian Lamparter
b5638bb64e apm821xx: redo WAN green and yellow LEDs
Because the WAN port is handled by the internal AR8327N switch, the
device should use swconfig_leds trigger to handle the link activity
of the WAN LED. This has the added bonus that the WAN LED will now
go dark if there's no ethernet cable connected to the WAN port.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-08 11:17:10 +01:00
Christian Lamparter
8f2c2f94cf apm821xx: add back end-of-UBI marker for the WNDR4700 and MR24
The patch "build: drop UBI EOF marker from images by default"
(commit d27bce8d28) removed the
end-of-UBI marker. Without this marker, the boards will panic
during boot:

[    1.683458] ubi0: attaching mtd4
[    1.696181] ubi0 warning: scan_peb: valid VID header but corrupted EC header at PEB 31
[    1.704367] ubi0 error: scan_peb: bad image sequence number 549886691 in PEB 32, expected 184585623
[    1.713377] Erase counter header dump:
[    1.717110]  magic          0x55424923
[    1.720843]  version        1
[    1.723797]  ec             0
[    1.726752]  vid_hdr_offset 512
[    1.729880]  data_offset    2048
[    1.733094]  image_seq      549886691
[    1.736740]  hdr_crc        0x92ba8130
[    1.740472] erase counter header hexdump:
[    1.744493] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -22
[    1.751528] UBI error: cannot attach mtd4
[    1.755373] hctosys: unable to open rtc device (rtc0)
[    1.761130] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    1.768604] Please append a correct "root=" boot option; here are the available partitions:
[...]
[    1.856992] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.866519] Rebooting in 1 seconds..Auto calibration ---

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-11-04 11:11:34 +01:00
Rafał Miłecki
c9fdb23345 apm821xx: fix USB LED trigger for WNDR4700
The old usbdev trigger never supported assigning more than 1 USB port.
This code we got was never working as expected and it was missing 2 more
ports. Switch to usbport to have LED working with all ports.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Tested-by: Christian Lamparter <chunkeey@gmail.com>
2016-10-28 13:27:21 +02:00
Rafał Miłecki
0658527e1e switch to the new usbport LED trigger
This makes init.d script handle existing UCI entries using the new
trigger. It also switches all targets to use its package.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-10-19 12:09:45 +02:00
Christian Lamparter
4fc48a8cf2 apm821xx: replace recovery image for the MBL with initramfs
The patch "images: bump default rootfs size to 256 MB"
a1f83bad60 caused a crash
during boot for the recovery images. This is because
both variants of the MyBook Live only have 256MB of RAM
and for the recovery option, the ext4 rootfs was simply
stored in the RAMDISK.

This patch replaces recovery image for the MBL with an
initramfs kernel.

In order to boot the initramfs (for recovery or development):

0. copy the initramfs and device tree into tftp's server directory
   # cp *-initramfs-kernel.bin to /tftp-server/mbl.bin
   # cp *-ext4-kernel.dtb to /tftp-server/fdt.bin

1. Connect the MyBook Live (Duo) serial port.
   (Warning! Use a 3.3v level shifter).

2. Hit Enter during u-boot and insert these three lines:
   # setenv serverip 192.168.1.254; setenv ipaddr 192.168.1.1;
   # tftp ${kernel_addr_r} mbl.bin; tftp ${fdt_addr_r} fdt.bin
   # run addtty addmisc; bootm ${kernel_addr_r} - ${fdt_addr_r}

   Where 192.168.1.254 is your TFTP server.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-10-13 17:04:33 +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
Mathias Kresin
a499d0a6b5 image: specify max image size in Kilobyte/Megabyte
Use the k and m unit suffix to be consistent with the blocksize.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-09-04 09:58:02 +02:00
Mathias Kresin
e7ec7a08aa image: use k as unit suffix for blocksize
Use k as unit suffix for kilobyte to have a the same unit regardless of
the used filesystem.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-09-04 08:56:05 +02:00
Mathias Kresin
d7b6f0ea88 apm821xx: image: add support for k unit suffix to boot-img
Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-09-08 20:14:42 +02:00
Christian Lamparter
e9f86c6cac apm821xx: backport generic HDD led-triggers for WNDR4700 and MBL
This patch backports the new generic HDD/SDD led-trigger
from 4.8-rc1.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-09-08 13:40:03 +02:00
Christian Lamparter
f7c1d9c8a5 apm821xx: detect sd-card media changes for the WNDR4700
The insertion or removal of the sd-card cannot be detected
by the hardware itself. This is by design. To workaround this,
for the WNDR4700 unload/load the dwc2 module in case the
the special SD CARD GPIO line is low/high.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-09-08 13:40:02 +02:00
Christian Lamparter
78e63ce7e3 apm821xx: add size check for initramfs kernel for the Meraki MR24
Russell Senior reported an issue with the MR24 initramfs kernels:
> ## Booting kernel from Legacy Image at 00c10000 ...
>   Image Name:   POWERPC LEDE Linux-4.4.19
>   Created:      2016-08-31  11:57:05 UTC
>   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
>   Data Size:    2155723 Bytes = 2.1 MiB
>   Load Address: 00000000
>   Entry Point:  00000000
>   Verifying Checksum ... OK
>Wrong Ramdisk Image Format
>Ramdisk image is corrupt or invalid

For the MR24, the kernel is uploaded to 0x10000. The ramdisk starts
at 0x200000. This leaves the kernel with just 0x1f0000 bytes = 1984kb.
This patch adds a size check so the image creation script will abort
instead of producing a unbootable initramfs image. A separate patch
"apm821xx: Fix initramfs image for the Meraki MR24" which fixed the
reported issue was submitted earlier.

Cc: Russell Senior <russell@personaltelco.net>
Cc: Chris Blake <chrisrblake93@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-09-05 07:28:52 +02:00
riptidewave93
bc36678bdb apm821xx: Fix initramfs image for the Meraki MR24
When gzip is used, our kernel is too large and this causes the ramdisk
to be at the wrong offset. Fix by moving to lzma.

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
2016-09-05 07:28:44 +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
Stijn Tintel
8072264b96 kernel: update kernel 4.4 to version 4.4.19
Refresh patches for all targets that support kernel 4.4.
Compile-tested on all targets that use kernel 4.4 and aren't marked broken.
Runtime-tested on ar71xx, octeon and x86/64.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
2016-08-23 10:51:17 +03:00
Jo-Philipp Wich
4d9fc1bd44 apm821xx: fix IB image building
Change the image build code to generate the DTB files as part of the kernel
build phase in order to fix the image build in the ImageBuilder environment.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-08-01 17:59:16 +02:00
Felix Fietkau
63b525dd6b image: add a helper variable for getting kernel/rootfs from within image Build/* templates
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-31 12:25:25 +02:00
Jo-Philipp Wich
db49dd894e build: rename sysupgrade-nand to sysupgrade-tar
Now that the "sysupgrade-nand" step is used by non-NAND targets as well,
rename it to "sysupgrade-tar" to make it more generic.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-07-29 16:53:03 +02:00
Felix Fietkau
119b4422f8 apm821xx: only attempt to mount /boot on MyBook Live
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-29 10:18:09 +02:00
Christian Lamparter
3f506bdbb0 apm821xx: fix atheros PCIe cards on the MR24
The consolidation of the MR24 and WNDR4700 subtargets
into the nand subtarget broke MR24's atheros wlan.
This was because the wndr4700's board code used a
pci_fixup routines to supply the ath9k module with
the calibration data.

This is not necessary on the MR24 as it has standard
mini-pcie ports. Hence the two AR9380 mini-pcie cards
do not need any calibration data overrides.

Cc: chrisrblake93@gmail.com
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-25 10:38:48 +02:00
Christian Lamparter
08257a4053 apm821xx: use lzma compression for the initramfs images
The MR24's u-boot takes it sweet time decompressing the
LZMA-packed initramfs image. A user reported that
compared to the old gzip method in v2: it "takes a ton
longer to decompress like 4\x the old boot time for
decompression".

This patch also fixes a issue with the WNDR4700's initramfs
image getting to big and causing the following u-boot crash
during the decompression:

"Uncompressing Multi-File Image ... Error: inflate() returned -5
out-of-mem or overwrite error - must RESET board to recover"

This patch fixes both issues by reverting the MR24's initramfs
compression method back to gzip. And choosing to compress the
initramfs within the initramfs image as LZMA by default.

Cc: chrisrblake93@gmail.com
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-25 10:38:11 +02:00
Felix Fietkau
07577c5ebe tools: bring back genext2fs for apm821xx
This reverts commit 8c68c104ea.
It is used for apm821xx, which needs ext2 (not ext4) images for some
devices.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-23 19:37:20 +02:00
Felix Fietkau
39429b3d20 apm821xx: rework image build code for MyBook Live
Eliminate redundant mkfs calls, preparation for upcoming image build
core rework

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-22 12:49:57 +02:00
Felix Fietkau
3886644632 apm821xx: add DEVICE_DTS_DIR variable, remove redundant DEVICE_VARS entry
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-22 12:49:57 +02:00
Felix Fietkau
44c39d5812 apm821xx: add missing default profiles for subtargets
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-07-22 09:48:12 +02:00
Christian Lamparter
9e0fd1b52a apm821xx: add support for the Netgear Centria N900 WNDR4700/WNDR4720
This patch adds support for Netgear Centria N900 WNDR4700/WNDR4720

hardware highlights:

CPU:	AMCC PowerPC APM82181 Rev. E at 1000 MHz (PLB=166, OPB=83, EBC=83 MHz)
	Security support, Boot ROM Location NAND wo/ECC 2k page (8 bits)
	32 kB I-Cache 32 kB D-Cache, 256 kB L2-Cache, 32 kB OnChip Memory
Board:	AMCC APM82181 Evaluation Board, PCIE0/SATA1, 1*USB OTG
DRAM:	256 MB (ECC not enabled, 500 Mb/s, 32-bit, CL3)
NAND:	128 MiB (SLC, erase size: 128 KiB, page size: 2048, OOB size: 64)
ETH:	Atheros AR8327N Gigabit Switch (4 x LAN, 1 x WAN)
USB:	2 x 3.0 (Renesas uPD720202K8-711-BAA-A, firmware not included)
SATA:	1 x SATA-II 3.5" Hard Drive Bay for HDDs (DesignWare SATA).
WLAN1:	Atheros AR9380 5GHz 802.11an 3:3x3
WLAN2:	Atheros AR9581 2.4GHz 802.11bgn 3:3x3
SDCARD:	GL827L SD/MMC/MS Flash Card Reader (on internal dwc2 USB 2.0 host)
I2C:	GMT G781 (i2c-0 @ 0x4d - lm90 compatible temperature sensor)
	TC654    (i2c-0 @ 0x1b - Dual PWM fan Speed controller)

WARNING: The serial port needs a TTL/RS-232 v3.3 level converter!

INFO: Since this device only has a NAND chip. I opted for going with
root.squashfs in a UBI volume. There's no squashfs/jffs2 image.

This target produces three images.
  a. netgear factory image
     This image can be used to flash the Netgear WNDR4700 via the
     firmware recovery mechanism and the web admin site.

     The bootloader can be instructed to do a firmware recovery via the
     # fw_recovery
     command. It will start a tftp server and listen on 192.168.1.1
     (the ipaddr variable in u-boot) for incoming, binary tftp clients.
     The firmware recovery mechanism is also started if any of the flash
     content which contains the kernel, device-tree definitions or the
     (fake)rootfs fails to verify or load.

  b. sysupgrade.tar image for sysupgrade
     An sysupgrade will replace the entire current LEDE installation
     with a newer version. This does include the kernel and the ubi rootfs
     partition. The configuration can be carried over automatically as well
     if desired.

     simply copy the sysupgrade.tar to a the WNDR4700 running LEDE and run:

     root@lede:~# sysupgrade sysupgrade.tar

     and let it reboot.

     Note: The devicetree flash area is NOT updated. Until the devicetree
	   definition is stable, this can lead to all sorts of hardware
	   detection problems! So make sure, if you experience issues: try
	   the fw_recovery. If you are unsure whenever this affects you:
	   test if you can reproduce your issue with the initramfs method.
	   As it will always have up-to-date device-tree definitions.

  c. initramfs image for TFTP (for development and testing)
     To use the initramfs method, follow the following steps:
       1) Move the "lede-apm821xx-netgear-WNDR4700-initramfs-kernel.bin"
	  file to to the root directory of your TFTP server.

       2) rename it to wndr4700.bin

       3) On the WNDR4700 - Hit Enter during u-boot and insert:
	  # tftp 400000 wndr4700.bin; run addtty; bootm 400000 -

     This will boot the LEDE image.

     Note: The default tftp server is 192.168.1.7, if you want to change it:
     # setenv serverip 192.168.8.7;

     Note2: The default address for the WNDR4700 is 192.168.1.1:
     # setenv ipaddr 192.168.8.8;

     Note: Connect you tftp server on the last LAN port (not the WAN)

Note: The firmware for the USB 3.0 Host chip is not included anymore.
Therefore the two USB 3.0 ports will not work without the
uPD7070x-firmware package installed.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-22 09:48:12 +02:00
Christian Lamparter
47eeb9f857 apm821xx: lm90 add thermal sensor interface support for device tree
From 912-hwmon-lm90-expose-to-thermal-fw-via-DT.patch:
"This patch adds to lm90 temperature sensor the possibility
to expose itself as thermal zone device, registered on the
thermal framework.

The thermal zone is built only if a device tree node
describing a thermal zone for this sensor is present
inside the lm90 DT node. Otherwise, the driver behavior
will be the same."

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-22 09:48:12 +02:00
Christian Lamparter
b46e2a6d95 apm821xx: tc654: add driver for Microchip TC654/TC655 PWM fan controllers
This patch adds a hwmon driver for the Microchip TC654 and TC655
Dual SMBus PWM Fan Speed Controllers with Fan Fault detection.

The chip is described in the DS2001734C Spec Document from Microchip.
It supports:
	- Shared PWM Fan Drive for two fans
	- Provides RPM
	- automatic PWM controller (needs additional
	  NTC/PTC Thermistors.)
	- Overtemperature alarm (when using NTC/PTC
	  Thermistors)

The TC654 is used by the Netgear WNDR47X0 to control its
system fan.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-22 09:48:12 +02:00
Christian Lamparter
dc7efaefb5 apm821xx: add support for the Western Digital MyBook Live Series
Hardware Highlights:

This patch adds support for Western Digital MyBook Live Series:
CPU: AMCC PowerPC  UNKNOWN (PVR=12c41c83) at 800 MHz (PLB=200, OPB=100, EBC=100 MHz)
     32 kB I-Cache 32 kB D-Cache, 256 kB L2-Cache, 32 kB OnChip Memory
Board: Apollo-3G - APM82181 Board, 1*SATA
DRAM:  256 MB (2x NT5TU64M16GG-AC)
FLASH: 512 kB (SST 39VF040)
Ethernet: 1xRGMII - 1 Gbit - Broadcom PHY BCM54610

WARNING: The serial port needs a TTL/RS-232 v3.3 level converter!

The MyBook Live Duo additionally features a 1x USB 2.0 host port
and can support a second hard-drive.

This target produces two images for a target.
 1. ext4 image
    The extracted/raw image can be directly installed on
    the internal HDD via "dd if=img.ext4 of=/dev/sdX".

    This can either be done in place with the stock MyBook Live
    firmware via ssh. Or by removing the HDD and writing the image
    with a different PC.

    The the compressed images are useful for sysupgrade.

 2. recovery.tar image for TFTP and Serial.

    extract the recovery.tar to a TFTP server directory.

    On the MyBook Live (Duo) serial port - Hit Enter during u-boot and insert:
    # setenv serverip 192.168.1.254; setenv ipaddr 192.168.1.1; run net_self

    Where 192.168.1.254 is your TFTP server.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-22 09:48:12 +02:00
Christian Lamparter
d37d16488c apm821xx: sata_dwc_460ex: backport fixes and cleanups from 4.7
This patch fixes the sata_dwc_460ex SATA driver which is used
by the SATA controllers in the MyBook Live Series and WNDR4700.

The code was backported from the upstream kernel.
It can be dropped completely on 4.7+.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-22 09:48:12 +02:00
Christian Lamparter
ea91ee13a7 apm821xx: dw_dmac: backport fixes and cleanups from 4.7
This patch fixes the dw_dmac dma engine which is used
by the SATA controllers in the MyBook Live Series and WNDR4700.

The code was backported from the upstream kernel.
It can be dropped completely on 4.7+.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2016-07-22 09:48:12 +02:00
Chris Blake
a57d6e2d47 apm821xx: add support for the Cisco Meraki MR24
This patch adds support for the Cisco Meraki MR24 Access point
to the apm821xx target.

Board:		MR24 - Meraki MR24 Cloud Managed Access Point
CPU:		APM82181 SoC 800 MHz (PLB=200 OPB=100 EBC=100)
Flash size:	32MiB
RAM Size:	128MiB
Wireless:	Atheros AR9380 5.0GHz + Atheros AR9380 2.4GHz
Ethernet ports:	1x Gigabit Atheros AR8035

WARNING: The serial port needs a TTL/RS-232 v3.3 level converter!

For flashing instructions, visit:
<https://github.com/riptidewave93/Openwrt-MR24/blob/master/README.md#flashing>

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
2016-07-22 09:48:12 +02:00
Chris Blake
3827ce2c3d apm821xx: add support for the apm821xx device target
This adds a new target for PowerPC APM82181 and APM82161
(464-based) boards, as well as adds support for the booke-wdt
watchdog package.

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
2016-07-22 09:48:12 +02:00