This project was moved to GitHub: github.com/pepe2k/u-boot_mod
Hello!
I made a modification of U-Boot for TP-Link with AR9331 SoC routers.
My modification is based on wr703n-uboot-with-web-failsafe project (big thanks for the author for this code!) but has some improvements and other modifications.
After I found wr703n-uboot-with-web-failsafe project, I decided to start from it and make it better. Most of my work was focused on web failsafe mode - I rebuild it and now it works with all browsers and allow to upload not only firmware but also the U-Boot and ART data.
Changelog:
Jun 19 2013:
fixed problem with booting in some cases on all supported models
support for TL-MR10U ver. 1.x (tested on ver. 1.0)
support fot TL-MR3220 ver. 2.x (tested on ver. 2.1)
support for TL-WR720N ver. 3 (only for Chinese version!)
support for new flash types/series: Macronix MX25L128 and SST 25VF064C
version for TL-WR740N v4 was tested also on TL-WR741ND ver. 4.2 (it's almost the same hardware)
Apr 22 2013
support for TL-WR740N ver. 4 (tested on ver. 4.23)
NetConsole
flash recognize by JEDEC ID (please, see README for full list)
returned to instruction 0xD8 for flash erasing (64 KiB block erase)
setmac command
web pages lifting
some bugs fixed
predefined overclocking profiles in code (please, see ap121.h)
Mar 29 2013
initial release
Modifications/changes:
faster boot up
removed unnecessary information from boot up sequence
flash chip is automatically recognized
eth interfaces MAC is now set from flash (no more "No valid address in Flash. Using fixed address")
setmac option - you can change MAC address stored in flash
automatic system boot can be now interrupted by any key (no more need to type "tpl")
you can run web server, U-Boot console or NetConsole by pressing the reset button (for ~3 sec. to run web mode, for ~5 sec. to get in U-Boot console or for ~7 sec. to start U-Boot NetConsole)
index.html (fw upgrade), art.html (ART upgrade), uboot.html (U-Boot upgrade)
overclocking possibilities
and other...
Supported flash chips (recognized automaticly by JEDEC ID):
4 MiB:
Spansion S25FL032P (4 MiB, JEDEC ID: 01 0215)*
Atmel AT25DF321 (4 MB, JEDEC ID: 1F 4700)
EON EN25Q32 (4 MB, JEDEC ID: 1C 3016)*
Micron M25P32 (4 MB, JEDEC ID: 20 2016)
Windbond W25Q32 (4 MB, JEDEC ID: EF 4016)
Macronix MX25L320 (4 MB, JEDEC ID: C2 2016)
8 MiB:
Spansion S25FL064P (8 MB, JEDEC ID: 01 0216)
Atmel AT25DF641 (8 MB, JEDEC ID: 1F 4800)
EON EN25Q64 (8 MB, JEDEC ID: 1C 3017)*
Micron M25P64 (8 MB, JEDEC ID: 20 2017)
Windbond W25Q64 (8 MB, JEDEC ID: EF 4017)*
Macronix MX25L640 (8 MB, JEDEC ID: C2 2017, C2 2617)
SST 25VF064C (8 MB, JEDEC ID: BF 254B)
16 MiB:
Winbond W25Q128 (16 MB, JEDEC ID: EF 4018)*
Macronix MX25L128 (16 MB, JEDEC ID: C2 2018, C2 2618)
* - tested
If you want to use other type, please contact with me or add your flash chip into ar7240_flash.c file and compile the code.
U-Boot NetConsole
You can use it instead of serial console. All communication is made over UDP protocol (port 6666). Example:
Web server
Example page (index.html for firmware upload):
I need to warn you - for now, in web upgrade mode, there isn't any data validation!
So, please be very careful with U-Boot upgrade, if you choose wrong image, your router won't boot again...
Bootlogs
Here is an example boot log from this U-Boot version:
*****************************************
* U-Boot 1.1.4 (Apr 22 2013) *
*****************************************
AP121 (AR9331) U-Boot for TL-WR740N(D)v4
DRAM: 32 MB
FLASH: EON EN25Q64 (8 MB)
LED on during eth initialization...
Press reset button for at least:
- 3 sec. to run web failsafe mode
- 5 sec. to run U-Boot console
- 7 sec. to run U-Boot netconsole
Reset button is pressed for: 6
Button was pressed for 6 sec...
Starting U-Boot console...
uboot> ?
? - alias for 'help'
boot - boot default - run command 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
cp - memory copy
erase - erase FLASH memory
help - print embedded help
httpd - start www server for firmware recovery
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nm - memory modify (constant address)
printenv - print environment variables
printmac - print MAC address stored in flash
printmodel - print router model stored in flash
reset - perform RESET of the CPU
run - run commands in an environment variable
setenv - set environment variables
setmac - save new MAC address in flash
tftpboot - boot image via network using TFTP protocol
version - print U-Boot version
uboot>
And long version (manually web server start, request for index.html and upload OpenWrt firmware):
*****************************************
* U-Boot 1.1.4 (Apr 22 2013) *
*****************************************
AP121 (AR9331) U-Boot for TL-WR740N(D)v4
DRAM: 32 MB
FLASH: EON EN25Q64 (8 MB)
LED on during eth initialization...
Hit any key to stop autobooting: 0
uboot> httpd
Ethernet mode (duplex/speed): 1/100 Mbps
HTTP server is starting at IP: 192.168.1.1
HTTP server is ready!
Request for: /
Request for: /style.css
Data will be downloaded at 0x80080000 in RAM
Upgrade type: firmware
Upload file size: 3932160 bytes
Loading: #######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#######################################
#
HTTP upload is done! Upgrading...
****************************
* FIRMWARE UPGRADING *
* DO NOT POWER OFF DEVICE! *
****************************
Executing: erase 0x9F020000 +0x3C0000; cp.b 0x80080000 0x9F020000 0x3C0000
Erase flash from 0x9F020000 to 0x9F3DFFFF in bank #1
Erasing: #######################################
#####################
Erased sectors: 60
Copying to flash...
Writting at address: 0x9F020000
Done!
HTTP ugrade is done! Rebooting...
I wrote an article about my project, but for now it is only in Polish (you can try to use Google Translator), you can find it here: Modified U-Boot for the TP-Link WR703N/MR3020/MR3040 (Atheros AR9331) with web upgrade mode
You can download ready U-Boot images (64 KiB, for different models) from here: http://www.tech-blog.pl/pliki/u-boot_fo … e2k.tar.gz
If you need other version, you should compile the code (please, see Makefile in top dir and make customization which you need) or send me a pm, I will do it for you.
You can download sources code here: http://www.tech-blog.pl/pliki/u-boot_so … e2k.tar.gz
Thanks for any feedback!
(Last edited by pepe2k on 24 Aug 2013, 21:20)