AnsweredAssumed Answered

AD-FMCOMMS1-EBZ ZC706 boot problem

Question asked by gubi on Apr 25, 2013
Latest reply on Jul 16, 2013 by larsc



I have problem with booting the recent kernel from the github on a ZC706 board. It failes with kernel panic:


i2c /dev entries driver

Unhandled fault: imprecise external abort (0x406) at 0x00000000

Internal error: : 406 [#1] PREEMPT SMP ARM

Modules linked in:

CPU: 0    Tainted: G        W     (3.6.0-g1b243ba #1)

PC is at xiic_clear_rx_fifo+0x1c/0x2c

LR is at xiic_reinit+0x98/0x124

pc : [<c02440d8>]    lr : [<c0244180>]    psr: 60000013

sp : ec85bed0  ip : f0060000  fp : 00000054

r10: 00000000  r9 : 00000000  r8 : eca4d830

r7 : ec8c2808  r6 : ec8abb80  r5 : c051645c  r4 : eca4d800

r3 : f0060000  r2 : 00000000  r1 : 00000001  r0 : eca4d800

Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel

Control: 18c5387d  Table: 0000404a  DAC: 00000015

Process swapper/0 (pid: 1, stack limit = 0xec85a2f0)

Stack: (0xec85bed0 to 0xec85c000)

bec0:                                     00000000 eca4d800 ec8c2800 c03513ec

bee0: 00000000 c05357a0 ec85a000 ec8c2808 c0a48b54 c05357a0 c05357a0 c04f1c10

bf00: 00000000 00000000 00000000 c01c71cc c01c71b8 c01c62b8 00000000 ec8c2808

bf20: ec8c283c c05357a0 00000000 c01c6458 c05357a0 c01c63f0 00000000 c01c4cb8

bf40: ec8806a8 ec8df910 c05357a0 ec9156c0 c0528350 c01c5a34 c0463f1a 00000001

bf60: 00000000 c05357a0 c04e1724 00000000 0000007f c04f1c10 00000000 c01c679c

bf80: 00000000 ec85bfa0 c04e1724 00000000 0000007f c04f1c10 00000000 c0008544

bfa0: 00000006 00000006 00000000 00000006 c04eaab0 00000006 c04eaab4 c04eaa94

bfc0: 0000007f c04f1c10 00000000 c04cd8dc 00000006 00000006 c04cd1bc ec8591c0

bfe0: 00000000 c04cd7e4 c000e308 00000013 00000000 c000e308 7f74897f a57bfdf4

[<c02440d8>] (xiic_clear_rx_fifo+0x1c/0x2c) from [<c0244180>] (xiic_reinit+0x98/0x124)

[<c0244180>] (xiic_reinit+0x98/0x124) from [<c03513ec>] (xiic_i2c_probe+0x104/0x244)

[<c03513ec>] (xiic_i2c_probe+0x104/0x244) from [<c01c71cc>] (platform_drv_probe+0x14/0x18)

[<c01c71cc>] (platform_drv_probe+0x14/0x18) from [<c01c62b8>] (driver_probe_device+0xb4/0x1ec)

[<c01c62b8>] (driver_probe_device+0xb4/0x1ec) from [<c01c6458>] (__driver_attach+0x68/0x8c)

[<c01c6458>] (__driver_attach+0x68/0x8c) from [<c01c4cb8>] (bus_for_each_dev+0x48/0x74)

[<c01c4cb8>] (bus_for_each_dev+0x48/0x74) from [<c01c5a34>] (bus_add_driver+0x98/0x21c)

[<c01c5a34>] (bus_add_driver+0x98/0x21c) from [<c01c679c>] (driver_register+0x9c/0x138)

[<c01c679c>] (driver_register+0x9c/0x138) from [<c0008544>] (do_one_initcall+0x90/0x164)

[<c0008544>] (do_one_initcall+0x90/0x164) from [<c04cd8dc>] (kernel_init+0xf8/0x1b8)

[<c04cd8dc>] (kernel_init+0xf8/0x1b8) from [<c000e308>] (kernel_thread_exit+0x0/0x8)

Code: f57ff04f e590c000 e59c2104 f57ff04f (e6ef1072)

---[ end trace 1b75b31a2719ed1d ]---

Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b


Earlier versions of the kernel tree is working for me more or less, but at least not fails with kernel panic.

The problem is definitely related to the I2C as if I configure out the i2c driver from the kernel, it boots (of course FMCOMMS does not works that way).

Recent change in the kernel tree was that in the devicetree (zynq-zc702-adv7511-xcomm.dts) the

i2c0: i2c@0 {

                       compatible = "i2c-gpio";

was replaced by

i2c0: i2c@0 {

            compatible = "xlnx,axi-iic-1.02.a", "xlnx,xps-iic-2.00.a";

The drivers around i2c was also changed so reverting the dts alone does not help (the kernel boots, but FMCOMMS is not configured).


Earlier I was trying kernel version 3.6.0-02515, which was a "sometimes works, sometimes not" version.

It was booting every time, just the 2 out of 3 trial resulted in a state that the FMCOMMS is not configured correctly (sometimes the DAC was not working, sometimes the ADC, totally unpredictable).

Later I have upgraded to kernel version 3.6.0-00542 which was not working: it boots, but I the FMCOMMS was never configured correctly.