Hello, My recent boot pagetable changes have caused me to work with the EFI build of Xen rather more than previously.
First, there is a dependency tracking bug in the build system. Edits to xen/arch/x86/efi/efi-boot.h don't cause xen.efi to be regenerated. From what I can tell, the file doesn't even get recompiled, because syntax errors even go unnoticed. Second, and the main point of the email. The EFI code has some logic which does: if ( !base_video ) { ... if ( best != StdOut->Mode->Mode ) StdOut->SetMode(StdOut, best); } just before printing out the Xen banner. This has a side effect of causing all further use of StdOut/StdErr to cease working, and interfering completely with debugging activities. (Waiting for a keypress on StdIn however does work, which is how I eventually diagnosed that it was an output problem.) Skipping this logic allows debugging to work. The code appeared in bf6501a62 "x86-64: EFI boot code" and has no specific description of what it is doing and/or trying to achieve. It is also not entirely clear why it is gated on having a cfg file in the first place (c/s ,c38cf865ec8, not that there is adequate context for why) or why there is a Xen command line argument "-basevideo" introduced in the beginning to skip this behaviour. As a point of reference, I don't see Linux making any SetMode calls. What is the purpose of changing to a different mode? Certainly as far as serial consoles go, sticking with the mode the loader uses certainly feels like a safer option. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel