Posted: Fri Jan 06, 2012 16:51 Post subject: Can't program region at .. flashing fonera 2200
i'm trying to flash my fonera 2200 by serial using V24 preSP2 but i receive this error:
Can't program region at 0xa81c0000: Unknown error
here my step:
RedBoot> fis init -f
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa8030000-0xa87e0000: ..........................................
................................................................................
.
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> load -r -v -b 0x80041000 linux.bin
Using default protocol (TFTP)
|
Raw file loaded 0x80041000-0x8066efff, assumed entry at 0x80041000
RedBoot> fis create -l 0x00630000 linux
... Erase from 0xa8030000-0xa8660000: ..........................................
.........................................................
... Program from 0x80041000-0x8066f000 at 0xa8030000: .........................V
Can't program region at 0xa81c0000: Unknown error
(i used -l 0x00630000 because i read from BrainSlayer i must use a size bigger than my file's one (linux.bin is 6479872 bytes long) aligned to x10000)
can someone help me please?
many thanks.
If "fis init -f" doesn't help, you're out of luck due to bad flash. This is often seen in FON2200. The best you can do is to install DD-WRT V24 RC6.2 or OpenWrt. Remember to create a 0x10000 bytes dummy partition at 0xa81c0000.
thank you for your kind reply.
how can i obtain this: "create a 0x10000 bytes dummy partition at 0xa81c0000"?
the command:
fis create -b 0x80041000 -f 0xa81c0000 -l 0x002C0000 -e 0x00000000 rootfs
is the right one?
following your instruction i had:
RedBoot> fis create rootfs
... Erase from 0xa81d0000-0xa8484000: ..........................................
..
... Program from 0x80041000-0x802f5000 at 0xa81d0000: .V
Can't program region at 0xa81e0000: Unknown error
so looping your technique i used:
RedBoot> fis create -f 0xa81e0000 -l 0x10000 -n bad_0xa81e0000
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
but unfortunately i have the same problem on a different flash address.
going on in the same way i finished the space available:
....
RedBoot> fis create -f 0xa8520000 -l 0x10000 -n bad_0xa8520000
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> fis create rootfs
Can't locate 2b4000(2834432) bytes free in FLASH
now the situation is:
RedBoot> fis list
Name FLASH addr Mem addr Length Entry point
RedBoot 0xA8000000 0xA8000000 0x00030000 0x00000000
vmlinux.bin.l7 0xA8030000 0x80041000 0x000C0000 0x80041000
nvram 0xA81B0000 0xA81B0000 0x00010000 0xFFFFFFFF
bad_0xa81c0000 0xA81C0000 0xA81C0000 0x00010000 0xFFFFFFFF
bad_0xa81e0000 0xA81E0000 0xA81E0000 0x00010000 0x80041000
bad_0xa81f0000 0xA81F0000 0xA81F0000 0x00010000 0x80041000
bad_0xa8200000 0xA8200000 0xA8200000 0x00010000 0x80041000
bad_0xa8220000 0xA8220000 0xA8220000 0x00010000 0x80041000
bad_0xa82d0000 0xA82D0000 0xA82D0000 0x00010000 0x80041000
bad_0xa83f0000 0xA83F0000 0xA83F0000 0x00010000 0x80041000
bad_0xa8400000 0xA8400000 0xA8400000 0x00010000 0x80041000
bad_0xa8410000 0xA8410000 0xA8410000 0x00010000 0x80041000
bad_0xa8420000 0xA8420000 0xA8420000 0x00010000 0x80041000
bad_0xa8430000 0xA8430000 0xA8430000 0x00010000 0x80041000
bad_0xa8440000 0xA8440000 0xA8440000 0x00010000 0x80041000
bad_0xa8450000 0xA8450000 0xA8450000 0x00010000 0x80041000
bad_0xa84d0000 0xA84D0000 0xA84D0000 0x00010000 0x80041000
bad_0xa84e0000 0xA84E0000 0xA84E0000 0x00010000 0x80041000
bad_0xa84f0000 0xA84F0000 0xA84F0000 0x00010000 0x80041000
bad_0xa8500000 0xA8500000 0xA8500000 0x00010000 0x80041000
bad_0xa8510000 0xA8510000 0xA8510000 0x00010000 0x80041000
bad_0xa8520000 0xA8520000 0xA8520000 0x00010000 0x80041000
FIS directory 0xA87E0000 0xA87E0000 0x0000F000 0x00000000
RedBoot config 0xA87EF000 0xA87EF000 0x00001000 0x00000000
RedBoot>
and now ? what can i do?
have i misunderstood something?
thank you again.
You're definitely in deep trouble because the bad sectors could be more than what you have found. I think the most important thing you have to do is to find out exactly how many bad sectors there are and where they are. It's a bit complicated.
Now you should be able to open 192.168.1.1 in the browser or telent/ssh 192.168.1.1.
I haven't figured out how to test the flash memory within rootfs. Check the download site of OpenWrt for "mtd-utils-*", especially the "mtd-utils-flash-eraseall". I think you should ignore "nandtest" because the flash in Fonera is type serial NOR.
If those are really flash chip errors then there is not much to pray for, 1.1MB out of 8MB and spread over a couple of places is not something you can map out.
Make sure that you have a good power supply (7.5V, 1A) so that the errors are not due to too low programming voltage. _________________ Kernel panic: Aiee, killing interrupt handler!
@fyi2000: i got
RedBoot> fis create -f 0xa8030000 -l 0x7b0000 -n rootfs
--> here i have some problems with lenght (x10000 instead of x7b0000)
RedBoot> load openwrt-atheros-vmlinux.elf
--> ok
RedBoot> go
--> lots of errors ( ) and i can't reach web interface nor have telnet acces.
Anyway i do have telnet access via putty: infact i can flash with original fon firmware (0.7.1 r1) via ap51 regularly.
tonight i try to install mtd-utils-flash-eraseall using ipk (not opk) and use it. i'll post the results.
@LOM: i have a good power supply (7.5V, 1A). thank you.
i don't need luck: i flashed successfully last night with original firmware .
i opened port 22 using "onestep.html/twostep.html technique".
i tried access via putty and it was OK.
tonight using HFS i'll get ipk file of texas tool on fonera and i'll try to install and use it
thank you for your support. see you later for result.
It seems to me that the flash erase leaves stuck bits from previous firmware which can explain why you can reload that firmware - the stuck bits in flash will match the stock firmware you reload.
Have you tried to load another version of stock firmware?
Shouldn't work if stuck bits is your problem. _________________ Kernel panic: Aiee, killing interrupt handler!
results:
root@OpenWrt:~# ls *.ipk
mtd-utils-flash-eraseall_20090227-1.1_ar71xx.ipk
mtd_5_mips.ipk
root@OpenWrt:~# ipkg install mtd-utils-flash-eraseall_20090227-1.1_ar71xx.ipk
Clearing state_want and state_flag for pkg=mtd-utils-flash-eraseall (arch_priority=0 flag=16 want=2)
Nothing to be done
An error ocurred, return value: 4.
Collected errors:
Cannot find package mtd-utils-flash-eraseall.
Check the spelling or perhaps run 'ipkg update'
root@OpenWrt:~#
i tried also:
root@OpenWrt:~# ipkg install mtd_5_mips.ipk
Upgrading mtd on root from 4 to 5...
Configuring mtd
Done.
to confirm that ipkg works (then i removed it).
any suggestions?