i have difficulties using bootm if used with tftpboot in order to bootstrap a kernel. It seems working only from flash, but i'd like to put a kernel in ram then to execute it
Topic: U-Boot mod for routers with AR9331/AR9344
The content of this topic has been archived between 3 Apr 2015 and 7 May 2018. Unfortunately there are posts – most likely complete pages – missing.
i have difficulties using bootm if used with tftpboot in order to bootstrap a kernel. It seems working only from flash, but i'd like to put a kernel in ram then to execute it
i am modifying the original source, i added the "go" command, anyway i am asking you why bootm is not working this way
u-boot> help
reset - Perform RESET of the CPU
? - alias for 'help'
bootm - boot application image from memory
cp - memory copy
erase - erase FLASH memory
go - start application at address 'addr'
help - print online help
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
progmac - Set ethernet MAC addresses
setenv - set environment variables
tftpboot- boot image via network using TFTP protocol
version - print monitor version
u-boot>
ummmm in the original source "reset" is not working
u-boot> reset
Unknown command 'reset' - try 'help'
u-boot>
(Last edited by carlojpisani on 31 Oct 2013, 17:48)
i have modified the whole u-boot-v1.1.4 changing a lot of code
.
M
dM
MMr
4MMML .
MMMMM. xf
. 'MMMMM .MM-
Mh.. +MMMMMM .MMMM
.MMM. .MMMMML. MMMMMh
)MMMh. MMMMMM MMMMMMM
3MMMMx. 'MMMMMMf xnMMMMMM'
'*MMMMM MMMMMM. nMMMMMMP'
*MMMMMx 'MMMMM. .MMMMMMM=
*MMMMMh 'MMMMM' JMMMMMMP
MMMMMM 3MMMM. dMMMMMM .
MMMMMM 'MMMM .MMMMM( .nnMP'
=.. *MMMMx MMM' dMMMM' .nnMMMMM*
'MMn... 'MMMMr 'MM MMM' .nMMMMMMM*'
'4MMMMnn.. *MMM MM MMP' .dMMMMMMM''
^MMMMMMMMx. *ML 'M .M* .MMMMMM**'
*PMMMMMMhn. *x > M .MMMM**''
''**MMMMhx/.h/ .=*'
.3P'%...
nP' '*MMnx
hAllo AP121 (AR9331) TL-WR703N MY-BOOT v1.1.4/r3
DRAM: 32 MB
FLASH: Macronix MX25L8005PC-15G
setting MAC address .. ok
initializing ethernet .. ok
clearing bootcmd tftpboot area .. ok
executing bootcmd .. ok
Executing: tftpboot 0x80060000 gentoo-tl-WR703N.img
Link down: eth0
Link down: eth1
Executing: tftpboot 0x80060000 gentoo-tl-WR703N.img
Ethernet mode (duplex/speed): 1/100 Mbps
Abort
my-boot> help
? - alias for 'help'
bootm - boot application image from memory
cp - memory copy
echo - echo args to console
erase - erase FLASH memory
eraseenv - erase environment sector in flash
exec - jump into bootm area
go - start application at address 'addr'
help - print embedded help
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
myboot - tftpboot and jump into
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv - print environment variables
reset - Perform RESET of the SoC MY
setenv - set environment variables
startnc - start net console
startsc - start serial console
tftpboot - boot image via network using TFTP protocol
version - print U-Boot version
as you can see i added
myboot - tftpboot and jump into
go - start application at address 'addr'
i also added auto boot changing the common main loop, so my wl703n immediately upload a kernel from the lan and execute it
my-boot> reset?
.
M
dM
MMr
4MMML .
MMMMM. xf
. 'MMMMM .MM-
Mh.. +MMMMMM .MMMM
.MMM. .MMMMML. MMMMMh
)MMMh. MMMMMM MMMMMMM
3MMMMx. 'MMMMMMf xnMMMMMM'
'*MMMMM MMMMMM. nMMMMMMP'
*MMMMMx 'MMMMM. .MMMMMMM=
*MMMMMh 'MMMMM' JMMMMMMP
MMMMMM 3MMMM. dMMMMMM .
MMMMMM 'MMMM .MMMMM( .nnMP'
=.. *MMMMx MMM' dMMMM' .nnMMMMM*
'MMn... 'MMMMr 'MM MMM' .nMMMMMMM*'
'4MMMMnn.. *MMM MM MMP' .dMMMMMMM''
^MMMMMMMMx. *ML 'M .M* .MMMMMM**'
*PMMMMMMhn. *x > M .MMMM**''
''**MMMMhx/.h/ .=*'
.3P'%...
nP' '*MMnx
hAllo AP121 (AR9331) TL-WR703N MY-BOOT v1.1.4/r3
DRAM: 32 MB
FLASH: Macronix MX25L8005PC-15G
setting MAC address .. ok
initializing ethernet .. ok
clearing bootcmd tftpboot area .. ok
executing bootcmd .. ok
Executing: tftpboot 0x80060000 gentoo-tl-WR703N.img
Link down: eth0
Link down: eth1
Executing: tftpboot 0x80060000 gentoo-tl-WR703N.img
Ethernet mode (duplex/speed): 1/100 Mbps
TFTP from IP: 192.168.1.14
Our IP: 192.168.1.4
Filename: 'gentoo-tl-WR703N.img'
Load address: 0x80060000
Using: eth0
Loading: ########################################
##################################
TFTP transfer complete!
Bytes transferred: 14916064 (0xe399e0)
Executing: go 80060400
## Starting application at 0x80060400 ...
Linux version 2.6.39Flesh-Eating-Bats-TL-WR703N- (root@kika) (gcc version 4.1.2 (Gentoo 4.1.2 p1.3)) #18 Sun Nov 3 19:20:15 CET 2013
bootconsole [early0] enabled
CPU revision is: 00019374 (MIPS 24Kc)
SoC: Atheros AR9330 rev 1
Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
Normal 0x00000000 -> 0x00002000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00002000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: board=TL-WR703N console=ttyATH0,115200 rdinit=/sbin/init init=/bin/bash
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
Writing ErrCtl register=00000000
Readback ErrCtl register=00000000
Memory: 17384k/32768k available (2538k kernel code, 15384k reserved, 444k data, 11584k init, 0k highmem)
SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:80
Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
MIPS: machine is TP-LINK TL-WR703N v1
ar71xx: eth0 magic MAC address 0:3:7f:9:b:ad
bio: create slab <bio-0> at 0
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Switching to clocksource MIPS
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
fuse init (API version 7.16)
msgmni has been set to 33
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11) is a AR933X UART
console [ttyATH0] enabled, bootconsole disabled
...
Great!
Hello
mw4530r brush into https://github.com/pepe2k/u-boot_mod/re … -19.tar.gz
Padded ar9344 to 128k, can be used to boot
But can not enter
Web server
U-Boot serial console
U-Boot network console
Fix mw4530r and tp link4300/4310 hope the difference between
Mercury MW4530R is TP-Link TL-WDR4310 clone but with a much lower price tag (~ $ 40).
http://patchwork.openwrt.org/patch/3856/
https://dev.openwrt.org/ticket/4530#no1
https://dev.openwrt.org/changeset/4530/ … ils/setpwc
https://www.google.com/search?sitesearc … 7%E6%AD%8C
These are Mercury MW4530R information from openwrt
Thank you
Mercury MW4530R is TP-Link TL-WDR4310 clone but with a much lower price tag (~ $ 40).
So it should work without any problems...
y723157510 wrote:Mercury MW4530R is TP-Link TL-WDR4310 clone but with a much lower price tag (~ $ 40).
So it should work without any problems...
But can not enter
Web server and U-Boot network console will not work
Other functions normally (wireless, ppoe, wlan)
pepe2k wrote:y723157510 wrote:Mercury MW4530R is TP-Link TL-WDR4310 clone but with a much lower price tag (~ $ 40).
So it should work without any problems...
But can not enter
Web server and U-Boot network console will not work
Other functions normally (wireless, ppoe, wlan)
So it's not a 100% clone of WDR43x0. I don't have access to this device, you need to investigate the problem by yourself. Are you sure that the serial console also doesn't work in U-Boot?
y723157510 wrote:pepe2k wrote:So it should work without any problems...
But can not enter
Web server and U-Boot network console will not work
Other functions normally (wireless, ppoe, wlan)So it's not a 100% clone of WDR43x0. I don't have access to this device, you need to investigate the problem by yourself. Are you sure that the serial console also doesn't work in U-Boot?
Sorry, no dismantling, still in warranty period
You must get tll uboot after connection startup information in order to help me?
pepe2k wrote:y723157510 wrote:But can not enter
Web server and U-Boot network console will not work
Other functions normally (wireless, ppoe, wlan)So it's not a 100% clone of WDR43x0. I don't have access to this device, you need to investigate the problem by yourself. Are you sure that the serial console also doesn't work in U-Boot?
Sorry, no dismantling, still in warranty period
You must get tll uboot after connection startup information in order to help me?
OK, again... you wrote:
But can not enter
Web server
U-Boot serial console
U-Boot network console
So, does serial console work or not? Or maybe you haven't connected and used it?
How did you try to run network console and/or webserver? Just using reset button? Which GPIO number this model uses for reset/WPS?
So, does serial console work or not? Or maybe you haven't connected and used it?
How did you try to run network console and/or webserver? Just using reset button? Which GPIO number this model uses for reset/WPS?
I downloaded the Hercules SETUP utility, set the port 6666, but no response
wps is to terminate the boot
My setup is synology nas 192.168.1.2
pc ip is set to 192.168.1.3
Whether to set relations, can not enter
(Last edited by y723157510 on 6 Nov 2013, 14:54)
Does system and 2,4 GHz Wi-Fi LEDs blink with ~1 second delay, when you push and hold WPS button during powering the router?
Does system and 2,4 GHz Wi-Fi LEDs blink with ~1 second delay, when you push and hold WPS button during powering the router?
Press wps, can terminate the start
pc setting is 192.168.1.3
Web server can not enter the reason?
pepe2k wrote:Does system and 2,4 GHz Wi-Fi LEDs blink with ~1 second delay, when you push and hold WPS button during powering the router?
Press wps, can terminate the start
pc setting is 192.168.1.3
Web server can not enter the reason?
How long did you hold WPS button?
y723157510 wrote:pepe2k wrote:Does system and 2,4 GHz Wi-Fi LEDs blink with ~1 second delay, when you push and hold WPS button during powering the router?
Press wps, can terminate the start
pc setting is 192.168.1.3
Web server can not enter the reason?
How long did you hold WPS button?
Thank you, the original uboot identify wps is reset
Press wps able to enter
Hello pepe2k ,thanks for your great work
I have a question , the ar9331 cpu is include ar7240 core
So can this moded uboot.bin use to the ar7240 cpu ? even ar7241 or ar7242 ?
If not, is there any chance to make this uboot work on the ar724x series?
So can this moded uboot.bin use to the ar7240 cpu ? even ar7241 or ar7242 ?
No, not this particular version. There are some code which is strictly related to SoC (some registers for PLL and RAM configuration, etc.).
If not, is there any chance to make this uboot work on the ar724x series?
Yes, of course. Some time ago I made test version for TL-WR1043NDv1.
Fox85 wrote:So can this moded uboot.bin use to the ar7240 cpu ? even ar7241 or ar7242 ?
No, not this particular version. There are some code which is strictly related to SoC (some registers for PLL and RAM configuration, etc.).
Fox85 wrote:If not, is there any chance to make this uboot work on the ar724x series?
Yes, of course. Some time ago I made test version for TL-WR1043NDv1.
Hello pepe2k
Thanks for your quick reply
I did a research, you metioned TL-WR1043NDv1 which is use a CPU: Atheros AR9132 (400 MHz), I think this is not same as the AR7240 ?
Anyway, I have two models , buffalo whr-g301n and tl-wr841nd v5, they both uses AR7240 as cpu and AR9283 as wlan chip.
Guess what ? I tried flash the programmer whole flash from wr841n v5 to whr-g301n , everything works fine , lan ports, wlan ,wan port ,all ok. That means wr841n v5 whole flash file replace into the whr-g301n flash rom.
Haha, just because I don't like the buffalo uboot, if the ART is missing ,uboot won't let the device boot up, just flash red light.
But tplink uboot won't care whether the ART is missing ,still boot up like a normal situation, just you won't get the wlan work.
Another different is buffalo uboot has a tftp failsafe function, tplink not.
So I hope and want to use your webserver function for failsafe , could there be any chance with a uboot mod for AR7240 CPU?
And also, I would like to replace the flash chip to W25Q128 (16MB)
Does the tplink stock uboot support 16M flash chip (W25Q128) at AR7240 ?
Or do I need the uboot mod for AR7240 that make it support 16MB flash?
Thanks!
have you looked at wr842v1 uboot? it should have a tftp recovery mode without serial
i do not know if it could work with your board or not, wr842 has an ar7241 and 8MB flash..
I did a research, you metioned TL-WR1043NDv1 which is use a CPU: Atheros AR9132 (400 MHz), I think this is not same as the AR7240 ?
Most of these SoCs have the same MIPS 24K/c core. The difference is in their network chip, registers for peripherals, PLL, USB, GPIO, etc.
Anyway, I have two models , buffalo whr-g301n and tl-wr841nd v5, they both uses AR7240 as cpu and AR9283 as wlan chip.
Guess what ? I tried flash the programmer whole flash from wr841n v5 to whr-g301n , everything works fine , lan ports, wlan ,wan port ,all ok. That means wr841n v5 whole flash file replace into the whr-g301n flash rom.
It's nothing unusual, most of routers with Atheros SoCs use the same U-Boot code modified by Atheros.
So I hope and want to use your webserver function for failsafe , could there be any chance with a uboot mod for AR7240 CPU?
I don't have now any device with AR724x SoC, so I'm not able to test my code.
And also, I would like to replace the flash chip to W25Q128 (16MB)
Does the tplink stock uboot support 16M flash chip (W25Q128) at AR7240 ?
Or do I need the uboot mod for AR7240 that make it support 16MB flash?
What do you mean by "support"? Serial (SPI) NOR FLASH is a standard - all "25" (Winbond W25..., EON EN25..., Micron M25... etc.) models will work, no matter what size and which manufacturer you will use.
U-Boot from TP-Link has hard coded size of the FLASH. So, if you want to have access to space > 4/8 MB in U-Boot console, you need to recompile the code. In my modification I have added automatic recognition (by JEDEC ID), which allows to use 4/8/16 MB types without need to recompile the code.
hi,can you add tl-wr2543nd support ,this is a AR7242 CPU?
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!
hi,can you add tl-wr2543nd support ,this is a AR7242 CPU?
I don't have any AR724x based device now, so the answer is: no, I can't.
Hello
I used the uboot for 703n from here: http://www.tech-blog.pl/pliki/u-boot_fo … e2k.tar.gz
It can boot, but cannot enter to the Web server and U-Boot network console
I set the pc ip: 192.168.1.2
I downloaded the Hercules SETUP utility, set the port 6666, but no response