help-grub
[Top][All Lists]
Advanced

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

Re: Serial Console Debugging Issue


From: Frantisek Rysanek
Subject: Re: Serial Console Debugging Issue
Date: Sat, 13 Aug 2022 10:14:44 +0200

> The question to me is, if Grub uses the IRQ. If it does, it may as 
> well hang on that.
>
Nope, Grub doesn't seem to use the IRQ.

https://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/term/ns8250.
c#n95

/* Turn off the interrupt.  */
  grub_outb (0, port->port + UART_IER);

So that potential pitfall does not apply.

As for the I/O ports, I don't really see a principal problem.

In general, for various physical address spaces, Linux running in 
protected mode, requires an "address window remap" operation during 
driver startup / device instance initialization - applies to code 
running in the kernel context (I'm not referring to the user space 
here, that's a whole different story yet).
That said, the x86 architecture distinguishes between memory-mapped 
IO and port IO.
The MMIO does technically require a "remap" operation, to have the 
MMIO window fit within all that "memory protection" clockwork.
But for Port IO, on x86, the "mapping" is in fact 1:1, a no-op.
The IO ports that you can see in Linux can be pretty much relied on 
to be the same *before* the kernel even gets loaded.
On the PCI bus, the port IO ranges are assigned during PCI bus 
enumeration done by the BIOS. Perhaps Linux can re-enumerate the bus 
and assign the windows differently, but in my everyday reality, this 
does not happen - i.e. the PCI IO windows are the same since right 
after the BIOS POST.

I.e., the only condition for the PCI-based IO window to work is, that 
the PCI bus has been set up by the BIOS (bridges configured, 
including the IO address windows decoded). Which is likely to have 
happened just fine.

Frank



reply via email to

[Prev in Thread] Current Thread [Next in Thread]