On Thu, Oct 12, 2006 at 09:04:56AM +0800, Zou, Nanhai wrote: > > -----Original Message----- > > From: Terry Loftin [mailto:[EMAIL PROTECTED] > > Sent: 2006年10月12日 6:41 > > To: [email protected]; [email protected] > > Cc: Zou, Nanhai; [EMAIL PROTECTED] > > Subject: [PATCH] kexec-tools: ia64: icache flush should align to 32-bytes > > > > Hi, > > I've run into problems testing kexec/kdump on a Montecito revision C > > processor. In purgatory, __dummy_efi_function is copied onto the > > end of the command line boot parameter (command_line + command_line_len) > > and this address is used to replace the EFI call to > > set_virtual_address_map(). > > The copied range is then icache flushed. > > > > The destination address is aligned to 16-bytes (in kexec-elf-ia64.c), but > > the fc.i instruction flushes a 32-byte range "associated" with that address. > > When my command line length is 16-byte aligned but not 32-byte aligned, this > > results in the first 16-bytes of __dummy_efi_function getting flushed (and > > the 16 bytes prior to that), but the second half of the function (the part > > with the br.ret) does not get flushed. kdump then hangs in purgatory. By > > adding a few spaces to my command line, it becomes both 16 and 32-byte > > aligned, and kdump works. > > > > > > This patch makes icache_flush_range() align the start address to 32-bytes > > and > > account for the difference. The patch is against Horms kexec-tools-testing > > tree. As a side note, you could also fix this by just adding 32 to the > > length > > passed to flush_icache_range() but that hides the dependent behavior. > > > > Thanks, > > -T > > It seems I was always testing with command line more than 16 bytes length..... > > Thanks. > Acked-by: Zou Nan hai <[EMAIL PROTECTED]>
Thanks, I will push this into kexec-tools-testing ASAP. -- Horms H: http://www.vergenet.net/~horms/ W: http://www.valinux.co.jp/en/ _______________________________________________ fastboot mailing list [email protected] https://lists.osdl.org/mailman/listinfo/fastboot
