nova serial log output
Pirmin Duss
pirmin.duss at gapfruit.com
Thu Feb 10 10:25:38 CET 2022
Hello Alex
On 2/9/22 13:23, Alexander Boettcher wrote:
> I would suggest to add an message about the used i/o ports in the nova
> kernel at the end of Ec::bootstrap(). A trace message with the i/o
> values, as used in Console_serial class, will/should show up in the log
> when using Sculpt (next to the other kernel messages starting with
> [kernel] ...).
>
> Maybe the wrong I/O ports are used or none, but that will reveal your
> instrumentation. In UEFI mode the 'bender' tool [0] will by default
> assume 0x3f8 if no PCI serial card is detected, maybe this is
> problematic in your case. Or 'bender' finds a PCI serial card (Intel AMT
> SOL) and the kernel is using that instead.
>
> Hope the hints are useful.
Using the patch below I get the following output:
```
serial mem address : 0xffffffffdf000000
serial mem+0x400 value: 0x239
serial mem+0x404 value: 0x0
```
In the log I don't see any output from the constructors for
`Console_vga` or `Console_serial`. This might be, because these are
called before the log buffer is ready.
Disabling AMT SOL did not change the output produced.
I also changed the options set for bender in `boot/grub/grub.cfg` but
this also did not help.
Pirmin
```
diff --git a/src/bootstrap.cpp b/src/bootstrap.cpp
index f7b5de7..57850d4 100644
--- a/src/bootstrap.cpp
+++ b/src/bootstrap.cpp
@@ -51,5 +51,12 @@ void bootstrap()
root_sc->remote_enqueue();
}
+ char *mem = static_cast<char *>(Hpt::remap (Pd::kern.quota, 0));
+ Console::print(">>>> mem ptr : %p",mem);
+ unsigned base = *reinterpret_cast<uint16 *>(mem + 0x400);
+ Console::print(">>>> mem ptr mem+0x400: %x",base);
+ base = *reinterpret_cast<uint16 *>(mem + 0x402);
+ Console::print(">>>> mem ptr mem+0x402: %x",base);
+
Sc::schedule();
}
diff --git a/src/console_mem.cpp b/src/console_mem.cpp
index a9c1892..07375ca 100644
--- a/src/console_mem.cpp
+++ b/src/console_mem.cpp
@@ -25,6 +25,7 @@ mword PAGE_L = 0;
void Console_mem::setup()
{
+ Console::print(">>>> %s() : %d",__func__,__LINE__);
if (!PAGE_L)
return;
diff --git a/src/console_serial.cpp b/src/console_serial.cpp
index ea43701..1cde7d6 100644
--- a/src/console_serial.cpp
+++ b/src/console_serial.cpp
@@ -28,6 +28,7 @@ INIT_PRIORITY (PRIO_CONSOLE) Console_serial
Console_serial::con;
Console_serial::Console_serial()
{
+ Console::print(">>>> %s() : %d",__func__,__LINE__);
if (!Cmdline::serial)
return;
diff --git a/src/console_vga.cpp b/src/console_vga.cpp
index 7dc7bc8..a517b16 100644
--- a/src/console_vga.cpp
+++ b/src/console_vga.cpp
@@ -26,6 +26,7 @@ INIT_PRIORITY (PRIO_CONSOLE) Console_vga Console_vga::con;
Console_vga::Console_vga() : num (25), row (0), col (0)
{
+ Console::print(">>>> %s() : %d",__func__,__LINE__);
if (Cmdline::novga)
return;
```
More information about the users
mailing list