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: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au) 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 / #
can you try a few things: - do a raw dd command to the disk from /dev/zero and see if that works, e.g. dd if=/dev/zero of=/dev/hda
- turn off UDMA, in fact turn off ALL dma at first - try to make it run totally PIO
This is weird, but it does seem like some kind of DMA problem.
Also, boot under the normal bios and do an lspci -xxx and then do an lspci -xxx under linuxbios and see if you see any IDE setup differences.
ron
----- Original Message ----- From: "Ronald G. Minnich" rminnich@lanl.gov To: "Munjun Kang" malas@pinetron.com Cc: linuxbios@clustermatic.org Sent: Thursday, November 28, 2002 12:55 AM Subject: Re: file system error
can you try a few things:
- do a raw dd command to the disk from /dev/zero and see if that works,
e.g. dd if=/dev/zero of=/dev/hda
- turn off UDMA, in fact turn off ALL dma at first
- try to make it run totally PIO
This is weird, but it does seem like some kind of DMA problem.
Also, boot under the normal bios and do an lspci -xxx and then do an lspci -xxx under linuxbios and see if you see any IDE setup differences.
ron
Thanks for your reply.
I tried as your suggest.
dd if=/dev/zero of=/dev/hda bs=1024 count=10000 ~ 100000 Segmentation fault's are occured in random by count.
and then, turn off the UDMA feature by hdparm option. But, I can see same symptom.
In this time, I tried to attach SCSI & IEEE1394 SBP-2 devices. case1. Adaptec 2930 SCSI adapter + 8GB Seagate SCSI HDD case2. IEEE1394 Interface card + external IEEE1394 HDD both cases show the same problem.
Now, I think it's not a DMA problem. I'm in the maze. hmmmm......
Is there any clear hint?
----- Original Message ----- From: "Ronald G. Minnich" rminnich@lanl.gov To: "Munjun Kang" malas@pinetron.com Cc: linuxbios@clustermatic.org Sent: Thursday, November 28, 2002 12:55 AM Subject: Re: file system error
can you try a few things:
- do a raw dd command to the disk from /dev/zero and see if that works,
e.g. dd if=/dev/zero of=/dev/hda
- turn off UDMA, in fact turn off ALL dma at first
- try to make it run totally PIO
This is weird, but it does seem like some kind of DMA problem.
Also, boot under the normal bios and do an lspci -xxx and then do an lspci -xxx under linuxbios and see if you see any IDE setup differences.
ron