LoginSignup
0

posted at

updated at

RT1310のif

ドライバーを作ってみたのですが、落ちます。

# dhcpcd fv1
dhcpcd-9.4.1 starting
dhcpcd-9.4.1 starting
spawned manager process on PID 97
fv1: executing: /libexec/dhcpcd-run-hooks PREINIT
fv1: waiting for carrier
fv1: waiting for carrier
fv1: carrier unknown, assuming up
fv1: carrier unknown, assuming up
fv1: executing: /libexec/dhcpcd-run-hooks CARRIER
DUID 00:01:00:01:2b:62:f4:64:d4:94:a1:97:03:94
DUID 00:01:00:01:2b:62:f4:64:d4:94:a1:97:03:94
fv1: IAID a1:97:03:94
fv1: IAID a1:97:03:94
fv1: delaying IPv4 for 0.4 seconds
fv1: reading lease: /var/db/dhcpcd/fv1.lease
fv1: soliciting a DHCP lease
fv1: soliciting a DHCP lease
fv1: sending DISCOVER (xid 0xca661586), next in 3.9 seconds
fv1: offered 10.0.2.157 from 10.0.2.1
fv1: offered 10.0.2.157 from 10.0.2.1
fv1: sending REQUEST (xid 0xca661586), next in 3.0 seconds
fv1: acknowledged 10.0.2.157 from 10.0.2.1
fv1: adding IP address 10.0.2.157/24 broadcast 10.0.2.255

[   7.0500524] uvm_fault(0xc05f06a0, 0, 1) -> e
[   7.0706743] Fatal kernel mode data abort: 'Translation Fault (P)'
[   7.0889626] trapframe: 0xc3d1fde0
[   7.0889626] FSR=00000017, FAR=0000000c, spsr=60000013
[   7.1101287] r0 =c3d1fe3c, r1 =0000000c, r2 =00000002, r3 =00000040
[   7.1326088] r4 =00000000, r5 =c3d1fea4, r6 =00000000, r7 =00000000
[   7.1511641] r8 =00ff00ff, r9 =c215c700, r10=00000000, r11=c3d1fe64
[   7.1697209] r12=00000028, ssp=c3d1fe30, slr=c017e8a0, pc =c01b960c

Stopped in pid 0.3 (system) at  netbsd:__aeabi_memcpy+0x9c:     ldrb    r3, [r1]
, #0x001
db> trace
0xc3d1fe64: netbsd:bpf_filter_ext+0x10
0xc3d1ff24: netbsd:bpf_deliver+0x2c8
0xc3d1ff44: netbsd:_bpf_mtap+0x94
0xc3d1ff6c: netbsd:if_percpuq_softint+0x9c
0xc3d1ffac: netbsd:softint_thread+0x94
db> 

たまにうまくいったりしますが、じきに落ちます。謎です。

このSOCのMACは設定用のパケットを送信してMACアドレスをMACに設定します。

RXのディスクリプタに貼った、mbufが腐る事があるようです。とりあえずmtod()して0だったら捨てるワークアラウンドを入れたら、どうにか落ちないようになりました。なんで腐るのかを調べる必要がありそうです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0