aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/doc/console-log.rst
diff options
context:
space:
mode:
authorAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
committerAngelos Mouzakitis <a.mouzakitis@virtualopensystems.com>2023-10-10 14:33:42 +0000
commitaf1a266670d040d2f4083ff309d732d648afba2a (patch)
tree2fc46203448ddcc6f81546d379abfaeb323575e9 /roms/skiboot/doc/console-log.rst
parente02cda008591317b1625707ff8e115a4841aa889 (diff)
Add submodule dependency filesHEADmaster
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'roms/skiboot/doc/console-log.rst')
-rw-r--r--roms/skiboot/doc/console-log.rst93
1 files changed, 93 insertions, 0 deletions
diff --git a/roms/skiboot/doc/console-log.rst b/roms/skiboot/doc/console-log.rst
new file mode 100644
index 000000000..c758e9a57
--- /dev/null
+++ b/roms/skiboot/doc/console-log.rst
@@ -0,0 +1,93 @@
+SkiBoot Console Log
+===================
+
+Skiboot maintains a circular textual log buffer in memory.
+
+It can be accessed using any debugging method that can peek at
+memory contents. While the debug_descriptor does hold the location
+of the memory console, we're pretty keen on keeping its location
+static.
+
+Events are logged in the following format:
+``[S.T,L] message`` where:
+
+:S: Seconds, which is the timebase divided by 512,000,000.
+ **NOTE**: The timebase is reset during boot, so zero is a few dozen
+ messages into skiboot booting.
+:T: Remaining Timebase. It is *NOT* a fraction of a second, but rather
+ timebase%512000000
+:L: Log level (see below)
+
+Example: ::
+
+ [ 2.223466021,5] FLASH: Found system flash: Macronix MXxxL51235F id:0
+ [ 3.494892796,7] FLASH: flash subpartition eyecatcher CAPP
+
+You should use the new prlog() call for any log message and set the
+log level/priority appropriately.
+
+printf() is mapped to PR_PRINTF and should be phased out and replaced
+with prlog() calls.
+
+See timebase.h for full timebase explanation.
+
+Log levels
+----------
+
+=============== ==========
+Define Value
+=============== ==========
+PR_EMERG 0
+PR_ALERT 1
+PR_CRIT 2
+PR_ERR 3
+PR_WARNING 4
+PR_NOTICE 5
+PR_PRINTF PR_NOTICE
+PR_INFO 6
+PR_DEBUG 7
+PR_TRACE 8
+PR_INSANE 9
+=============== ==========
+
+The console_log_levels byte in the debug_descriptor controls what
+messages are written to any console drivers (e.g. fsp, uart) and
+what level is just written to the in memory console (or not at all).
+
+This enables (advanced) users to vary what level of output they want
+at runtime in the memory console and through console drivers (fsp/uart)
+
+You can vary two things by poking in the debug descriptor:
+
+1. what log level is printed at all
+ e.g. only turn on PR_TRACE at specific points during runtime
+2. what log level goes out the fsp/uart console, defaults to PR_PRINTF
+
+We use two 4bit numbers (1 byte) for this in debug descriptor (saving
+some space, not needlessly wasting space that we may want in future).
+
+The default is 0x75 (7=PR_DEBUG to in memory console, 5=PR_PRINTF to drivers
+
+If you write 0x77 you will get debug info on uart/fsp console as
+well as in memory. If you write 0x95 you get PR_INSANE in memory but
+still only PR_NOTICE through drivers.
+
+People who write something like 0x1f will get a very quiet boot indeed.
+
+Debugging
+---------
+
+You can change the log level of what goes to the in memory buffer and whta
+goes to the driver (i.e. serial port / IPMI Serial over LAN) at boot time
+by setting NVRAM variables: ::
+
+ nvram -p ibm,skiboot --update-config log-level-driver=7
+ nvram -p ibm,skiboot --update-config log-level-memory=7
+
+You can also use the named versions of emerg, alert, crit, err,
+warning, notice, printf, info, debug, trace or insane. ie. ::
+
+ nvram -p ibm,skiboot --update-config log-level-driver=insane
+
+
+You an also write to the debug_descriptor to change it at runtime.