History log of /src/sys/dev/acpi/acpi_resource.c |
Revision | | Date | Author | Comments |
1.44 |
| 02-Jan-2025 |
andvar | acpi(4): validate IO/FixedIO resource base address and length.
Ensure that the base address and length of an IO/FixedIO resource reported by ACPI do not exceed a 16-bit value plus one (to account for the length). If an ACPI resource reports a base address of 0xFFFF, it likely indicates that the device is inoperable or invalid for some reason.
This can cause a kernel with DIAGNOSTIC enabled to panic with the error: extent_alloc_region: region lies outside extent, even on an otherwise fully functional system.
In my case, the mpu(4) driver reported a 0xFFFF base address, likely due to a missing MIDI port or the absence of an actual MIDI UART device, despite the device being defined as an ACPI resource.
Since this issue affects only DIAGNOSTIC enabled kernels and appears to be rare (likely caused by a buggy BIOS), I believe that pullups are unnecessary.
lgtm jmcneill
|
1.43 |
| 30-Jun-2024 |
jmcneill | acpi: Ignore producer/consumer bit for fixed memory resources.
The requirement to honour the producer/consumer bit in fixed memory resource descriptors was dropped at some point in a revision to the ACPI 2.0 specification because too many firmware implementations got it wrong.
|
1.42 |
| 07-Aug-2021 |
jmcneill | branches: 1.42.6; 1.42.12; acpi: Add acpi_resource_parse_any().
Like acpi_resource_parse(), but doesn't exclude "produced" resources.
|
1.41 |
| 31-Dec-2019 |
jmcneill | Rely on 32/64-bit overflow to calculate translation offsets. Store this as a separate ar_xbase field in acpi_mem instead of having separate ar_offset and ar_decode fields.
|
1.40 |
| 31-Dec-2019 |
jmcneill | Include device decoding type in acpi_mem resources
|
1.39 |
| 31-Dec-2019 |
jmcneill | Fetch bus_dma tags when acpi devnodes are created. They do not change and this allows MD code to create more complex tags without being concerned with the tag being destroyed later. While here, capture translations offsets for address32/address64 resources.
|
1.38 |
| 25-Oct-2018 |
jmcneill | Add support for 64-bit memory resources.
|
1.37 |
| 27-Jul-2015 |
msaitoh | branches: 1.37.16; 1.37.18; Add ACPI_RESOURCE_TYPE_END_TAG and ACPI_RESOURCE_TYPE_ADDRESS64.
|
1.36 |
| 13-Apr-2015 |
christos | sync with new acpica struct shuffling.
|
1.35 |
| 30-Jun-2011 |
wiz | branches: 1.35.12; 1.35.30; dependant -> dependent
|
1.34 |
| 15-Jun-2011 |
jruoho | Do not entirely bypass the printfs during resource parsing, as many drivers rely on those for their autoconf(9) messages. Instead add a "quiet" option.
|
1.33 |
| 15-Jun-2011 |
jruoho | Remove printouts that mess with the autoconf(9).
|
1.32 |
| 05-Mar-2010 |
jruoho | branches: 1.32.8; Remove <dev/acpi/acpica.h> from all files. It is included from <dev/acpi/acpivar.h>. Ditto for <dev/sysmon/sysmonvar.h>, <sys/bus.h>, <dev/pci/pcivar.h>, and <dev/isa/isavar.h>.
Also nuke a lot of unused and invalid headers. Some of these are audibly provided by standard headers (namely <sys/param.h> and <sys/device.h>), some have nothing to do with ACPI devices (e.g. <sys/syslog.h>), and some are nonexistent local includes (e.g. "mpu_ym.h"). Moreoever, try to group the includes into their respective blocks.
Tested with GENERIC and ALL (i386). No functional change.
|
1.31 |
| 02-Mar-2010 |
jruoho | Format string cosmetics (mainly from %d to %u).
|
1.30 |
| 16-Sep-2009 |
mlelstv | branches: 1.30.2; Allow for 'options ACPI_DEBUG' by providing module declarations and using memory allocation macros instead of calling AcpiOs* stubs directly.
|
1.29 |
| 13-Jul-2009 |
kiyohara | ACPI resource supports Extended IRQ From FreeBSD.
|
1.28 |
| 12-May-2009 |
cegger | struct device * -> device_t, no functional changes intended.
|
1.27 |
| 17-Feb-2009 |
jmcneill | Cut the amount of spam from acpi devices in roughly half by printing resources on the same line as autoconf messages. Things like: pcppi1 at acpi0 (SPKR, PNP0800) pcppi1: io 0x61 become: pcppi1 at acpi0 (SPKR, PNP0800): io 0x61
|
1.26 |
| 07-Apr-2008 |
jmcneill | branches: 1.26.4; 1.26.12; 1.26.14; 1.26.18; 1.26.22; Cosmetic aprintification fix, as noted by Thomas Klausner on current-users
|
1.25 |
| 05-Apr-2008 |
cegger | use aprint_*_dev and device_xname
|
1.24 |
| 15-Dec-2007 |
perry | branches: 1.24.6; __FUNCTION__ -> __func__
|
1.23 |
| 01-Dec-2007 |
jmcneill | branches: 1.23.2; 1.23.6; aprintify
|
1.22 |
| 28-Sep-2007 |
njoly | branches: 1.22.4; Add ACPI address32 resource type support (DWord Address Space Descriptor), for fixed size io and mem.
Fix hpet@acpi attachement on Dell Poweredge 860. Tested by Wouter Schoot, thanks.
While here: - Update some indentation - Correct function check - Add missing break - Update wrong debug message
Reviewed by cube.
|
1.21 |
| 16-Nov-2006 |
christos | branches: 1.21.8; 1.21.22; 1.21.24; 1.21.26; __unused removal on arguments; approved by core.
|
1.20 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.19 |
| 29-Jan-2006 |
kochi | branches: 1.19.18; 1.19.20; adapt for ACPI-CA 20060113
|
1.18 |
| 11-Dec-2005 |
christos | branches: 1.18.2; merge ktrace-lwp.
|
1.17 |
| 29-May-2005 |
christos | branches: 1.17.2; Sprinkle const freely and delete unnecessary casts.
|
1.16 |
| 27-Feb-2005 |
perry | nuke trailing whitespace
|
1.15 |
| 12-Apr-2004 |
kochi | branches: 1.15.4; 1.15.6; fix compilation when ACPI_DEBUG is not set. pointed out by Sverre Froyen.
|
1.14 |
| 11-Apr-2004 |
kochi | Clean up memory allocated during autoconfiguration
|
1.13 |
| 11-Apr-2004 |
kochi | + add prototype + designated initializers + call callback functions only when defined
|
1.12 |
| 11-Apr-2004 |
kochi | change acpi_resource_parse API to support _PRS parsing as well as _CRS
|
1.11 |
| 11-Apr-2004 |
kochi | return (x) -> return x use consitent variable name for ACPI_STATUS
|
1.10 |
| 10-Apr-2004 |
kochi | whitespace nit
|
1.9 |
| 03-Nov-2003 |
mycroft | More cleanup: * Use ACPI_FAILURE() and ACPI_SUCCESS(). * Output exception strings in a few more places.
|
1.8 |
| 03-Nov-2003 |
mycroft | Clean up some messages: * Use AcpiFormatException() in a bunch of places. * acpi_resource_parse() already prints an error, so don't do it in the callers.
|
1.7 |
| 02-Nov-2003 |
jdolecek | acpi_res_parse_ioport(): if the added entry is next to a previous I/O port entry, just expand the previous entry instead of adding separate mapping
apparently some BIOSes make separate I/O port entries like this, and some drivers then fail to attach; this change fixes mappings like
fdc0: io 0x3f2-0x3f3,0x3f4-0x3f5,0x3f7 irq 6 drq 2
to
fdc0: io 0x3f2-0x3f5,0x3f7 irq 6 drq 2
change tested by Bernd Ernesti
|
1.6 |
| 05-Mar-2003 |
christos | branches: 1.6.2; use M_ACPI where appropriate.
|
1.5 |
| 28-Dec-2002 |
matt | Make sure we record the type of irq as well as its number.
|
1.4 |
| 15-Jun-2002 |
thorpej | Update for acpica-unix-20020612. From Takayoshi Kochi.
|
1.3 |
| 01-Jun-2002 |
lukem | SIMPLEQ rototill: - implement SIMPLEQ_REMOVE(head, elm, type, field). whilst it's O(n), this mirrors the functionality of SLIST_REMOVE() (the other singly-linked list type) and FreeBSD's STAILQ_REMOVE() - remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD(). this mirrors the functionality of SLIST_REMOVE_HEAD() (the other singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD() - remove notes about SIMPLEQ not supporting arbitrary element removal - use SIMPLEQ_FOREACH() instead of home-grown for loops - use SIMPLEQ_EMPTY() appropriately - use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly - reorder manual page; be consistent about how the types are listed - other minor cleanups
|
1.2 |
| 13-Nov-2001 |
lukem | branches: 1.2.2; 1.2.10; add RCSID
|
1.1 |
| 29-Sep-2001 |
thorpej | branches: 1.1.2; 1.1.4; Add code to parse ACPI bus resources.
|
1.1.4.5 |
| 29-Dec-2002 |
thorpej | Sync with HEAD.
|
1.1.4.4 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.1.4.3 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.1.4.2 |
| 08-Oct-2001 |
nathanw | Catch up to -current.
|
1.1.4.1 |
| 29-Sep-2001 |
nathanw | file acpi_resource.c was added on branch nathanw_sa on 2001-10-08 21:18:06 +0000
|
1.1.2.2 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.1.2.1 |
| 29-Sep-2001 |
fvdl | file acpi_resource.c was added on branch thorpej-devvp on 2001-10-01 12:44:16 +0000
|
1.2.10.1 |
| 20-Jun-2002 |
gehenna | catch up with -current.
|
1.2.2.3 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.2.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.2.2.1 |
| 13-Nov-2001 |
thorpej | file acpi_resource.c was added on branch kqueue on 2002-01-10 19:52:53 +0000
|
1.6.2.5 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.6.2.4 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.6.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.6.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.6.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.15.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.15.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.17.2.5 |
| 21-Jan-2008 |
yamt | sync with head
|
1.17.2.4 |
| 07-Dec-2007 |
yamt | sync with head
|
1.17.2.3 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.17.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.17.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.18.2.1 |
| 01-Feb-2006 |
yamt | sync with head.
|
1.19.20.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.19.20.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.19.18.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.21.26.1 |
| 06-Oct-2007 |
yamt | sync with head.
|
1.21.24.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.21.24.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.21.22.2 |
| 01-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.21.22.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.21.8.1 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.22.4.2 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.22.4.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.23.6.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.23.2.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.24.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.26.22.1 |
| 21-Apr-2010 |
matt | sync to netbsd-5
|
1.26.18.2 |
| 23-Jul-2009 |
jym | Sync with HEAD.
|
1.26.18.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.26.14.1 |
| 01-May-2009 |
snj | Pull up following revision(s) (requested by jmcneill in ticket #498): sys/dev/acpi/acpi_ec.c: revision 1.53 sys/dev/acpi/acpi_resource.c: revision 1.27 sys/dev/acpi/atppc_acpi.c: revision 1.16 sys/dev/acpi/attimer_acpi.c: revision 1.12 sys/dev/acpi/com_acpi.c: revision 1.28 sys/dev/acpi/fdc_acpi.c: revision 1.35 sys/dev/acpi/hpet_acpi.c: revision 1.4 sys/dev/acpi/joy_acpi.c: revision 1.9 sys/dev/acpi/lpt_acpi.c: revision 1.18 sys/dev/acpi/mpu_acpi.c: revision 1.9 sys/dev/acpi/pckbc_acpi.c: revision 1.31 sys/dev/acpi/pcppi_acpi.c: revision 1.11 sys/dev/acpi/ug_acpi.c: revision 1.5 sys/dev/acpi/wss_acpi.c: revision 1.20 sys/dev/acpi/ym_acpi.c: revision 1.6 Cut the amount of spam from acpi devices in roughly half by printing resources on the same line as autoconf messages. Things like: pcppi1 at acpi0 (SPKR, PNP0800) pcppi1: io 0x61 become: pcppi1 at acpi0 (SPKR, PNP0800): io 0x61
|
1.26.12.1 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.26.4.4 |
| 11-Mar-2010 |
yamt | sync with head
|
1.26.4.3 |
| 18-Jul-2009 |
yamt | sync with head.
|
1.26.4.2 |
| 16-May-2009 |
yamt | sync with head
|
1.26.4.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.30.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.32.8.1 |
| 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.35.30.2 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.35.30.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.35.12.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.37.18.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.37.18.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.37.16.1 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.42.12.1 |
| 01-Jul-2024 |
perseant | Sync with HEAD.
|
1.42.6.1 |
| 03-Jul-2024 |
martin | Pull up following revision(s) (requested by jmcneill in ticket #735):
sys/dev/pci/pci_resource.c: revision 1.5 sys/arch/arm/pci/pci_msi_machdep.c: revision 1.10 sys/arch/aarch64/include/vmparam.h: revision 1.21 sys/dev/acpi/acpi_resource.c: revision 1.43
pci_resource: Make unexpected bus numbers in bridges non-fatal.
Firmware bugs happen. Log a warning and continue instead of panicing. acpi: Ignore producer/consumer bit for fixed memory resources.
The requirement to honour the producer/consumer bit in fixed memory resource descriptors was dropped at some point in a revision to the ACPI 2.0 specification because too many firmware implementations got it wrong.
aarch64: Bump VM_PHYSSEG_MAX to match DRAM_BANKS / FDT_MEMORY_RANGES.
On aarch64 there is a single free list, so VM_PHYSSEG_MAX needs to be the same as FDT_MEMORY_RANGES (which needs to be the same as DRAM_BANKS).
Future cleanup should be done to fold these into a single define.
arm: pci: Fix ITS ID lookup for MSIs. pci_get_frameid expects a BDF requestor ID as input, not a Device ID.
Fixes MSI/MSI-X support on Ampere Altra systems.
|