Re: [regression, bisected] x86: efi: Pass boot services variable info to runtime code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Matt Fleming <matt@xxxxxxxxxxxxxxxxx> wrote:

> What appears to be happening is that your the EFI runtime services code 
> is calling into the EFI boot services code, which is definitely a bug in 
> your firmware because we're at runtime, but we've seen other machines 
> that do similar things so we usually handle it just fine. However, what 
> makes your case different, and the reason you see the above splat, is 
> that it's using the physical address of the EFI boot services region, 
> not the virtual one we setup with SetVirtualAddressMap(). Which is a 
> second firmware bug. Again, we have seen other machines that access 
> physical addresses after SetVirtualAddressMap(), but until now we 
> haven't had any non-optional code that triggered them.
> 
> The only reason I can see that the offending commit would introduce this 
> problem is because it calls QueryVariableInfo() at boot time. I notice 
> that your machine is an SGI UV one, is there any chance you could get a 
> firmware fix for this? If possible, it would be also good to confirm 
> that it's this chunk of code in setup_efi_vars(),
> 
> 	status = efi_call_phys4(sys_table->runtime->query_variable_info,
> 				EFI_VARIABLE_NON_VOLATILE |
> 				EFI_VARIABLE_BOOTSERVICE_ACCESS |
> 				EFI_VARIABLE_RUNTIME_ACCESS, &store_size,
> 				&remaining_size, &var_size);
> 
> that later makes GetNextVariable() jump to the physical address of the 
> EFI Boot Services region. Because if not, we need to do some more 
> digging.
> 
> Borislav, how are your 1:1 mapping patches coming along? In theory, once 
> those are merged we can gracefully workaround these kinds of issues.

Handling these gracefully without crashing boxes or expecting firmware to 
be sane (which is wishful thinking) would be _SO_ preferred ...

I suspect 1:1 mapped is what Windows does - and we simply need to provide 
a Windows-EFI compatible environment (which is reality), not just an 
EFI-spec environment (which is a fiction).

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux