Hi,
I'm working on a card emtrion dimm mx6 with a freescale processor imx6q.
I am trying to make a linux 3.0.35 in a linux RT with patch PREEMPT_RT.
When I compile the kernel, I have a lot of errors. I must add parameters to functions otherwise I can not compile. When I reboot the card with linux "RT", the reboot will stop
I'll put the boot error message :
Bytes transferred = 4108176 (3eaf90 hex) ## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35-rt56
Created: 2013-09-04 9:22:47 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4108112 Bytes = 3.9 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 3.0.35-rt56 (hico@emvm) (gcc version 4.7.2 (GCC) ) #12 SMP PREEMPT RT Wed Sep 4 11:22:37 CEST 2013
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: DIMM-MX6 Board
Memory policy: ECC disabled, Data cache writealloc CPU identified as i.MX6Q, silicon rev 1.2
PERCPU: Embedded 7 pages/cpu @8c00e000 s6272 r8192 d14208 u32768 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 227328 Kernel command line: console=ttymxc1,115200n8 root=/dev/nfs rootwait nfsroot=192.168.101.80:/home/hico/myprojects/newLinuxRT/root/rootfs,v3,tcp,nolock ip=192.168.101.2:192.168.101.80::255.255.255.0::eth0:off ethaddr=00:1C:1E:08:38:AF video=mxcfb0:dev=lcd,800x480,if=RGB666,bpp=16
Warning: Assigning a globally valid ethernet address to a device You should set the 2nd rightmost bit in the first byte of the MAC, i.e. 02:1c:1e:08:38:af PID hash table entries: 4096 (order: 2, 16384 bytes) Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 640MB 256MB = 896MB total
Memory: 896320k/896320k available, 152256k reserved, 0K highmem Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xf4600000 - 0xffe00000 ( 184 MB)
vmalloc : 0xc0800000 - 0xf2000000 ( 792 MB)
lowmem : 0x80000000 - 0xc0000000 (1024 MB)
modules : 0x7f000000 - 0x80000000 ( 16 MB)
.init : 0x80008000 - 0x8003b000 ( 204 kB)
.text : 0x8003b000 - 0x80ae7fc8 (10932 kB)
.data : 0x80ae8000 - 0x80b524e8 ( 426 kB)
.bss : 0x80b5250c - 0x80bbd7b4 ( 429 kB)
Preemptible hierarchical RCU implementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms arm_max_freq=1GHz MXC_Early serial console at MMIO 0x21e8000 (options '115200n8') bootconsole [ttymxc1] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
CPU2: Booted secondary processor
CPU3: Booted secondary processor
Brought up 4 CPUs
SMP: Total of 4 processors activated (6324.22 BogoMIPS).
devtmpfs: initialized
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 <--> 1300 mV at 1100 mV fast normal
print_constraints: vddcore: 725 <--> 1300 mV at 1100 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x02070000, Cache size: 1048576 B
bio: create slab <bio-0> at 0
SCSI subsystem initialized
spi_imx imx6q-ecspi.1: probed
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb Freescale USB OTG Driver loaded, $Revision: 1.55 $ mc_pfuze 0-0008: ID: 0,Full lay: 1 ,Metal lay: 1 mc_pfuze 0-0008: FAB: 0 ,FIN: 0
print_constraints: SW1A: 300 <--> 1875 mV at 1375 mV
print_constraints: SW1B: 300 <--> 1875 mV at 300 mV
print_constraints: SW1C: 300 <--> 1875 mV at 1375 mV
print_constraints: SW3A: 400 <--> 1975 mV at 1500 mV
print_constraints: SW3B: 400 <--> 1975 mV at 1500 mV
print_constraints: PFUZE100_SWBST: 5000 <--> 5150 mV at 5000 mV
print_constraints: VSNVS: 1200 <--> 3000 mV at 1800 mV
print_constraints: VREFDDR: at 750 mV
print_constraints: VGEN5: 1800 <--> 3300 mV at 2500 mV
print_constraints: VGEN6: 1800 <--> 3300 mV at 2800 mV pca953x 2-0026: interrupt support not compiled in
imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
imx-ipuv3 imx-ipuv3.1: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7) Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
cfg80211: Calling CRDA to update world regulatory domain
i2c-core: driver [max17135] using legacy suspend method
i2c-core: driver [max17135] using legacy resume method Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes) TCP established hash table entries: 131072 (order: 8, 1048576 bytes) TCP bind hash table entries: 65536 (order: 9, 2097152 bytes)
TCP: Hash tables configured (established 131072 bind 65536) TCP reno registered UDP hash table entries: 512 (order: 3, 40960 bytes) UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PMU: registered new PMU device of type 0 Static Power Management for Freescale i.MX6 wait mode is enabled for i.MX6 cpaddr = c0880000 suspend_iram_base=c0918000 PM driver module loaded IMX usb wakeup probe add wake up source irq 75 IMX usb wakeup probe cpu regulator mode:ldo_enable i.MXC CPU frequency driver
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 1750
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
MIPI DSI driver module loaded
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver lcd mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb
_regulator_get: get() with no identifier imx-sdma imx-sdma: loaded firmware 1.1 imx-sdma imx-sdma: loaded firmware 1.1 imx-sdma imx-sdma: initialized imx-sdma imx-sdma: initialized
Serial: IMX driver
Serial: IMX driver
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
imx-uart.1: ttymxc1 at MMIO 0x21e8000 (irq = 59) is a IMX
console [ttymxc1] enabled, bootconsole disabled
If you succeeded in make your linux RT I am interested in any help
Best regards
Is there really no working patch for PREEMPT_RT?
I thought realtime is one of the main requirements in automotive applications.
Are there any good news?
[Update]
As I see a PREEMPT_RT Kernel 3.12.6-rt9 is running on a sabre board in a OSADL test rack.