Commit Graph

61 Commits (16d6a63f857a4e9eeb1f173e964264d8a06e65eb)

Author SHA1 Message Date
Mathias Kresin 0b62fe5ed8 lantiq: complete AVM FRITZ!Box 3370 support
Rename the image and use a compatible string which indicates that only
hardware revision 2 and higher is supported.

It allows to use the wireless LED, as HWRev 1 uses GPIO#39 for the
wireless LED and starting with HWRev 2 GPIO#35 is used for the wireless
LED and GPIO#39 for IFX_GPIO_MODULE_EXTPHY_MDIO.

The HWREV can be checked by connecting to the fritzbox right after power
on via ftp:

  ftp> quote GETENV HWSubRevision

Within the same HW revision 5 of the Fritz!Box 3370 different NAND flash
chips are used. Usually it isn't a big deal but depending on the used
NAND flash chip, the ECC calculation is done different (and incompatible
of course).

Boards with a Micron MT29F1G08ABADA NAND flash chip are using the NAND
chip to calculate the ECC (on-die). Boards with a Hynix HY27UF081G2M NAND
flash chip are doing the ECC calculation in software.

Supporting both with a single DTS isn't possible. It might be possible
to add a patch selecting the ECC mode dynamicaly based on the found NAND
flash chip. But such a patch has no chance to get accepted upstream and
most likely need to be touched with every kernel update.

Instead two images are created. One for Micron NAND flash chip and one
for Hynix NAND flash chip. So far no pattern is known to identify the
used flash chip without opening the box.

Add the power off GPIO. At least EVA version 2186 sets/keeps the GPIO as
input, which will cause a reboot 30sec after power on. For boards with
EVA version 2186 the installation is tricky as it has to be finished
within the 30sec time frame.

The EVA version can be checked by connecting to the fritzbox right after
power on via ftp:

  ftp> quote GETENV urlader-version

The ath9k eeprom/caldata is at a different and offset and stored in
reverse order (from the last byte to the beginning) on the flash.
Reverse the bits to bring the data into the format expected by the
ath9k driver.

Since the ath9k eeprom is stored in reverse order on flash, we can not
use the mac address from the on flash eeprom. Get the MAC address from
the tffs instead.

Within the same HW revision 5 of the Fritz!Box 3370 both version of the
vr9 SoC are used. During preparation of kernel 4.14 support, all
devicetree source files were changed to load the vr9 v1.1 and vr9 v1.2
gphy firmware, which fixed the embedded phys for boards using the
version 1.2 of the vr9 SoC.

While at it, add a trigger to make use of the LAN LED. Setup the
build-in switch and add a hint for LuCI two show the ports in order
matching the labels on the case

Add support for the second USB port and provide the volatage GPIOs. Use
GPIO#21 as PCIe reset pin. The lan led is connected to GPIO#38.

Name the rootfs partition ubi and remove the mtd/rootfs related kernel
bootargs to use the OpenWrt autoprobing based on the partition name.

Enable sysupgrade support to allow an upgrade from a running system.
Since sysupgrade wasn't supported till now, drop image build code which
was added to allow a sysupgrade from earlier OpenWrt versions.

Build images that allow an (initial) installation via EVA bootloader.

To install OpenWrt via Eva bootloader, within the first seconds after
power on a ftp connection need to be established to the FRITZ!Box at
192.168.178.1 and the the following ftp commands need to be run:

  ftp> quote USER adam2
  ftp> quote PASS adam2
  ftp> binary
  ftp> debug
  ftp> passive
  ftp> quote SETENV linux_fs_start 0
  ftp> quote MEDIA FLSH
  ftp> put /path/to/openwrt-lantiq-xrx200-FRITZ3370-eva-kernel.bin mtd1
  ftp> put /path/to/openwrt-lantiq-xrx200-FRITZ3370-eva-filesystem.bin mtd0

Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: Mathias Kresin <dev@kresin.me>
6 years ago
Mathias Kresin 188328111b treewide: move nand_do_upgrade call to platform_do_upgrade
Calling nand_do_upgrade() from platform_pre_upgrade() was deprecated
with 30f61a34b4 ("base-files: always use staged sysupgrade").

Update the platform upgrade code to use platform_do_upgrade() for NAND
images as well.

Signed-off-by: Mathias Kresin <dev@kresin.me>
6 years ago
Mathias Kresin c4ac02ffca treewide: remove obsolete sysupgrade watchdog kill
The watchdog kill command was meant for busybox watchdog. Busybox watchdog
was replaced by the procd watchdog mid 2013 with commit df7ce9301a
("busybox: disable the watchdog utility by default"), which makes the kill
command obsolete since quite some time.

Signed-off-by: Mathias Kresin <dev@kresin.me>
6 years ago
Martin Schiller 94952636e7 lantiq: remove DSL_ChipSetHWVersion from status information
The value DSL_ChipSetHWVersion is fetched from the dsl frontend
via the dsl_control service, but not really provided by the dsl
frontend firmware and for now always "UNKNOWN".

The lantiq support told us that this information wouldn't be
provided in the foreseeable future, so let's remove this
useless "UNKNOWN" information.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
7 years ago
Mathias Kresin 7f68bd8119 lantiq: use the generic board detect
Drop the target specific detection function in favour of the generic
one provided by base-files.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Mathias Kresin 26dc65b126 lantiq: remove the former board name from device tree model
Remove the former used board name from the device model property and
use the model name as it is.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Mathias Kresin 63d7f7fc92 lantiq: use the compatible string as board name
Use the first compatible string as board name in userspace. Add the new
board name as well as the former used board name to the image metadata
to keep compatibilty with already deployed installations.

Don't add the former used boardname for boards which exists only in
master or evaluation boards.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Christian Lamparter da6fdce365 base-files: unify get_dt_led helper function
Lantiq and IPQ806X (which includes IPQ40XX) both define the
same custom function {ipq806x|lantiq}_get_dt_led.

This patch moves the function into the base-file package at
lib/functions/leds.sh to make it more accessible for other
targets as well.

Cc: Mathias Kresin <dev@kresin.me>
Cc: John Crispin <john@phrozen.org>
Cc: Hannu Nyman <hannu.nyman@iki.fi>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
7 years ago
Mathias Kresin ac3e05c5d7 treewide: populate boardname and model earlier
For targets using the generic board detection and board specific
settings in diag.sh, the board name is still unset at the time the
set_state() provided by diag.sh is called by 10_indicate_preinit.

Change the execution order to ensure the boardname is populated before
required the first time. Do the target specific board detection as
early as possible, directly followed by the generic one to allow a
seamless switch to the generic function for populating /tmp/sysinfo/.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Helge Mader 63a20c95fd lantiq: modified lantiq_dsl.sh status output of latency
Signed-off-by: Helge Mader <ma@dev.tdt.de>
7 years ago
Helge Mader 666dd85b36 lantiq: fix lantiq_dsl.sh status and lucistat output
Signed-off-by: Helge Mader <ma@dev.tdt.de>
7 years ago
Mathias Kresin 822ee54544 treewide: fix device tree path in scripts
The device tree is at /proc/device-tree/ without a base subdir.

Fixes: da472e5b30 ("treewide: access device tree from userspace via /proc/")

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Mathias Kresin da472e5b30 treewide: access device tree from userspace via /proc/
Access the device tree via /proc/device-tree/ is the documented way to
access the properties. Everything else might not work in future.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Felix Fietkau fd93f81fd8 lantiq: remove lantiq_board_model, it is unused
Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years ago
Felix Fietkau 7e798dab56 lantiq: remove lantiq_board_name, use the generic function instead
Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years ago
Felix Fietkau aa95d6cd20 lantiq: move lantiq_board_detect() to 03_preinit_board.sh
It is only used there

Signed-off-by: Felix Fietkau <nbd@nbd.name>
7 years ago
Mathias Kresin 044a4eafd5 lantiq: introduce lantiq_is_vdsl_system
Move the code to check if the current system is a system with vdsl
support to a dedicate function to make it reusable.

Signed-off-by: Mathias Kresin <dev@kresin.me>
7 years ago
Felix Fietkau 16adf49620 lantiq: remove device specific sysupgrade image checks
Replaced by image metadata

Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 years ago
Felix Fietkau be296745f8 lantiq: append metadata to images
Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 years ago
Mathias Kresin 0547b3ca64 lantiq: fix lantiq-dsl output spam
In case the adsl/vdsl service is disabled intentional, the output is
cluttered with the following message multiple times if the status of
the dsl line is queried:

  killall: vdsl_cpe_control: no process killed

If the dsl line status is queried by LuCI, the logfile is spammed with
the message.

Fix the issue by using killall in quite mode. In quite mode killall
still returns a non-zero value if the to be killed process can not be
found so that existing logic based on the return value still works.

Signed-off-by: Mathias Kresin <dev@kresin.me>
8 years ago
Mathias Kresin e07c80dfc8 lantiq: use aliases device tree node for leds
The chosen node is clearly the wrong place for aliases.

Signed-off-by: Mathias Kresin <dev@kresin.me>
8 years ago
Mathias Kresin 8b639410d1 lantiq: cleanup led handling functions
Use a more generic name for the lantiq_get_dt_led_chosen function.

Drop the lantiq_is_dt_led_chosen function. The lantiq_get_dt_led
function can be used to achieve the same.

Signed-off-by: Mathias Kresin <dev@kresin.me>
8 years ago
Mathias Kresin f080cfab72 lantiq: fix network in failsafe
So far the network in failsafe is setup only for one board. Use the
eth0 interface as lan interface for all boards for now.

If a board has its lan interface(s) on another eth, a special
handling based on the board name can be added.

Signed-off-by: Mathias Kresin <dev@kresin.me>
8 years ago
John Crispin d5143a49b7 lantiq: add AVM image mageic to sysupgrade script
Signed-off-by: John Crispin <john@phrozen.org>
8 years ago
John Crispin 0039bc665c lantiq-dsl: add missing blank in dsl output
blank inserted before ACTATP

Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>

SVN-Revision: 49137
8 years ago
John Crispin c701c3ce77 lantiq-dsl: bugfix latency values swapped for lucistat
swapped wrong latency output

Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>

SVN-Revision: 49136
8 years ago
John Crispin 7beb53b1a5 lantiq-dsl: bugfix db negative sign after comma
If db is negative minus sign was shown after comma

Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>

SVN-Revision: 49135
8 years ago
Felix Fietkau dc3a7131a9 lantiq: print profile name in dsl lucistat
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 48949
8 years ago
John Crispin 48f82b53d0 use "-gt" instead of ">" with [ in /lib/functions/lantiq_dsl.sh
Avoids inadvertent file creation when executing
`/etc/init.d/dsl_control status`.

Signed-off-by: Jonathan A. Kollasch <jakllsch@kollasch.net>

SVN-Revision: 48700
9 years ago
John Crispin a9896bf106 lantiq: convert vendorid into human readable form
Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 48046
9 years ago
John Crispin 436fdee272 lantiq: add the current profile to the stats output
Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 48045
9 years ago
John Crispin d7a5d66ea1 lantiq: use default leds defined in DTS
Remove all now double defined leds from the led board file. Use pppoe
as default for all broadband connections, since it's the default in
OpenWrt now.

Rename the the wifi leds to make sure, the not applicable default
values get overwritten.

Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 48038
9 years ago
Felix Fietkau ec1b121769 lantiq: add VDSL2 vectoring status information
Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 47785
9 years ago
John Crispin e1d585d99f lantiq: Synchronize access to the DSL command pipe
Whenever two processes were executing different commands at the same
time then one of the commands sometimes got the response of the other
command.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 47213
9 years ago
John Crispin 2fc473cf3f lantiq: bugfix wrong non pre-emptive crc errors output
This patch fixes a wrong non pre-emptive crc errors output of
dsl_control.sh status.

Signed-off-by: Luca Debernardi <luca.debernardi@gmail.com>

SVN-Revision: 47172
9 years ago
John Crispin 2210e821e1 lantiq: bugfix luci lantiq_dsl status
Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>
Signed-off-by: Helge Mader <hmader@tdt.de>
Reported-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 47152
9 years ago
John Crispin cea7c66ef8 lantiq: bugfix uninitialized variables
Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>
Reported-by: Sylwester Petela <sscapi@gmail.com>

SVN-Revision: 47127
9 years ago
Rafał Miłecki 90e1b84f15 lantiq: update list on NAND devices in platform_pre_upgrade
Meanwhile BTHOMEHUBV5A board was added.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46941
9 years ago
John Crispin 57c8708d64 lantiq: add platform_pre_upgrade for sysupgrade
As explained in recent sysupgrade/nand.sh commits, current NAND
sysupgrade is a bit misleading because of nand_do_platform_check
behavior. It leaves a special mark in /tmp/sysupgrade-nand-path
triggering some diffent code path in nand_upgrade_stage1.

The plan is to have the check function only check the image and nothing
else. Then platform code (platform_pre_upgrade) should trigger NAND
specific upgrade path. This is what this patch implements.

Please note that because of current nand_upgrade_stage1 implementation
this patch doesn't change any behaior yet. It only prepares lantiq
target for changing nand_do_platform_check (it will be possible after
preparing all other targets as well).

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46939
9 years ago
John Crispin 06a180d027 lantiq: get more status information from xDSL
Signed-off-by: Florian Eckert <Eckert.Florian@googlemail.com>
Signed-off-by: Helge Mader <hmader@tdt.de>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: Andre Heider <a.heider@gmail.com>

SVN-Revision: 46917
9 years ago
John Crispin 6bdd209f15 lantiq: Add support for the BT Home Hub 5A
u-boot support depends on the next "upstream" version ([0]) from
Daniel Schwierzeck.
Since the installation process is quite complicated a "how to" was
added to the wiki: [1]

[0] https://github.com/danielschwierzeck/u-boot-lantiq/tree/openwrt/v2014.01-next
[1] http://wiki.openwrt.org/toh/bt/homehub_v5a

V2: Use the correct PCI interrupt (fixes 2.4GHz wifi)
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 46223
9 years ago
John Crispin 1c0c1ebc6b lantiq: td-w8970: fix failsafe mode
Fix failsafe mode for TD-W8970, register interface for preinit.

Signed-off-by: Cezary Jackiewicz <cezary.jackiewicz@gmail.com>

SVN-Revision: 44353
10 years ago
John Crispin 7f77870c19 Add profile and userspace for P2812HNUF1/3, switch from UBI_GLUEBI to UBI_BLOCK
Add profile and userspace for P2812HNUF1/3, switch from UBI_GLUEBI to UBI_BLOCK

Signed-off-by: Sylwester Petela <sscapi@gmail.com>

SVN-Revision: 43987
10 years ago
John Crispin c9a390f9e1 lantiq: BT Home Hub 3A - userspace
BT Home Hub 3A - userspace

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>

SVN-Revision: 43879
10 years ago
John Crispin 9762c54914 lantiq_dsl.sh: properly detect vdsl_cpe_control and add missing quotes
lantiq_dsl.sh didn't work with VDSL chipsets for now, fix that by
detecting whether vdsl_cpe_control or dsl_cpe_control should be used.
Also add missing quotes around shell string comparision.

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

SVN-Revision: 43101
10 years ago
John Crispin c8bde9da4a lantiq: detect board in preinit state
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 41638
10 years ago
John Crispin 332b4d556f lantiq: generate /tmp/sysinfo/lantiq_board_name if missing
Run lantiq_board_detect from lantiq_board_name and lantiq_board_model.

This was the one thing missing from r41474 for sysupgrade board
detection to work properly.

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>

SVN-Revision: 41567
10 years ago
John Crispin 03fef9a2d2 lantiq: enable SysupgradeNAND for BTHOMEHUBV2B
Enables SysupgradeNAND for BTHOMEHUBV2B.

Depends on the following patches:
http://patchwork.openwrt.org/patch/5817/
http://patchwork.openwrt.org/patch/5848/
http://patchwork.openwrt.org/patch/5851/

Many thanks everyone for your help the last couple of days.

Ben

Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>

SVN-Revision: 41566
10 years ago
John Crispin e2915c6981 lantiq: add support for /tmp/sysinfo
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 41472
10 years ago
John Crispin f933a741a9 target/linux/*/base-files/lib/upgrade/platform.sh - wrong check for ARGC
ARGC is a 'C-ism', but not known/valid in shell-syntax - insert the correct
var $# (=number of args) here. under normal conditions this had no impact,
but we should at least correct it. the error was observable like this:

root@box:~ [ -e "/etc/functions.sh" ] && . /etc/functions.sh
root@box:~ [ -e "/lib/functions.sh" ] && . /lib/functions.sh
root@box:~ . /lib/upgrade/platform.sh
root@box:~ . /lib/upgrade/common.sh
root@box:~ platform_check_image /tmp/myfirmware.bin
ash: bad number
root@box:~ echo $?
0

Signed-off-by: Bastian Bittorf <bittorf@bluebottle.com>

SVN-Revision: 40915
10 years ago