วันอาทิตย์ที่ 26 มกราคม พ.ศ. 2557

ดูภายใน SMC รุ่น SMC7901BRA

ตัวนี้เป็น ADSL2 Router ไม่มี wifi ครับ รูปภาพภายนอก

ด้านหน้าเครื่อง
ด้านหลังเครื่อง


สติกเกอร์ใต้เครื่อง

เมื่อแกะดูด้านในจะพบดังรูปล่าง

บอร์ดด้านล่าง

ไอซี Flash ของ Intel รุ่น TE28F160 มีขนาด 2MB

TE28F160
พบไอซีอีกตัวนึงคือ TL594c เป็นไอซีภาคจ่ายไฟ

TL594C

เมื่อพลิกอีกด้านของบอร์ดจะได้ดังรูป

บอร์ดด้านบน
มีไอซีหลักๆ อยู่ 3 ตัวได้แก่

ไอซี SOC ของ TI รุ่น TNETD7300AGDW เป็นหน่วยประมวลผลหลักของเราเตอร์
TNETD7300AGDW

ไอซี RAM ของZentel รุ่น A2V64s40DTP ขนาด 8MB
RAM 8MB

มี Connector 5x2 โดยขา Serial ของ CPU เป็นดังรูป

ขา Serial
จากการต่อขา Serial เข้ากับ Computer จะได้ Bootlog ดังนี้

 [P] Print Boot Params
======================

[AR7300 Boot]:p


MAC address     : 00-04-E2-F0-BE-BE
Serial number   : S521019837
Hardware version: 01
Options         : 00-00-00-00-00-00

[AR7300 Boot]:#


Enter Serial Number (S521019837):


[AR7300 Boot]:h


Enter Boot Option (00-00-00-00-00-00-00):


[AR7300 Boot]:



===========================================================
 TI ADSL AR7300 Loader 0.64 build Apr 29 2004 10:43:50
                 Broad Net Technology, INC.
===========================================================
INTEL TE28F160C3-B bottom boot 16-bit mode found

Copying boot params.....DONE

Press any key to enter command mode ...
Flash Checking  Passed.

Unzipping program from bank 2...done
Try to find image for running...
Unzipping program from bank 3...done
In C_Entry() function ...
install_exception
sys_irq_init() ...
##### _ftext      = 0x94000000
##### _fdata      = 0x9414E490
##### __bss_start = 0x94189C30
##### end         = 0x946CA444
##### Backup Data from 0x9414E490 to 0x946EA444~0x94725BE4 len 243616
##### Backup Data completed
##### Backup Data verified
[INIT] System Log Pool startup ...
[INIT] MTinitialize ..
userclk_init() ...
Runtime code version: 0.39
System startup...
[INIT] Memory COLOR 0, 620000 bytes ..
[INIT] Memory COLOR 2, 325480 bytes ..
[INIT] tcpip_startup ..
reload_flag=0

manu_id=0089 chip_id=88C3
INTEL TE28F160C3-B bottom boot 16-bit mode found
Set flash memory layout to Boot Parameters found !!!
Bootcode version: 0.64
Serial number: S521019837
Hardware version: 01
sizeof(struct III_Config_t) is 75528

manu_id=0089 chip_id=88C3
INTEL TE28F160C3-B bottom boot 16-bit mode found
!![E-CFG-VER] Configuration data version mismatch!!
!![E-CFG-VER] Adapting factory defaults!!
!![E-CFG-VER] Reconfiguration required!!
!!No configuration file present!!
default route: 0.0.0.0
BufferInit:
BUF_HDR_SZ=48 BUF_ALIGN_SZ=8 BUFFER_OFFSET=112
BUF_BUFSZ0=384 BUF_BUFSZ1=1872
NUM_OF_B0=0 NUM_OF_B1=500
BUF_POOL0_SZ=0 BUF_POOL1_SZ=960000
sizeof(BUFFER0)=432,sizeof(BUFFER1)=1920
*BUF0=0x9445527c *BUF1=0x9436ac6c
Altgn *BUF0=0x94455280 *BUF1=0x9436ac70
End at BUF0:0x94455280, BUF1:0x94455270

BUF0[0]=0x94455280 BUF1[0]=0x9436ac70

buffer0 pointer init OK!
buffer1 pointer init OK!
time = 08/01/2003, 00:00:00
TRAP(linkUp) : send ok!
Interface 0 ip = 127.0.0.1

MAC Address: 00:04:e2:f0:be:be
Memory request 2072 left 297928 ptr 94210798
Call tn7sar_malloc_dma_xfer() addr:B4210798 size:2072
MAC0 [RX=128 TX=1]: TI Internal PHY
time = 08/01/2003, 00:00:00
TRAP(linkUp) : send ok!
Interface 1 ip = 192.168.2.1

Init SAR ifno:3 chan:0 VPI/VCI:0/33
Init PDSP ...
Init PDSP done.
Memory request 552 left 297376 ptr 94210FB0
Call tn7sar_malloc() addr:B4210FB0 size:552
[aal5->os]2.IsrRegister(OsDev:94189f28, halIsr:940b903c, Interrupt:15)
[aal5]halControl(HalDev:9464d688, Key:OamMode, Action:Set, Value:946ea2bc)
[aal5]halChannelSetup(HalDev:9464d688, HalCh:946ea200, OsSetup:00000000)
  [aal5 Inst 0, Ch 0] Config Dump:
    TxNumBuffers  :00000128, TxNumQueues :00000002
    RxNumBuffers  :00000128, RxBufSize   :00001582
    TxServiceMax  :00000032, RxServiceMax:00000016
    RxBufferOffset:00000000, DaMask      :00000000
    CpcsUU        :00000005, Gfc         :00000000
    Clp           :00000000, Pti         :00000000
    Priority      :00000002, PktType     :00000000
    Vci           :00000033, Vpi         :00000000
    TxVc_CellRate :00012500, TxVc_QosType:00000002
    TxVc_Mbs      :00004000, TxVc_Pcr    :00012500
    TxVc_AtmHeader:00000528
InitTcb(CH:0): tcbsize:48 allsize:6160 num:128
Memory request 6160 left 291216 ptr 942111D8
Call tn7sar_malloc_dma_xfer() addr:B42111D8 size:6160
Memory request 6160 left 285056 ptr 942129E8
Call tn7sar_malloc_dma_xfer() addr:B42129E8 size:6160
InitRcb(CH:0): rcbsize:64 allsize:8208 num:128
Memory request 8208 left 276848 ptr 942141F8
Call tn7sar_malloc_dma_xfer() addr:B42141F8 size:8208
Call halChannelSetup(), Ch:0
(HalCh->TxVc_VpOffset)=00000000
(HalCh->RxVc_VpOffset)=00000000
Install SAR handler ...
MAC Address: 00:04:e2:f0:be:bf
Interface 3 ip = 192.168.2.1

usb_init: Create UsbTimerTask 1
usb_init: PeriodTimer:7, Resource:21, numTicks:1
USB Device up
time = 08/01/2003, 00:00:00
TRAP(linkUp) : send ok!
Interface 20 ip = 192.168.2.1

ruleCheck()> Group: 0,  Error: Useless rule index will be truncated
ruleCheck()> Group: 1,  Error: Useless rule index will be truncated
ruleCheck()> Group: 1,  Ext rule[12]: 18 has error group index. Auto correct !!!
ruleCheck()> Group: 2,  Error: Useless rule index will be truncated
reqCBACBuf()> init match pool, Have: 1000
Memory Address: 0x9467563c ~ 0x9467c3b8
reqCBACBuf()> init timeGap pool, Have: 10000
Memory Address: 0x9467c3b8 ~ 0x946ad10c
reqCBACBuf()> init sameHost pool, Have: 2000
Memory Address: 0x946ad10c ~ 0x946bcb2c
CBAC rule pool initialized !!
Init NAT data structure
RUNTASK id=2 if_task if0...
RUNTASK id=3 if_task if1...
RUNTASK id=4 if_task if3...
RUNTASK id=5 if_task if20...
RUNTASK id=6 timer_task...
RUNTASK id=7 conn_mgr...
[INIT] after tcpip_startup ..
RUNTASK id=8 period_task...

========== ADSL Modem initialization OK ! ======

RUNTASK id=9 dhcp_daemon...
RUNTASK id=10 telnetd_main...
httpd: listen at 192.168.2.1:80
HTTPD TIMER_RESOURCE:5, FS_RESOURCE:6
RUNTASK httpd...
RUNTASK id=13 dnsproxy...
RUNTASK id=14 snmp_task...
RUNTASK id=15 rip...
RUNTASK id=16 ripout...
RUNTASK id=17 dhcpd_mgmt_task...
UPnP is enabled
UPNP Device initialize success! slot=18
Starting Multitask...
Initializing DSL interface ...
Install ADSL handler ...
[1] find PK  at 0xB0040000
[2] find PK  at 0xB006B400
Image[1] at 0xB0040000, len = 0
Image[2] at 0xB006B400, len = 0
get_datapump_address> r_img=1
Unzipping from B006B400 to 945F5DC4 ... done
Uncompressed size = 345194
Begin DSP firmware Download ...
Section count 154
Not DSP PMEM/DMEM
Section Addr: 147f8400 Section Length: 4596
Not DSP PMEM/DMEM
Section Addr: 147f9800 Section Length: 8208
Not DSP PMEM/DMEM
Section Addr: 147f2e00 Section Length: 10396
Not DSP PMEM/DMEM
Section Addr: 147f8000 Section Length: 906
OVERLAY PAGE #1 LEN=48160
OVERLAY PAGE #2 LEN=22656
OVERLAY PAGE #8 LEN=2272
OVERLAY PAGE #7 LEN=32
OVERLAY PAGE #3 LEN=43360
OVERLAY PAGE #4 LEN=13632
OVERLAY PAGE #5 LEN=11200
OVERLAY PAGE #6 LEN=14624
OVERLAY PAGE #9 LEN=27328
OVERLAY PAGE #10 LEN=34048
Wrote Image; Overlay Pages:11  Profiles:4
POTS Service
DSP Firmware Download completed.
Set DSP to 250MHz ...
ModemDSP_IDLE

TC_NOSYNC
 Code: 03.02.06.0[Overlay Page Done 1]
0
Train Mode: 0xff
Training Mode: MMODE
Start WatchDog ...
MTstart2() begin  ...
init psock cnt=475761275
ifStrInit()> i:0, dtlStr:[Loop/Loop], rfStr[LB0], type:0, count:1
ifStrInit()> i:1, dtlStr:[LAN 1/LAN1], rfStr[L1], type:1, count:1
ifStrInit()> i:2, dtlStr:[/], rfStr[], type:10, count:0
ifStrInit()> i:3, dtlStr:[ATM 1/ATM1], rfStr[A1], type:5, count:1
ifStrInit()> i:4, dtlStr:[ATM 2/ATM2], rfStr[A2], type:5, count:2
ifStrInit()> i:5, dtlStr:[ATM 3/ATM3], rfStr[A3], type:5, count:3
ifStrInit()> i:6, dtlStr:[ATM 4/ATM4], rfStr[A4], type:5, count:4
ifStrInit()> i:7, dtlStr:[ATM 5/ATM5], rfStr[A5], type:5, count:5
ifStrInit()> i:8, dtlStr:[ATM 6/ATM6], rfStr[A6], type:5, count:6
ifStrInit()> i:9, dtlStr:[ATM 7/ATM7], rfStr[A7], type:5, count:7
ifStrInit()> i:10, dtlStr:[ATM 8/ATM8], rfStr[A8], type:5, count:8
ifStrInit()> i:11, dtlStr:[PoE 1/PoE1], rfStr[P1], type:6, count:1
ifStrInit()> i:12, dtlStr:[PoE 2/PoE2], rfStr[P2], type:6, count:2
ifStrInit()> i:13, dtlStr:[PoE 3/PoE3], rfStr[P3], type:6, count:3
ifStrInit()> i:14, dtlStr:[PoE 4/PoE4], rfStr[P4], type:6, count:4
ifStrInit()> i:15, dtlStr:[PoE 5/PoE5], rfStr[P5], type:6, count:5
ifStrInit()> i:16, dtlStr:[PoE 6/PoE6], rfStr[P6], type:6, count:6
ifStrInit()> i:17, dtlStr:[PoE 7/PoE7], rfStr[P7], type:6, count:7
ifStrInit()> i:18, dtlStr:[PoE 8/PoE8], rfStr[P8], type:6, count:8
ifStrInit()> i:19, dtlStr:[/], rfStr[], type:10, count:0
USB_SLAVE: SUSPEND.
TRAP(coldStart) : send ok!
upnp_Init: flag=0
SSDP Initialization completed...
GenaInit : event_hook is NULL!!


====== console mode ======
  shift-0: enable debug
  shift-9: enable config
  ENTER  : show this help
==========================


จาก Bootlog ที่ได้ทำให้รู้ได้คร่าวๆ ว่า os ภายในเราเตอร์ไม่ใช่ Linux ครับ

สำหรับ Review ครั้งนี้ก็ขอจบเพียงเท่านี้ครับ





วันศุกร์ที่ 10 มกราคม พ.ศ. 2557

เปิดดูภายในเราเตอร์ BELKIN F5D7634-4 v2

เราเตอร์ตัวนี้ผมได้มาสภาพไม่ปกติคือ พอร์ตแลนใช้ได้ 2 ช่อง เลยลองแกะเล่นดูครับ แกะแล้วเห็นวงจรภายในไม่เหมือนใครดี มาดูกันครับ

ภายในเราเตอร์
ตัวเราเตอร์มี CPU 2 ตัว ตัวแรกเป็น CPU ของวงจร ADSL ชื่อ Infineon PSB 50600 HL

CPU1:  Infineon PSB 50600 HL

CPU ตัวที่ 2 เป็นส่วนทำหน้าที่เป็นเราเตอร์และปล่อย WiFi ชื่อ Ralink RT3050F

CPU2: Ralink RT3050F

RAM ของ ADSL CPU ชื่อ EtronTech EM639165TS-6G มีขนาด 16 MB

RAM1: EtronTech EM639165TS-6G

RAM ของ CPU เราเตอร์ชื่อ Zentel A3V64S40ETP-G6 มีขนาด 8MB

RAM2: Zentel A3V64S40ETP-G6


Flash Memory ของ ADSL CPU คือ MX29LV160DBTI-70G มีขนาด 2MB

Flash1: MX29LV160DBTI-70G

หน่วยความจำ CPU ของเราเตอร์เป็นไอซีไม่ทราบชนิดอาจจะเป็น eeprom หรือ Flash เบอร์ ATMLH940

 ATMLH940
ส่วนของภาคจ่ายไฟของเราเตอร์มีไอซี Switching ควบคุมอยู่สองตัวซึ่งเป็นเบอร์เดียวกันคือ WE16B8

WE16B8

ส่วนของพอร์ต Serial มี 2 ชุดคือของ ADSL กับ CPU เราเตอร์

ขา Serial
Boot log ของ ADSL

=======================================================================
Wireless ADSL Router AR4505SW 5-A-LF-AK Loader V0.03 build Jul  8 2009 17:49:21
                    Arcadyan Technology Corporation
=======================================================================
MXIC MX29LV160B bottom boot 16-bit mode found
Copying boot params.....DONE
Press Space Bar 3 times to enter command mode ...
Flash Checking
 Passed.
Unzipping firmware at 0x80002000 ... [ZIP 1]  done
[INIT] In c_entry() ...
[INIT] Install Exception ...
Co config = 80048483
[INIT] Install ISR ...
[INIT] bypass unzip web image to httpd
init GPIO#0 (as0:0,as1:0,dir:0)
init GPIO#10 (as0:0,as1:0,dir:1)
init GPIO#13 (as0:0,as1:0,dir:1)
init GPIO#2 (as0:0,as1:0,dir:1)
init GPIO#24 (as0:0,as1:0,dir:1)
init GPIO#3 (as0:0,as1:0,dir:1)
init GPIO#27 (as0:0,as1:0,dir:1)
init GPIO#4 (as0:0,as1:0,dir:1)
init GPIO#7 (as0:0,as1:0,dir:1)
init GPIO#12 (as0:0,as1:0,dir:1)
init GPIO#1 (as0:0,as1:0,dir:1)
gptu: totally 6 16-bit timers/counters
Init timer = 0
##### _ftext      = 0x80002000
##### _fdata      = 0x801BAC80
##### __bss_start = 0x801E937E
##### end         = 0x80770DD8
##### Backup Data from 0x801BAC80 to 0x80778DD8~0x807A74D6 len 190206
##### Backup Data completed
##### Backup Data verified
[INIT] System Log Pool startup ...
[INIT] MTinitialize ..
[INIT] usrclk
CPU Clock 266666666 Hz
mips_counter_frequency:133333333
r4k_offset: 00145855(1333333)
init_US_counter : time1 = 208323 , time2 = 32208373, diff 32000050
US_counter = 59
 cnt1 32788284 cnt2 32789538, diff 1254
Runtime code version: 2.00.20
System startup...
[INIT] Memory COLOR 0, 730000 bytes ..
[INIT] Memory COLOR 1, 100000 bytes ..
[INIT] Memory COLOR 2, 351200 bytes ..
MXIC MX29LV160B bottom boot 16-bit mode found
Set flash memory layout to BRN-BOOT
Boot Parameters found !!!
Bootcode version: V0.03
Serial number: 12951763400370
Hardware version: 01
MXIC MX29LV160B bottom boot 16-bit mode found

sizeof(struct III_Config_t) is 71544, nLen:71544, Magic:0x33343536
MXIC MX29LV160B bottom boot 16-bit mode found
my CFGVersionMagic = 33343536, old CFGVersionMagic on flash = 33343536
my CFGsize = 71552, my CFGDescSize = 15887
my Version = 2.00.20, Version on flash= 2.00.20
[CONFIG] flash version:[2.00.20], [2.0.2-0]
[CONFIG] code version:[2.00.20], [2.0.2-0]
CFGsize on flash = 71552, CFGDescSize on flash = 15887
MXIC MX29LV160B bottom boot 16-bit mode found
OldCfgHexSize:5716
Unzipping from 80353F1C to 803500FC ... [ZIP 1] done, Uncompressed size = 15885
Tail1 : END_III_Config_t
Size of Old CFG_DESC is :15885!!!
useCfgDesc:1
MyCfgHexSize:5716
Unzipping from 8034EA90 to 8034AC70 ... [ZIP 1] done, Uncompressed size = 15885
My CFGDescSize:15887
useCfgDesc:1
Tail : END_III_Config_t
useCfgDesc:3
Restore Config file from ver:2.00.20!!!
[CONFIG] Configuration in Flash is old version: 2.0.0
[CONFIG] DS_Tail:[t_F5D7634-4 v2]
default route: 0.0.0.0
BufferInit:
BUF_HDR_SZ=128 BUF_ALIGN_SZ=0 BUFFER_OFFSET=192
BUF_BUFSZ0=448 BUF_BUFSZ1=1888
NUM_OF_B0=100 NUM_OF_B1=600
BUF_POOL0_SZ=57600 BUF_POOL1_SZ=1209600
sizeof(BUFFER0)=576,sizeof(BUFFER1)=2016
*BUF0=0x804fe31c *BUF1=0x803d6dfc
Altgn *BUF0=0x804fe320 *BUF1=0x803d6e00
End at BUF0:0x8050c420, BUF1:0x804fe300
BUF0[0]=0x804fe320 BUF1[0]=0x803d6e00
buffer0 pointer init OK!
buffer1 pointer init OK!
ifno=  0, Link_Type= 4
IfInit(): LOOPBACK
time = 08/01/2003, 00:00:00
Interface 0 ip = 127.0.0.1
ifno=  1, Link_Type= 1
IfInit(): GEN_MAC_0
DMA g_desc_list=0x80349D40
Internal Clock
Selected EPHY_MODE
ETOP_CFG=4141
ENET_MAC_CFG=99f
ETOP MDIO CFG 40
EPHY ctl = 3100
EPHY Strapping = 5e08
waiting for EPHY auto-negociation complete...........................
EPHY Status = 786d
EPHY ctl = 3100
MAC Address: 94:44:52:0e:9e:cd
time = 08/01/2003, 00:00:00
Interface 1 ip = 192.168.1.212
ifno=  2, Link_Type= 1
IfInit(): HWLAN
dev=803c2acc->priv=803bcfb4
HWLAN: Ralink iNIC 94:44:52:0e:9e:cd
Update MAC(0)=94:44:52:0e:9e:cd
============= Init Thread ===================
RacfgTaskThread pid = 1
RacfgBacklogThread pid = 2
racfg_inband_hook_init(): end
wlan security on!
RUNTASK id=3 hwlan_light_isr...
RUNTASK id=4 InternetCheckTask...
time = 08/01/2003, 00:00:00
hwlan_ioctl(): begin
hwlan_ioctl(): end
Interface 2 ip = 192.168.1.212
hwlan_ioctl(): begin
hwlan_ioctl(): end
ifno=  3, Link_Type= 1
IfInit(): GEN_SAR_0
ppe: ATM init succeeded (firmware version 1.1.0.2.1.13)
ATM_UBR
Init SAR ifno:3 g_atm_vcc[0] CONN:1 VPI/VCI:0/100
MAC Address: 94:44:52:0e:9e:ce
Interface 3 ip = 0.0.0.0
ifno=  4, Link_Type= 0
ifno=  5, Link_Type= 0
ifno=  6, Link_Type= 0
ifno=  7, Link_Type= 0
ifno=  8, Link_Type= 0
ifno=  9, Link_Type= 0
ifno= 10, Link_Type= 0
ifno= 11, Link_Type= 0
ifno= 12, Link_Type= 0
ifno= 13, Link_Type= 0
ifno= 14, Link_Type= 0
ifno= 15, Link_Type= 0
ifno= 16, Link_Type= 0
ifno= 17, Link_Type= 0
ifno= 18, Link_Type= 0
ifno= 19, Link_Type= 0
ruleCheck()> Group: 0,  Error: Useless rule index will be truncated
ruleCheck()> Group: 1,  Error: Useless rule index will be truncated
ruleCheck()> Group: 2,  Error: Useless rule index will be truncated
CBAC rule format check succeed !!
reqCBACBuf()> init match pool, Have: 50
Memory Address: 0x807652b0 ~ 0x80765844
reqCBACBuf()> init timeGap pool, Have: 2000
Memory Address: 0x80765844 ~ 0x8076f498
reqCBACBuf()> init sameHost pool, Have: 200
Memory Address: 0x8076f498 ~ 0x80770db8
CBAC rule pool initialized !!
Init NAT data structure
RUNTASK id=5 if_task if0...
RUNTASK id=6 if_task if1...
RUNTASK id=7 if_task if2...
RUNTASK id=8 if_task if3...
RUNTASK id=9 timer_task...
RUNTASK id=10 conn_mgr...
ifno2dot1x_if[2]=0
dot1x_wireless_if_mask=0x4
RUNTASK id=11 period_task...
========== ADSL Modem initialization OK ! ======
RUNTASK id=12 dhcp_clt...on interface 3
---[ LZMA head start in 0xB0040000 ]---
found signature: 78h 56h 34h 12h
ulImgLens=517744, LENGTH[3]-12=1769460
length checking OK
[0] find End at 0xB00BE400 len=517744
---[ LZMA head start in 0xB00BE800 ]---
found signature: 78h 56h 34h 12h
ulImgLens=107388, LENGTH[3]-12=1769460
length checking OK
[1] find End at 0xB00D8800 len=107388
---[ LZMA head start in 0xB00D8C00 ]---
found signature: 78h 56h 34h 12h
ulImgLens=162008, LENGTH[3]-12=1769460
length checking OK
[2] find End at 0xB0100400 len=162008
---[ LZMA head start in 0xB0100800 ]---
found signature: 78h 56h 34h 12h
ulImgLens=341825, LENGTH[3]-12=1769460
length checking OK
[3] find End at 0xB0153C00 len=341825
Image[1] at 0xB0040000, len = 517744
Image[2] at 0xB00BE800, len = 107388
Image[3] at 0xB00D8C00, len = 162008
Image[4] at 0xB0100800, len = 341825
Unzipping from B00BE800 to 80EC2000 ... [ZIP 1] done, Uncompressed size = 194146
drive start addr[0]=80ec2000, [1]=80ef1670
[HTTPD] flash_init: failed!!
httpd: listen at 192.168.1.212:80
RUNTASK httpd...
RUNTASK id=15 dnsproxy...
UPnP is disabled
>>> belkin_wan_cfg task runs successfully, task_id = 16
RUNTASK id=18 wsc_Send_UPNP_packet...
UART RX Input
Starting Multitask...
run_project_task
RUNTASK id=19 CMV_task...
RUNTASK id=20 apAppInit...
RaCfg Task
RaCfg Backlog
iNIC Open HWLAN
netif_carrier_on() called ???
Op mode = 1
RaCfgOpenFile(): begin
iNic profile ...
===gen inic profile====
===gen profile end==1819
iNic profile : 0x802843CC, 1819
RaCfgOpenFile(): end
BssidNum=1
Wait for boot done...
Danube MEI version:1.00.07
Unzip DSP firmware ...
[ZIP 1] [dhcp_clt] enable dhcp client in interface ATM1[3]
iNicWscUpnpTask 1...
[17]pthread_mutex_init: resource No. 36
wsc_Send_eap_packet:udpFdupnp_wcn:18;;udpFdupnp:1a
[17]pthread_mutex_init: resource No. 37
idx=0 mem_ptr=0xA06D6000 size=65536
idx=1 mem_ptr=0xA06E6000 size=65536
idx=2 mem_ptr=0xA06F6000 size=65536
idx=3 mem_ptr=0xA0706000 size=65536
idx=4 mem_ptr=0xA0716000 size=60600
iNicWscUpnpTask 2...
Got MODEM_READY_MSG
ADSL Firmware: 3.4.3.2.0.1 [Annex A:0xb105 0x4]
RACFG_CMD_BOOT_NOTIFY
RaCfgOpenFile(): begin
Unzip iNic firmware ...
[ZIP 1] iNic firmware : 0x805A7924, 656640
RaCfgOpenFile(): end
RaCfgOpenFile(): begin
iNic profile ...
===gen inic profile====
===gen profile end==1819
iNic profile : 0x802843CC, 1819
RaCfgOpenFile(): end
RACFG_CMD_BOOT_INITCFG(0)
RACFG_CMD_BOOT_INITCFG(1)
Send Init Cfg Data Done(2 packets)
RACFG_CMD_BOOT_UPLOAD(0)
RACFG_CMD_BOOT_UPLOAD(1)
RACFG_CMD_BOOT_UPLOAD(2)
ADSL> READY
CRC:01 08 14 18 b4 36 cd 27 22 32 2e 30 2e 31 2e 35 22 00 00 00 32 30 30 39 30 38 32 31 00 00 00 00 00 00 00 00 d8 04 0a 00
Send RT3052iNIC Firmware Done
===================================
version: "2.0.1.5"
size:    656600 bytes
date:    20090821
===================================
Send STARTUP to RT3052iNIC
Close Firmware file
RACFG_CMD_BOOT_STARTUP
TODO !! wireless event flag rx 0x0210: (iNIC) STA(00:00:00:00:00:00) - BSS(0) disconnects with our wireless client
Update MAC(0)=94:44:52:0e:9e:cd
Sync Mac with MII master done
[HWLAN] [20] rapi_tmr_task running
WPS timeout flag cleared
TODO !! wireless event flag rx 0x020f: (iNIC) STA(00:00:00:00:00:00) - BSS(0) connects with our wireless client
TODO !! wireless event flag rx 0x020f: (iNIC) STA(00:00:00:00:00:00) - BSS(0) connects with our wireless client
Got MODEM_READY_MSG
ADSL Firmware: 3.4.3.2.0.1 [Annex A:0xb105 0x4]
ADSL> READY

====== console mode ======
  shift-0: enable debug
  ENTER  : show this help
==========================

Boot log ของ CPU เราเตอร์
=================================================================
        Ralink RT3052 iNIC on Aug 21 2009 <09:34:08>
                Used Memory 769K
                Free Memory Base = 0x800C56A4
                HZ = 1000
===================================================================
Check Firmware CRC (0x27cd36b4 ~ 0x27cd36b4) -- match
ILL_ACC_ADDR = 00000000, ILL_ACC_TYPE = 00000000
SYSCFG = 0x30030000
SDRAM CFG0 = 0xd1925282
SDRAM CFG1 = 0xc0010600
CPU revision is: 0001964c
MAX_MEMORY = 0x800000
Instruction cache 32kB, physically tagged, 4-way, linesize 32 bytes.
Data cache 16kB, 4-way, linesize 32 bytes.
CONFIG0 = 80010483
80010483 -- > CONFIG0
-> CONFIG0 = 80010483
DEBUG = 0201a004, Kernel
STATUS = 10000000, Kernel
=== EEPROM ===
0x0000 : 52 30 01 01 00 0c 43 30 52 88 ff ff ff ff ff ff
0x0010 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0020 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0030 : ff ff ff ff 11 05 24 00 ff ff 2e 01 55 77 a8 aa
rt_buf_init: 6 gets, 0 releases.  6092880 in use, 1290500 free, largest = 1290500
GPIOMODE(b0000060) = 00000000
OS_MAX_TASKS = 32
 RGMII Mode
SWITCH at DUMP MODE
=== GMAC Rx_Ring = a00a1d40, Tx_Ring0 = a00a1940 ===
Load RT2880 Timer Module(Wdg/Soft)

=== pAd = 80139180, size = 814384 ===
<-- RTMPAllocAdapterBlock, Status=0
RX DESC a00bab60  size = 1536
<-- RTMPAllocTxRxRingMemory, Status=0
WPAPSK_KEY, key len (should be 8~64) incorrect!!!, your key len = 0
I/F(ra0) Key1Str is Invalid key length! KeyLen = 0!
I/F(ra0) Key2Str is Invalid key length! KeyLen = 0!
I/F(ra0) Key3Str is Invalid key length! KeyLen = 0!
I/F(ra0) Key4Str is Invalid key length! KeyLen = 0!
============> Parameter MAC=94:44:52:0e:9e:cd
=====> Parameter GpioEnable=1
=====> Parameter GpioMode=12
=====> Parameter GpioPolarity=63
1. Phy Mode = 0
2. Phy Mode = 0
3. Phy Mode = 0
MCS Set = 00 00 00 00 00
Main bssid = 94:44:52:0e:9e:cd
The UUID Hex string is:bc329e001dd811b286019444520e9ecd
The UUID ASCII string is:bc329e00-1dd8-11b2-8601-9444520e9ecd!
<==== RTMPInitialize, Status=0
calling bridge_module_init()
Response MAC=94:44:52:0e:9e:cd
# Parameter1: No. Tasks
# Parameter2: CPU Usage in %
# Parameter3: No. Task switches/sec
<-PRESS 'ESC' TO QUIT->
(0<== Set_Debug_Proc(RTDebugLevel = 3)
0Set_WPAPSK_Proc::(WPAPSK=lorencia3040)
==> Set_Debug_Proc *******************
:0AsicSendCommandToMcu 0x60 ==> stop detection
Timer Value  = ffffff7f
AsicSendCommandToMcu 0x60 ==> stop detection
Timer Value  = ffffff7f
0:00) - 1003(0) 6 0 2353
(00:01:02) - 64100(0) 6 1 127158

จาก Boot log ด้านบนพอสรุปกระบวนการได้ คือ
  • ADSL CPU บูตตัวเองขึ้นมาก่อน แล้วส่งเฟิร์มแวร์ผ่านทาง Ethernet ภายในไปหา RT3050F 
  • หลังจากโหลดเสร็จ RT3050F บูตตัวเองจาก RAM 
ภายในเราเตอร์เป็น OS เฉพาะทางไม่น่าใช่ Linux ครับ 

วันพฤหัสบดีที่ 31 ตุลาคม พ.ศ. 2556

Hardware Review: Solomon SEGM-520

ผมเพิ่งได้ Edge Modem แบบ USB มาลองเทสกับเครื่อง Windows 7 แล้วปกติดี อยากรู้ข้างในเป็นยังไงก็เลยแกะดูครับ
รูปด้านบน

รูปด้านล่าง
วิธีแกะก็ถอดน็อตสองตัว แล้วก็ล็อคพลาสติกที่กรอบ งัดออกมาจะเจอดังรูป
ฝากหน้า-หลัง
PCB
จากรูป PCB มี IC สองตัวคือ
  • LM1117 -> low drop out regulator
  • ULN2003 -> 7 darlington arrays
รูปต่อมาคือ PCB อีกด้าน จะเห็นว่ามีบอร์ดแยกออกจากกันเชื่อมต่อด้วย connector
PCB
เมื่อถอดโมดูลด้านบนออกจะได้ดังรูปล่าง
PCB เมื่อถอดโมดูลออก
ซึ่งเราจะเจอกับตัว connector ที่เชื่อมระหว่างบอร์ด ต่อมาก็ไปดูที่บอร์ดแยก
บอร์ดแยก
จากรูปบอร์ดแยกจะเห็น IC ใหญ่ๆ อยู่ 3 ตัว คือ

  • AD6555ABC -> Voltage-to-Frequency andFrequency-to-Voltage Converter
  • AD61021A
  • M36W0R504  
ทั้งหมดก็มีอยู่เท่านี้ครับ 2 รูปสุดคือรูปถ่ายรวมชิ้นส่วนทั้งหมดของโมเด็มนี้
ชิ้นส่วนทั้งหมด
ชิ้นส่วนทั้งหมดด้านตรงกันข้าม


Hardware review: Thomson SpeedTouch 546 v6

สวัสดีครับทุกท่าน สำหรับครั้งนี้ผมขอนำเสนอรูปภาพส่วนต่างๆ ของเราเตอร์ Thomson speedTouch 546 v6 เรื่องเนื้อหาไม่มีอะไรมาก เน้นรูปภาพซะส่วนมากครับ

ด้านหน้าของ Thomson ST546 v6
เราเตอร์รุ่นนี้ใช้กับอแดปเตอร์ AC ขนาด 18V 0.6A ด้านหลังของเครื่องมีพอร์ต DSL 1 พอร์ต พอร์ต 10/100 Ethernet 4 พอร์ต ปุ่มเปิด-ปิดเราเตอร์ และปุ่มรีเซ็ตดังรูปล่าง

ด้านหลังของ Thomson ST546 v6
ด้าานล่างมีสติกบอกยี่ห้อ รุ่น อยู่

ด่านล่าง

เริ่มแรกผมไขน็อตใต้เครื่องมีอยู่ 4 ตัว หลังจากนั้นก็ใช้บัตรพลาสติกรูดรอยต่อระหว่างฝาบนกับฝาล่างเพื่อกดล็อคพลาสติกให้แกะออกได้

เคสของเราเตอร์
หน้าตาของบอร์ดตามรูปข้างล่างครับ

ด้านบน

ด้านล่าง

ด้านบนของบอร์ดมีไอซีหลักๆ อยู่ 3 ตัว ได้แก่

BCM6338KFBG Product brief

CPU: BCM6338KFBG 
BCM5325EKQMG Product brief

Ethernet: BCM5325EKQMG 

IC42S16800-7TG Datasheet

RAM: IC42S16800-7TG
ส่วนด้านล่างมีไอซีหลักๆ 1 ตัวคือ 
S29GL032M90TFIR4 Datasheet

ROM: S29GL032M90TFIR4

จากไอซีทั้งหมดที่กล่าวมา สามารถสรุปได้ดังนี้
  • CPU -> Broadcom BCM6338KFBG: ADSL2+ BRIDGE/ROUTER 
  • Ethernet -> Broadcom BCM5325EKQMG: FIVE-PORT 10/100 SWITCH WITH ON-CHIP PACKET BUFFER
  • RAM -> ICS IC42S16800-7TG: 4(2)M x 8(16) Bits x 4 Banks (128-MBIT) SYNCHRONOUS DYNAMIC RAM
  • ROM -> Spansion S29GL032M90TFIR4: 32 Megabit Flash 
จากนั้นก็มาดู Serial console ของเราเตอร์ ใช้ความ 9600bps

ขา Serial console
เมื่อผมต่อเข้ากับคอมพิวเตอร์ผ่านทาง USB to serial แล้วเปิด Terminal ขึ้นมาแล้วเปิดเราเตอร์ จะปรากฎ boot message ดังด้านล่างครับ

Boot message


Unzipping started

 UNZIP DONE -> starting bootloader

 Speedtouch initialization sequence started.
Secondary boot

Unzipping started

 UNZIP DONE -> starting uncompressed file

 Speedtouch initialization sequence started.▒

[OSI2]  File "/ZZQ0BK6.105": Format OSI2 compliant (offset=340, prodid="0", varid="0").
[SS]    Device mounted (prodid="0", prodname="SpeedTouch 5x6", varid="0", varname="").
ELF]    Loading file "/ZZQ0BK6.105" ...
c
archfs opened /ZZQ0BK6.105 offset 1407139ed.
rDSL PHY version is A2pBT0F09.do16l
 ETH: De viceE registeMred:A BCM6338C-E#01.
E TH: -Device r egisstered: BeCM53l25E#e0.
nETH: Intterfa ce 0 assfigned: BoCM53r25E# 0:0 n[extoernal].
 ETH-: Inmterfaace n1 asasignged: eBCM5325Ed#0:1  [externsal].
ETwH: Iintertfacec 2 assighned:  BCM(5325sE#0:i2 [external]n.
external].eerfac e 3 EassiMgnedA: BCCM532)5E#0.:3 [

ETH: Device registered: SBRIDGE#0.
ETH: Device registered: BCM6338-U#0.
ETH: Interface 4 assigned: BCM6338-E#0:0 [internal].
ETH: Interface 5 assigned: BCM5325E#0:8 [internal].
ETH: Internal connection: intf 5 <-> intf 4.
--- REGISTERING STREAM : ROUTING ---
MFC routing init : alloc 31744 bytes.
--- REGISTERING CONNECTION : FW ---
--- REGISTERING CONNECTION : IDS ---
--- REGISTERING STREAM : LABEL ---
--- REGISTERING STREAM : IPQOS ---
--- REGISTERING STREAM : TRIGGER ---
--- REGISTERING CONNECTION : NAT ---

************* ERROR RECORD *************
time            : 000000:00:00.000000
Application /ZZQ0BK6.105 started after POWERON.
****************** END *****************
Value required for parameter 'value'
Invalid option => addr
Unknown user name specified.
Bad value for parameter 'name'
Username :

สิ้นสุดถึงตรงนี้เพราะว่าผมไม่รู้ Username และ Password ครับ

วันอาทิตย์ที่ 27 ตุลาคม พ.ศ. 2556

เปลี่ยนจอ i-mobile รุ่น i-note 2 wifi 7'

Tablet น้องผมจอแตก ผมก็เลยซื้อจอมาเปลี่ยนเองครับ ตัวจอราคา 700 บาท ไม่รู้ว่าถูกหรือแพง การเปลี่ยนง่ายมาก ฝาหลังของ i-note เป็นล็อคพลาสติกทั้งหมดสามารถแกะได้โดยใช้เล็บแงะล็อคไปเรื่อยๆ ในครั้งนี้ผมไม่ได้จะนำเสนอวิธีการซ่อมจอครับ แต่จะเสนอรูปถ่ายชิ้นส่วน ไอซี ภายในของ i-note ตัวเครื่อง

เริ่มด้วยภาพโดยรวมของบอร์ด จะเห็นว่าแบตมีขนาด 3000mA
ภาพบอร์ด

CPU คือ AllWinner A13
CPU A13

ตัวต่อมาก็คือ Flash Memory ในรูปคือ hynix H27UBG8T2BTR datasheet

Flash memory 

ในส่วนของแรมคือ hynix H5TQ2G83CFR datasheet
Ram
ตัว IC wireless เป็นของ Realtek ผมถ่ายมาไม่ชัดเลยอ่านไม่ออกครับ
WiFi IC

ตัวนี้คือ AXP209 เป็น Power management IC datasheet
Power IC

ตัวนี้คือ Switching regulator แบบ Step-down รุ่น EMP eml3022 datasheet
Step-down regulator

ตัวต่อมาคือโมดูลกล้องหลังอันนี้ผมไม่ทราบว่ารุ่นอะไรครับ
โมดูลกล้องหลัง

ส่วนของกล้องหน้าดังรูปข้างล่าง ไม่รู้รุ่นเช่นกันครับ
โมดูลกล้องหน้า

ตัวต่อมาคือ ทัชสกรีน ไม่ทราบรุ่นครับ
Touch screen

ส่วนจอ lcd ผมถ่ายมาแต่ตัวใหม่ที่เปลี่ยน ตัวเดิมที่แตกไม่ได้ถ่ายมาครับ
จอ lcd 7 นิ้ว

จากที่เห็นชิ้นส่วนหลักๆก็มีเท่านี้ครับ






Zyxel P660HN-T1A Firmware Repair

ผมได้ Router ที่เสียมาตัวนึง อาการเสียคือ เครื่องเปิดได้ปกติ แต่เข้าเว็บเพื่อ config ไม่ได้ ผมจึงลองแกะเคสออกเพื่อเชื่อมกับ Serial Port ของเราเตอร์ โดยตั้ง Baudrate ที่ 115200

รูปบอร์ด P660HN-T1A
ฮาร์ดแวร์ของเราเตอร์รุ่นนี้จัดว่าประสิทธิภาพสูงอยู่ โดยมีรายละเอียดตามตารางครับ


ตารางรายการฮาร์ดแวร์
รายการ ชื่อ
SoC TrendChip TC3162U-LQ128G
Flash MX25L6405D SPI Flash 8MiB
Ram Winbound W9825G6JH-6 32MiB
Ethernet TrendChip TC2206F 10/100
Wireless Ralink RT3390L Wireless b/g/n
ADSL TrendChip TC3086

จากที่ผมพิมพ์คำสั่งเช็คดูพบว่าเราเตอร์ไม่บูตเนื่องจากเฟิร์มแวร์เสียหายบางส่วนตัว bootloader ไม่ให้ boot เพราะค่า crc ผิดพลาด ผมบังคับให้เราเตอร์บูตโดยพิมพ์คำสั่ง "go" ใน bootloader หลังจากนั้นรอเราเตอร์บูตเข้า linux ถึงตอนนี้ผมสามารถ telnet เข้าไปได้แล้วแต่ยังเข้า config ใน web interface ได้ พอเช็คดูจึงรู้ว่า process ที่ทำงาน web server ที่ชื่อว่า boa ไม่ทำงาน ผมลองสั่ง run คำสั่ง boa แต่ก็ขึ้น error

ว่าไฟล์บางตัวมีปัญหา จึง start web server ไม่ได้ ทางแก้ต่อมาที่คิดได้คือ ลงเฟิร์มแวร์ใหม่ แต่จะทำยังไงเพราะหน้าเว็บเข้าไม่ได้ ผมได้ลองอยู่หลายวิธี เช่น ลองใช้คำสั่งใน bootloader แต่ก็ทำไม่ได้เพราะไม่รู้ว่าแต่ละคำสั่งใช้ยังไง ต่อมาก็ลองโดยใช้ tftp ดึงเฟิร์มแวร์เข้าเราเตอร์ แล้วสั่งเขียนเฟิร์มแวร์โดยคำสั่ง mtd แต่ก็ขึ้นข้อผิดพลาด วิธีนี้จึงใช้ไม่ได้

ผมได้หาข้อมูลจาก google จนมาพบอีกวิธีโดยใช้ ftp โดยทำดังนี้

  1. เข้า command promt 
  2. ผมเก็บเฟิร์มแวร์ไว้ที่ C:\Users\sun89\Desktop\340ULM0b25 ต้อง cd เข้าไปโดยเรียกใช้ดังนี้ "cd C:\Users\sun89\Desktop\340ULM0b25"
  3. พิมพ์คำสั่ง ftp 192.168.1.1
  4. กรอก user name และ password ซึ่งก็คือ admin,password
  5. เมื่อขึ้น ftp> ให้พิมพ์คำสั่ง put 340ULM0b25.bin image ;340ULM0b25.bin คือชื่อเฟิร์มแวร์ รอจนได้ผลลัพธ์ตามรูปด้านล่างเป็นอันเสร็จสิ้น
ผลลัพธ์
หลังจากเสร็จพบว่าสามารถเข้าไป config ทาง web interface ได้ปกติดี จึงขอจบการรายงานเพียงเท่านี้ครับ

Web Interface
แหล่งข้อมูล