On Tue, Dec 16, 2008 at 8:31 AM, Rick Hunnicutt
<RHunnicutt@xxxxxxxxxxx> wrote:
Thanks Michal. The version is off the development branch pulled Nov 25th. It is the non-MMU version. The kernel boot log is as follows:
[14316256.221707] Linux version 2.6.20-uc0-dirty (root@RHEL5-X264) (gc
c version 3.4.1 ( PetaLinux 0.20 Build -rc1 050607 )) #119 Mon Dec 15 14:02:33 P
ST 2008
[14316256.221707] setup_cpuinfo: initialising
[14316256.221707] setup_cpuinfo: No PVR support in CPU. Using static compile-ti
me info
[14316256.221707] set_cpuinfo_static: Using static CPU info.
[14316256.221707] printk check pass....
[14316256.221707] setup_memory: max_mapnr: 0x9ffff
[14316256.221707] setup_memory: min_low_pfn: 0x98000
[14316256.221707] setup_memory: max_low_pfn: 0x8000
[14316256.221707] On node 0 totalpages: 32768
[14316256.221707] DMA zone: 256 pages used for memmap
[14316256.221707] DMA zone: 0 pages reserved
[14316256.221707] DMA zone: 32512 pages, LIFO batch:7
[14316256.221707] Normal zone: 0 pages used for memmap
[14316256.221707] Built 1 zonelists. Total pages: 32512
[14316256.221707] Kernel command line: .
[14316256.221707] OPB INTC #0 at 0x81800000
[14316256.221707] PID hash table entries: 512 (order: 9, 2048 bytes)
[14316256.221707] TIMER at 0x83C00000
[14316256.221707] disabling early console
[14316256.228374] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[14316256.231707] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[14316256.278374] Memory: 126420k/131072k available
[14316256.281707] Calibrating delay loop... 60.20 BogoMIPS (lpj=101120)
[14316256.345040] Mount-cache hash table entries: 512
[14316256.361707] NET: Registered protocol family 16
[14316256.388374] io scheduler noop registered
[14316256.388374] io scheduler anticipatory registered
[14316256.388374] io scheduler deadline registered
[14316256.388374] io scheduler cfq registered (default)
[14316257.055040] uartlite.0: ttyUL0 at MMIO 0x84000000 (irq = 1) is a uartlite
[14316257.075040] RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 bl
ocksize
[14316257.081707] uclinux[mtd]: RAM probe address=0x9812b450 size=0x220000
[14316257.085040] Creating 1 MTD partitions on "RAM":
[14316257.088374] 0x00000000-0x00220000 : "ROMfs"
[14316257.091707] uclinux[mtd]: set ROMfs to be root filesystem index=0
[14316257.115040] VFS: Mounted root (romfs filesystem) readonly.
[14316257.128374] Freeing unused kernel memory: 68k freed
Mounting proc:
Mounting var:
Populating /var:
Running local start scripts.
Mounting /etc/config:
u
It delays for several seconds before the final 'u' is printed and that is all I get. I put a printk in the heartbeat function just to check the serial output and it does continue to print where before it didn't seem to do so. I've noticed the printk's don't seem to use the uartlite driver while these last messages do.
We did use a reference board and did not have this issue. The main difference is the custom board uses the 1000Base-x PHY and the reference board (Avnet Lxt PCIe) uses a MII based PHY. As previously mentioned, if I remove the temac from the hardware project, the kernel boots fine, I can log on, and it is stable.
Just for completeness, what happens if you leave the ll_temac in the HW project, but just don't enable the kernel driver?
Also, with the temac HW and driver enabled, try adding "single" to the kernel commandline in uboot before booting. It will boot to single user mode (just a shell) without running init. Is it stable? You can then manually run the commands in /etc/rc, and the scripts in /etc/rc.d/S*.
See where in that oprocess the instability is introduced.
You might also want to pepper the temac driver with printks, particularly the phy_setup() function, see if you can associate a particular action in the driver with the lockup.
Regards,
John