memtest86plus/system
01e3 1c88824a7d
Optimize screen & serial output handling. (#85)
- Enable VGA/FB to output box drawing characters while maintaining VT100
   character set for serial. Shorten and simplify the screen setup code.

 - Track the background color to decide if the serial output needs to be
   inverted. Remove no longer needed logic for known areas of the screen that
   need to be inverted. As a bonus - popup menu can now be also inverted on
   serial.

 - Reduce the amount of data sent to serial by using CR+LF when possible
   instead of always relying on absolute positioning. Add tty_print()
   for positioning the cursor, remove no longer needed tty_print().

 - Remove no longer needed "LF -> LF+CR" logic from serial_echo_print().

Before (gcc-11.3.0-x86_64):
      text       data        bss      total filename
       929        357         64       1350 system/serial.o
      3517       1356         54       4927 app/display.o

After (gcc-11.3.0-x86_64):
      text       data        bss      total filename
       907        336         64       1307 system/serial.o
      3442       1242         54       4738 app/display.o

Co-authored-by: Sam Demeulemeester <38105886+x86fr@users.noreply.github.com>
2022-06-19 16:40:30 +02:00
..
acpi.c Various minor cosmetic changes on acpi.c/h (mainly comments and code format) 2022-06-19 16:39:03 +02:00
acpi.h Various minor cosmetic changes on acpi.c/h (mainly comments and code format) 2022-06-19 16:39:03 +02:00
cache.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
cpuid.c Fix a detection issue caused by some Pre-ZEN AMD CPUs sometimes incorrectly reporting SMT as supported 2022-05-21 01:31:06 +02:00
cpuid.h Various code cleanup following PR review 2022-04-16 13:31:28 +02:00
cpuinfo.c Add ACPI Timer as the primary TSC correction source and PIT Timer as fallback 2022-06-19 16:39:03 +02:00
cpuinfo.h Add support for AMD Cezanne APU (Ryzen 5000G) #21 2022-04-01 18:55:43 +02:00
cpulocal.c Faster barrier implementation. 2022-02-28 22:05:21 +00:00
cpulocal.h Faster barrier implementation. 2022-02-28 22:05:21 +00:00
ehci.c Reset EHCI controller after port scan if no keyboards are found. 2022-05-21 20:22:03 +01:00
ehci.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
font.c Initial commit. 2020-05-24 21:30:55 +01:00
font.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
hwctrl.c Tidy up code for performing reset via the EFI runtime sevices. 2022-04-23 13:25:33 +01:00
hwctrl.h Tidy up code for performing reset via the EFI runtime sevices. 2022-04-23 13:25:33 +01:00
hwquirks.c Add External L2 detection for ALi Aladdin V Chipset (#87) 2022-06-06 19:56:04 +02:00
hwquirks.h Add External L2 detection for ALi Aladdin V Chipset (#87) 2022-06-06 19:56:04 +02:00
io.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
jedec_id.h Enumerate all XMP 3.0 profiles on DDR5 to find the fastest. Solve a rounding issue with DDR5 timings 2022-04-22 00:49:54 +02:00
keyboard.c Add usbdebug command line option and conditionally pause at end of USB scan. 2022-04-17 22:46:17 +01:00
keyboard.h Add usbdebug command line option and conditionally pause at end of USB scan. 2022-04-17 22:46:17 +01:00
memrw32.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
memrw64.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
memsize.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
msr.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
ohci.c Detect and ignore the HID keyboard "phantom condition" (excessive roll-over). 2022-05-01 22:40:42 +01:00
ohci.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
pci.c Include unistd.h in pci.c to use usleep() 2022-05-20 13:46:29 +02:00
pci.h Add a way to handle hardware quirks at init or later in the code. Add ASUS TUSL2-C ASB100 Mux as (working) example (#77) 2022-05-20 13:23:25 +02:00
pmem.c Store pmem temporary arrays on the stack to reduce memory footprint. 2022-01-09 21:27:44 +00:00
pmem.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
reloc32.c Faster barrier implementation. 2022-02-28 22:05:21 +00:00
reloc64.c Faster barrier implementation. 2022-02-28 22:05:21 +00:00
screen.c Fix warning about mismatched comparison operands in 32-bit build. 2022-04-13 14:20:46 +01:00
screen.h Add support for Serial/TTY (#32) 2022-04-04 18:31:54 +02:00
serial.c Optimize screen & serial output handling. (#85) 2022-06-19 16:40:30 +02:00
serial.h Correct TTY to match the new temperature location on display 2022-04-16 13:31:28 +02:00
smbios.c Fix an issue where DDR4 Bank switch fail because DMI tables have multiples Type 17 structs reporting unpopulated slots as Type 2 (unknown), overwriting the valid struct with the populated slot. Code cleanup to improve readability 2022-05-20 01:59:27 +02:00
smbios.h Add support for parsing DMI struct type 1 (System Information), whose presence is mandatory, and use it as fallback for DMI struct type 2 (Baseboard Information), which often gives more useful data, but is optional. Fixes part of issue #36. (#39) 2022-04-16 13:40:50 +02:00
smbus.c Fix the operation of the SMBus functions which require the SMBus controller ID. 2022-06-08 18:00:50 +02:00
smbus.h Perform major simplification in smbus.c to reduce code size while keeping the functions readable, removing several unused strings and unnecessary arguments passed to several functions. 2022-06-06 22:24:09 +02:00
smp.c Typo on smp.c (missing ;) 2022-06-19 16:39:03 +02:00
smp.h Split ACPI Functions from SMP functions. 2022-06-19 16:39:03 +02:00
temperature.c Minor fixes on previously added temperature code 2022-03-24 21:49:56 +01:00
temperature.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
timers.c Add ACPI Timer as the primary TSC correction source and PIT Timer as fallback 2022-06-19 16:39:03 +02:00
timers.h Add ACPI Timer as the primary TSC correction source and PIT Timer as fallback 2022-06-19 16:39:03 +02:00
tsc.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
uhci.c Detect and ignore the HID keyboard "phantom condition" (excessive roll-over). 2022-05-01 22:40:42 +01:00
uhci.h Disable UHCI legacy support and make sure all UHCI registers are initialised. 2022-04-09 22:42:59 +01:00
usb.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00
usbhcd.c Mark keyboard reports passed to process_usb_keyboard_report() as const. 2022-05-01 22:43:04 +01:00
usbhcd.h Mark keyboard reports passed to process_usb_keyboard_report() as const. 2022-05-01 22:43:04 +01:00
vmem.c Add option to map_region to indicate we only use the region during startup. 2022-02-28 22:05:21 +00:00
vmem.h Rework memory mapping to allow for larger program size (#54) 2022-04-28 23:04:01 +02:00
xhci.c Detect and ignore the HID keyboard "phantom condition" (excessive roll-over). 2022-05-01 22:40:42 +01:00
xhci.h Exclude copyright notices from Doxygen file descriptions. 2022-02-19 19:56:55 +00:00