[Bug 262638] overly strict check of hpet region size

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 18 Mar 2022 16:54:41 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=262638

Mark Johnston <markj@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |Open
                 CC|                            |markj@FreeBSD.org

--- Comment #3 from Mark Johnston <markj@FreeBSD.org> ---
The value of 1024 comes directly from the Intel specification, see section 2.1:
https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf

Some AMD documentation for 16h processors suggests that only three timers are
available, and the MMIO space for HPET registers is indeed only 512 bytes in
size:
https://www.amd.com/system/files/TechDocs/52740_16h_Models_30h-3Fh_BKDG.pdf

Changing the value of HPET_MEM_WIDTH doesn't seem like the right solution:
hpet_identify() uses that constant to initialize the memory resource for the
hpet driver if it can't get the resource size from acpi.  We could instead
modify the check in hpet_attach() to first verify that the resource is large
enough to read the capabilities register, then check it again once we have the
number of timers.

-- 
You are receiving this mail because:
You are the assignee for the bug.