|
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
|