Необходимо перепрошить флеш на рутере.
Девайс: Sofaware Checkpoint edge utm-1 (SBXW-166LHGE-6)
- CPU: MSP2006 Brecis (PMC-Sierra)
- 2 x RJ45 10/100 port + 1 x 4-port LAN switch (IC Plus Corp - IP175C)
- MiniPCI form-factor Gigabyte wireless NIC (Atheros chipset)
- 64MB RAM
- 1 x serial port
- VIA VT6212L USB Controller
- Flash: Spansion S29JL06H (8М)
- EJTAG 2.6 14-pin interface
Софт: Embedded NGX. На самом деле это uclinux с кучей гнутого софта, но интерфейс сильно порезан вендором. Хочется поставить туда нормальный uclinux. JTAG распаял. Использовал стандартный Xilinx DLC5 кабель
LPT ----------- EJTAG
2 <- 100 Ohm-> 3 (TDI)
3 <- 100 Ohm -> 9 (TCK)
4 <- 100 Ohm -> 7 (TMS)
13 <- 100 Ohm -> 5 (TDO)
20,25,GND <------> 6 (GND)
on JTAG connect pins 1 <-100 Ohm-> 14
Софт для прошивки: urjtag
Пытаюсь перепрограммировать флеш:
jtag> cable DLC5 ppdev /dev/parport0
Initializing ppdev port /dev/parport0
jtag> detect
IR length: 5
Chain length: 1
Device Id: 00010000001000000010001011100001 (0x00000000102022E1)
Manufacturer: Brecis (PMC-Sierra)
Part(0): MSP2006
Stepping: 1
Filename: /usr/local/share/urjtag/brecis/msp2006/msp2006
ImpCode=01000001000000000100000000000000 41004000
EJTAG version: 2.6
EJTAG Implementation flags: R4k DINTsup NoDMA MIPS32
Processor entered Debug Mode.
detectflash 0x1fc00000
Query identification string:
Primary Algorithm Command Set and Control Interface ID Code: 0x0002 (AMD/Fujitsu Standard Command Set)
Alternate Algorithm Command Set and Control Interface ID Code: 0x0000 (null)
Query system interface information:
Vcc Logic Supply Minimum Write/Erase or Write voltage: 2700 mV
Vcc Logic Supply Maximum Write/Erase or Write voltage: 3600 mV
Vpp [Programming] Supply Minimum Write/Erase voltage: 0 mV
Vpp [Programming] Supply Maximum Write/Erase voltage: 0 mV
Typical timeout per single byte/word program: 8 us
Typical timeout for maximum-size multi-byte program: 0 us
Typical timeout per individual block erase: 512 ms
Typical timeout for full chip erase: 0 ms
Maximum timeout for byte/word program: 256 us
Maximum timeout for multi-byte program: 0 us
Maximum timeout per individual block erase: 8192 ms
Maximum timeout for chip erase: 0 ms
Device geometry definition:
Device Size: 8388608 B (8192 KiB, 8 MiB)
Flash Device Interface Code description: 0x0002 (x8/x16)
Maximum number of bytes in multi-byte program: 1
Number of Erase Block RegioПроблема в том, что при прошивке любого из первых 8 блоков (размер первых и последних 8 блоков - 8К, остальные болки 64К ).
Если прошиваю любой из первых 8 блоков сначала затираются все 8 блоков, затем записывается 1 блок
ns within device: 3
Erase Block Region Information:
Region 0:
Erase Block Size: 8192 B (8 KiB)
Number of Erase Blocks: 8
Region 1:
Erase Block Size: 65536 B (64 KiB)
Number of Erase Blocks: 126
Region 2:
Erase Block Size: 8192 B (8 KiB)
Number of Erase Blocks: 8
Primary Vendor-Specific Extended Query:
Major version number: 1
Minor version number: 3
Address Sensitive Unlock: Required
Process Technology: Bad value
Erase Suspend: Read/write
Sector Protect: 1 sectors per group
Sector Temporary Unprotect: Not supported
Sector Protect/Unprotect Scheme: 29BDS640 mode (Software Command Locking)
Simultaneous Operation: 119 sectors
Burst Mode T ype: Supported
Page Mode Type: Not supported
ACC (Acceleration) Supply Minimum: 8500 mV
ACC (Acceleration) Supply Maximum: 9500 mV
Top/Bottom Sector Flag: 8x8kb sectors at top and bottom with WP control
Program Suspend: Not supported
Bank Organization:
Bank1: 23 sectors
Bank2: 48 sectors
Bank3: 48 sectors
Bank4: 23 sectors
Непосредственно препрошивка:
jtag> flashmem 0x1fc0c000 block06.bin
Chip: AMD Flash
Manufacturer: AMD
Chip: S92GLxxxN
Protected: 0000
program:
flash_unlock_block 0x1FC0C000 IGNORE
block 6 unlocked
flash_erase_block 0x1FC0C000
flash_erase_block 0x1FC0C000 DONE
erasing block 6: 0
addr: 0x1FC0DFFF
verify:
addr: 0x1FC0DFFF
Done.
jtag>
Проблема проявляется при прошивке любого из первых 8 блоков (размер первых и последних 8 блоков - 8К, остальные болки 64К ). Если прошиваю любой из первых 8 блоков сначала зачем-то затираются все 8 блоков, затем записывается 1 блок.