Index: /trunk/src/VBox/Devices/Audio/DevCodec.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevCodec.cpp	(revision 33809)
+++ /trunk/src/VBox/Devices/Audio/DevCodec.cpp	(revision 33810)
@@ -318,4 +318,11 @@
 #define CODEC_DEFAULT_CONF_SEQ_SHIFT                 (0)
 
+/* Implementation identification (7.3.3.30) */
+#define CODEC_MAKE_F20(bmid, bsku, aid)     \
+    (  (((bmid) & 0xFFFF) << 16)            \
+     | (((bsku) & 0xFF) << 8)               \
+     | (((aid) & 0xFF))                     \
+    )
+
 /* macro definition helping in filling the configuration registers. */
 #define CODEC_MAKE_U32_DEFAULT_CONF(port_connectivity, location, device, connection_type, color, misc, association, sequence)    \
@@ -352,4 +359,6 @@
     pState->u16VendorId = 0x8384;
     pState->u16DeviceId = 0x7680;
+    pState->u8BSKU = 0x76;
+    pState->u8AssemblyId = 0x80;
     pState->pNodes = (PCODECNODE)RTMemAllocZ(sizeof(CODECNODE) * pState->cTotalNodes);
     pState->fInReset = false;
@@ -401,5 +410,4 @@
             pNode->node.au32F00_param[0xF] = CODEC_F00_0F_D3|CODEC_F00_0F_D2|CODEC_F00_0F_D1|CODEC_F00_0F_D0;
             pNode->afg.u32F05_param = CODEC_MAKE_F05(0, 0, 0, CODEC_F05_D2, CODEC_F05_D2);//0x2 << 4| 0x2; /* PS-Act: D3, PS->Set D3  */
-            pNode->afg.u32F20_param = pState->u16VendorId << 16 | pState->u16DeviceId;
             pNode->afg.u32F08_param = 0;
             pNode->afg.u32F17_param = 0;
@@ -773,4 +781,6 @@
     pState->u16VendorId = 0x10ec;
     pState->u16DeviceId =  0x0885;
+    pState->u8BSKU = 0x08;
+    pState->u8AssemblyId = 0x85;
     pState->pfnCodecNodeReset = alc885ResetNode;
     pState->pNodes = (PCODECNODE)RTMemAllocZ(sizeof(CODECNODE) * pState->cTotalNodes);
@@ -809,5 +819,4 @@
             break;
         case 0x1: /* AFG */
-            pNode->afg.u32F20_param = pState->u16VendorId << 16 | pState->u16DeviceId;
             pNode->node.au32F00_param[0xB] = CODEC_F00_0B_PCM;
             pNode->node.au32F00_param[0x11] = RT_BIT(30)|0x2;
@@ -2274,4 +2283,5 @@
     pState->pNodes[1].node.au32F00_param[4] = CODEC_MAKE_F00_04(0x2, pState->cTotalNodes - 2);
     pState->pNodes[1].node.au32F00_param[5] = CODEC_MAKE_F00_05(CODEC_F00_05_UNSOL, CODEC_F00_05_AFG);
+    pState->pNodes[1].afg.u32F20_param = CODEC_MAKE_F20(pState->u16VendorId, pState->u8BSKU, pState->u8AssemblyId);
 
     //** @todo r=michaln: Was this meant to be 'HDA' or something like that? (AC'97 was on ICH0)
Index: /trunk/src/VBox/Devices/Audio/DevCodec.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevCodec.h	(revision 33809)
+++ /trunk/src/VBox/Devices/Audio/DevCodec.h	(revision 33810)
@@ -269,4 +269,6 @@
     uint16_t                u16VendorId;
     uint16_t                u16DeviceId;
+    uint8_t                 u8BSKU;
+    uint8_t                 u8AssemblyId;
     CODECVERB               *pVerbs;
     int                     cVerbs;
@@ -311,5 +313,4 @@
 } CODECState;
 
-
 int codecConstruct(CODECState *pCodecState, ENMCODEC enmCodec);
 int codecDestruct(CODECState *pCodecState);
