I was hoping to have a solution for multibooting the same image across different processors (Intel - Amd). You might think it's impossible and maybe it is, but I will not give up that easy.
If I may describe my theory.
Having the image set up with 2 different hardware profiles, one can enable and disable drivers and services and of course hardware to be loaded on each profile. Tracing the specific drivers for your chipset is not that hard. The registry entries for your deetcted hardware are located in the system hive under HKLM\SYSTEM\ControlSet001\Enum and some entries found under HKLM\SYSTEM\ControlSet001\Control\DeviceClasses.
A sample registry patch;
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB] "CurrentConfig"=dword:00000001 "UserWaitInterval"=dword:0000001e "IsPortable"=dword:00000000 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Alias] [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Alias\0001] "DockingState"=dword:00000000 "Capabilities"=dword:00000000 "DockID"=dword:00000000 "SerialNumber"=dword:00000000 "ProfileNumber"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Alias\0002] "DockingState"=dword:00000000 "Capabilities"=dword:00000000 "DockID"=dword:00000000 "SerialNumber"=dword:00000000 "ProfileNumber"=dword:00000002 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles] "Unknown"=dword:00000003 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles\0000] "FriendlyName"="New Hardware Profile" "PreferenceOrder"=dword:ffffffff "Pristine"=dword:00000001 "Aliasable"=dword:00000000 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles\0001] "PreferenceOrder"=dword:00000000 "FriendlyName"="Intel_x86" "Aliasable"=dword:00000000 "Cloned"=dword:00000001 "HwProfileGuid"="{1944359a-fe2d-11dc-8b6f-806d6172696f}" [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\Hardware Profiles\0002] "HwProfileGuid"="{0b5df402-d105-426e-8ba0-e8c17ea90a78}" "PreferenceOrder"=dword:00000001 "FriendlyName"="Amd_x86" "DockState"=dword:00000007 "Aliasable"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Control\IDConfigDB\CurrentDockInfo] "DockingState"=dword:00000000 "Capabilities"=dword:00000000 "DockID"=dword:00000000 "SerialNumber"=dword:00000000 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles] [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0000\Software] [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0000\System] [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ACPI\AuthenticAMD_-_x86_Family_6_Model_8\_0] "CSConfigFlags"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_AMDK7\0000] "CSConfigFlags"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_CABOAGP\0000] "CSConfigFlags"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_ATI2MTAG\0000] "CSConfigFlags"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0002\System\CurrentControlSet\Enum\ACPI\GenuineIntel_-_x86_Family_15_Model_4\_0] "CSConfigFlags"=dword:00000001 [HKEY_LOCAL_MACHINE\joakim\ControlSet001\Hardware Profiles\0002\System\CurrentControlSet\Enum\ROOT\LEGACY_INTELPPM\0000] "CSConfigFlags"=dword:00000001
My tests have been done on 2 different Intel based machine and it boot fine on them. The issue is the Amd Athlon laptop. This is a simplified patch (more chipset relevant entries for the laptop are present. Boot.ini have the /SOS added and I see the machine freeze on the last driver before amdk7.sys is supposed to be loaded.
Someone ever done this? Do we have other options?
Joakim