Piotr Dymacz [Fri, 11 Aug 2017 11:39:09 +0000 (13:39 +0200)]
Add 'gpio' command and enable it by default
This adds 'gpio' command, which allows to manipulate GPIO subsystem:
- change direction
- change output value
- read input value (useful for scripts)
- enable/disable JTAG
- manage special/dedicated GPIO functions
- list current configuration and available functions
For QCA95xx series, this allows full management of GPIO output and
input functionalities (mux). For AR933x, due to its capabilities,
function management is more simple and allows only enabling or
disabling selected bits in GPIO_FUNCTION_{1,2} registers.
Example commands:
- list GPIO configuration: gpio l
- list available functions: gpio l f
- set GPIO10 output to high: gpio s 10
- get GPIO10 input value: gpio i 10
Piotr Dymacz [Sun, 6 Aug 2017 20:59:56 +0000 (22:59 +0200)]
Add simple 'true' command, useful for while loops
Piotr Dymacz [Sun, 6 Aug 2017 17:59:46 +0000 (19:59 +0200)]
Keep TP-Link TL-WR902AC v1 power LED always on
All LEDs in TL-WR902AC v1 are controlled by GPIOs and there is no usual
"power" LED, connected to the VCC. This makes one of the LEDs (marked as
"power" on the enclosure) always turned on.
Piotr Dymacz [Wed, 19 Jul 2017 21:57:00 +0000 (23:57 +0200)]
Include JTAG GPIO masks in QCA common header
Piotr Dymacz [Wed, 19 Jul 2017 21:43:26 +0000 (23:43 +0200)]
Add QCA956x GPIO count
Piotr Dymacz [Sun, 16 Jul 2017 17:17:51 +0000 (19:17 +0200)]
Add more sanity checks of GPIO masks in qca_gpio_init.S
Piotr Dymacz [Sun, 16 Jul 2017 16:49:54 +0000 (18:49 +0200)]
Fix QCA955x low level GPIO_OE register setup
Both AR933x and QCA955x WiSoC series mark output GPIOs in GPIO_OE
register with bit set (and reset for inputs).
Piotr Dymacz [Tue, 11 Jul 2017 16:22:40 +0000 (18:22 +0200)]
Indicate enabled web recovery mode with pulsing LEDs
Piotr Dymacz [Tue, 11 Jul 2017 11:29:45 +0000 (13:29 +0200)]
Don't use JTAG related pins as regular GPIOs if JTAG is enabled
This allows to build RAM dedicated image or regular image with enabled
JTAG interface without changing predefined GPIO mask.
Piotr Dymacz [Mon, 10 Jul 2017 16:39:25 +0000 (18:39 +0200)]
Start web recovery mode if bootcmd execute fails
Piotr Dymacz [Sun, 9 Jul 2017 20:08:15 +0000 (22:08 +0200)]
In case of missing recovery script in env, copy it from default one
In case of update from some old version on device with correct env in
FLASH, recovery script (moved to env variable 'recovery' in
4f11127)
isn't available which results in missing 'button recovery mode'.
This fixes backward compatibility and ensures that the 'recovery'
variable is available in env - in case if it's not available in saved
env, value is copied from default env (the one embedded with image).
This fixes #154 and closes #131
Piotr Dymacz [Sun, 9 Jul 2017 15:18:51 +0000 (17:18 +0200)]
Always use printf_wrn() for printing warnings
Piotr Dymacz [Sat, 8 Jul 2017 20:26:33 +0000 (22:26 +0200)]
README: drop env size from supported devices table
Piotr Dymacz [Sat, 8 Jul 2017 07:21:11 +0000 (09:21 +0200)]
Really fix u-boot/include/configs/db12x.h
Piotr Dymacz [Sat, 8 Jul 2017 07:20:13 +0000 (09:20 +0200)]
Fix u-boot/include/configs/db12x.h
Piotr Dymacz [Fri, 7 Jul 2017 18:24:39 +0000 (20:24 +0200)]
Fix compiler warning in cmd_custom.c/do_default_env()
Piotr Dymacz [Fri, 7 Jul 2017 18:15:03 +0000 (20:15 +0200)]
Trim TL-MR3420 v3 original U-Boot file to 64 KB
yoAeroA00 [Wed, 14 Jun 2017 15:43:08 +0000 (21:13 +0530)]
Add support for TP-Link TL-MR3420 v3 (QCA9531 based)
Marty Plummer [Sun, 16 Apr 2017 07:36:04 +0000 (02:36 -0500)]
Add support for EnGenius ENS202EXT (AR9341 based)
Signed-off-by: Marty Plummer <ntzrmtthihu777@gmail.com>
Piotr Dymacz [Thu, 6 Jul 2017 21:07:36 +0000 (23:07 +0200)]
Add support for TP-Link TL-WR902AC v1 (QCA9531 based)
Piotr Dymacz [Sun, 18 Jun 2017 17:41:11 +0000 (19:41 +0200)]
Add support for CreatComm Technology D3321 (AR9331 based)
Piotr Dymacz [Sat, 17 Jun 2017 19:30:09 +0000 (21:30 +0200)]
host_util: add helper script for U-Boot flashing over serial
This script helps with flashing U-Boot image over serial line (kermit
protocol, 'loadb' command) which can be useful on devices with only
serial interface available. Script requires C-Kermit and includes some
basic checks (start it without any argument to see short usage help).
Tested on C-Kermit 9.0.302
Example run:
$ host_util/u-boot-serial-flash bin/mr3020.bin - - - - -
[INFO]: File to send: 'bin/mr3020.bin'
[INFO]: Serial device: '/dev/ttyUSB0'
[INFO]: Baudrate: '115200'
[INFO]: CLI prompt: 'u-boot> '
[INFO]: Wait string: 'Hit any key to stop booting'
[INFO]: File size: '125952'
[INFO]: Backup size: '131072' (rounded up to 64K block)
[INFO]: Erase size: '0x020000' (hex)
>>>>>> Do you want to continue (type 'y' to continue)? y
[INFO]: Power on device now...
[INFO]: Backuping data in RAM...
[INFO]: Sending command: 'cp.b 0x9f000000 0x80800000 0x020000'
[INFO]: Sending command: 'loadb 0x80800000'
[INFO]: Sending selected file to RAM at 0x80800000 (this may take a while)...
>>>>>> File sent successfully, do you want to write it to FLASH (type 'y' to continue)? y
[INFO]: Erasing FLASH, copying data from RAM to FLASH...
[INFO]: Sending command: 'erase 0x9f000000 +0x020000 && cp.b 0x80800000 0x9f000000 0x020000'
[ OK ]: Done!
>>>>>> Reset board now or switch to U-Boot CLI (type 'y' for reset)? y
[INFO]: Resetting the board...
[INFO]: Sending command: 'reset'
[ OK ]: U-Boot flashed successfully!
>>>>>> Exit now or switch to U-Boot CLI (type 'y' to exit)? y
Piotr Dymacz [Fri, 16 Jun 2017 13:13:40 +0000 (15:13 +0200)]
Set also fileaddr env variable after successful load{b,s,y}
Piotr Dymacz [Fri, 16 Jun 2017 13:07:28 +0000 (15:07 +0200)]
Always prepend file{addr,size} env variables values with 0x
Piotr Dymacz [Fri, 16 Jun 2017 12:48:02 +0000 (14:48 +0200)]
Fix code style and indentation in u-boot/common/cmd_load.c
Piotr Dymacz [Fri, 16 Jun 2017 11:45:33 +0000 (13:45 +0200)]
Fix {load,save}_baudrate value in saves/load{b,s,y} commands
Piotr Dymacz [Wed, 14 Jun 2017 21:19:01 +0000 (23:19 +0200)]
target_util: improve/rework u-boot-upgrade script
This improves u-boot-upgrade target script:
- fix all warnings/errors pointed out by shellcheck
- generate expected checksum file from md5sums list if it doesn't exist
- check if target mtd device is writable before writing to it
- download and install kmod-mtd-rw if target mtd device is locked for rw
- don't show fatal error if target mtd device content wasn't changed
This closes #155
Piotr Dymacz [Tue, 13 Jun 2017 20:53:04 +0000 (22:53 +0200)]
Add new custom command 'rstbywdt' for last reset reason check
Add a small helper command 'rstbywdt' which returns true if the last
system reset was caused by the SOC watchdog.
It can be used for example to boot different kernel in case of reset
caused by watchdog:
if rstbywdt; then bootm 0x9FE80000; else bootm 0x9F050000; fi
Also, show a warning at boot if last reset was caused by watchodg.
Piotr Dymacz [Tue, 13 Jun 2017 20:36:55 +0000 (22:36 +0200)]
Fix upgrade scripts in u-boot/include/env_scripts.h
As we have now 'tftpboot' and 'tftpput' commands, 'tftp' shortcut
doesn't work (isn't recognized as tftpboot). Use 'tftpb' instead.
Piotr Dymacz [Tue, 13 Jun 2017 19:55:54 +0000 (21:55 +0200)]
Add watchdog timer control register bit fields for QCA
Piotr Dymacz [Tue, 13 Jun 2017 18:25:20 +0000 (20:25 +0200)]
Fix DRAM type detection on Dragino 2
Dragino 2 needs custom DRAM type detection as it doesn't follow general
convention. MEM_TYPE value in BOOT_STRAP register isn't set correctly
on this board because only GPIO28 is used for DRAM type detection.
This fixes DRAM type detection on new Dragino 2 version which is based
on Dragino HE module, with DDR2 memory.
Piotr Dymacz [Tue, 9 May 2017 12:32:20 +0000 (14:32 +0200)]
README: include GigaDevice chips in list of supported FLASH
Piotr Dymacz [Tue, 2 May 2017 19:13:11 +0000 (21:13 +0200)]
Add original U-Boot image for TP-Link TL-WR842N/D v3
Piotr Dymacz [Tue, 2 May 2017 19:08:55 +0000 (21:08 +0200)]
Add support for TP-Link TL-WR842N/D v3 (QCA9531 based)
This closes #143.
Piotr Dymacz [Tue, 2 May 2017 15:50:07 +0000 (17:50 +0200)]
Add support for GigaDevice SPI NOR chips
Piotr Dymacz [Tue, 2 May 2017 15:43:05 +0000 (17:43 +0200)]
Fix indentation in include/flash.h
Piotr Dymacz [Tue, 2 May 2017 15:08:46 +0000 (17:08 +0200)]
Drop unused file: include/hornet_soc.h
Piotr Dymacz [Mon, 24 Apr 2017 19:11:52 +0000 (21:11 +0200)]
Restore workaround for AR9331 hang on soft reset
This workaround was already included in
ff7a030 and then removed in
d9ba54f. As it turned out, it's critical and required.
Tests showed that on some devices with AR9331, CPU PLL doesn't lock
after a soft reset with AHB clock divider lower than 4. In original code
from Qualcomm Atheros SDK, AHB clock divider is set to 4 before CPU PLL
is powered up. Then, when PLL update is done, divider is set to target
value.
Tests were made on multiple devices, with DDR1, DDR2 and different
AR9331 chip revisions: -AL1A, -AL2A and -AL3A. Unfortunately, the
problem exists in every configuration type, isn't related with chip
revision and is reproductible.
Without this workaround, some devices hangs at waiting for CPU PLL
update process to finish and can be recovered from this state only
with a hard reset.
Piotr Dymacz [Sun, 23 Apr 2017 16:00:35 +0000 (18:00 +0200)]
Use -fno-delete-null-pointer-checks for optimized build
This fixes alternative memory test (mtest with CFG_ALT_MEMTEST).
Piotr Dymacz [Wed, 12 Apr 2017 21:22:43 +0000 (23:22 +0200)]
Update README
Piotr Dymacz [Wed, 12 Apr 2017 21:13:38 +0000 (23:13 +0200)]
Set lsdk_kernel env variable to 1 for all TP-Link devices
Piotr Dymacz [Wed, 12 Apr 2017 21:05:13 +0000 (23:05 +0200)]
Fix loading kernel from official vendor firmware
As it turned out, some old kernel versions from Atheros LSDK expect
different arguments passed from bootloader: RAM size (in bytes) in 3rd
parameter and FLASH size (in MB) in 4th.
Most of TP-Link firmware also contains kernel which follows this
'broken' approach.
To make fix more universal, load kernel with different parameters and
their values based on 'lsdk_kernel' environment variable. If it's > 0,
RAM and FLASH size will be passed to satisfy LSDK based kernel
requirements.
Piotr Dymacz [Wed, 12 Apr 2017 19:59:08 +0000 (21:59 +0200)]
Code cleanups in mips_linux.c
Piotr Dymacz [Tue, 11 Apr 2017 18:17:25 +0000 (20:17 +0200)]
Enable optimization for size by default
This saves few kB in code size.
Tested on all supported SOCs (built with LEDE upstream toolchain).
Piotr Dymacz [Mon, 10 Apr 2017 18:48:48 +0000 (20:48 +0200)]
Fix 'maybe-uninitialized' warnings
Piotr Dymacz [Mon, 10 Apr 2017 14:19:06 +0000 (16:19 +0200)]
Fix and cleanup config.mk, use -mtune=34kc by default
Piotr Dymacz [Thu, 6 Apr 2017 18:10:03 +0000 (20:10 +0200)]
Add support for multikey autoboot stop string
This allows to define string (in environment variable 'bootstopkey')
used to interrupt autobooting process. It works in similar way as in
upstream U-Boot version.
If variable is not defined in environment, default approach (any key)
will be used. Variable can be also predefined during compilation with
CONFIG_AUTOBOOT_STOP_STR define.
This closes #136
Piotr Dymacz [Thu, 6 Apr 2017 10:32:50 +0000 (12:32 +0200)]
Drop support for CONFIG_AUTOBOOT_STOP_CHAR
Piotr Dymacz [Wed, 5 Apr 2017 22:06:16 +0000 (00:06 +0200)]
Run recovery script only if 'recovery' variable exists
This partially solves #131
Piotr Dymacz [Wed, 5 Apr 2017 21:46:50 +0000 (23:46 +0200)]
Fix and improve recovery script
- use itest for comparison
- don't loop longer than for 10 seconds
(in extreme cases that could result in endless loop)
- show that counter variable value is hex
- clear cnt variable at script end
- clear stop_boot variable before loop
Piotr Dymacz [Wed, 5 Apr 2017 21:35:03 +0000 (23:35 +0200)]
Comment out getenv_r, we don't use it now anyway
Piotr Dymacz [Wed, 5 Apr 2017 21:15:48 +0000 (23:15 +0200)]
Clear env vars used in recovery script before and after running it
Recovery script uses two variables: a button press time counter (cnt)
and a flag (stop_boot) used later to decide if booting process should be
interrupted.
Clear their values before and after running recovery script as they
could already exist in environment (could be accidentally saved).
Piotr Dymacz [Tue, 4 Apr 2017 20:18:00 +0000 (22:18 +0200)]
README: update toolchains links
This closes #144 and fixes #146.
Piotr Dymacz [Thu, 23 Feb 2017 09:15:42 +0000 (10:15 +0100)]
ap121.h: always try to boot from lower address first
Piotr Dymacz [Thu, 16 Feb 2017 10:44:36 +0000 (11:44 +0100)]
Fix code style and indentation in qca_pci.c
Piotr Dymacz [Sun, 12 Feb 2017 12:31:29 +0000 (13:31 +0100)]
Disable U-Boot env upgrade script for COMFAST devices
Piotr Dymacz [Sun, 12 Feb 2017 12:01:05 +0000 (13:01 +0100)]
Place device name before date and git info in filename
Piotr Dymacz [Sun, 12 Feb 2017 11:57:15 +0000 (12:57 +0100)]
Add original U-Boot image for P&W R602N/CPE505N
Piotr Dymacz [Sun, 12 Feb 2017 11:44:43 +0000 (12:44 +0100)]
Add original U-Boot image for TP-Link TL-WA850RE v2
Piotr Dymacz [Sun, 12 Feb 2017 11:18:21 +0000 (12:18 +0100)]
Disable more features for YunCore CPE870
Disable MAC related commands and upgrade scripts in environment.
This allows image to fit again in 64 KB limit.
Piotr Dymacz [Sun, 12 Feb 2017 11:00:01 +0000 (12:00 +0100)]
Make MAC related commands configurable
Piotr Dymacz [Sat, 11 Feb 2017 20:36:47 +0000 (21:36 +0100)]
Add support for TP-Link TL-WA850RE v2 (QCA9533 based)
Piotr Dymacz [Sat, 11 Feb 2017 20:12:05 +0000 (21:12 +0100)]
README: keep supported boards lists in alphabetical order
Piotr Dymacz [Sat, 11 Feb 2017 19:53:56 +0000 (20:53 +0100)]
Add support for P&W R602N and CPE505N (QCA9531 based)
Piotr Dymacz [Sat, 11 Feb 2017 19:39:56 +0000 (20:39 +0100)]
ap143.h: always try to boot from lower address first
Piotr Dymacz [Sat, 11 Feb 2017 17:51:39 +0000 (18:51 +0100)]
Fix Wallys DR531 bootargs
Piotr Dymacz [Sat, 11 Feb 2017 15:36:14 +0000 (16:36 +0100)]
Drop PL version of README
Piotr Dymacz [Mon, 6 Feb 2017 09:21:31 +0000 (10:21 +0100)]
Include git branch and hash in image filename
Piotr Dymacz [Mon, 6 Feb 2017 08:39:31 +0000 (09:39 +0100)]
Use U_BOOT_VERSION string in U-Boot image header name field
Piotr Dymacz [Sun, 5 Feb 2017 18:50:05 +0000 (19:50 +0100)]
Clean and fix up messy TFTP/RARP related code
Piotr Dymacz [Sun, 5 Feb 2017 15:49:19 +0000 (16:49 +0100)]
Backport tftpput command
This command can be used to backup whole or part of the FLASH content.
For example, to backup ART data (assuming it's stored in last 64 KB
sector in 16 MB FLASH) in 'art_backup.bin' file in TFTP server:
tftpp 0x9FFF0000 0x10000 art_backup.bin
Important notice: option negotiation mechanism must be enabled in
configuration of used TFTP server.
Piotr Dymacz [Sat, 31 Dec 2016 11:41:17 +0000 (12:41 +0100)]
Save some bytes with common printf error/warning functions
Piotr Dymacz [Fri, 23 Dec 2016 13:22:21 +0000 (14:22 +0100)]
Disable AR933x hang on boot workaround for RAM loadable version
Piotr Dymacz [Fri, 23 Dec 2016 10:57:49 +0000 (11:57 +0100)]
Fix TP-Link TL-WDR43x0 board name
Piotr Dymacz [Tue, 22 Nov 2016 20:17:30 +0000 (21:17 +0100)]
Add support for TP-Link TL-WR810N (QCA9531 based)
Piotr Dymacz [Sat, 19 Nov 2016 15:51:15 +0000 (16:51 +0100)]
Do not use REF clock divider higher than 2 on QCA95xx/AR934x
As tests showed, REF clock divider is not reliable with
values higher than 2. Final clock frequency is stable
between restarts, but its value is in range +/- 20-25%
in comparison to expected/calculated frequency.
Instead of using higher REF clock divider values, make
use of fractional part of the multiplier.
This fixes #128
Piotr Dymacz [Thu, 17 Nov 2016 19:50:59 +0000 (20:50 +0100)]
Cosmetic: adjust PLL header files for tab size of 8
Piotr Dymacz [Thu, 17 Nov 2016 12:33:46 +0000 (13:33 +0100)]
Add missing ART offset for supported COMFAST devices
In most devices, last sector is used for storing ART
data. It's true also for COMFAST devices, as it looks
that they have two copies of ART data, inside second
and last FLASH sector (named 'nvram' in OFW).
ART in second sector is (will be) used in OpenWrt/LEDE,
so we will also use it as default one.
Piotr Dymacz [Fri, 11 Nov 2016 18:56:05 +0000 (19:56 +0100)]
Add original U-Boot images for supported YunCore devices
Piotr Dymacz [Fri, 11 Nov 2016 18:33:57 +0000 (19:33 +0100)]
Add support for GL Innovations GL-AR150 (AR9331 based)
Piotr Dymacz [Fri, 11 Nov 2016 10:52:35 +0000 (11:52 +0100)]
Merge branch 'wr841n_v11_orig_bin' into dev
sudden6 [Sat, 15 Oct 2016 16:02:04 +0000 (18:02 +0200)]
Add stock U-Boot image for TP-Link TL-WR841N v11
Piotr Dymacz [Mon, 7 Nov 2016 21:57:47 +0000 (22:57 +0100)]
Allow loading kernel from rootfs+kernel and kernel+rootfs firmware images
Most of the boards with firmware based on official and old QC/A SDK use
rootfs+kernel firmware order. In OpenWrt/LEDE kernel+rootfs order is
prefered (better for growing size of kernel) and more common.
As we don't know what firmware user is using, make it working with both
type of images, with kernel in front or behind the rootfs.
With this change, there is no need to change 'bootcmd' variable when
switching from vendor firmware to OpenWrt/LEDE on YunCore AP90Q/CPE830.
Piotr Dymacz [Mon, 7 Nov 2016 21:40:54 +0000 (22:40 +0100)]
Add support for ALFA NETWORK Hornet-UB (AR9331 based)
This should also work with 16/64 MB version (-64 or x2),
models sold with plastic enclosure (AP121{,U,U-64}) and
rebranded Gargoyle Pocket Router v2.
Piotr Dymacz [Mon, 7 Nov 2016 21:25:39 +0000 (22:25 +0100)]
Cosmetic: fix board order in u-boot/include/configs/ap121.h
Piotr Dymacz [Mon, 7 Nov 2016 16:32:01 +0000 (17:32 +0100)]
Add support for YunCore CPE830 (QCA9531 based)
CPE830 is a clone of AP90Q, with different type of antenna (panel)
and additional 4 LEDs for WiFi signal level indication.
Piotr Dymacz [Wed, 28 Sep 2016 18:25:49 +0000 (20:25 +0200)]
Setup GPIOs available in CF-E320N v2 as inputs
J9 header pinout on Comfast CF-E320N v2 PCB:
1. GPIO14
2. GPIO12
3. GPIO11
4. GPIO16
5. VCC (I/O, 2,62 v)
6. GND
Setup available GPIOs as inputs by default.
This allows to use them later in Linux system.
Piotr Dymacz [Tue, 27 Sep 2016 08:29:25 +0000 (10:29 +0200)]
Add information in README that TL-WR841N/D v10 and v11 are also supported
Piotr Dymacz [Sun, 25 Sep 2016 21:22:54 +0000 (23:22 +0200)]
Add support for YunCore CPE870 (AR9341 based)
Piotr Dymacz [Sun, 25 Sep 2016 21:01:46 +0000 (23:01 +0200)]
Set/unset SRAM REQ ACK bit, based on CPU and AHB clocks in DRAM setup
Piotr Dymacz [Sun, 25 Sep 2016 20:48:18 +0000 (22:48 +0200)]
Fix DDR2 setup on AR934x and QCA95xx
Instead of set/unset a SEL_18 bit field in DDR_CTL_CONFIG register,
without touching values of rest of the fields, the code was writing
value 0x40 (bit 6 set) into register (and clearing other fields).
This bug was causing problems with DDR2 initialization at least on
AR934{1,2} with DDR2 memory type.
Piotr Dymacz [Sat, 24 Sep 2016 20:57:44 +0000 (22:57 +0200)]
Add information about ready snapshot images in both README
Piotr Dymacz [Sat, 24 Sep 2016 11:45:56 +0000 (13:45 +0200)]
Add support for TP-Link TL-WR841N/D v11 (v10 clone, different GPIO LED configuration)
Piotr Dymacz [Sat, 24 Sep 2016 11:32:37 +0000 (13:32 +0200)]
Add support for TP-Link TL-WR841N/D v10 (v9 clone, only higher CPU clock)
Piotr Dymacz [Sat, 24 Sep 2016 08:09:45 +0000 (10:09 +0200)]
Include GPL-2.0 license text
Maybe this will help some companies to understand that
this project is GPL2-licensed...
Piotr Dymacz [Fri, 23 Sep 2016 22:27:10 +0000 (00:27 +0200)]
Fix TP-Link TL-MR3040 GPIO definitions
Piotr Dymacz [Fri, 23 Sep 2016 20:22:15 +0000 (22:22 +0200)]
Always generate fsdata.c and rebuild httpd part
Piotr Dymacz [Fri, 23 Sep 2016 20:20:47 +0000 (22:20 +0200)]
Rework makefsdatac shell script
Piotr Dymacz [Fri, 23 Sep 2016 16:47:01 +0000 (18:47 +0200)]
Split Comfast CF-E520N and CF-E530N profiles, build separate images for them
Piotr Dymacz [Fri, 23 Sep 2016 16:40:20 +0000 (18:40 +0200)]
Split TP-Link TL-WA801NDv2 and TL-WA830REv2 profiles, build separate images for them