From: Heiko S. <hei...@in...> - 2007-10-27 06:15:22
|
Hello, I am new to the sh port for Linux. I succesfully ported U-Boot to an SH7750R based board, and trying to get Linux running. It works pretty nice until the init is loaded. After this I get an Intevent 0x1e0, and then nothing more works ... 1) Has somebody here an idea, where this intevent come from? How I can prevent it? 2) I see this intevent only, after the console output "Freeing unused kernel memory: 88k freed" 3) Sometimes I see the output from the BusyBox, or from a hello_world applikation, sometimes I see nothing, somtimes after this intevent a ping to the board works, sometimes the console is working(I get back the characters I send) ... BTW: 4) I think the generic_irq_demux funktion dont work nice, if I get such an eventvector, the resulting irq is 0x7ffffff, and irq is used as an index in generic_handle_irq() struct irq_desc *desc = irq_desc + irq; , and + 0x7ffffff is somewhere in the RAM, thats not good. Here my output from the console: U-Boot 1.3.0-rc2-ga55412ee-dirty (Oct 26 2007 - 16:29:30) CPU: SH4 PVR: 4050045 PRR: 103 CVR: 20480000 BOARD: POSEIDON DRAM: 128MB FLASH: 1MB 640x480x15 31kHz 59Hz Video: Drawing the logo ... In: serial Out: serial Err: serial Net: RTL8019AS IDE: Bus 0: OK Device 0: Model: PQI FLASH DISK Firm: db01.17a Ser#: Type: Removable Hard Disk Capacity: 62.5 MB = 0.0 GB (128000 x 512) Hit any key to stop autoboot: 0 => => run net_nfs TFTP from server 192.168.1.4; our IP address is 192.168.1.10 Filename 'kernel'. Load address: 0xc000000 Loading: ################################################################# ###################### done Bytes transferred = 1273920 (137040 hex) ## Booting image at 0c000000 ... Image Name: testimage Created: 2007-10-26 15:31:23 UTC Image Type: SuperH Linux Kernel Image (uncompressed) Data Size: 1273856 Bytes = 1.2 MB Load Address: 08800000 Entry Point: 08800000 Verifying Checksum ... OK OK starting SH kernel ... Uncompressing Linux... Ok, booting the kernel. Linux version 2.6.23-rc9-ge2a57a81-dirty (hs@Zeus) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #504 Fri Oct 26 17:30:37 CEST 2007 Booting machvec: POSEIDON Node 0: start_pfn = 0x8000, low = 0x10000 Zone PFN ranges: Normal 32768 -> 65536 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 32768 -> 65536 Built 1 zonelists in Zone order. Total pages: 32512 Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.4:/home/hs/Entwicklung/sh4/rootfs,rsize=1024,wsize=1024 ip=192.168.1.10:192.168.1.4::255.255.255.0:poseidon:eth0:off panic=1 console=ttySC1,38400 netdev=8,0xa0200000,0,0xbad,eth0 PID hash table entries: 512 (order: 9, 2048 bytes) Using tmu for system timer Using 8.333 MHz high precision timer. Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 127360k/131072k available (1886k kernel code, 417k data, 88k init) PVR=04050045 CVR=20480000 PRR=00000103 I-cache : n_ways=2 n_sets=256 way_incr=8192 I-cache : entry_mask=0x00001fe0 alias_mask=0x00001000 n_aliases=2 D-cache : n_ways=2 n_sets=512 way_incr=16384 D-cache : entry_mask=0x00003fe0 alias_mask=0x00003000 n_aliases=4 Mount-cache hash table entries: 512 CPU: SH7750R NET: Registered protocol family 16 DMA: Registering DMA API. DMA: Registering sh_dmac handler (8 channels). Time: SuperH clocksource has been installed. 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 fuse init (API version 7.8) io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled SuperH SCI(F) driver initialized sh-sci: ttySC0 at MMIO 0xffe00000 (irq = 25) is a sci sh-sci: ttySC1 at MMIO 0xffe80000 (irq = 43) is a scif console [ttySC1] enabled loop: module loaded NE*000 ethercard probe at 0xa0200000:dev IRQ: 8 5a 77 3d 57 93 16 eth0: NE2000 found at 0xa0200000, using IRQ 8. shwdt: initialized. heartbeat=30 sec (nowayout=0) nf_conntrack version 0.5.0 (2048 buckets, 8192 max) IPv4 over IPv4 tunneling driver GRE over IPv4 tunneling driver TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 IP-Config: Complete: device=eth0, addr=192.168.1.10, mask=255.255.255.0, gw=255.255.255.255, host=poseidon, domain=, nis-domain=(none), bootserver=192.168.1.4, rootserver=192.168.1.4, rootpath= Looking up port of RPC 100003/2 on 192.168.1.4 Looking up port of RPC 100005/1 on 192.168.1.4 VFS: Mounted root (nfs filesystem). Freeing unused kernel memory: 88k freed init started: BusyBox v1.7.2 (2007-10-24 12:59:04 CEST) irq: 7ffffff evt: 1e0 irq: 7ffffff evt: 1e0 irq: 7ffffff evt: 1e0 irq: 7ffffff evt: 1e0 [...] (between each "irq: 7ffffff evt: 1e0" line is a pause from approx. 1 minute) To get the last outputs, I made a boardspecific irq_demux function: static inline int poseidon_irq_demux(int irq) { if ((irq != 16) && (irq != 8) && (irq != 43))printk (" irq: %x evt: %x\n", irq, irq2evt(irq)); /* 8 Ethernet, 43 Tx Empty, 16 Timer IRQ */ irq &= 0xff; return irq; } (I now, I get now irq=255, but this is better then 0x7ffffff ;-) I think, the problem is in getting the intevt 0x1e0 in the do_IRQ () function, but i have no idea, why this happens, and how to prevent, solve it. Hope somebody here has an idea. I also tried as init application an hello_world, same behaviour .... thanks in advance Heiko |