[PATCH v1 1/2] ARM:prima2: move sirfsoc_of_rstc_init to .init_early
21cnbao at gmail.com
Mon Jun 3 05:41:34 EDT 2013
2013/6/3 Srinivas KANDAGATLA <srinivas.kandagatla at st.com>:
> Hi Barry,
> Thanks for testing,
> I think this patch introduced a sequencing issue.
> Just re-looking at the code, is there any reason for this to be
> init_earlycall? And do a ioremap at that early stage?
> Can't we move it to device_init level function "sirfsoc_mach_init()" at
> which it will be safe to do a ioremap with all mm setup finished?
i think it is ok as actually we wanted the reset controller module
ready before any users need it. the users include gps, graphics, usb
and some other peripheral drivers.
now they are actually initialized after init_machine().
> On 03/06/13 03:19, Barry Song wrote:
>> this broke SiRF by:
>> Uncompressing Linux... done, booting the kernel.
>> [ 0.000000] Booting Linux on physical CPU 0x0
>> [ 0.000000] Linux version 3.10.0-rc2-00723-gd1a0472-dirty
>> (barry at barry-laptop) (gcc version 4.5.4 20110505 (prerelease)
>> (Ubuntu/Linaro 4.5-2011.5-csr-build) ) #35 SMP PREEMPT Mon Jun 3
>> 09:51:59 CST 2013
>> [ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c53c7d
>> [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing
>> instruction cache
>> [ 0.000000] Machine: Generic ATLAS6 (Flattened Device Tree), model:
>> CSR SiRFatlas6 Evaluation Board
>> [ 0.000000] bootconsole [earlycon0] enabled
>> [ 0.000000] Memory policy: ECC disabled, Data cache writealloc
>> [ 0.000000] Unable to handle kernel NULL pointer dereference at
>> virtual address 00000000
>> [ 0.000000] pgd = c0004000
>> [ 0.000000]  *pgd=00000000
>> [ 0.000000] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
>> [ 0.000000] Modules linked in:
>> [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted
>> 3.10.0-rc2-00723-gd1a0472-dirty #35
>> [ 0.000000] task: c05cfb40 ti: c05c4000 task.ti: c05c4000
>> [ 0.000000] PC is at kmem_cache_alloc+0x2c/0x124
>> [ 0.000000] LR is at __get_vm_area_node.clone.26+0x7c/0x190
More information about the linux-arm-kernel