RealTek
Загрузчик RealTek разработан непосредственно компанией RealTek и используется только с чипами собственного производства (RTL819x, RTL8881 и т.д.). Исходники можно найти разных версиях Realtek SDK.
Согласно конфигурации из исходников загрузчик поддерживает как минимум TFTP и опционально HTTP и DHCP сервисы.
Booting... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ chip__no chip__id mfr___id dev___id cap___id size_sft dev_size chipSize @ 0000000h 0c84018h 00000c8h 0000040h 0000018h 0000000h 0000018h 1000000h @ blk_size blk__cnt sec_size sec__cnt pageSize page_cnt chip_clk chipName @ 0010000h 0000100h 0001000h 0001000h 0000100h 0000010h 000002dh GD25Q128 @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ---RealTek(RTL8196D)at 2013.12.26-08:32+0800 v1.1 [16bit](700MHz) no rootfs signature at 000E0000! no rootfs signature at 000F0000! no rootfs signature at 00130000! no rootfs signature at 000E1000! no rootfs signature at 000E2000! ... [skipped] ... no rootfs signature at 0015E000! no rootfs signature at 0015F000! P0phymode=03, embedded phy ---Ethernet init Okay! <RealTek>
Short help command:
<RealTek>? ----------------- COMMAND MODE HELP ------------------ HELP (?) : Print this help message DB <Address> <Len> DW <Address> <Len> EB <Address> <Value1> <Value2>... EW <Address> <Value1> <Value2>... CMP: CMP <dst><src><length> IPCONFIG:<TargetAddress> AUTOBURN: 0/1 LOADADDR: <Load Address> J: Jump to <TargetAddress> FLR: FLR <dst><src><length> FLW <dst_ROM_offset><src_RAM_addr><length_Byte> <SPI cnt#>: Write offset-data to SPI from RAM MDIOR: MDIOR <phyid> <reg> MDIOW: MDIOW <phyid> <reg> <data> PHYR: PHYR <PHYID><reg> PHYW: PHYW <PHYID><reg><data> D8 <Address> E8 <Address> <Value>
DW - Выгрузка дампа памяти в Hex 32bit словах. Address: начальный адрес в hex ; Len: Длина куска в dec (округление вверх до ближайших 4)
<RealTek>DW 80000000 8 80000000: DEADBEEF 13371337 00C0FFEE D15EA5ED 80000010: 00000000 00000000 00000000 00000000 <RealTek>
EW - Запись значения hex в память 32-битными словами Address: Начальный адрес в hex ; Values: значения, разделенный пробелами (hex words) (Unlimited?)
<RealTek>EW 80000000 deadbeef 13371337 c0ffee d15ea5ed <RealTek>
DB - Выгрузка дампа памяти в байтах Address: Начальный адрес в hex ; Len: Кол-во байт в dec
<RealTek>DB 80000000 32 [Addr] .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F 80000000: de ad be ef 13 37 13 37 00 c0 ff ee d1 5e a5 ed .....7.7.....^.. 80000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ <RealTek>
EB - Запись значения hex в память в байтах Address: Начальный адрес hex ; Values: Значения, разделенный пробелами (hex bytes) (Unlimited?)
<RealTek>EB 80000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f <RealTek>
CMP - Сравнение кусков памяти 32-битными кусками. dst: Первый адрес в hex ; src: Второй адрес в hex ; length: Длина в байтах (округлена до 32бит)
<RealTek>CMP 80000000 80000010 4 0th data(deadbeef 00000000) error <RealTek>CMP 80000010 80000014 4 No error found <RealTek>
IPCONFIG - Просмотр/установка IP-адреса загрузчика для сервисов (TFTP,HTTP,DHCP) (по умолчанию 192.168.1.6) ip: IP-адрес
<RealTek>IPCONFIG Target Address=192.168.1.6 <RealTek>IPCONFIG 10.0.0.1 Now your Target IP is 10.0.0.1 <RealTek>
AUTOBURN - Должен ли загрузчик автоматически прошивать во флэш загруженный файл по TFTP? 0 = нет, 1 = да
<RealTek>AUTOBURN 0 AutoBurning=0 <RealTek>
LOADADDR - Устанавливает адрес загрузки в память по TFTP. address: Адрес в hex
<RealTek>LOADADDR 80000000 Set TFTP Load Addr 0x80000000 <RealTek>
J - Прыг по адресу (загружаем имидж) address: Адрес в hex
<RealTek>J 80500000 ---Jump to address=80500000 Decompressing kernel... done! Starting kernel at 80000000...
FLR - Чтение из Flash в RAM dst: RAM адрес в hex ; src: Flash адрес в hex ; length: Длина куска в байтах в hex(!!!)
<RealTek>FLR 80000000 100000 f Flash read from 00100000 to 80000000 with 0000000F bytes ? (Y)es , (N)o ? --> y Flash Read Successed!
Загрузчик принимает данные через TFTP. Не всегда работает, но можно попробовать встроенный Windows TFTP для загрузки прошивки:
X:\>tftp -i 192.168.1.6 put testkernel.bin Transfer successful: 1048576 bytes in 2 second(s), 514296 bytes/s
На устройстве вы увидите:
<RealTek> **TFTP Client Upload, File Name: testkernel.bin - (Spinning progress indicator) **TFTP Client Upload File Size = 00100000 Bytes at 80500000 Success!
PS: Если во время загрузки по TFTP никакой реакции в консоли устройства не видно, - попробуйте TFTP-сервер стороннего производителя.