|
Message
From: Matjaz Breskvar <phoenix@o...>
Date: Tue, 28 Oct 2003 01:38:11 +0100
Subject: [openrisc] or1k/or32 linux 2.4 port
Hello!
I'd like to update you all on progress of or32 linux port. I'm happy
to report it can run userspace programs, though there is still some work
to be done. Since picture is worth more than a tousand words here
is a 'screenshot' of linux running a buggy userspace code in or1ksim.
Linux version 2.4.20 (phoenix@d...) (gcc version 3.2.3) #1605 Tue
Oct 28 01:03:17 CET 2003
Setting up paging and PTEs.
On node 0 totalpages: 1024
zone(0): 1024 pages.
zone(1): 0 pages.
zone(2): 0 pages.
dtlb_miss_handler c0001448
itlb_miss_handler c0001548
Linux/or32 port 2003 OpenCores
Kernel command line: root=/dev/ram
Calibrating delay loop... 2.15 BogoMIPS
Memory: 5904k/8192k available (1540k kernel code, 2288k reserved, 184k data,
8k init, 0k highmem)
Dentry cache hash table entries: 1024 (order: 0, 8192 bytes)
Inode cache hash table entries: 1024 (order: 0, 8192 bytes)
Mount-cache hash table entries: 1024 (order: 0, 8192 bytes)
Buffer-cache hash table entries: 2048 (order: 0, 8192 bytes)
Page-cache hash table entries: 2048 (order: 0, 8192 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Journalled Block Device driver loaded
__vmalloc__ :: vmalloc() :: current c0268000, d0000000, size b740
Serial driver version 5.05c (2001-07-08) with no serial options enabled
RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize
loop: loaded (max 8 devices)
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
IPv4 over IPv4 tunneling driver
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 256 blocks [1 disk] into ram disk... done.
Freeing initrd memory: 256k freed
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 8k freed
USERSPACE: SIGSEGV (current c01e0000, pid 7)
PC: 01000268 SR: 00008266 SP: bfffff24
GPR00: 00000000 GPR01: bfffff24 GPR02: 00000007 GPR03: 00000000
GPR04: 00000000 GPR05: 00000000 GPR06: 00000000 GPR07: 00000000
GPR08: 00000000 GPR09: 01000264 GPR10: 00000000 GPR11: 00000000
GPR12: 00000000 GPR13: 00000000 GPR14: 00000000 GPR15: 00000000
GPR16: 00000000 GPR17: 00000000 GPR18: 00000000 GPR19: 00000000
GPR20: 00000000 GPR21: 00000000 GPR22: 00000000 GPR23: 00000000
GPR24: 00000000 GPR25: 00000000 GPR26: 00000000 GPR27: 00000000
GPR28: 00000000 GPR29: 00000000 GPR30: 00000000 GPR31: 00000000
RES: 00000000 oGPR3: 00000000 dummy: 0000083c
Userspace program is very simple (using sys_fork, sys_pause) and segfaults
due to invalid access (register dump is done when userspace code segafults):
---
r2 =00000007 EA =bfffff20 PA =001b9f20 010000c4 l.lwz r2,0x0(r1)
r9 =01000264 010000c8 l.jr r9
r1 =bfffff24 r1 =bfffff24 010000cc l.addi r1,r1,0x4
r3 =00000000 r11=00000000 01000264 l.ori r3,r11,0
EA =00000003 PA =00000000 r3 =00000000 01000268 l.sw -4(r2),r3
---
regards,
p.
|
 |