Skip to content

BUG() in bcm2708_fb_set_par doesn't work if the console is currently locked #13

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
nomis opened this issue May 6, 2012 · 2 comments
Closed

Comments

@nomis
Copy link

nomis commented May 6, 2012

The BUG() in bcm2708_fb_set_par doesn't work because the console is currently locked:

[    1.402692] BCM2708FB: registering framebuffer (1824x1104@16)
[    1.413735] bcm2708_fb_set_par info(cb8c4c00) 1824x1104 (1824x1104), 0, 16
[    1.439038] ------------[ cut here ]------------
[    1.443703] kernel BUG at drivers/video/bcm2708_fb.c:252!
[    1.449132] Internal error: Oops - BUG: 0 [#1] PREEMPT
[    1.454303] CPU: 0    Not tainted  (3.3.0-00040-g7eab884-dirty #14)
[    1.460616] PC is at bcm2708_fb_set_par+0x178/0x184
[    1.465538] LR is at get_parent_ip+0x10/0x2c
[    1.469835] pc : [<c01c5644>]    lr : [<c003ec54>]    psr: 60000013
[    1.469844] sp : cb82dd40  ip : c08a0880  fp : 00000045
[    1.481369] r10: 00000720  r9 : c09662d4  r8 : 00000010
[    1.486620] r7 : cb82dd5c  r6 : 00000000  r5 : ffdff000  r4 : cb8c4c00
[    1.493177] r3 : c0414568  r2 : c0414568  r1 : cb828348  r0 : 00000000
[    1.499736] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    1.507079] Control: 00c5387d  Table: 00004008  DAC: 00000017
[    1.512853] Process swapper (pid: 1, stack limit = 0xcb82c268)
[    1.518715] Stack: (0xcb82dd40 to 0xcb82e000)
[    1.523103] dd40: 00000720 00000450 00000000 00000010 c09662d4 cb806000 cb8c4cc8 00000000
[    1.531329] dd60: cb8c4c00 cb806000 cb8c4c00 cb806000 c04205a0 c09662d4 cb94c000 c01be6bc
[    1.539552] dd80: 000000b2 c004f488 cb8c4c9c 00000000 00000000 00000001 000000e4 c0968288
[    1.547775] dda0: 000000e4 00000045 00000000 cb806000 00000194 cb8062b8 00000154 000001c0
[    1.555996] ddc0: 00000000 00000000 c0968908 c01d7c24 00000001 c0347758 cb806000 00000001
[    1.564217] dde0: c03b1c14 c01d93f8 00000000 00000000 00000001 00000000 0000003e c0968634
[    1.572439] de00: c03b3364 0000003e 00000000 c0347758 00000001 00000000 00000000 00000005
[    1.580662] de20: 00000000 c01daf68 00000001 c04205a0 c0968288 ffffffff 00000000 c01be784
[    1.588884] de40: 00000000 cb82dee0 c04205cc c003b464 ffffffff c04203c8 ffffffff cb82dee0
[    1.597106] de60: 00000005 c04205cc 01d00000 c003b948 00000000 c040e280 00000000 cb8c4c00
[    1.605329] de80: c040e280 cb8c4c0c cb8c4e9c c003b994 00000000 00000000 cb8c4c00 c01b92b8
[    1.613552] dea0: c03b19e0 00000000 00000000 00000000 00000720 00000450 00000000 00000000
[    1.621772] dec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000020
[    1.629994] dee0: cb8c4c00 c032e268 cb8c4c00 cb8c4c00 c04131f8 00000000 c0420728 cb8c4c9c
[    1.638218] df00: 3f39322b c01c5380 c0413208 0b94d000 c0413200 c096b9e8 c0413234 00000000
[    1.646441] df20: c042073c c01ec4b8 c01ec4a0 c01eb410 c0413200 c042073c c0413234 00000000
[    1.654664] df40: 00000000 c01eb5ac c042073c c01eb518 00000000 c01e9f30 cb803ea8 cb84e150
[    1.662887] df60: c042073c c0424c88 cb957d80 c01ea76c c039e84c c01a1d64 cb803e00 c042073c
[    1.671110] df80: 00000000 c03f9ed4 00000013 00000000 3f39322b c01ebbec c040b068 00000000
[    1.679332] dfa0: c03f9ed4 00000013 00000000 c03ed768 00000400 00000000 3f39322b 00000000
[    1.687555] dfc0: cb82dfd4 c040b068 c040b134 c000ecd0 00000013 00000000 00000000 00000000
[    1.695776] dfe0: 00000000 c03ed8f4 00000000 00000000 c03ed87c c000ecd0 00000000 00000000
[    1.704034] [<c01c5644>] (bcm2708_fb_set_par+0x178/0x184) from [<c01be6bc>] (fbcon_init+0x460/0x4c4)
[    1.713243] [<c01be6bc>] (fbcon_init+0x460/0x4c4) from [<c01d7c24>] (visual_init+0x78/0xc8)
[    1.721660] [<c01d7c24>] (visual_init+0x78/0xc8) from [<c01d93f8>] (bind_con_driver+0x138/0x308)
[    1.730508] [<c01d93f8>] (bind_con_driver+0x138/0x308) from [<c01daf68>] (take_over_console+0x3c/0x44)
[    1.739879] [<c01daf68>] (take_over_console+0x3c/0x44) from [<c01be784>] (fbcon_takeover+0x64/0xc8)
[    1.748987] [<c01be784>] (fbcon_takeover+0x64/0xc8) from [<c003b464>] (notifier_call_chain+0x74/0xe8)
[    1.758271] [<c003b464>] (notifier_call_chain+0x74/0xe8) from [<c003b948>] (__blocking_notifier_call_chain+0x60/0x94)
[    1.768945] [<c003b948>] (__blocking_notifier_call_chain+0x60/0x94) from [<c003b994>] (blocking_notifier_call_chain+0x18/0x20)
[    1.780407] [<c003b994>] (blocking_notifier_call_chain+0x18/0x20) from [<c01b92b8>] (register_framebuffer+0x170/0x24c)
[    1.791170] [<c01b92b8>] (register_framebuffer+0x170/0x24c) from [<c01c5380>] (bcm2708_fb_probe+0x14c/0x208)
[    1.801068] [<c01c5380>] (bcm2708_fb_probe+0x14c/0x208) from [<c01ec4b8>] (platform_drv_probe+0x18/0x1c)
[    1.810613] [<c01ec4b8>] (platform_drv_probe+0x18/0x1c) from [<c01eb410>] (driver_probe_device+0x90/0x198)
[    1.820329] [<c01eb410>] (driver_probe_device+0x90/0x198) from [<c01eb5ac>] (__driver_attach+0x94/0x98)
[    1.829781] [<c01eb5ac>] (__driver_attach+0x94/0x98) from [<c01e9f30>] (bus_for_each_dev+0x50/0x7c)
[    1.838883] [<c01e9f30>] (bus_for_each_dev+0x50/0x7c) from [<c01ea76c>] (bus_add_driver+0x17c/0x248)
[    1.848073] [<c01ea76c>] (bus_add_driver+0x17c/0x248) from [<c01ebbec>] (driver_register+0x78/0x130)
[    1.857270] [<c01ebbec>] (driver_register+0x78/0x130) from [<c03ed768>] (do_one_initcall+0x50/0x164)
[    1.866462] [<c03ed768>] (do_one_initcall+0x50/0x164) from [<c03ed8f4>] (kernel_init+0x78/0x118)
[    1.875317] [<c03ed8f4>] (kernel_init+0x78/0x118) from [<c000ecd0>] (kernel_thread_exit+0x0/0x8)
[    1.884155] Code: e59412b8 eaffffee ebf95710 ebf9574f (e7f001f2) 
[    1.890694] ---[ end trace d0737ebb5ab15f5f ]---

I have a hack to ensure the console is unlocked before calling BUG(): nomis/linux@a9de8a9

@nomis
Copy link
Author

nomis commented May 6, 2012

The BUG() itself was caused by not selecting NEED_MACH_MEMORY_H in kernel 3.3

Note: PHYS_OFFSET needs to be renamed to PLAT_PHYS_OFFSET

@popcornmix
Copy link
Contributor

I included your fix in:
raspberrypi/linux@e026371

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants