Another question.
Were we to follow the device object model, isn't it more proper to add a new device_operations struct member to devices to generate ACPI? Then we add another pass to the device code which walks the tree and each device can optionally create ACPI as it needs to. The first object is the mainboard, and this could do all the initial setup for the AML code generation.
If we had this I think the weak symbol would not be needed. This would drop very nicely in to v3: I would add a phase7_acpi struct member to device_operations.
ron