coreboot/src
Maximilian Brune 33659d246e arch/arm64/armv8: Add exception output without printk
In case printk does not work the current exception handler will print a
simple "!" to notify the developer that coreboot is actually there but
something went wrong.

The "!" can be quite confusing when it actually happens that printk does
not work. Since "!" doesn't really say much (if you don't know the
exception arm64 code) the developer (like me) can easily assume that
something went wrong while configuring clocks or baud rate of UART,
since the output seemingly does not seem to make sense.

This adds a little bit more output to assure the developer that what was
printed was actually intended to be printed. Therefore it prints
"EXCEPT" which assures the developer that this was intended output.
It also adds a comment above so that developer can more easily grep
for this message.

It has intentionally not been written as:
```
const char *msg = "\r\n!EXCPT!";
while (*msg)
  __uart_tx_byte(*msg++);
```
because in this case the compiler will generate code that will place
`msg` somewhere in bootblock and the code will try to access this using
a memory address. In rare cases (if you link bootblock at the wrong
address) this memory address can be wrong and coreboot will not print
the message. Using individual calls to `__uart_tx_byte` ensures that the
compiler will generate code which directly puts the character bytes into
the argument register without referencing a variable in bootblock.

Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com>
Change-Id: I2f858730469fff3cae120fd7c32fec53b3d309ca
Reviewed-on: https://review.coreboot.org/c/coreboot/+/80184
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2024-02-07 22:16:08 +00:00
..
acpi device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
arch arch/arm64/armv8: Add exception output without printk 2024-02-07 22:16:08 +00:00
commonlib commonlib: Add assembly optimization for ipchksum() on x86 2024-02-02 22:49:10 +00:00
console lib,console,sbom: Rename Makefiles from .inc to .mk 2024-01-24 10:12:57 +00:00
cpu cpu/x86/smm/pci_resource_store: Allow devices with no resources 2024-02-02 14:46:24 +00:00
device device/device.h: Fix spelling mistake 2024-01-31 10:36:49 +00:00
drivers drivers/pc80/tpm: probe for TPM family of a device 2024-02-07 12:20:25 +00:00
ec device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
include drivers/wifi: Add MTCL function to ACPI SSDT 2024-02-06 03:37:19 +00:00
lib lib: Move IP checksum to commonlib 2024-02-02 22:48:27 +00:00
mainboard mb/google/brya/var/xol: Update GPIO configurations 2024-02-07 10:29:06 +00:00
northbridge lib: Move IP checksum to commonlib 2024-02-02 22:48:27 +00:00
sbom src, util: Clean up makefile.inc in text, help & comments 2024-01-26 20:15:18 +00:00
security drivers/pc80/tpm: probe for TPM family of a device 2024-02-07 12:20:25 +00:00
soc soc/amd/genoa_poc/chip: print data fabric MMIO decoding configuration 2024-02-07 20:36:52 +00:00
southbridge sb/intel/i82371eb/isa: make IOAPIC ID const 2024-02-06 16:28:49 +00:00
superio device/device.h: Rename busses for clarity 2024-01-31 10:36:39 +00:00
vendorcode vc/amd/opensil: add openSIL stub implementation 2024-02-02 20:36:27 +00:00
Kconfig src, util: Clean up makefile.inc in text, help & comments 2024-01-26 20:15:18 +00:00