Dear linuxbios.
Hello.
I've worked for development of Embedded linux project in my
corp.
Following is decription of my projcet.
CPU : VIA C3 800Mhz (EBGA)
Reference Board : VT6015
Northbridge : VT8606 (include S3 twister video
core)
Southbridge : VT8231 (include VIA rhine II LAN
core)
Bootbios : Linuxbios
OS : linux 2.4.19 ( ramdisk include
glibc 2.3.1, busybox 0.60.5 and tinylogin 1.2 )
Now, It works well except hard disk.
I try to boot the kernel in two way.
First, it loads compressed kernel and ramdisk image via
network using tftp protocol.
Second, it loads elfImage, generated by 'mkelfImage' via
network.
All of them work great. (It means that I can see the prompt '\
'.)
But, when I try to make a file system the
harddisk, 'segmentation fault' occurs.
mke2fs and mkreiserfs have same problem.
For find out the cause, I try to make a file system in
various method.
1. Buildin Bios + Redhat 8.0 installed harddisk + test
harddisk
2. Linuxbios + Redhat 8.0 installed harddisk + test
harddisk
3. Linuxbios + Kernel(newly compiled), own ramdisk + test
harddisk
After boot, I try to make a file system on test
harddisk.
In case 1, It works well. Of course, it must
be.
In case 2 and 3, I meet the segmentation fault.
So, I think that this problem caused in
Linuxbios.
Maybe, this problem caused by harddisk initialization in
linuxbios.
But, there are no harddisk initialization code in
linuxbios.
Cound you help me?
Thanks for reading.
Regards,
malas
PS. In addition, memtest86 v3.0 works well without
error.
Follwing is ksymoops result & boot messages
--------------------------------------------------------------------------
c02a1af5
*pde = 00015063
Oops: 0002
CPU: 0
EIP:
0010:[<c02a1af5>] Not tainted
EFLAGS: 00010246
eax: 00000000 ebx: c5238000 ecx:
00001000 edx: 00000000
esi: 0806bcd8 edi:
c5238000 ebp: c11dc868 esp: c128ff34
ds:
0018 es: 0018 ss: 0018
Process mkreiserfs (pid: 129,
stackpage=c128f000)
Stack: 00000000 00001000 00001000 c142f1c4 00000000
00001000 00000000 00000000
019b6000
00000000 c11dc7c0 00000000 00000003 0806bcd8 c11dc82c
c11dc7c0
c15b2ba0 c01290df c15b2ba0
0806bcd8 00001000 c15b2bc0 0806bcd8 c15b2ba0
Call Trace:
[<c01290df>] [<c0133c65>] [<c0108d43>]
Code: f3 aa 58 59 e9
8f 72 e8 ff b8 f2 ff ff ff 30 d2 e9 a7 a7 e8
>>EIP; c02a1af5
<rwsem_down_failed_common+1175/3050> <=====
Trace; c01290df <generic_file_write+6f/b0>
Trace;
c0133c65 <sys_write+85/100>
Trace; c0108d43
<system_call+33/40>
Code; c02a1af5
<rwsem_down_failed_common+1175/3050>
00000000
<_EIP>:
Code; c02a1af5
<rwsem_down_failed_common+1175/3050> <=====
0: f3
aa
repz stos %al,%es:(%edi) <=====
Code; c02a1af7
<rwsem_down_failed_common+1177/3050>
2:
58
pop %eax
Code; c02a1af8
<rwsem_down_failed_common+1178/3050>
3:
59
pop %ecx
Code; c02a1af9
<rwsem_down_failed_common+1179/3050>
4: e9 8f
72 e8 ff
jmp ffe87298 <_EIP+0xffe87298> c0128d8d
<do_generic_file_write+3fd/6e0>
Code; c02a1afe
<rwsem_down_failed_common+117e/3050>
9: b8 f2
ff ff ff
mov $0xfffffff2,%eax
Code; c02a1b03
<rwsem_down_failed_common+1183/3050>
e: 30
d2
xor %dl,%dl
Code; c02a1b05
<rwsem_down_failed_common+1185/3050>
10: e9 a7 a7 e8
00
jmp e8a7bc <_EIP+0xe8a7bc> c112c2b1
<END_OF_CODE+dc732d/????>
1 warning issued. Results may not be
reliable.
--------------------------------------------------------------------------
PDVR_Hx> tftp 01000000 linux.img ==> my own
boot bios prompt like PPCboot
PCI: Enabling bus mastering for device
00:90
rhine.c v1.0.0 2000-01-07
IO address 1400 Ethernet Address:
00:02:f1:80:21:00
Analyzing Media type,this will take several
seconds........OK
MII Addr. : 0x01
PHYID1 : 0x0101, PHYID2 :
0x8f25
Control : 0x3100, Status : 0x786d
Auto-Nego. Adv. : 0x05e1, Link
Partner Adv. : 0x41e1
Linespeed : 100Mbs, Full-duplex
# ServerIP =
192.168.0.41
# ServerMAC = 00:50:fc:3a:46:cd
# TFTP Ready : blocksize/dot
= 1432 bytes
# Loading
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
.....
# TFTP Complete : 0x0010e0b0 bytes at address
0x01000000.
PDVR_Hx> tftp 02000000 ramdisk.img
# ServerIP =
192.168.0.41
# ServerMAC = 00:50:fc:3a:46:cd
# TFTP Ready : blocksize/dot
= 1432 bytes
# Loading
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
........
# TFTP Complete : 0x0010f196 bytes at address
0x02000000.
PDVR_Hx> boot 01000000 02000000
# Checking Image at
0x01000000.
# Image Name: PDVR-H8 Kernel Image
Image
Type: Intel x86 Linux Kernel Image (gzip compressed)
Data
Size: 1106032 Bytes = 1080 kB = 1 MB
Load Address:
00100000
Entry Point: 00100000
# Verifying Checksum ...
OK
# Uncompressing kernel image...
# Checking Image at 0x02000000.
#
Image Name: PDVR Ramdisk Image
Image Type:
Intel x86 Linux RAMDisk Image (gzip compressed)
Data
Size: 1110358 Bytes = 1084 kB = 1 MB
Load Address:
01000000
Entry Point: 01000000
# Verifying Checksum ...
OK
# command line - [root=/dev/ram console=ttyS0,115200n8 reboot=b]
# boot
kernel
rhine disable ==> turn off the network device to
do not receive packet during boot kernel
Linux version 2.4.19-linuxbios_4 (malas@******) (gcc version 3.2) #62 Fri Nov 22
11:34:28 KST 2002
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 00000000000a0000
(usable)
BIOS-e820: 00000000000a0000 - 0000000000100000
(reserved)
BIOS-e820: 0000000000100000 - 0000000007800000
(usable)
BIOS-e820: 00000000fffc0000 - 0000000100000000
(reserved)
120MB LOWMEM available.
On node 0 totalpages: 30720
zone(0): 4096 pages.
zone(1): 26624 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/ram console=ttyS0,115200n8
reboot=b
Initializing CPU#0
Detected 800.047 MHz processor.
Calibrating delay loop... 1595.80 BogoMIPS
Memory: 117456k/122880k available (1244k kernel code, 5040k
reserved, 839k data, 224k init, 0k highmem)
Checking if this processor honours the WP bit even in
supervisor mode... Ok.
kdb version 2.3 by Scott Lurndal, Keith Owens. Copyright SGI,
All Rights Reserved
Dentry cache hash table entries: 16384 (order: 5, 131072
bytes)
Inode cache hash table entries: 8192 (order: 4, 65536
bytes)
Mount-cache hash table entries: 2048 (order: 2, 16384
bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384
bytes)
Page-cache hash table entries: 32768 (order: 5, 131072
bytes)
CPU: L1 I Cache: 64K (32 bytes/line), D cache 64K (32
bytes/line)
CPU: L2 Cache: 64K (32 bytes/line)
CPU: Centaur VIA Ezra stepping 08
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: detected mtrr type: Intel
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
PCI: Using IRQ router VIA [1106/8231] at 00:11.0
PCI: Found IRQ 6 for device 00:12.0
PCI: Found IRQ 7 for device 01:00.0
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
Serial driver version 5.05c (2001-07-08) with MANY_PORTS
SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
Real Time Clock Driver v1.10e
Non-volatile memory driver v1.1
Uniform Multi-Platform E-IDE driver Revision:
6.31
ide: Assuming 33MHz system bus speed for PIO modes; override
with idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 89
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs
later
ide: Assuming 33MHz system bus speed for PIO modes; override
with idebus=xx
VP_IDE: VIA vt8231 (rev 10) IDE UDMA100 controller on
pci00:11.1
ide0: BM-DMA at 0x1820-0x1827, BIOS
settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x1828-0x182f, BIOS
settings: hdc:pio, hdd:pio
hda: ST380020A, ATA DISK drive
hdb: IBM-DTLA-305040, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: 156301488 sectors (80026 MB) w/2048KiB Cache,
CHS=155061/16/63, UDMA(100)
hdb: 80418240 sectors (41174 MB) w/380KiB Cache,
CHS=79780/16/63, UDMA(100)
Partition check:
hda: hda1
hdb: hdb1
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024
blocksize
loop: loaded (max 8 devices)
VIA Rhine Farmily Fast Ethernet Adapter Driver Ver.
4.11
Copyright (c) 2002 VIA Technologies, Inc.
PCI: Found IRQ 6 for device 00:12.0
eth0: VIA VT6102 Rhine II Fast Ethernet
Adapter
eth0: MAC=00:02:F1:80:21:00 IO=0x1400 Mem=0xc8000000
IRQ=6
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets,
4Kbytes
TCP: Hash tables configured (established 8192 bind
16384)
NET4: Unix domain sockets 1.0/SMP for Linux
NET4.0.
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 1084k freed
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 224k freed
init started: BusyBox v0.60.5 (2002.11.14-08:59+0000)
multi-call
binary
------------------------------------------------------------------------
Mounting
local file systems: ok
Starting system log daemon: ok
setup
network
setting loop back interface
setting network interface
eth0:
Link autonegation speed 100M bps full duplex
pdvr_802100 login: root
BusyBox v0.60.5 (2002.11.21-06:43+0000) Built-in shell (ash)
Enter
'help' for a list of built-in commands.
Welcome to **********
/ # sfdisk -l
Disk /dev/hda: 155061 cylinders, 16 heads, 63 sectors/track
Units =
cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End
#cyls #blocks Id
System
/dev/hda1 0+
155060 155061- 78150743+ 83
Linux
/dev/hda2
0 -
0 0
0 Empty
/dev/hda3
0 -
0 0
0 Empty
/dev/hda4
0 -
0 0
0 Empty
Disk /dev/hdb: 79780 cylinders, 16 heads, 63 sectors/track
Units =
cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End
#cyls #blocks Id
System
/dev/hdb1
0+ 79779 79780- 40209119+ 83
Linux
/dev/hdb2
0 -
0 0
0 Empty
/dev/hdb3
0 -
0 0
0 Empty
/dev/hdb4
0 -
0 0
0 Empty
/ #
/ # mkreiserfs /dev/hdb1
<-------------mkreiserfs, 2002------------->
reiserfsprogs
3.6.4
mkreiserfs: Guessing about desired format..
mkreiserfs: Kernel
2.4.19-linuxbios_4 is running.
Format 3.6 with standard journal
Count of
blocks on the device: 10052279
Number of blocks consumed by mkreiserfs
formatting process: 8518
Blocksize: 4096
Hash function used to sort names:
"r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction
length 1024
inode generation number: 0
UUID:
b6da3cd8-4519-46dc-a339-054a10774b88
ATTENTION: YOU SHOULD REBOOT AFTER
FDISK!
ALL DATA WILL BE LOST ON '/dev/hdb1'!
Continue
(y/n):y
Initializing journal - 0%....20%....40%....Unable to handle kernel
paging request at virtual address c58bc000
printing eip:
c02a1af5
*pde = 00015063
*pte =
00409700
Oops: 0002
CPU: 0
EIP:
0010:[<c02a1af5>] Not tainted
EFLAGS:
00010246
eax: 00000000 ebx: c5238000 ecx:
00001000 edx: 00000000
esi: 0806bcd8 edi:
c5238000 ebp: c11dc868 esp: c128ff34
ds:
0018 es: 0018 ss: 0018
Process mkreiserfs (pid: 129,
stackpage=c128f000)
Stack: 00000000 00001000 00001000 c142f1c4 00000000
00001000 00000000 00000000
019b6000
00000000 c11dc7c0 00000000 00000003 0806bcd8 c11dc82c
c11dc7c0
c15b2ba0 c01290df c15b2ba0
0806bcd8 00001000 c15b2bc0 0806bcd8 c15b2ba0
Call Trace:
[<c01290df>] [<c0133c65>] [<c0108d43>]
Code: f3 aa 58 59 e9 8f 72 e8 ff b8 f2 ff ff ff 30 d2 e9 a7 a7
e8
Segmentation fault
/ #