Martin Whitaker
807c4153c1
Add tracing for AP startup.
...
Also comment out tracing of memory window starts to reduce verbosity.
2022-02-13 20:25:58 +00:00
Martin Whitaker
16b066c3e3
Exit config menu immediately when "skip test" is selected.
2022-02-13 12:38:38 +00:00
Martin Whitaker
efc9a9c16a
Don't attempt to start the APs when restarting after a config change.
...
Leave the APs running whilst the BSP repeats the dummy runs. This means
we need to bypass the barriers during a dummy run. The APs will wait at
the first barrier until the BSP starts the first real run.
2022-02-12 19:37:58 +00:00
Martin Whitaker
2bf1623733
Halt CPU cores that are not active in a test.
...
This saves a lot of power when performing sequential tests.
2022-02-12 19:30:14 +00:00
Martin Whitaker
39d5715224
Fix interrupt handling when long mode is enabled in a 32-bit binary (part 2).
...
Handle passing the processor state to the application interrupt handler.
Update the 64-bit code to match the new trap state structure definition.
2022-02-12 09:39:09 +00:00
Martin Whitaker
93343db711
Remove redundant barrier.
2022-02-07 18:50:22 +00:00
Martin Whitaker
3028cd31f9
Increase sleep time when polling for all other APs started.
...
Also fix warning about usleep not being defined.
2022-02-05 18:07:03 +00:00
Martin Whitaker
242bd77927
Remove unwanted debug code.
2022-02-05 18:04:38 +00:00
Martin Whitaker
503aea321d
Remove redundant start_mutex.
...
The mutex is now implemented in the assembly language boot code.
2022-02-05 18:03:32 +00:00
Martin Whitaker
13efd906f1
Guard against an AP starting more than once.
2022-02-03 19:48:27 +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
fb0f1a7fe5
Don't start APs until after dummy runs have finished.
...
This should significantly improve startup time on machines with many
cores, as the barriers become no-ops during the dummy runs.
2022-02-01 23:50:49 +00:00
Martin Whitaker
ccab9ab081
Fix operation with a subset of CPU cores enabled.
...
The last commit removed too much - there are a couple of places where
we need to use a virtual CPU number rather than a physical CPU number.
2022-02-01 15:38:06 +00:00
Martin Whitaker
16d55b7dad
Remove distinction between physical and virtual CPUs.
...
This is no longer needed, now we can display as many CPUs as we can
physically handle.
2022-01-31 22:59:14 +00:00
Martin Whitaker
4100a44b12
Properly protect the startup stack with a mutex.
...
Because we start the APs sequentially, it is unlikely they will coincide
for the brief period that they use the temporary startup stack, but we
should guard against it. This allows us to remove the mutex around the
restart of each AP when relocating, which should improve test times.
2022-01-31 21:54:24 +00:00
Martin Whitaker
17093a96f9
Optimise the AP startup code to reduce the startup delay.
2022-01-31 19:47:32 +00:00
Martin Whitaker
7c3e7d536c
Allow cursor keys to be used in CPU mode and error mode config menus.
2022-01-30 15:47:17 +00:00
Martin Whitaker
e13b8bbb83
Increase config pop-up window width.
...
Also add more constant definitions to better parameterise the layout.
2022-01-30 15:37:13 +00:00
Martin Whitaker
151870cc0b
Display enabled CPUs as a scrollable list in the config menu.
...
This removes a constraint on the number of CPU cores we can support.
2022-01-30 15:12:04 +00:00
Martin Whitaker
ab278566e4
Bypass start barriers during dummy runs.
...
This should speed up the dummy runs on distributed SMP systems.
2022-01-29 17:11:46 +00:00
Martin Whitaker
ed02a3baef
Support display of more than 32 CPU cores in the config menu.
2022-01-29 16:00:33 +00:00
Martin Whitaker
73bfc1878a
Blank the full field when displaying the active CPU core.
2022-01-29 15:06:21 +00:00
Martin Whitaker
f04cb1adb6
Make spinner rotate at a constant speed.
2022-01-29 15:06:21 +00:00
Martin Whitaker
3c69cd07b7
Guard against missing TSC and divide by zero in elapsed time calculations.
2022-01-29 15:06:21 +00:00
Martin Whitaker
09890bf0cd
Support more than 32 CPU cores in main display.
...
Either one core is active or all enabled cores are active, so we don't
really need a separate spinner for each core.
2022-01-29 15:06:05 +00:00
Martin Whitaker
4791206bbd
Use consistent CPU sequencing mode abbreviations in config menu.
2022-01-28 21:57:39 +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
ea28112e08
Update the version number to show this is a development version.
2021-12-23 19:14:03 +00:00
Martin Whitaker
733919966d
Add support for boot command line options.
2021-12-23 14:08:02 +00:00
Martin Whitaker
ad6c7d0455
Use F10 (or '0'), not ESC to exit menus.
...
This avoids accidentally rebooting by pressing the key too many times.
2021-12-23 11:11:42 +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
8f1d81b65d
Add missing includes of stdbool.h.
...
To ensure we aren't dependent on the order of inclusion.
2021-12-05 13:50:25 +00:00
Martin Whitaker
21e7c6fb49
Update version to 1.5.
2021-10-16 10:39:03 +01:00
Martin Whitaker
33230c511d
Allow F10 to be used as an alternative to ESC (issue #5 ).
2021-10-16 10:35:58 +01:00
Martin Whitaker
a4bbabeeb4
Fix badram error display (issue #7 )
2021-07-18 19:26:23 +01:00
Martin Whitaker
6a0c7943d9
Update version to 1.4.
2020-12-12 10:21:22 +00:00
Martin Whitaker
ec676ccab2
Add debug trace for ACPI RSDP search results.
2020-12-11 16:18:45 +00:00
Martin Whitaker
8ad806bfcf
Don't clear message area at start of run if trace enabled.
2020-12-11 16:18:39 +00:00
Martin Whitaker
27c5fe363f
Add startup option to enable/disable SMP.
2020-12-10 13:51:39 +00:00
Martin Whitaker
31a586a9d9
Update version to 1.3.
2020-11-05 19:25:49 +00:00
Martin Whitaker
610cad7c36
Update version to 1.2.
2020-07-09 17:27:48 +01:00
Martin Whitaker
955886b48e
Update version to 1.1.
2020-05-30 11:18:53 +01:00
Martin Whitaker
452891db34
Remove now unnecessary remap before restart.
2020-05-30 11:06:15 +01:00
Martin Whitaker
808cd46582
Enable entry of address limits greater than 4GB on 32-bit build.
2020-05-29 20:42:26 +01:00
Martin Whitaker
e5fc5a0ed6
Fix infinite loops when testing restricted address ranges.
2020-05-29 20:04:11 +01:00
Martin Whitaker
fbd3376668
Initial commit.
2020-05-24 21:30:55 +01:00