From: Studencki P. <Paw...@er...> - 2001-02-26 16:28:16
|
Hello, it's me again... I'm not sure, but I hope, I find the reason of my problems... I didn't mentioned in last mail, that I delete 'calibrate_delay();' from init/main.c It's not a solution, but after that kernel was going on. the problem is, values of jiffies is const. I'm not a kernel hacker, (jiffies is art of time counter - all I know) and I really have no idea, what caused this behaviour!? void __init calibrate_delay(void) { unsigned long ticks, loopbit; int lps_precision = LPS_PREC; loops_per_sec = (1<<12); printk("Calibrating delay loop... "); while (loops_per_sec <<= 1) { /* wait for "start of" clock tick */ ticks = jiffies; printk("before sub while\n"); while (ticks == jiffies) <======= jiffies hasn't been changed !!!! /* nothing */; /* Go .. */ ticks = jiffies; Second thing (perhaps it's related to calibrate delay loop) With a kernel 2.4.0, I get: with 2.3.99-pre7: CPU clock: 75.17MHz same CPU Bus clock: 25.05MHz no info about bus Module clock: 25.05MHz Module 75.18 MHz !!!! Interval = 62648 Interval 187965 with 2.3.99-pre7 everything works OK. could it be a cause of all other problems or it's not important? How can I correct these values? I would be grateful for any help Pawel > Short description: > software: kernel-2.4.0-test11, glibc-2.2.2 > hardware: SH0079, SH3, debug with SCI > > I created this devices in folder /dev > > drwxr-xr-x 2 root root 1024 Feb 23 17:42 . > drwxr-xr-x 10 root root 1024 Feb 22 11:57 .. > lrwxrwxrwx 1 root root 6 Feb 23 17:42 > console -> ttySC0 > crwxrwxrwx 1 root root 1, 2 Feb 22 13:51 kmem > crwxrwxrwx 1 root root 255, 255 Feb 22 13:51 log > crwxrwxrwx 1 root root 1, 1 Feb 22 13:51 mem > crwxrwxrwx 1 root root 1, 3 Feb 22 13:51 null > lrwxrwxrwx 1 root root 4 Feb 22 13:52 ram -> ram0 > brwxrwxrwx 1 root root 1, 0 Feb 22 13:50 ram0 > crwxrwxrwx 1 root root 5, 0 Feb 22 14:49 tty > crwxrwxrwx 1 root root 204, 8 Feb 22 13:56 ttySC0 > -------------------------------------------------------------- > -------------- > > as INIT program I'm starting: > > -------------------------------------------------------------- > -------------- > ----- > > #include<stdio.h> > #include<sys/types.h> > #include<fcntl.h> > int main (void) > { > int i,fd; > > for(fd=0;;fd++) > { > > printf("hello %d \n",fd); > > } > fflush(NULL); > > return 1; > } > -------------------------------------------------------------- > -------------- > > so I get following boot messages on my terminal: > > -------------------------------------------------------------- > -------------- > - > > Linux version 2.4.0-test11 (root@capella) (gcc version 2.97 20001120 > (experiment > al)) #190 Fri Feb 23 17:44:50 MET 2001 > On node 0 totalpages: 4096 > zone(0): 4096 pages. > zone(1): 0 pages. > zone(2): 0 pages. > Kernel command line: console=ttySC0,38400 > SH RTC: invalid value, resetting to 1 Jan 2000 > CPU clock: 75.17MHz > Bus clock: 25.05MHz > Module clock: 25.05MHz > Interval = 62650 > Memory: 14216k/16384k available (648k kernel code, 2168k > reserved, 24k data, > 28k > init) > Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) > Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) > Page-cache hash table entries: 4096 (order: 2, 16384 bytes) > Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) > CPU: SH7707/SH7708/SH7709 > POSIX conformance testing by UNIFIX > Linux NET4.0 for Linux 2.4 > Based upon Swansea University Computer Society NET3.039 > Starting kswapd v1.8 > RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize > RAMDISK: ext2 filesystem found at block 0 > RAMDISK: Loading 1024 blocks [1 disk] into ram disk... done. > Freeing initrd memory: 1024k freed > SuperH SCI(F) driver initialized > ttySC0 at 0xfffffe80 is a SCI > ttySC1 at 0xa4000150 is a SCIF > ttySC2 at 0xa4000140 is a SCIF > NET4: Linux TCP/IP 1.0 for NET4.0 > IP Protocols: ICMP, UDP, TCP > IP: routing cache hash table of 512 buckets, 4Kbytes > TCP: Hash tables configured (established 1024 bind 1024) > VFS: Mounted root (ext2 filesystem). > Freeing unused kernel memory: 28k freed > sci open > set real termios > baud - 38400 > sci open > baud - 38400 > *** Before INIT *** > Hello world > Hello world 2 > hello 0 > hello 1 > hello 2 > hello 3 > hello 4 > hello 5 > [...] > hello 17 > hello 18 > hello 19 > hello 20 > hello 21 > hello 22 > hello 23 > hello 24 > > ---------------------------------------------------------------------- > > as you can see, my program stops at "hello 24" . I don't know > why :) That's > perhaps stupid, but I'm tring last days to get the reason of this > behaviour... > Serial console transmits only a certain number of chars or > console works > properly only certain period??? > > with older kernels I had the same problem,nearly the > same...Once, my program > was to short (5 steps in "for" loop), so it has been > "killed", before he > could send all strings to console. > But this time, the loop is endless! > could this a problem with glibc-2.2.2? my next step will be > change the Glibc > to older one... > but perhaps could you advice me something?? > > have a nice weekend > Pawel > > _______________________________________________ > linuxsh-dev mailing list > lin...@li... > http://lists.sourceforge.net/lists/listinfo/linuxsh-dev > |