처음으로 인사드립니다. 제 이름은 민경오이고요. 현재 S3C6410 Baord에 Linux를 올려서 작업 중입니다.
우선 홈지기께서는 2.6.28 Kernel을 이용해서 부팅하셨다고 봤고요. 로그도 보았습니다. 아래는 현재 제가 겪고 있는 문제의 로그고요
아래 보시면 Starting Error가 있는데, 결국 문제는 0x74300000의 가상 주소를 받아서 처리 하는 부분 같은데,
static int ohci_run (struct ohci_hcd *ohci) 함수 내에서 ohci->regs의 주소가 0xC8E00000를 받는데, 이부분에 write가 되지 않습니다.
제가 리눅스 쪽은 초보이고 며칠째 작업 중이라 해결이 안되어 문의 드립니다. 혹 아시는 정보 있으시면 공유 부탁드립니다.
추가로 JTAG에서 A:0x74300000에 direct write를 하려해도 값이 변경되지 않네요. 어떤 다른 조건이 있을까요?
Linux............................................................................................................................ done, booting the kernel.
Linux version 2.6.27 (
jack@jack-linux) (gcc version 4.2.1) #78 Mon Apr 6 14:53:35 KST 2009
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C64XX: PLL settings, A=666000000, M=532000000, E=24000000
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 666000000
mout_epll: source is fout_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-host-bus: source is mout_epll (0), rate is 24000000
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
irda-bus: source is mout_epll (0), rate is 24000000
CPU0: D VIPT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: root=/dev/mtdblock2 rootfstype=yaffs2 init=/init console=ttySAC0,115200
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 125296KB available (3216K code, 736K data, 500K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 331.77 BogoMIPS (lpj=829440)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 288 bytes
NET: Registered protocol family 16
S3C6410 Power Management, (c) 2008 Samsung Electronics
[JAKE] s3c6410_pm_init
s3c64xx_init_irq_eint
S3C6410: Initialising architecture
S3C DMA-pl080 Controller Driver, (c) 2006-2007 Samsung Electronics
Total 32 DMA channels will be initialized.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
ashmem: initialized
yaffs Apr 6 2009 14:49:33 Installing.
msgmni has been set to 244
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
S3C_LCD clock got enabled :: 133.000 Mhz
LCD TYPE :: LTE480WV will be initialized
Window[0] - FB1: map_video_memory: clear ffc00000:0012c000
FB1: map_video_memory: dma=57a00000 cpu=ffc00000 size=0012c000
Window[0] - FB2: map_video_memory: clear ffc96000:00096000
FB2: map_video_memory: dma=57a96000 cpu=ffc96000 size=00096000
Console: switching to colour frame buffer device 80x30
fb0: s3cfb frame buffer device
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
brd: module loaded
loop: module loaded
logger: created 64K log 'log_main'
logger: created 256K log 'log_events'
logger: created 64K log 'log_radio'
cs89x0:cs89x0_probe(0x0)
cs89x0.c: v2.4.3-pre1 Russell Nelson <
[email protected]>, Andrew Morton
eth0: cs8900 rev J found at 0xf7600300
cs89x0: Extended EEPROM checksum bad and no Cirrus EEPROM, relying on command line
cs89x0 media RJ-45, IRQ 111, programmed I/O, MAC 00:09:c0:ff:ec:48
cs89x0_probe1() successful
Linux video capture interface: v2.00
S3C NAND Driver, (c) 2008 Samsung Electronics
S3C NAND Driver is using hardware ECC.
NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
Creating 4 MTD partitions on "NAND 128MiB 3,3V 8-bit":
0x00000000-0x00040000 : "Bootloader"
0x00040000-0x00400000 : "Kernel"
0x00400000-0x05400000 : "Rootfs"
0x05400000-0x08000000 : "File System"
usbmon: debugfs is not available
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
s3c2410-ohci s3c2410-ohci: init err (00000000 0000)
ohci_hcd: can't start s3c24xx
s3c2410-ohci s3c2410-ohci: startup error -75
s3c2410-ohci s3c2410-ohci: USB bus 1 deregistered
Unable to handle kernel NULL pointer dereference at virtual address 00000008
pgd = c0004000
aesop-6410?
2.6.28에 대한 코드는 아예 인터넷에 공개되어 있습니다. 2.6.28-rc8요
그리고, 삼성에서 제공하는 2.6.28.6 커널도 있습니다.
궂이 2.6.27에 포팅해야하는 이유가 좀 궁금하네요....android때문인가요?
aesop-6410이라면 usb가 동작하지 않습니다.(기존 코드로는)
이유는 clock을 OSC에서 crystal로 변경했기 때문입니다.
PHYCLK관련 레지스터를 0x20에서 0x00으로 변경시켜주셔야 합니다