Here's a random idea -- what do you think of it?
ACPI already allocates some I/O ranges, which was a surprise to me:
For I/O and memory that ACPI accesses and has not reserved, the AML
interpreter could allocate at run-time.
I'm not sure how to implement exactly. For example, it would be bad to
have a /proc/ioports that had a lot of single ports allocated, for
example:
1000-107f : 0000:00:1f.0
1000-1000 : ACPI PM1a_EVT_BLK
1001-1001 : ACPI PM1a_EVT_BLK
1002-1002 : ACPI PM1a_EVT_BLK
1003-1003 : ACPI PM1a_EVT_BLK
Thus the AML interpreter would need to have some reasonable
intelligence when allocating regions. Conflict resolution would also
be more difficult, e.g. if a hwmon driver was loaded first and then
acpi as a module, ACPI could not allocate the region. Maybe run-time
allocating won't work.
And then, how would ACPI release a region after it has used it? The
easiest method would be to never release anything used even once.
Thoughts?
David
-