• «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
主题 : CMOS摄像头驱动移植(TINY6410) 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 53362
精华: 0
发帖: 110
金钱: 570 两
威望: 114 点
综合积分: 220 分
注册时间: 2011-08-06
最后登录: 2013-05-21
楼主  发表于: 2011-10-13 11:33

 CMOS摄像头驱动移植(TINY6410)

我的内核是自己移植的,2.6.38,,我要用CMOS摄像头,,所以要移植驱动。友善的CAM130驱动不是开源的,但我想应该也可以弄到我的内核里跑的,所以把整个vidio下的SAMSUNG文件夹拷进去了,然后注册的设备,等等,,最后编译成功了,,,但把内核烧到板子里,,内核跑到  fimc驱动时候死了,,,因为注册设备需要fimc两个文件,,所以我也拷过去了,,我不知道错在什么地方,,希望可以指点一下,,下面是启动信息,,(没有移植fimc前是可以跑过去的),,,在线等啊,,
Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.38 (root@localhost.localdomain) (gcc version 4.5.1 (ctng-1.8.1
-FA) ) #70 Thu Oct 13 11:23:13 CST 2011
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: MINI6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, Copyright 2004 Simtec Electronics
camera: no parent clock specified
S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is epll (1), rate is 24000000
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is mout_epll (0), rate is 24000000
mmc_bus: source is mout_epll (0), rate is 24000000
mmc_bus: source is mout_epll (0), rate is 24000000
usb-bus-host: source is clk_48m (0), rate is 48000000
uclk1: source is dout_mpll (1), rate is 66500000
spi-bus: source is mout_epll (0), rate is 24000000
spi-bus: source is mout_epll (0), rate is 24000000
audio-bus: source is mout_epll (0), rate is 24000000
audio-bus: source is mout_epll (0), rate is 24000000
audio-bus: source is mout_epll (0), rate is 24000000
irda-bus: source is mout_epll (0), rate is 24000000
camera: no parent clock specified
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
Kernel command line: init=/linuxrc rootfstype=ubifs root=ubi0:FriendlyARM-root u
bi.mtd=2 console=ttySAC0,115200
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 254060k/254060k available, 8084k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    DMA     : 0xff600000 - 0xffe00000   (   8 MB)
    vmalloc : 0xd0800000 - 0xf6000000   ( 600 MB)
    lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    modules : 0xbf000000 - 0xc0000000   (  16 MB)
      .init : 0xc0008000 - 0xc0027000   ( 124 kB)
      .text : 0xc0027000 - 0xc0525ad4   (5115 kB)
      .data : 0xc0526000 - 0xc056a5a0   ( 274 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:246
VIC @f6000000: id 0x00041192, vendor 0x41
VIC @f6010000: id 0x00041192, vendor 0x41
Console: colour dummy device 80x30
console [ttySAC0] enabled
Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
MINI6410: Option string mini6410=0
MINI6410: selected LCD display is 480x272
this is platdata
s3c64xx_dma_init: Registering DMA channels
PL080: IRQ 73, at d0808000, channels 0..8
PL080: IRQ 74, at d080c000, channels 8..16
S3C6410: Initialising architecture
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Advanced Linux Sound Architecture Driver Version 1.0.23.
NET: Registered protocol family 1
squashfs: version 4.0 (2009/01/31) Phillip Lougher
msgmni has been set to 496
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: A70 will be initialized
Window[0] - FB1: map_video_memory: clear ff600000:00177000
            FB1: map_video_memory: dma=5fa00000 cpu=ff600000 size=00177000
Window[0] - FB2: map_video_memory: clear ff6bb800:000bb800
            FB2: map_video_memory: dma=5fabb800 cpu=ff6bb800 size=000bb800
Console: switching to colour frame buffer device 100x30
fb0: s3cfb frame buffer device
Window[1] - FB1: map_video_memory: clear ff800000:00177000
            FB1: map_video_memory: dma=5f000000 cpu=ff800000 size=00177000
Window[1] - FB2: map_video_memory: clear ff8bb800:000bb800
            FB2: map_video_memory: dma=5f0bb800 cpu=ff8bb800 size=000bb800
fb1: s3cfb frame buffer device
Window[2] - FB1: map_video_memory: clear ffa00000:000bb800
            FB1: map_video_memory: dma=5f900000 cpu=ffa00000 size=000bb800
fb2: s3cfb frame buffer device
Window[3] - FB1: map_video_memory: clear ffb00000:000bb800
            FB1: map_video_memory: dma=5f200000 cpu=ffb00000 size=000bb800
fb3: s3cfb frame buffer device
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 24) is a S3C6400/10
s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 28) is a S3C6400/10
loop: module loaded
S3C NAND Driver, (c) 2008 Samsung Electronics
MLC nand initialized, 2011 ported by FriendlyARM
S3C NAND Driver is using hardware ECC.
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 2GiB 3,3V 8-bit)

Creating 3 MTD partitions on "NAND 2GiB 3,3V 8-bit":
0x000000000000-0x000000400000 : "Bootloader"
0x000000400000-0x000000c00000 : "Kernel"
0x000000c00000-0x000080000000 : "File System"
UBI: attaching mtd2 to ubi0
UBI: physical eraseblock size:   1048576 bytes (1024 KiB)
UBI: logical eraseblock size:    1032192 bytes
UBI: smallest flash I/O unit:    8192
UBI: VID header offset:          8192 (aligned 8192)
UBI: data offset:                16384
UBI: max. sequence number:       88
UBI: attached mtd2 to ubi0
UBI: MTD device name:            "File System"
UBI: MTD device size:            2036 MiB
UBI: number of good PEBs:        2027
UBI: number of bad PEBs:         9
UBI: number of corrupted PEBs:   0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 2027
UBI: number of PEBs reserved for bad PEB handling: 20
UBI: max/mean erase counter: 2/0
UBI: image sequence number:  1021995190
usbmon: debugfs is not available
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000
UBI: background thread "ubi_bgt0d" started, PID 928
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.38 ohci_hcd
usb usb1: SerialNumber: s3c24xx
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
mousedev: PS/2 mouse device common for all mice
usbcore: registered new interface driver bcm5974
S3C Touchscreen driver, (c) 2010 FriendlyARM
touchscreen got loaded successfully : 12 bits
touchscreen-1wire       initialized
backlight-1wire initialized
input: TouchScreen Pipe as /devices/virtual/input/input0
ts-if   initialized
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
i2c /dev entries driver
Linux video capture interface: v2.00
gspca: v2.12.0 registered
usbcore: registered new interface driver conex
usbcore: registered new interface driver cpia1
usbcore: registered new interface driver stk014
one_wire_status: 4
usbcore: registered new interface driver tv8532
usbcore: registered new interface driver vc032x
usbcore: registered new interface driver zc3xx
usbcore: registered new interface driver ALi m5602
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v1.0.0)
Unable to handle kernel NULL pointer dereference at virtual address 00000028
pgd = c0004000
[00000028] *pgd=00000000
Internal error: Oops: 5 [#1]
last sysfs file:
Modules linked in:
CPU: 0    Not tainted  (2.6.38 #70)
PC is at s3c_fimc_probe+0x44/0x400
LR is at platform_drv_probe+0x14/0x18
pc : [<c022cd70>]    lr : [<c01957c4>]    psr: a0000013
sp : cf82def4  ip : 00001a8f  fp : c052edc0
r10: 00000000  r9 : 00000000  r8 : c059a9f0
r7 : 00000000  r6 : c054f570  r5 : 00000000  r4 : c059a9f0
r3 : c054f5a8  r2 : 00000168  r1 : 00000078  r0 : c052edb8
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 00c5387d  Table: 50004008  DAC: 00000015
Process swapper (pid: 1, stack limit = 0xcf82c268)
Stack: (0xcf82def4 to 0xcf82e000)
dee0:                                              c052edc0 c052edc0 c054f570
df00: c054f570 00000000 00000000 00000000 00000000 c01957c4 c01957b0 c01949dc
df20: 00000000 c052edc0 c052edf4 c054f570 00000000 c0194aec c054f570 cf82df48
df40: c0194a8c c0193cc4 cf803a48 cf8505e0 c054f570 c054f570 cf3d9ba0 c05402e8
df60: 00000000 c0194360 c04a8f4b c04a8f4b cf82a000 c054f570 c00203fc c002d468
df80: c022ca20 00000000 00000000 c0194d38 00000000 c0020210 c00203fc c002d468
dfa0: c022ca20 00000000 00000000 c022ca2c cf82c000 c00274d8 00000000 c0020000
dfc0: 00000013 000000f5 c0538a64 c0020210 c00203fc c002d468 00000013 00000000
dfe0: 00000000 c0008abc 00000000 00000000 c0008a24 c002d468 ffffffff ffffffff
[<c022cd70>] (s3c_fimc_probe+0x44/0x400) from [<c052edf4>] (s3c_device_fimc0+0x3
c/0xf0)
Code: e584b058 e584306c e5849220 e5835114 (e5973028)
one_wire_status: 2
---[ end trace 699ef9e119277e41 ]---
Kernel panic - not syncing: Attempted to kill init!
[<c0031a10>] (unwind_backtrace+0x0/0xe4) from [<c02e8c7c>] (panic+0x50/0x16c)
one_wire_status: 2
[<c02e8c7c>] (panic+0x50/0x16c) from [<c0042000>] (do_exit+0x68/0x5c8)
[<c0042000>] (do_exit+0x68/0x5c8) from [<c0030050>] (die+0x190/0x1c0)
[<c0030050>] (die+0x190/0x1c0) from [<c0032988>] (__do_kernel_fault+0x64/0x84)
one_wire_status: 2
[<c0032988>] (__do_kernel_fault+0x64/0x84) from [<c0032b70>] (do_page_fault+0x1c
8/0x1e4)
[<c0032b70>] (do_page_fault+0x1c8/0x1e4) from [<c0027218>] (do_DataAbort+0x30/0x
98)
one_wire_status: 4
[<c0027218>] (do_DataAbort+0x30/0x98) from [<c002c02c>] (__dabt_svc+0x4c/0x60)
Exception stack(0xcf82dea8 to 0xcf82def0)
dea0:                   c052edb8 00000078 00000168 c054f5a8 c059a9f0 00000000
one_wire_status: 4
dec0: c054f570 00000000 c059a9f0 00000000 00000000 c052edc0 00001a8f cf82def4
dee0: c01957c4 c022cd70 a0000013 ffffffff
[<c002c02c>] (__dabt_svc+0x4c/0x60) from [<c022cd70>] (s3c_fimc_probe+0x44/0x400
)
one_wire_status: 4
[<c022cd70>] (s3c_fimc_probe+0x44/0x400) from [<c052edf4>] (s3c_device_fimc0+0x3
c/0xf0)

^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-10-13 11:57
不清楚你的内核是怎么移植的, 建议你先在友善提供的kernel上移植cmos摄像头驱动, 成功以后再去考虑你移植的内核
级别: 侠客
UID: 53362
精华: 0
发帖: 110
金钱: 570 两
威望: 114 点
综合积分: 220 分
注册时间: 2011-08-06
最后登录: 2013-05-21
2楼  发表于: 2011-10-13 12:59
友善的本来就有CMOS摄像头驱动,,为什么还要移植呢?
级别: 侠客
UID: 53362
精华: 0
发帖: 110
金钱: 570 两
威望: 114 点
综合积分: 220 分
注册时间: 2011-08-06
最后登录: 2013-05-21
3楼  发表于: 2011-10-13 13:00
我自己的内核没有我才移植的啊,,把友善里面的开源不开源的移植到我的内核里面啊
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
4楼  发表于: 2011-10-13 15:57
估计是有些内容没有移植导致
因为我没办法知道你移植了哪些, 哪些没有移植, 你可以diff一下, 看看和友善提供的kernel有哪些差别, 建议重点关注一下arch/arm/目录
级别: 侠客
UID: 53362
精华: 0
发帖: 110
金钱: 570 两
威望: 114 点
综合积分: 220 分
注册时间: 2011-08-06
最后登录: 2013-05-21
5楼  发表于: 2011-10-13 16:48
多媒体驱动是注册在platform这一点应该没错,然后这一部分驱动代码是不开源的,所以我只能把整个video/下的samsung文件夹拷过来,里面有.fo文件,和一堆Kconfig,,,这样做了,,驱动肯定就没问题了,,;设备方面,把实现platform device的两个文件,FIMC0和FIMC1文件拷了过来,,在从MACH-MINI6410.C里面注册了设备,,     查看SYS下相关目录,,,驱动和设备都是注册成功的,,,为什么会出现下面这种情况呢?

启动信息:
Linux video capture interface: v2.00
s3c-fimc: failed to get fimc clock source
s3c-fimc: probe of s3c-fimc.0 failed with error -22
s3c-fimc: failed to remap io region
s3c-fimc: cannot register fimc controller
s3c-fimc: probe of s3c-fimc.1 failed with error -22
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
6楼  发表于: 2011-10-13 16:59
s3c-fimc: failed to get fimc clock source

这一行就很明显说明你就没有移植clock部分
级别: 侠客
UID: 53362
精华: 0
发帖: 110
金钱: 570 两
威望: 114 点
综合积分: 220 分
注册时间: 2011-08-06
最后登录: 2013-05-21
7楼  发表于: 2011-10-13 17:09
呵呵,,我也想到我可能没移植时钟部分,但我一路移植过来,多移植了好多驱动了,网卡.LCD,触摸屏,音频,等等等等,,为什么都没出现问题,,就移植多媒体的时候需要这个CLOCK呢,,我先去掉友善内核里的CLOCK,,看什么情况,,
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
8楼  发表于: 2011-10-13 17:47
cmos驱动以后会开源,但多媒体应该不会。
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.
级别: 侠客
UID: 53362
精华: 0
发帖: 110
金钱: 570 两
威望: 114 点
综合积分: 220 分
注册时间: 2011-08-06
最后登录: 2013-05-21
9楼  发表于: 2011-10-14 11:36
启动信息:
s3c-fimc: cannot register video driver
s3c-fimc: probe of s3c-fimc.0 failed with error -22
one_wire_status: 4
s3c-fimc: failed to remap io region
s3c-fimc: cannot register fimc controller
s3c-fimc: probe of s3c-fimc.1 failed with error -22
FIMC Driver, 2010 ported by FriendlyARM http://www.arm9.net
S3C6400 MFC Driver, (c) 2007 Samsung Electronics, 2010 ported by FriendlyARM htt
p://www.arm9.net
no memory for mfc

为什么会注册不成功呢?友善的驱动没有开源,我也看不到源代码,,所以直接拷考到我的内核里了,,想不清楚啊,, ,,我看到论坛里也有我这样一个人也有这样的问题,,,郁闷啊,,求指点,,怎么会no memory for mfc
[ 此帖被yangliu在2011-10-14 11:45重新编辑 ]
  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go