1
0
mirror of https://github.com/deadw00d/AROS.git synced 2025-12-08 06:20:50 +00:00
Commit Graph

888 Commits

Author SHA1 Message Date
f9da757e6b adjust to match the declaration 2025-08-14 07:30:09 +02:00
f07b245b5e fix build with gcc 15 2025-08-14 07:30:09 +02:00
87b188957a pull in the grub2 version to use 2025-08-14 07:30:09 +02:00
ae31cdb478 fix build with gcc15 2025-08-14 07:30:09 +02:00
3941f7595a update ACPICA to version 20250404 2025-08-14 07:30:09 +02:00
b1f4d259f5 Add temporary host for older acpica version 2025-03-25 16:20:00 +01:00
e3851cc8fb Enable APIC on BSP on i386
As WARM reboot disables APIC, it needs to be re-enabled otherwise no
interrupts are coming after WARM reboot.
2025-03-17 19:02:19 +01:00
a421467a68 Revert blacklisting of Latitude D520
Problem was related to wrong configuration of SCI interrupt and was solved
by c887f93cec
2025-03-13 10:26:40 +01:00
d3ca8f54ed When creating a new node, assign device irq and GSI values.
Otherwise all new nodes get assigned to IRQ#0. Note: it may not be correct
to set GSI to the same value as IRQ by default. Testing on number of board
did not show any issues though.
2025-03-13 10:20:34 +01:00
c887f93cec For interrupts 0-15 'Interrupt Source Override' needs to be used in IO-APIC
Problem visible on Gigabyte GA-H55M-S2H where _CRS has different
polarity/trigger setting than MADT. This resulted in interrupt being
configured as LOW/LEVEL while BIOS was expecting HIGH/LEVEL (from MADT)
and interrupt was kept being raised all the time.
2025-03-13 09:48:43 +01:00
0bff6741e3 Add check for blacklisted hardware and automatically disable ACPI
Check uses SMBIOS tables, reading product name from System information
table (type 0x1).

Note: SMBIOS possibly could become a separate .resource in future.
2025-03-02 20:36:50 +01:00
6747ce9303 Add debug code for checking of XMM registers are preserved.
Code uses pseudo-stack of 8 frames to save XMM registers and support
nested exceptions.
2025-02-05 18:26:50 +01:00
421ef96cfc Remove XMM/YMM storage area from PlatformData
This implementation is not supporting nested exceptions.
2025-02-05 18:10:19 +01:00
16d9be5a5e Preserve first 4 XMM registers in interrupt handling code.
Interrupt handlers and soft interrupt code is required to preserve the
remaining XMM registers 5-15. This is a balance between saving all
registers vs saving none and requiring all code to be strictly controlled.

This allows to use limited optimizations in interrupt handling code -
for example CopyMem uses these four SSE registers for faster operations.
Also some vectorization code can use SSE, but it's needs to be strictly
controlled. To guarantee no SSE registers are being used,
add -general-regs-only when compiling code.
2025-02-05 18:07:58 +01:00
17f6ca031d Use GPRs only for kernel of x86_64
Doing this guarantees that kernel code does not modify values of SSE/AVX
registers when executing interrupt handler code. SSE/AVX are not part
of of register frame saved when entering interrupt handler code.

Note: generic interrupt handler code will call into specific driver
interrupt handlers (or software interrupt code executed via Cause). This
code can also be writing to SSE/AVX registers and damaging them. This
case is not handled in this commit.
2025-02-04 18:12:23 +01:00
496a97c3c4 Check for PState MSRs before accessing them
Fixes crash on boot in QEMU with -cpu phenom
2025-02-03 15:38:53 +01:00
d1ee6f0734 Move comment to where actual code is placed. 2025-01-25 17:26:19 +01:00
0e23834618 AROS_USE_OOP has not been used since 2001. 2025-01-17 18:10:29 +01:00
ed6b85e43f Handle special case when "fake" spurious exception happens 2024-12-29 12:11:55 +01:00
40112cfe7b Avoid infinite crash loop if interrupt comes at time of first Enable()
This can happen if a device driver didn't provide reset handler and device
keeps on raising interrupts.

"System Shutdown" reset handler is installed now in PREINITLIB (before
first Enable()) and ShutdownA has a simplified added for emergency
situations. Code in Exec_ExtAlert already detects and issues emergency
shutdown.
2024-12-27 13:29:29 +01:00
0f71a79a5a Remove patch for obsolete version of grub 2024-12-13 06:46:22 +01:00
6d4ea1dd43 sync with protos 2024-05-02 17:42:58 +02:00
d223aeb2ff move grub back under /boot and not the aros arch dir. 2024-05-02 17:42:58 +02:00
2b63f30f6b split AROS_DIR_ARCH so that it only defines the actual arch, and use a separate variable to reflect the path under boot/. use AROS_DIR_BOOTARCH in existing places. 2024-05-02 17:39:39 +02:00
fc357b191b use AROSARCHDIR 2024-05-02 17:38:23 +02:00
c69f86278c move the pc-i386 dependency to the correct mmakefile.src 2024-05-02 16:24:51 +02:00
66d076b347 # adapt arch specific kernel/exec code to use the new macros from mmake, when generating and consuming the necessary include directives for the build.cfg.in # remove the hard coded exec/kernel private header directives from the config files. # detect if the at symbol can be used instead of the hash symbol to silence section attrib warnings. # provide a correct cpu context for the riscv build, and various other definitions needed. # implement enough boilerplate code to at least get make && make distfiles to complete for the riscv target for now. 2024-05-02 16:24:50 +02:00
0cc426ccbb make sure KernelBase is valid 2024-05-02 12:28:05 +02:00
6f8b1d5653 # Mark when the kernel is running exceptions handlers. # Cache the last state, and last run handler, in case a crash occurs inside the handlers. # Provide an x86 fmtalertinfo override - check if the crash occurred inside an interrupt handler and display relevant info. 2024-05-02 12:28:05 +02:00
e2f9a76f96 Build after recent changes 2024-04-23 18:23:48 +02:00
ee3c20f562 Fix URL for acpica 2024-04-23 18:18:12 +02:00
7408ab5538 Prevent auto opening of acpica.library
Auto opening will fail boot with 'noacpi' boot option
2024-04-23 18:12:24 +02:00
d4bd118dda use AcpiEnterSleepState to enter the S5 state. fallback to X86_HandleSysHaltSC if it fails. 2024-04-23 18:08:58 +02:00
5cae0e4f38 call X86_HandleSysHaltSC from X86_HandleChangePMStateSC 2024-04-23 18:08:58 +02:00
550f21cde2 use a syscall to halt the system, so that it can issue halts to additional cores on smp systems. 2024-04-23 18:08:58 +02:00
900950b844 # slight tidy of the main base to prevent confusion. # disable the specific missing devices from acpi. 2024-04-23 18:08:58 +02:00
cac0d0b33d if acpi is available, check for the ps/2 devices and only add them if present. 2024-04-23 18:06:17 +02:00
afb6b6c3f7 correct behaviour for additional cores 2024-04-23 18:06:17 +02:00
cabdb5a76e update to reflect acpica changes 2024-04-23 18:04:20 +02:00
bcb0e7b3da adjusted to acpica changes 2024-04-23 18:04:20 +02:00
11900b6791 update acpica to v20230331 2024-04-23 18:04:19 +02:00
4064d20073 update grub2 to v2.06 2024-04-23 16:45:22 +02:00
1c5cf6d753 Update catalogs from AROS Translation Team 2024-01-28 07:58:41 +01:00
feba347cf4 Synchronize how bootstrap is built between i386 and x86_64
Name change to stdc32.static is needed to make sure stdc.static from
main AROS output is not used on 32-bit.
2023-12-14 13:41:12 +01:00
6363033906 Fix updated url 2023-07-16 12:37:24 +02:00
bb27797c0e Update URL for acpica 2023-07-16 12:07:29 +02:00
4df92add16 # Only remove none running tasks on non-smp build (TS_REMOVED is the current task finalising).
# Remove erroneous parameter in debug output.
2023-04-23 14:27:29 +02:00
87ac3d1939 Refactor APIC heartbeat shutdown so that it does not generate a spurious interrupt. silence debug. 2023-04-15 09:16:10 +02:00
715475a3ef oops - add the missing closing brackets 2023-04-13 14:31:09 +02:00
4131ef2e5b pass the IOAPIC's GSi rather than instance for a number of reasons -:
# The instance doesnt guarantee the order in which the IRQs are handled by the IOAPIC's - just the order they are listed in the ACPI tables.
# Older obscure devices may not start with the first ISA IRQ, but leave the PIC handling some. Instead check if the base, and base+pin are within the ISA range and apply the adjustments if necessary.
2023-04-13 14:30:46 +02:00