> -----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]>
_______________________________________________ fastboot mailing list [email protected] https://lists.osdl.org/mailman/listinfo/fastboot
