Subject: [patch 0/2] ARM: Disable outer cache before kexec call -V3

From: [email-masked] (Andrea Paterniani)
Date: Wed, 04 Aug 2010 11:19:41 +0200

Il 03/08/2010 19.36, Gadiyar, Anand ha scritto:
> Andrea Paterniani wrote:
>    
>> Hi,
>>       I have applied your patches to kernel 2.6.35-rc4 running on my beagleboard.
>> I'm using kexec-tools-2.0.1.
>>
>> My u-boot bootargs is:
>>       console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait ip=192.168.2.13::255.255.255.0
>>
>> To restart the system I type:
>>   >  sync
>>   >  kexec -l /boot/zImage --append="console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait ip=192.168.2.13::255.255.255.0"
>>   >  kexec -e
>>
>> Not every time the system restart.
>> In some cases no output on the console after the following:
>>       Bye!
>>       Uncompressing Linux... done, booting the kernel.
>>
>> Any idea?
>>
>>      
> Can you try building your kernel with CONFIG_EARLY_PRINTK,
> and add the word "earlyprintk" to your bootargs?
>
>    
I built the kernel with (also verified via zcat /proc/config.gz | grep 
... after succesfull kexec):

CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_LL=y

I load new kernel zImage via:
kexec -l /boot/zImage --append="earlyprintk console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait ip=192.168.2.13::255.255.255.0"

but when kexec fails I got only the following:
	Bye!
	Uncompressing Linux... done, booting the kernel.

What do I miss whith earlyprintk?

Perhaps I did not enough tests, but at the moment it seems that system boot with nfs rootfs followed by kexec with mmc rootfs works.
Problems arise with system boot and kexec both with mmc rootfs.

Regards,
- Andrea

>
>    
>> Il 05/07/2010 13.52, Thomas Gleixner ha scritto:
>>      
>>> The following patch series addresses the problem that the kexec code
>>> does not disable the outer cache before disabling the inner cache and
>>> jumping into the new kernel. This results in random crashes of the new
>>> kernel.
>>>
>>> Changes since version 2:
>>>
>>>    - Use CLEAN_INV_WAY in l2x0_flush_all according to Catalin
>>>
>>>    - Rename outer_cache_disable() to outer_disable()
>>>
>>>    - Added a  BUG_ON() when l2x0_inv_all() is called with L2 enabled.
>>>
>>> Thanks,
>>>
>>>        tglx
>>>
>>>
>>>
>>>        
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>    

--