It looks to me that the package objects are being initialized properly already, unless I'm missing something. Please check the examples below and in the attached files. Attached is a small test case that dynamically loads an SSDT which contains a package object which in turn contains references to other objects. Main DSDT: Method (LD1) { Load (BUF1, HNDL) // SSDT is in BUF1 Store (HNDL, Debug) Return } Loaded table: External (DEV1, DeviceObj) Name (PKG1, Package() { 1,2, DEV2, DEV1, 4}) Device (DEV2) {} AcpiExec Output: - ev ld1 Evaluating \LD1 ACPI: Dynamic OEM Table Load: ACPI: SSDT 0x00000000006DEEB8 000051 (v02 Intel Load 00000001 INTL 20190509) ACPI Exec: Table Event INSTALL, [SSDT] 006DEEB8 Table [SSDT: Load ] (id 06) - 5 Objects with 1 Devices, 0 Regions, 1 Methods ACPI Exec: Table Event LOAD, [SSDT] 006DEEB8 ACPI Debug: Reference [DdbHandle] Table Index 0x3 0x7 Outstanding allocations after evaluation of \LD1 Evaluation of \LD1 returned object 006D2FE8, external buffer length 18 [Integer] = 0000000000000000 - ev pkg1 Evaluating \PKG1 Evaluation of \PKG1 returned object 006D2FE8, external buffer length 90 [Package] Contains 5 Elements: [Integer] = 0000000000000001 [Integer] = 0000000000000002 [Object Reference] = 006DDF88 Name DEV2 Device [Object Reference] = 006DD608 Name DEV1 Device [Integer] = 0000000000000004