Unfortunately no one can be told what fun_plug is - you have to see it for yourself.
You are not logged in.
ATCB copy from FLASH ROM to working buffer ATBTx block0 write enable (1=enable, other=disable) ATSB save working buffer to FLASH ROM ATIP[x][,y][,z] Setup IP address; x is Server/Remote IP, y is Host/Local IP, z is netmask ATTCx,y upload file y from TFTP server to RAM address x (length of filename<=20) ATERx,y erase flash rom from block x to y ATWFx,y,z copy data from ram addr x to flash addr y, length z
Example use of these commands:
Bootbase V20061226 | 12/26/2006 10:58:17
DRAM0 Size: 128 MB
DRAM POST: Testing: 130976K...OK
DRAM0 Test SUCCESS !
System Memory Mapping
RAM0: 0x00000000~0x07FFFFFF (128 MB)
Bootbase: 0x00000000~0x00006547
Stack: 0x00006548~0x00018D47
Found 28F128J3 at address 0xF8000000
Boot-up Bootext...
Bootext V20081118 | 11/18/2008 20:03:45
Flash Detect....
Found Intel 28F128J3 flash at memory address 0xf8000000
System Memory Mapping
Flash0: Intel 28F128J3 at 0xF8000000 (16MB; Block0~Block127)
RAM0: 0x00000000~0x07ffffff (128MB)
Bootloader: 0x00020000~0x00045783
Stack: 0x00045784~0x0005d283
Flash Temp Buffer: 0x07fe0000~0x07ffffff (128KB)
vendername = ZyXEL Communications Corp.
productname = ZyXEL NSA220
featurebit [0] [1] = D1 01
MAC = 00 19 CB 82 93 3B
CountryCode = FF
EngDebugFlag = 01
Hit ESC key to stop boot-up kernel... 2
ATCmd> atcb
OK
ATCmd> atbt1
OK
ATCmd> atsb
Erase block127, address 0xf8fe0000, length 0x20000...Done
Program block127, address 0xf8fe0000, length 0x20000...100%
OK
ATCmd> atip 192.168.9.20,192.168.9.11,255.255.255.0
MAC Address is 00:19:CB:82:93:3B
Host/Local IP is 192.168.9.11
Server/Remote IP is 192.168.9.20
Net Mask is 255.255.255.0
OK
ATCmd> attc 0x989680,/tftproot/zImage.bin
Using MAC Address 00:19:CB:82:93:3B
Server IP is 192.168.9.20; Local IP is 192.168.9.11
Filename: /tftproot/zImage.bin; Load address: 0x00989680
################################################################################
Received 1687816 (0x19c108) bytes
OK
ATCmd> ater 3,18
Erase block3, address 0xf8060000, length 0x20000...Done
Erase block4, address 0xf8080000, length 0x20000...Done
Erase block5, address 0xf80a0000, length 0x20000...Done
Erase block6, address 0xf80c0000, length 0x20000...Done
Erase block7, address 0xf80e0000, length 0x20000...Done
Erase block8, address 0xf8100000, length 0x20000...Done
Erase block9, address 0xf8120000, length 0x20000...Done
Erase block10, address 0xf8140000, length 0x20000...Done
Erase block11, address 0xf8160000, length 0x20000...Done
Erase block12, address 0xf8180000, length 0x20000...Done
Erase block13, address 0xf81a0000, length 0x20000...Done
Erase block14, address 0xf81c0000, length 0x20000...Done
Erase block15, address 0xf81e0000, length 0x20000...Done
Erase block16, address 0xf8200000, length 0x20000...Done
Erase block17, address 0xf8220000, length 0x20000...Done
Erase block18, address 0xf8240000, length 0x20000...Done
OK
ATCmd> atwf 0x989680,0xf8060000,0x19c108
Program block3, address 0xf8060000, length 0x20000...100%
Program block4, address 0xf8080000, length 0x20000...100%
Program block5, address 0xf80a0000, length 0x20000...100%
Program block6, address 0xf80c0000, length 0x20000...100%
Program block7, address 0xf80e0000, length 0x20000...100%
Program block8, address 0xf8100000, length 0x20000...100%
Program block9, address 0xf8120000, length 0x20000...100%
Program block10, address 0xf8140000, length 0x20000...100%
Program block11, address 0xf8160000, length 0x20000...100%
Program block12, address 0xf8180000, length 0x20000...100%
Program block13, address 0xf81a0000, length 0x20000...100%
Program block14, address 0xf81c0000, length 0x20000...100%
Program block15, address 0xf81e0000, length 0x20000...100%
OK
ATCmd> (power off and power on)zImage.bin must be made with ram2bin utility, which you can get from NSA-220 gpl sources.
ram2bin -i zImage -o zImage.bin -e "2.6.18" -t 4
You will see kernel length after tftp upload is finished. In this case it is 0x19c108
Received 1687816 (0x19c108) bytes
Before jumping in on this I see only one problem.
Memory map table includes checksum values for each firmware part. Right now I am not sure where these values are used. So far I only know that zyxel firmware reads these values using mmct_get and saves output to /etc in number of checksum files.
Model 1 D101 CoreChecksum 486C ZldChecksum EB4E RomChecksum 3466 FwVersion V2009-03-16_11:08:26(AFB.0)C0 FwRevision
Technically it is possible to rewrite memory map table with correct values (checksum value will be generated with ram2bin unility).
//update
I did find out that bootext also looks these checksum values and will complain about it if they do not mach with flash content. Other than that, for me it is just an a error to ignore because kernel is still booting without any problems.
EngDebugFlag = 01 Hit ESC key to stop boot-up kernel... 3 2 1 signature error! (2) Boot-up Linux...2.6.18.6 Uncompressing Linux........................................................................................................ done, booting the kernel. Linux version 2.6.18.6 (sala@dunst) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-66) ) #5 Mon Mar 16 18:23:36 EET 2009 CPU: ARM926EJ-Sid(wb) [41069260] revision 0 (ARMv5TEJ), cr=b0053177 Machine: MV-88fxx81 parse_tag_initrd2: phys_initrd_start->0x2000000 ,phys_initrd_size->0xc00000 Memory policy: ECC disabled, Data cache writeback end_pfn -> 0x8000
Last edited by sala (2009-09-04 20:49:00)
Offline