but it still can't use, because the driver's status always be "initializing":
CODE
Module Size Used by Tainted: P
dm9601 13428 1 (initializing)
usb_ohci_pxa27x 21680 0 (unused)
usbcore 64176 1 [dm9601 usb_ohci_pxa27x]
squashfs 31280 1 (autoclean)
mousedev 4544 1
rfcomm 33556 0 (autoclean)
l2cap 16384 2 (autoclean) [rfcomm]
bluez 33188 2 (autoclean) [rfcomm l2cap]
pxa27x_bi 24828 0 (unused)
net_fd 25192 0 (unused)
usbdcore 35464 0 [pxa27x_bi net_fd]
usbdmonitor 5456 0
usb-monitor 6440 0
mmc_pxa 23856 1
sdcardmgr 1512 0 (unused)
mmc_block 24128 1
mmc_core 7928 2 [mmc_pxa mmc_block]
bvdd 11104 0 (unused)
dm9601 13428 1 (initializing)
usb_ohci_pxa27x 21680 0 (unused)
usbcore 64176 1 [dm9601 usb_ohci_pxa27x]
squashfs 31280 1 (autoclean)
mousedev 4544 1
rfcomm 33556 0 (autoclean)
l2cap 16384 2 (autoclean) [rfcomm]
bluez 33188 2 (autoclean) [rfcomm l2cap]
pxa27x_bi 24828 0 (unused)
net_fd 25192 0 (unused)
usbdcore 35464 0 [pxa27x_bi net_fd]
usbdmonitor 5456 0
usb-monitor 6440 0
mmc_pxa 23856 1
sdcardmgr 1512 0 (unused)
mmc_block 24128 1
mmc_core 7928 2 [mmc_pxa mmc_block]
bvdd 11104 0 (unused)
dmesg said, it's a memory page allocate error:
Unable to handle kernel paging request at virtual address 01100117
CODE
dm9601.c: dm9601.c: v0.0.6 2001/05/24 (C) 1999-2000 Petko Manolov (petkan@dce.bg)
usb.c: registered new driver dm9601
Unable to handle kernel paging request at virtual address 01100117
mm = c00184e0 pgd = c12b0000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<c5c0b310>] lr : [<c5bec048>] Tainted: P
sp : c1e31e18 ip : c5c0c0fc fp : c1e31e4c
r10: 00000000 r9 : c3126600 r8 : c3126600
r7 : c5c0c314 r6 : c35f7460 r5 : c5c0c2dc r4 : c5c0c334
r3 : 01100112 r2 : 000001e0 r1 : 00000000 r0 : c3126600
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 197F Table: A12B0000 DAC: 00000015 PID: 0
Process modprobe (pid: 1974, stack limit = 0xc1e30418)
Stack: (0xc1e31e18 to 0xc1e32000)
1e00: c1e31e24 c006eeb8
1e20: c006ea14 c5c0c334 c5c0c2dc c35f7460 c5c0c314 00000000 c3126600 00000000
1e40: c1e31e88 c1e31e50 c5bec048 c5c0b2fc c3126624 00000000 c5bfa1f0 00000000
1e60: 00000000 c3126600 c3126724 00000060 ffffffea c1e30000 00047c40 c1e31ea4
1e80: c1e31e8c c5bebcc0 c5bebee0 00000001 c3126800 c3126924 c1e31ec0 c1e31ea8
1ea0: c5bebc80 c5bebc54 c5bfa1f8 c5bfa1f8 c5bfaa50 c1e31edc c1e31ec4 c5beb17c
1ec0: c5bebc54 00000000 c5c0c314 c1d88000 c1e31ef4 c1e31ee0 c5beb108 c5beb12c
1ee0: 00000000 c5c09000 c1e31f04 c1e31ef8 c5c0b8d8 c5beb06c c1e31fa0 c1e31f08
1f00: c0034fd0 c5c0b83c c1d88000 c2ce3000 00000006 c35f7400 00000060 c5bfc000
1f20: c5c09060 00003474 00000000 00000000 00000000 00000000 00000000 00000000
1f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1f60: 00000000 00000000 00000000 00000000 00000000 00000000 00000003 c5c09000
1f80: 00000000 00000080 c001eb24 c1e30000 00000000 00000000 c1e31fa4 c001e7c0
1fa0: c00348d0 00000003 00000000 000321a8 00047c40 ffffffff 00000000 00000003
1fc0: c5c09000 00000000 000401e0 00003474 00000000 00000000 00000006 400e8ab0
1fe0: bfffa240 0000c938 400e8abc 60000010 000321a8 c1e30000 00000000 00000029
Backtrace:
Function entered at [<c5c0b2f0>] from [<c5bec048>]
Function entered at [<c5bebed4>] from [<c5bebcc0>]
Function entered at [<c5bebc48>] from [<c5bebc80>]
r6 = C3126924 r5 = C3126800 r4 = 00000001
Function entered at [<c5bebc48>] from [<c5beb17c>]
r6 = C5BFAA50 r5 = C5BFA1F8 r4 = C5BFA1F8
Function entered at [<c5beb120>] from [<c5beb108>]
r6 = C1D88000 r5 = C5C0C314 r4 = 00000000
Function entered at [<c5beb060>] from [<c5c0b8d8>]
r5 = C5C09000 r4 = 00000000
Function entered at [<c5c0b830>] from [<c0034fd0>]
Function entered at [<c00348c4>] from [<c001e7c0>]
Code: e59fc2f0 e24dd00c e59830e4 e06c2002 (e5d31005)
usb.c: registered new driver dm9601
Unable to handle kernel paging request at virtual address 01100117
mm = c00184e0 pgd = c12b0000
*pgd = 00000000, *pmd = 00000000
Internal error: Oops: 0
CPU: 0
pc : [<c5c0b310>] lr : [<c5bec048>] Tainted: P
sp : c1e31e18 ip : c5c0c0fc fp : c1e31e4c
r10: 00000000 r9 : c3126600 r8 : c3126600
r7 : c5c0c314 r6 : c35f7460 r5 : c5c0c2dc r4 : c5c0c334
r3 : 01100112 r2 : 000001e0 r1 : 00000000 r0 : c3126600
Flags: nZCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 197F Table: A12B0000 DAC: 00000015 PID: 0
Process modprobe (pid: 1974, stack limit = 0xc1e30418)
Stack: (0xc1e31e18 to 0xc1e32000)
1e00: c1e31e24 c006eeb8
1e20: c006ea14 c5c0c334 c5c0c2dc c35f7460 c5c0c314 00000000 c3126600 00000000
1e40: c1e31e88 c1e31e50 c5bec048 c5c0b2fc c3126624 00000000 c5bfa1f0 00000000
1e60: 00000000 c3126600 c3126724 00000060 ffffffea c1e30000 00047c40 c1e31ea4
1e80: c1e31e8c c5bebcc0 c5bebee0 00000001 c3126800 c3126924 c1e31ec0 c1e31ea8
1ea0: c5bebc80 c5bebc54 c5bfa1f8 c5bfa1f8 c5bfaa50 c1e31edc c1e31ec4 c5beb17c
1ec0: c5bebc54 00000000 c5c0c314 c1d88000 c1e31ef4 c1e31ee0 c5beb108 c5beb12c
1ee0: 00000000 c5c09000 c1e31f04 c1e31ef8 c5c0b8d8 c5beb06c c1e31fa0 c1e31f08
1f00: c0034fd0 c5c0b83c c1d88000 c2ce3000 00000006 c35f7400 00000060 c5bfc000
1f20: c5c09060 00003474 00000000 00000000 00000000 00000000 00000000 00000000
1f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1f60: 00000000 00000000 00000000 00000000 00000000 00000000 00000003 c5c09000
1f80: 00000000 00000080 c001eb24 c1e30000 00000000 00000000 c1e31fa4 c001e7c0
1fa0: c00348d0 00000003 00000000 000321a8 00047c40 ffffffff 00000000 00000003
1fc0: c5c09000 00000000 000401e0 00003474 00000000 00000000 00000006 400e8ab0
1fe0: bfffa240 0000c938 400e8abc 60000010 000321a8 c1e30000 00000000 00000029
Backtrace:
Function entered at [<c5c0b2f0>] from [<c5bec048>]
Function entered at [<c5bebed4>] from [<c5bebcc0>]
Function entered at [<c5bebc48>] from [<c5bebc80>]
r6 = C3126924 r5 = C3126800 r4 = 00000001
Function entered at [<c5bebc48>] from [<c5beb17c>]
r6 = C5BFAA50 r5 = C5BFA1F8 r4 = C5BFA1F8
Function entered at [<c5beb120>] from [<c5beb108>]
r6 = C1D88000 r5 = C5C0C314 r4 = 00000000
Function entered at [<c5beb060>] from [<c5c0b8d8>]
r5 = C5C09000 r4 = 00000000
Function entered at [<c5c0b830>] from [<c0034fd0>]
Function entered at [<c00348c4>] from [<c001e7c0>]
Code: e59fc2f0 e24dd00c e59830e4 e06c2002 (e5d31005)
I think maybe it related with the warning messages I've got during compile process:
CODE
# make
arm-cacko-linux-gnu-gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O6 -c dm9601.c
In file included from /opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h:23,
from /usr/src/linux/include/linux/highmem.h:5,
from /usr/src/linux/include/linux/skbuff.h:29,
from /usr/src/linux/include/linux/netdevice.h:147,
from dm9601.c:57:
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h: In function `flush_page_to_ram':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h:118: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h:118: warning: passing arg 1 of `cpu_xscale_flush_ram_page' makes pointer from integer without a cast
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h: In function `flush_dcache_page':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h:159: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
In file included from /usr/src/linux/include/linux/highmem.h:5,
from /usr/src/linux/include/linux/skbuff.h:29,
from /usr/src/linux/include/linux/netdevice.h:147,
from dm9601.c:57:
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h: In function `get_pgd_fast':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h:67: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h: In function `pte_alloc_one_fast':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h:91: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
arm-cacko-linux-gnu-gcc -DMODULE -D__KERNEL__ -I/usr/src/linux/include -Wall -Wstrict-prototypes -O6 -c dm9601.c
In file included from /opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h:23,
from /usr/src/linux/include/linux/highmem.h:5,
from /usr/src/linux/include/linux/skbuff.h:29,
from /usr/src/linux/include/linux/netdevice.h:147,
from dm9601.c:57:
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h: In function `flush_page_to_ram':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h:118: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h:118: warning: passing arg 1 of `cpu_xscale_flush_ram_page' makes pointer from integer without a cast
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h: In function `flush_dcache_page':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/proc/cache.h:159: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
In file included from /usr/src/linux/include/linux/highmem.h:5,
from /usr/src/linux/include/linux/skbuff.h:29,
from /usr/src/linux/include/linux/netdevice.h:147,
from dm9601.c:57:
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h: In function `get_pgd_fast':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h:67: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h: In function `pte_alloc_one_fast':
/opt/cross/arm/2.95.3-2.15/lib/gcc-lib/arm-cacko-linux-gnu/2.95.3/../../../../arm-cacko-linux-gnu/sys-include/asm/pgalloc.h:91: warning: passing arg 1 of `cpu_pid_va_to_mva' makes integer from pointer without a cast
I'm using gcc 2.95.3 and kenel source code is download from
http://mail.pdaxrom.org/1.1.0beta1/src/lin...rom1_01.tar.bz2
I also tried to use local-patches in pdaXrom-builder to patch the kernel
CODE
cat ../pdaXrom-builder/patches-local/linux-c3100-20050602-rom1_01/generic/linux-pdaXrom.diff | patch -p1
but after I patched the kernel source, I could not compile the driver sucessfully
I got following error message:
CODE
/usr/src/linux/include/linux/sched.h:494: field `iWMMXt' has incomplete type
It was so strange...
can any body give a hand?
Thanks!
-Wells.
