From: <jo...@en...> - 2000-10-08 15:30:16
|
2.4.0-test8 still doesn't boot out of box on my A1200/603e. After some investigation I found out it gets stuck in this loop in arch/ppc/kernel/time.c: do { old_stamp = stamp; old_sec = sec; stamp = get_native_tbl(); if (__USE_RTC() && stamp < old_stamp) old_stamp -= 1000000000; elapsed += stamp - old_stamp; sec = ppc_md.get_rtc_time(); } while ( sec == old_sec && elapsed < 2*HZ*tb_ticks_per_jiffy); My printk tests indicate that it loops in there but never gets out of the loop, I don't know why. It might also freeze somewhere inside the loop after some time. This is dmesg output for a normal boot: ----------------------------------------------------------------------- Total memory = 64MB; using 0kB for hash table (at 00000000) Linux version 2.4.0-test8 (root@localhost) (gcc version 2.95.1 19990809 (prerelease)) #31 Sun Oct 8 03:47:23 EEST 2000 Amiga hardware found: [A1200] VIDEO BLITTER AUDIO FLOPPY A1200_IDE KEYBOARD MOUSE SERIAL PARALLEL A2000_CLK CHIP_RAM PAULA LISA ALICE_PAL PCMCIA ZORRO On node 0 totalpages: 16384 zone(0): 16384 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: root=/dev/hda5 debug=mem video=pm2fb:640x480-75,font:SUN8x16 amiga_enable_irq: Trying to enable auto-vector IRQ 1 amiga_enable_irq: Trying to enable auto-vector IRQ 3 amiga_enable_irq: Trying to enable auto-vector IRQ 4 amiga_enable_irq: Trying to enable auto-vector IRQ 5 amiga_enable_irq: Trying to enable auto-vector IRQ 7 amiga_enable_irq: Trying to enable auto-vector IRQ 2 amiga_enable_irq: Trying to enable auto-vector IRQ 6 APUS: BATs=1, BUS=67MHz, RAM=70ns, PCI bridge=1 time_init: decrementer frequency = 16.666667 MHz <<<<<<<<<<<<<<<<<<<< ----------------------------------------------------------------------- It booted ok after modifying the code so that it will never loop more than 1000 times, after which dmesg says: ----------------------------------------------------------------------- Warning: real time clock seems stuck! Console: colour dummy device 80x25 Calibrating delay loop... 111.00 BogoMIPS Memory: 62600k available (860k kernel code, 392k data, 64k init, 0k highmem) Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes) Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes) Page-cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 4096 (order: 3, 32768 bytes) POSIX conformance testing by UNIFIX Zorro: Probing AutoConfig expansion devices: 1 device Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. 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 4096 bind 4096) Starting kswapd v1.7 Console: switching to colour frame buffer device 80x30 fb0: CVisionPPC/BVisionPPC (Permedia2), using 8192K of video memory. pty: 256 Unix98 ptys configured Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx ide0: Gayle IDE interface (A1200 style) hda: FUJITSU MPC3043AT, ATA DISK drive ide0 at 80da0000 on irq 0x0000000c hda: 8448300 sectors (4326 MB), CHS=8940/15/63 Partition check: hda: RDSK hda1 hda2 hda3 hda4 hda5 hda6 hda7 hda8 hda9 hda10 Amiga mouse installed. VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 64k init Adding Swap: 103000k swap-space (priority -1) ----------------------------------------------------------------------- The system seemed to work ok after that, except for serial transfer. It still gets a _lot_ of tty overruns, losing something like 50% of the characters. This might be some sort of timing problem related to the first one? An earlier test kernel booted on this machine (I posted to this list months ago about it) and it didn't have the time.c problem but serial wasn't any better that time. Jouko |