On 04/04/2025 10:49 am, Teddy Astie wrote: > diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c > index d70abb7e0c..0e2e7d012f 100644 > --- a/xen/arch/x86/setup.c > +++ b/xen/arch/x86/setup.c > @@ -2008,6 +2008,14 @@ void asmlinkage __init noreturn __start_xen(void) > if ( cpu_has_pku ) > set_in_cr4(X86_CR4_PKE); > > + if ( cpu_has_tce ) > + { > + printk("Enabling AMD TCE\n"); > + > + write_efer(read_efer() | EFER_TCE); > + trampoline_efer |= EFER_TCE;
This doesn't do what you think it does. (it writes into the copy of the trampoline in .init, not the one placed in low memory). You need to use bootsym() to get to the real trampoline. I'm also not sure the prinkt() is useful. It's about universal on AMD systems. ~Andrew