Commit Graph
34 Commits
Author SHA1 Message Date
martinwhitaker e6e0f0c8e7 USB improvements (#116)
* Add new heap manager.

* Convert OHCI driver to use new heap manager.

* Convert UHCI driver to use new heap manager.

* Convert EHCI driver to use new heap manager.

* Convert XHCI driver to use new heap manager.

* Convert SMP to use new heap manager.

* Add a "usbinit" boot option to handle various buggy USB devices.

This replaces the "keyboard=buggy-usb" option, and adds a second
workaround to handle the problem seen in issue #107.
2022-07-16 13:34:08 +02:00
Sam Demeulemeester a5576974cf Add ACPI Timer as the primary TSC correction source and PIT Timer as fallback 2022-06-19 16:39:03 +02:00
Sam Demeulemeester 221a66da1a Split ACPI Functions from SMP functions.
Add ACPI Table detection for FADT & HPET (as we need better timers)
2022-06-19 16:39:03 +02:00
Lionel Debroux c6ff7b1486 Inline the ctype functions, so as to reduce size. 2022-05-21 10:11:45 +02:00
Sam Demeulemeester bc8235f50d 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
Martin Whitaker d1cafa9f64 Fix grub-iso build on systems with grub2-mkimage. 2022-04-17 22:42:56 +01:00
Sam Demeulemeester a95afe88db Make ISO volume name ISO9660 compliant and allow alternative name for grub2-mkimage (ie: Debian package use grub-mkimage instead of grub2-mkimage) 2022-04-17 16:59:57 +02:00
Sam Demeulemeester 8f0437c579 Better githash.h generation on Makefile from @martinwhitaker 2022-04-16 13:31:28 +02:00
Sam Demeulemeester 5f92ff1a64 Rework first line, add build number based on git hash, move 32/64b info to build number, add githash.h to git ignore. A better implementation of Makefile is needed (check if git is present and avoid rebuild (APP)*.c if hash is the same 2022-04-16 13:31:28 +02:00
Martin Whitaker 4761b782dd Enable detection of keyboards attached to a UHCI controller. 2022-04-07 18:05:45 +01:00
Sam Demeulemeester 2e048a7c61 Add support for Serial/TTY (#32)
* Add preliminary support for TTY Serial/UART (#15)

* Use shadow_buffer instead of VGA buffer to get a framebuffer-agnostic TTY supprot

* Added menu browsing & inputs from Serial TTY (#15)

* Add fix for degree symbol on TTY. Correct serial.c & serial.h file created with CRLF (#15)

* Move tty_error_redraw() to insure correct redraw when a error occurs

* Many reindent / cleanup

* Various optimization from @martinwhitaker comments
2022-04-04 18:31:54 +02:00
Sam DEMEULEMEESTER 2266151fe6 Early SMBUS functions (#2) & EFI Reset (#17) 2022-03-24 21:49:56 +01:00
Sam DEMEULEMEESTER 63904403b2 Added preliminary BIOS/EFI SMBIOS table parsing & basic printing (#1) 2022-03-24 21:49:56 +01:00
Martin Whitaker 4078b7760e Faster barrier implementation.
The old barrier implementation was very slow when running on a multi-socket
machine (pcmemtest issue 16).

The new implementation provides two options:

  - when blocked, spin on a thread-local flag
  - when blocked, execute a HLT instruction and wait for a NMI

The first option might be faster, but we need to measure it to find out. A
new boot command line option is provided to select between the two, with a
third setting that uses a mixture of the two.
2022-02-28 22:05:21 +00:00
Martin Whitaker d04ec9f681 Rename to Memtest86+ v6.0. 2022-02-19 19:44:58 +00:00
Martin Whitaker e37fbbd429 Set stack alignment to 16 bytes.
This needs to be done in the ldscripts.
2022-02-02 18:23:23 +00:00
Martin Whitaker dcac527068 Don't make assumptions about usable memory.
When using a legacy BIOS, the memory regions used by the BIOS are well
defined. This is not the case when using a UEFI BIOS. So include the
stack area in the BSS so the loader knows how much memory to allocate,
and check we have space to relocate the program to either low or high
memory.

There are still some assumptions in the USB driver code that need to
be fixed.
2022-02-02 12:20:39 +00:00
Martin Whitaker 563c8a1ee7 Add support for EHCI USB controller. 2022-01-23 17:38:50 +00:00
Martin Whitaker 4400ec6f17 Rename usbkbd to usbhcd to better reflect the new design. 2022-01-08 23:14:50 +00:00
Martin Whitaker 8069b8724b Initial support for native USB keyboard interface.
This adds support for USB keyboards connected directly to an OHCI
or XHCI controller.
2021-12-22 17:31:06 +00:00
Martin Whitaker 00603a2b1e Workaround for VirtualBox EFI boot bug.
(issue #19910 on VirtualBox bug tracker)
2021-12-22 16:29:33 +00:00
Martin Whitaker f946a9724c Add support for GRUB test ISO in 32-bit builds. 2021-12-22 16:26:28 +00:00
Martin Whitaker af8e07136c Add grub-iso target in 64-bit make file for test purposes. 2021-09-04 13:11:42 +01:00
Martin Whitaker 2b05b47d9b Fix makefiles to rebuild ISO files if they are deleted. 2021-09-04 09:24:43 +01:00
Martin Whitaker abbee1a25f Use 'size -B' instead of 'size -G' to determine BSS size.
The -G option is a relatively recent addition, so fails on older
systems (issue #11).
2021-09-02 18:11:30 +01:00
Martin Whitaker e7d22959ea Fix linking with latest gcc.
gas now adds a .note.gnu.property section to the object files. We
need to strip it out when building the binaries.
2021-07-18 20:41:31 +01:00
Martin Whitaker 7d044ed089 Add support for USB legacy boot on hybrid ISO. 2020-07-09 15:53:44 +01:00
Martin Whitaker 9fb253b3d8 Implement EFI boot properly on ISO. 2020-07-08 11:05:47 +01:00
Martin Whitaker b6ff7f6ec9 Include BSS in init_size. 2020-07-04 10:40:34 +01:00
Martin Whitaker c505472939 Support direct 64-bit EFI boot. 2020-07-03 22:42:45 +01:00
Martin Whitaker b68afac6c0 Cosmetic changes to ldscripts. 2020-07-03 19:33:42 +01:00
Martin Whitaker a2110cb97f Add support for 64-bit EFI handover boot protocol. 2020-06-30 13:54:58 +01:00
Martin Whitaker c5a21e7ff1 Add ldscripts. 2020-05-25 14:39:03 +01:00
Martin Whitaker fbd3376668 Initial commit. 2020-05-24 21:30:55 +01:00