IDT 79RC32334에서 FreeBSD
이 모델은 Netgear의 WG602v1과 동일한 기판을 사용하는 것 같습니다.
분해해 보니 Power와 LAN의 LED가 꺼졌습니다. 확실히 설치 장소에 따라서는, 치카치카 해 눈부신지도 모르고, 떼어내는 것으로 소비 전력도 내려간다고 생각됩니다. 과연 햄 페어의 정크입니다.
이 보드의 J1은 JTAG/EJTAG의 24핀 1.24mm 피치 커넥터로 배열은 데이터시트에 있습니다. J3와 J4는 UART의 커넥터로 J4가 0의 풀로 J3가 1의 TX/RX만이 되어 있습니다.
u-boot를 빌드하는 사람 그래서 먼저 이것을 설치하려고했습니다.
이 u-boot는 netconsole인 빌드로 우선 네트워크에서 조작하기로 합니다.netconsole은 UDP 브로드 캐스트를 사용하여 움직이고있는 것 같습니다.
u-boot의 소스 트리의 tools 아래에 netconsole이라는 스크립트가 준비되어 있으므로 이것을 사용하는 것이 좋습니다. 이 스크립트는 nc만으로는 잘 작동하지 않았으므로 같은 디렉토리의 ncb.c를 컴파일 한 바이너리도 사용합니다.
IDT는 미국 실리콘밸리의 회사로, 이 SOC는 2000년 정도부터인 MIPS계 SOC의 선구자로, FreeBSD의 sys/mips/idt에 코드가 있는 32434의 전의 제품이 됩니다. MIPS4K 앞에 있었던 Enhancements to MIPS II와 같습니다. RC32434는 4K와 같습니다. IDT는 현재는 MIPS인 SOC는 만들지 않은 것 같습니다.
RC32334와 RC32434는 형번이 다릅니다만, 거의 다른 칩인 것 같습니다. RC32434에는 Tulip 계열의 네트워크 인터페이스가 포함되어 있지만 RC32334에는 없습니다. 인터럽트 컨트롤러나 PCI 컨트롤러도 주소도 다르고 구성도 전혀 다른 것 같습니다.
RC32334에서 캐쉬를 온으로 기동하면 떨어지므로, 오프의 옵션(MIPS_DISABLE_L1_CACHE)을 지정하고 있습니다.
ZRouter의 soc와 boards에 엔트리를 만들고, sys/mips/idt를 사용하여 어쨌든 일단 시작했습니다. sys/mips/idt는 더 이상 아무도 빌드하지 않는 것 같지만 오류도 없고 빌드 할 수있었습니다.
U-Boot 2009.11 (Jan 17 2010 - 14:10:57)
Board: Netgear WG602(CPU Speed 150 MHz)
DRAM: 16 MB
Flash: 4 MB
*** Warning - bad CRC, using default environment
cmd line: (null)
Cache info:
picache_stride = 0
picache_loopcount = 0
pdcache_stride = 0
pdcache_loopcount = 0
max line size = 0
cpu0: Unknown cid 0 processor v0.24
MMU: Standard TLB, 0 entries
L1 i-cache: disabled L1 d-cache: disabled L2 cache: disabled
Physical memory chunk(s):
0x375000 - 0xffffff, 13152256 bytes (3211 pages)
Maxmem is 0x1000000
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2017 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 12.0-CURRENT #17 edef34f(zrouter)-dirty: Mon Sep 4 20:24:38 JST 2017
hiroki@microserver:/storage/home/hiroki/obj/storage/home/hiroki/zrouter/tmp/
mips.mipsel/storage/home/hiroki/freebsd/sys/IOData_WN_G54AXP mips
gcc version 4.2.1 20070831 patched [FreeBSD]
Preloaded elf kernel "kernel" at 0x80370360.
real memory = 16777216 (16384K bytes)
Physical memory chunk(s):
0x00401000 - 0x00f8afff, 12099584 bytes (2954 pages)
avail memory = 11829248 (11MB)
arc4random: no preloaded entropy cache
mem: <memory>
null: <full device, null device, zero device>
nexus0: <MIPS32 root nexus>
random: harvesting attach, 8 bytes (4 bits) from nexus0
clock0: <Generic MIPS32 ticker> on nexus0
Timecounter "MIPS32" frequency 165000000 Hz quality 800
Event timer "MIPS32" frequency 165000000 Hz quality 800
random: harvesting attach, 8 bytes (4 bits) from clock0
obio0 at mem 0-0x1ffffffe on nexus0
pcib0 on obio0
pci0: <PCI bus> on pcib0
pci0: domain=0, physical bus=0
found-> vendor=0x0014, dev=0x1808, revid=0x14
domain=0, bus=0, slot=0, func=0
class=18-08-00, hdrtype=0x08, mfdev=0
cmdreg=0x0014, statreg=0x1808, cachelnsz=20 (dwords)
lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
pci0: <unknown> at device 0.0 (no driver attached)
random: harvesting attach, 8 bytes (4 bits) from pci0
random: harvesting attach, 8 bytes (4 bits) from pcib0
uart0: <16550 or compatible> on obio0
uart0: console (115200,n,8,1)
uart0: fast interrupt
uart0: PPS capture mode: DCD
random: harvesting attach, 8 bytes (4 bits) from uart0
uart1: <Non-standard ns8250 class UART with FIFOs> on obio0
uart1: console (115200,n,8,1)
uart1: fast interrupt
uart1: PPS capture mode: DCD
random: harvesting attach, 8 bytes (4 bits) from uart1
random: harvesting attach, 8 bytes (4 bits) from obio0
cfi0 at mem 0xbfc00000-0xbfffffff on nexus0
device_attach: cfi0 attach returned 6
Device configuration finished.
Timecounters tick every 10.000 msec
tcp_init: net.inet.tcp.tcbhashsize auto tuned to 512
Trying to mount root from cd9660:/dev/map/rootfs.uzip []...
mountroot: waiting for device /dev/map/rootfs.uzip...
Mounting from cd9660:/dev/map/rootfs.uzip failed with error 19.
Loader variables:
Manual root filesystem specification:
<fstype>:<device> [options]
Mount <device> using filesystem <fstype>
and with the specified (optional) option list.
eg. ufs:/dev/da0s1a
zfs:tank
cd9660:/dev/cd0 ro
(which is equivalent to: mount -t cd9660 -o ro /dev/cd0 /)
? List valid disk boot devices
. Yield 1 second (for background tasks)
<empty line> Abort manual input
mountroot>
리눅스는 u-boot처럼 UDP를 사용한 netconsole을 사용할 수있는 것처럼 보이지만 FreeBSD에서는 지원되지 않으므로 위는 J4의 uart0 TX 출력입니다.
도전
pci가 어쩐지 움직여 그렇기 때문에, 무언가에 용도가 있으면 계속을 해 보고 싶습니다.
u-boot 중얼거리고 ur-jtag에서도 보았지만 cpu는 보이지만 flash가 보이지 않기 때문에, 단념했습니다.
Reference
이 문제에 관하여(IDT 79RC32334에서 FreeBSD), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yamori813/items/ca3098bb40ed61804f1a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)