
Hi Stephan,
Of course you can post patches ! Any fix is always high appreciated !
I figured patches on a different repo were a bit 'unusual', but I'll clean up my work and submit my patch soon.
Exactly which kernel version ? Do you tried with mainline kernel ? The board is officially supported in mainline. Can you test with a 3.2+ kernel ?
'Any' version; The FreeScale supplied version 2.6.35.3-571 that came with the board, but also a community version 3.1.6. The strange thing is that the exact same uImage files of both these Kernels work perfectly fine when loaded by the ancient FreeScale supplied U-Boot 2009.08, so there must be some difference in the hand-over.
The Kernel stops booting after the message: mxs_cpu_init: cpufreq init finished (Full log included below) With the JTAG debugger attached, it will report SIGABRT somewhere in emi_set_rate. I realize that the message above is printed _after_ this function has run successfully, hence with the JTAG debugger attached it doesn't get that far. But for now I'd like to disregard that as a difference in cache contents.
Function mxs_cpu_init relocates function mxs_ram_freq_scale to SRAM and calls it. (I've noticed that the arguments are still in SDRAM, but the function seems to take care of copying those to SRAM itself) Function mxs_ram_freq_scale configures the SDRAM clock and after that it all stops. With the debugger it stops immediately, when running freely it still gets around to printing the message. I suppose without debugger there's still enough code in cache to do that.
So there must be something wrong with SDRAM configuration. But this Kernel runs on this board when it's loaded by an older version of U-Boot. So I figured it assumes an underlying clock configuration that's no longer corresponds with the way the newer U-Boot configures the clocks. And that's where I'm puzzling now.
These guys: http://imxcommunity.org/group/imx28andimx28evk/forum/topics/kernel-execution... (Still stuck with the ancient U-Boot version and ditto Kernel) report a similar symptom with mis-configured SDRAM, so I think I'm heading in the right way.
I'll pull Kernel version 3.2.1 now and see how that works, though I'd really like to understand the problem before considering it 'solved'.
Cheers,
Robert.
Log: ==== U-Boot 2011.12-svn319 (Jan 11 2012 - 12:54:24)
Freescale i.MX28 family I2C: ready DRAM: 128 MiB WARNING: Caches not enabled NAND: 1024 MiB MMC: MXS MMC: 0 In: serial Out: serial Err: serial Net: FEC0 Warning: failed to set MAC address , FEC1 Warning: failed to set MAC address
Hit any key to stop autoboot: 0 Using FEC0 device TFTP from server 192.168.72.80; our IP address is 192.168.72.111 Filename 'uImage'. Load address: 0x42000000 Loading: T ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ########################## done Bytes transferred = 2461264 (258e50 hex) ## Booting kernel from Legacy Image at 42000000 ... Image Name: linux-2.6.35.3-571-gcca29a0490 Created: 2012-01-03 20:42:29 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2461200 Bytes = 2.3 MiB Load Address: 40008000 Entry Point: 40008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel. Linux version 2.6.35.3-571-gcca29a0490 Micro GC FuMo-svn300 (robert@macpro-ubuntu) (gcc version 4.4.4 (4.4.4_09.06.2012 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: Freescale MX28EVK board Memory policy: ECC disabled, Data cache writeback Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: console=ttyAMA0,115200n8 ip=192.168.72.111::192.168.72.1:255.255.255.0:::none root=/dev/nfs nfsro/ PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 128MB = 128MB total Memory: 124676k/124676k available, 6396k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) DMA : 0xfde00000 - 0xffe00000 ( 32 MB) vmalloc : 0xc8800000 - 0xf0000000 ( 632 MB) lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) modules : 0xbf000000 - 0xc0000000 ( 16 MB) .text : 0xc002b000 - 0xc04a8000 (4596 kB) .init : 0xc0008000 - 0xc002b000 ( 140 kB) .data : 0xc04a8000 - 0xc04dda60 ( 215 kB) .bss : 0xc04ddae0 - 0xc0524274 ( 282 kB) SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. RCU-based detection of stalled CPUs is disabled. Verbose stalled-CPUs detection is disabled. NR_IRQS:288 Console: colour dummy device 80x30 console [ttyAMA0] enabled Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496) pid_max: default: 32768 minimum: 301 Security Framework initialized SELinux: Initializing. Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok regulator: core version 0.5 NET: Registered protocol family 16 regulator: vddd: 800 <--> 1575 mV at 1500 mV fast normal regulator: vdddbo: 800 <--> 1575 mV fast normal regulator: vdda: 1500 <--> 2275 mV at 1800 mV fast normal vddio = 3380000, val=10 regulator: vddio: 2880 <--> 3680 mV at 3380 mV fast normal regulator: overall_current: fast normal regulator: vbus5v: regulator: mxs-duart-1: fast normal regulator: mxs-bl-1: fast normal regulator: mxs-i2c-1: fast normal regulator: mmc_ssp-1: fast normal regulator: mmc_ssp-2: fast normal regulator: charger-1: fast normal regulator: power-test-1: fast normal regulator: cpufreq-1: fast normal i.MX IRAM pool: 124 KB@0xc8820000 usb DR wakeup device is registered IMX usb wakeup probe audit: cannot initialize inotify handle bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb Advanced Linux Sound Architecture Driver Version 1.0.23. Switching to clocksource mxs clock source NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. Bus freq driver module loaded IMX usb wakeup probe usb h1 wakeup device is registered mxs_cpu_init: cpufreq init finished