Hi list, Launching program using I2C after init leads to an oops with 3.9 on a custom dm3730 based board. Looking at the disassembly of the _enable function in omap_hwmod.o, I noticed the call to _enable_preprogram was a direct branch to an adress in the .text section in the middle of another function. Looking for _enable_preprogram, it was at the right offset, but in the .init.text section, so I guess this is why it works fine during the boot, and oops once init is started I recompiled the kernel with the attached patch and the oops is gone. Is that the right ting to do ? Jean-Philippe François
[ 8.413635] Unable to handle kernel paging request at virtual address 000b0012 [ 8.421264] pgd = cf968000 [ 8.424102] [000b0012] *pgd=8fb06831, *pte=00000000, *ppte=00000000 [ 8.430725] Internal error: Oops: 17 [#1] PREEMPT ARM [ 8.436065] Modules linked in: [ 8.439270] CPU: 0 Not tainted (3.9.0 #2) [ 8.443878] PC is at _enable_preprogram+0x1c/0x24 [ 8.448852] LR is at omap_hwmod_enable+0x34/0x60 [ 8.453735] pc : [<c04e408c>] lr : [<c001cb80>] psr: 80000093 [ 8.453735] sp : cf95de08 ip : 00002de5 fp : bec33d4c [ 8.465820] r10: 00000000 r9 : 00000002 r8 : b6dd2c78 [ 8.471343] r7 : 00000004 r6 : 00000000 r5 : a0000013 r4 : cf95c000 [ 8.478210] r3 : 00000000 r2 : b6dd2c7c r1 : 00000000 r0 : 000b0012 [ 8.485107] Flags: Nzcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user [ 8.492706] Control: 10c5387d Table: 8f968019 DAC: 00000015 [ 8.498779] Process otpcmd (pid: 607, stack limit = 0xcf95c230) [ 8.505004] Stack: (0xcf95de08 to 0xcf95e000) [ 8.509613] de00: 00000001 cf91f840 00000000 c001d6fc 00000002 cf91f840 [ 8.518249] de20: cf8f7e10 c001de54 cf8f7e10 c001de78 c001de68 c01d5e80 00000000 cf8f7e10 [ 8.526855] de40: cf8f7e10 c01d5f28 cf8f7e10 c0530d30 00000000 c01d6f28 00000000 c0088664 [ 8.535491] de60: b6ea1000 cfb05284 cf95c000 00000001 cf95c000 60000013 00000001 cf95dee4 [ 8.544128] de80: cf870050 c01d7308 cf870010 cf870050 00000001 c0278b14 c0526f28 00000000 [ 8.552734] dea0: cf870050 ffff8e18 00000001 cf95dee4 00000000 c0274f7c cf870050 00000001 [ 8.561370] dec0: cf95dee4 cf1d8484 000000e0 c0276464 00000008 cf9c0000 00000007 c0276980 [ 8.570007] dee0: cf9c0000 00000064 00000008 cf1d8404 cf1d8400 c01cc05c 0000270a cf1d8504 [ 8.578613] df00: 00000023 cf1d8484 00000007 c01cc670 00000bdd 00000001 00000000 cf449e60 [ 8.587249] df20: cf1dde70 cf1d8400 bec33d18 cf1d8504 c0246f00 00000003 cf95c000 00000000 [ 8.595886] df40: bec33d4c c01cd078 00000003 cf1d8504 00000081 c01cbcb8 bec33d18 00000003 [ 8.604492] df60: bec33d18 c00a9034 00002000 c00a9c68 cf92fe00 00000003 c0246f00 cf92fe00 [ 8.613128] df80: 00000000 c00a9cb0 00000003 00000000 00008e70 00000000 b6f17000 00000036 [ 8.621765] dfa0: c000e484 c000e300 00008e70 00000000 00000003 c0246f00 bec33d18 bec33d18 [ 8.630371] dfc0: 00008e70 00000000 b6f17000 00000036 00000000 00000000 b6f6d000 bec33d4c [ 8.639007] dfe0: b6ea1bd0 bec33d0c 00008c9c b6ea1bdc 60000010 00000003 00000000 00000000 [ 8.647644] [<c001cb80>] (omap_hwmod_enable+0x34/0x60) from [<c001d6fc>] (_omap_device_enable_hwmods+0x20/0x34) [ 8.658294] [<c001d6fc>] (_omap_device_enable_hwmods+0x20/0x34) from [<c001de54>] (omap_device_enable+0x3c/0x50) [ 8.669036] [<c001de54>] (omap_device_enable+0x3c/0x50) from [<c001de78>] (_od_runtime_resume+0x10/0x1c) [ 8.679046] [<c001de78>] (_od_runtime_resume+0x10/0x1c) from [<c01d5e80>] (__rpm_callback+0x54/0x98) [ 8.688690] [<c01d5e80>] (__rpm_callback+0x54/0x98) from [<c01d5f28>] (rpm_callback+0x64/0x7c) [ 8.697784] [<c01d5f28>] (rpm_callback+0x64/0x7c) from [<c01d6f28>] (rpm_resume+0x434/0x554) [ 8.706665] [<c01d6f28>] (rpm_resume+0x434/0x554) from [<c01d7308>] (__pm_runtime_resume+0x48/0x74) [ 8.716217] [<c01d7308>] (__pm_runtime_resume+0x48/0x74) from [<c0278b14>] (omap_i2c_xfer+0x28/0xe8) [ 8.725860] [<c0278b14>] (omap_i2c_xfer+0x28/0xe8) from [<c0274f7c>] (__i2c_transfer+0x3c/0x78) [ 8.735046] [<c0274f7c>] (__i2c_transfer+0x3c/0x78) from [<c0276464>] (i2c_transfer+0x6c/0xc0) [ 8.744140] [<c0276464>] (i2c_transfer+0x6c/0xc0) from [<c0276980>] (i2c_master_send+0x38/0x48) [ 8.753326] [<c0276980>] (i2c_master_send+0x38/0x48) from [<c01cc05c>] (sha204p_send_command+0x60/0x9c) [ 8.763244] [<c01cc05c>] (sha204p_send_command+0x60/0x9c) from [<c01cc670>] (sha204c_send_and_receive+0x5c/0x1e0) [ 8.774078] [<c01cc670>] (sha204c_send_and_receive+0x5c/0x1e0) from [<c01cd078>] (sha204m_read+0x94/0xa0) [ 8.784179] [<c01cd078>] (sha204m_read+0x94/0xa0) from [<c01cbcb8>] (otp_do_read+0x50/0xa4) [ 8.792999] [<c01cbcb8>] (otp_do_read+0x50/0xa4) from [<c00a9034>] (vfs_ioctl+0x24/0x40) [ 8.801544] [<c00a9034>] (vfs_ioctl+0x24/0x40) from [<c00a9c68>] (do_vfs_ioctl+0x1b0/0x1c0) [ 8.810363] [<c00a9c68>] (do_vfs_ioctl+0x1b0/0x1c0) from [<c00a9cb0>] (sys_ioctl+0x38/0x54) [ 8.819152] [<c00a9cb0>] (sys_ioctl+0x38/0x54) from [<c000e300>] (ret_fast_syscall+0x0/0x30) [ 8.828063] Code: e1a08002 ea000009 e598003c e592c05c (e7904003)
Attachment:
omap_hwmod_fix
Description: Binary data