嵌入式开发者社区

标题: 关于ax88796b的板级驱动 [打印本页]

作者: zhaohui293    时间: 2014-11-21 09:56
标题: 关于ax88796b的板级驱动
我在board-da850-evm.c文件增加ax88796b的板级驱动:static struct resource ax88796b_resources[] = {
1 n' N, D' o4 j$ W5 B1 d  L        [0] = {) ]/ p$ _. a+ [+ M
                .start = DA8XX_AEMIF_CS5_BASE,9 P# F- M2 h/ c) o9 l7 Q
                .end   = DA8XX_AEMIF_CS5_BASE + SZ_32K - 1,
6 u& k1 h6 Q, T( B& y, p4 {' J+ a                .flags = IORESOURCE_MEM,
# D# R3 ^2 U3 q" R0 ~) ^9 w! r3 D        },* D, m$ A% c! {% I2 n% o
        [1] = {
8 H1 x# a0 J& k" [$ X                .start = -1,) Q  K  e" U# E5 N' g
                .end   = -1,
: A' G$ F9 N$ b# T- a                .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,! G2 E7 b9 W# c: C$ k: ~
        },
2 a( J* y! X( j1 a+ h
' S# o9 T% s/ Z& r5 Z};
1 I! D8 C1 q# o0 U9 q3 _
7 Z# U8 F8 N  L! {+ L) ~static struct platform_device ax88796b_device = {" o% C1 B) L; }. ]* W
        .name = "ax88796b",
' s6 _- ?# [5 i0 V8 f        .dev = {" e2 s$ ]4 r- \$ t. {# A

& }  t& V# [5 c        },+ V( h4 T5 [0 C: K
        .num_resources = ARRAY_SIZE(ax88796b_resources),
. ?$ N- N: j+ \3 V$ a        .resource = ax88796b_resources,
7 z/ ~5 [2 U. i5 r  ^7 n};
% P3 P5 [( F% `1 p. H. L+ i" a% m0 Z  t
static inline void da850_evm_setup_ax88796b(void)( x; ~0 |$ ?7 F# b& ~
{
' L) m. U% P$ Z: E' F9 r        void __iomem *aemif_addr;
8 H/ K2 x1 _* P) y9 g8 v* [7 U! t0 E        int ret = 0;
& e. |9 t* A. ]. c- n* c( B3 s        9 @4 Z0 C1 Y: \, K0 n
        ret = davinci_cfg_reg_list(da850_evm_ax88796b_pins);
, `# m: h/ L2 `% F+ o# K$ s2 F       
7 q5 X8 h4 J$ d: f6 [  X# o5 e        if(ret)
+ J, z6 m, T# U" \8 {                pr_warning("da850_evm_init: ax88796b mux setup failde:"
) j# r9 I4 G2 B+ D                        "%d\n", ret);
# ^  U; g8 n2 x, a' N        aemif_addr = ioremap(DA8XX_AEMIF_CTL_BASE, SZ_32K);( G. h0 _  y& j+ l' D
        - H  }) }: ^# B# b3 `, B
        writel(readl(aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET) |% I+ q, I  X1 I- H2 T8 L
                DA8XX_AEMIF_ASIZE_16BIT,! D$ J  }. ?( |6 a) F
                aemif_addr + DA8XX_AEMIF_CE5CFG_OFFSET);
; F' ?. Q( [( u6 P$ Q7 R        iounmap(aemif_addr);
* z' |( m3 L7 }; u        ax88796b_resources[1].start = gpio_to_irq(DA850_AX88796B_IRQ);. G8 ^$ j/ b7 o7 ~3 \2 C. r6 O1 |' z
        ax88796b_resources[1].end   = ax88796b_resources[1].start;4 H+ l  M0 w: J0 p+ ?
       
! d! d+ E2 S; q/ z- {: s; `        platform_device_register(&ax88796b_device);* }. R3 d6 M$ o
        ( Z, Q4 Q1 S# p/ z
}
: ^6 t: A6 W$ |$ x( q$ Z% k$ ~3 H3 z7 F
和相关的引脚配置: j( z% z, |9 @; p
编译通过,
: y! L; I1 t4 ]在板子内核启动过程中:: f! L2 }' Y5 x
INIT: version 2.88 booting1 ?/ N* Z. k8 r
Starting udev
. [: O" b, x5 X3 W0 C# ?Starting Bootlog daemon: bootlogd.
  _' D, O5 a4 v1 o; E2 P1 K4 u) zALSA: Restoring mixer settings...$ M8 W& U2 `5 Q: \
/usr/sbin/alsactl: load_state:1686: No soundcards found...
$ o$ n0 M) N4 oConfiguring network interfaces... [   12.665617] davinci_mdio davinci_mdio.0: resetting idled controller9 p1 n9 p4 m, \
[   12.672854] net eth0: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=davinci_mdio-0:00, id=7c0f1)' K: E" N# H: c
udhcpc (v1.20.2) started
5 M- Z8 Q: ^- l2 c+ d# u! s6 L! ^Sending discover...
$ b9 D) G3 |$ m; USending discover...
- s- e; p- K' y1 R7 J: Z9 mSending discover...' c- \% R% z% Y. `; H
No lease, failing
# j( }9 z3 x5 y. p3 ?; t& q" Q0 f- a: _0 ddone.0 m0 j/ b- I6 g, D
Wed Nov  6 04:33:00 UTC 20131 h! b: m9 }7 w" o% @$ q% {( r7 @
INIT: Entering runlevel: 57 H7 C2 X% o5 X1 S* f
Starting system message bus: dbus.
8 H/ s! [9 d0 R' q7 d+ sStarting Dropbear SSH server: [   22.869096] ipv6: disagrees about version of symbol inet_recvmsg' K+ Y9 e! m! J' ]- O
[   22.875341] ipv6: Unknown symbol inet_recvmsg (err -22)
* ?- |, a; C1 H[   22.880894] ipv6: disagrees about version of symbol skb_free_datagram
* y1 b9 x2 O' U2 N2 g' K( h  ~5 \( @[   22.887493] ipv6: Unknown symbol skb_free_datagram (err -22)
$ e1 ~: l- i/ x' i& B" U[   22.893560] ipv6: disagrees about version of symbol __skb_checksum_complete
, A0 S8 x. g5 y$ \! R3 W! h! }[   22.900598] ipv6: Unknown symbol __skb_checksum_complete (err -22)
. k/ i+ c. R! A[   22.907048] ipv6: disagrees about version of symbol register_sysctl_paths3 T! Z' M$ i# b  C# l

" q! p; q+ D# t[   22.913984] ipv6: Unknown symbol register_sysctl_paths (err -22)& E' X1 M8 ^7 |+ E1 I
[   22.920203] ipv6: disagrees about version of symbol xfrm_inner_extract_output' f; J" w# [; M' l9 X: V: M9 @4 q
[   22.927486] ipv6: Unknown symbol xfrm_inner_extract_output (err -22)* {' X' L" D. }/ i
[   22.934104] ipv6: disagrees about version of symbol skb_free_datagram_locked& ~! X- T. s( R2 j0 `- m7 `, O
[   22.941222] ipv6: Unknown symbol skb_free_datagram_locked (err -22); p7 j, w! H' P$ w/ |. u! F
[   22.947739] ipv6: disagrees about version of symbol sock_i_uid
+ j* h  a. l4 t0 o' o5 S/ L
& a# L/ \2 P6 ?- y$ b就会出现这个问题,请问如何解决- i: r# _" ?. O, M( t
! q9 c. N' H1 d: i) {  I8 q+ S7 L

作者: teddy    时间: 2014-11-24 22:01
请问您是出了什么问题了,这里的信息没看到时跟您的ax88796b相关的错误。
# o, }+ j+ C1 @) e3 T5 E" k9 r
作者: zhaohui293    时间: 2014-11-25 20:34
本帖最后由 zhaohui293 于 2014-11-25 20:36 编辑 2 f& b! I8 p' y# ?& p" A- M, i
0 h- b- F) E" O4 D6 `4 B
我添加了ax88796b的板级驱动,就出现上面的情况,没有添加的时候编译内核不会出现ipv6的问题。
6 X) h- `2 Y8 {2 [7 R3 Z% K! W9 V

作者: teddy    时间: 2014-11-27 10:15
ipv6: Unknown symbol inet_recvmsg (err -22)* 这个可能是因为,你的内核配置,会把ipv6的编译配置给关闭了,导致ipv6部分代码没有编译进内核。% ?: s9 `0 B7 d2 h* F& k6 S& T* @

作者: zhaohui293    时间: 2014-11-27 11:25
我应该如何做?
4 Z0 T& E. r- R# o




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4