summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/archacpi.c
AgeCommit message (Collapse)Author
2016-11-05archacpi: fix format string warning on amd64cinap_lenrek
2016-10-23pc/archacpi: don't do acpi initialization in the kernel, provide generic ↵cinap_lenrek
acpimem routines get rid of _INI and _REG method calls, this is not full acpi environment anyway and all we really want todo at kernel boot time is figuring out the interrupt routing. aux/acpi can try to enable more stuff if it needs to later when battery status desired. dont snoop memory space regions in amlmapio(), this is just wrong as amlmapio() is *lazily* mapping regions as they are accessed, so the range table would never be really complete. instead, we provide generic access to the physical address space, excluding kernel and user memory with acpimem file.
2016-10-18archacpi: optionally export acpi memory regions; properly initialize environmentftrvxmtrx
2016-06-30acpi: _ADR and _BBN might be methods, so use amleval() to evaluate the valuecinap_lenrek
2016-06-05aml: define amlintmask and set it according to DSDT revision (64bit / 32bit)cinap_lenrek
2014-12-19pc, pc64: untangle acpireset() from mpshutdown()cinap_lenrek
mpshutdown() used to call acpireset() making it impossible to build a kernel without archacpi. now, mpshutdown() is a helper function that only shuts down the application processors that gets used from mpreset() and acpireset(). the generic machine reset code in exported by devarch's archreset() function that is called by mpreset() and from acpireset() as a fallback. so the code duplication that was in mpshutdown() is avoided.
2014-11-10pc, pc64: provide access to embedded controller with #P/ec filecinap_lenrek
2014-11-04acpi: fix pcibusno() when PCI0._ADR = 0cinap_lenrek
libaml comresses zero integer as nil, so remove the nil check. this makes interrupts work in vmware with efi.
2014-11-02pc, pc64: implement acpi reset (for efi)cinap_lenrek
x230 booted in efi only (no csp) mode hangs when traditional i8042reset() keyboard reset is tried. so we try acpireset() first which discoveres and writes the acpi reset register.
2014-10-18pc, pc64: allow passing RSDT pointer in *acpi= boot parameter, early ↵cinap_lenrek
bootscreeninit(), fix rampage() usage rampage() cannot be used after meminit(), so test for conf.mem[0].npage != 0 and use xalloc()/mallocalign() instead. this allows us to use vmap() early before mmuinit() which is needed for bootscreeninit() and acpi. to get memory for page tables, pc64 needs a lowraminit(). with EFI, the RSDT pointer is passed in *acpi= parameter from the efi loader. as the RSDT is ususally at the end of the physical address space (and not to be found in bios areas), we cannot KMAP() it so we need to vmap().
2014-04-08process acpi interrupt source override entries in a 2nd pass over the madt ↵cinap_lenrek
(APIC) table (thanks erik) according to erik, virtualbox puts the source overrides before the ioapic entries so the addirq() call fails as no ioapics have been declared yet. use a second pass over the table after we processed the apic entries.
2014-02-01pc kernel: split mpstartap() and squidboy into separate file... stuff for amd64cinap_lenrek
2013-09-08archacpi: make pcibusno() work on non pci bridges (fixes pciaddr()), ↵cinap_lenrek
distribute irqs in setuplink(), remove debug prints
2013-09-07archacpi: implement amldelay(), remove unused variable in setuplink()cinap_lenrek
2013-09-06archacpi: experimental handling of interrupt link devices, io accesscinap_lenrek
2013-07-07acpi: skip disabled LAPIC entriescinap_lenrek
disabled LAPIC entries overwrote the bootstrap processor apic causing the machine panic with: "no bootstrap processor". (problem with lenovo X230) just ignore entries that are disabled or collide with entries already found. (should not happen)
2013-06-25reintroduce *notsc= optioncinap_lenrek
the issues with the previous tsc change where not related to the tsc but where problems with timesync using an old frequency file. a patch to fix timesync was commited, so so we reintroduce the *notsc= again.
2013-06-21reverting guesscpuhz() changes, causes troublecinap_lenrek
2013-06-20disable tscticks in pc kernel (for now)cinap_lenrek
doesnt seem to be reliable. also, separate tsc frequency measurement and cpu loopconst measurement. turned out with *notsc=, the simplcycles() calls would mess up loopconst.
2013-06-19acpi: use Tblsz enum instead of sizeof(Tbl) due to alignment, enable use tsc ↵cinap_lenrek
on terminal kernel (thank erik)
2013-06-07archacpi: handle multiple SSDT tablescinap_lenrek
we cannot assume theres only one instance of an acpi table. some bios have multiple SSDT tables and we would only find the first one. now, we keep a second array to record the physical address of the table visited by maptable(). load all instances to the SSDT.
2013-01-29acpi: remove "cannot get pci bus number for ..." debug printscinap_lenrek
on almost all machines, we get tons of these prints for pci busses that are not physically there but are described in the ACPI namespace. the reason that we enumerate these is because we do not enumerate _INI and _STA methods to check if they are present. we just match the information with the PCI devices we enumerated with our generic pci code. this works fine and doesnt require aml code to poke arround in pci config space.
2012-08-24add unified sigsearch() function to look for bios data structurescinap_lenrek
replace the various functions that searched for bios data structures by a single sigsearch() one in pc/memory.c that will probe the various bios data areas. also, a new checksum() function was added that is to be used to validate the structures found.
2012-06-19acpi: work arround missing _BBN, check _HIDcinap_lenrek
2012-06-17archacpi: boot processor commentcinap_lenrek
2012-06-17fix ioapic mre off by onecinap_lenrek
2012-06-17experimental acpi support for apic irq routingcinap_lenrek