;/*++
;
;Copyright (c) 2017, 2019, 2024 by QUALCOMM, Incorporated.  All Rights Reserved.
;
;Module Name:
;    GLINK.INF
;
;Abstract:
;    INF file for installing the GLINK Driver
;--*/

[Version]
Signature="$WINDOWS NT$"
Class=System
ClassGuid={4d36e97d-e325-11ce-bfc1-08002be10318}
Provider=%QUALCOMM%
DriverVer = 12/15/2025,1.0.4498.4500
CatalogFile=qcglink8280.cat
PnpLockDown = 1

[DestinationDirs]
DefaultDestDir = 13  

[ControlFlags]
ExcludeFromSelect=*

[SourceDisksNames]
1 = %DiskId1%

[SourceDisksFiles]
qcglink8280.sys = 1

[Manufacturer]
%Qualcomm%=Standard,NTARM64.10.0...16299

[Standard.NTARM64.10.0...16299]         
%GLINK.DeviceDesc%=GLINK_Device, ACPI\QCOM0684

[GLINK_Device.NT]
CopyFiles=Drivers_Dir
AddProperty=WDTFSOCDeviceCategory

;Ensures PortCls and its dependent files are installed
Include=wdmaudio.inf
Needs=WDMPORTCLS.CopyFilesOnly

[GLINK_Device.NT.HW]
AddReg=GLINKACL

[GLINKACL]
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)" ; Built-in Admins (BA), Local System (SY)

[Drivers_Dir]
qcglink8280.sys
[WDTFSOCDeviceCategory]
{5D078032-6378-437B-8DA5-9B32B7CA3FDD},2,7,,2                       

[GLINK_Device.NT.Services]
AddService = qcGLINK,%SPSVCINST_ASSOCSERVICE%, GLINK_Service_Inst


; -------------- GLINK driver install sections
[GLINK_Service_Inst]
DisplayName    = %GLINK.SVCDESC%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %13%\qcglink8280.sys
AddReg = Glink_Reg

[Glink_Reg]
HKR,"Parameters","Version",									%REG_DWORD%,0x1
HKR,"Parameters","HWMutexReg_PA",							%REG_DWORD%,0x01F40000		; Hardware mutexes used to synchronize processors:HWIO_TCSR_MUTEX_MUTEX_REGn_PHYS(0)
HKR,"Parameters","HWMutexReg_Size",							%REG_DWORD%,0x20000
HKR,"Parameters","TZ_WONCE_PA",								%REG_DWORD%,0x01FD4000		; IMEM or TZ_WONCE
HKR,"Parameters","TZ_WONCE_Size",							%REG_DWORD%,0x8
HKR,"Parameters","RPM_MSG_RAM_PA",							%REG_DWORD%,0x00778000		; RPM MSG RAM
HKR,"Parameters","RPM_MSG_RAM_Size",						%REG_DWORD%,0x7000
HKR,"Parameters","IPC_REGISTER_PA",							%REG_DWORD%,0x17C0000C		; APSS_SHARED_IPC_INTERRUPT
HKR,"Parameters","IPC_REGISTER_Size",						%REG_DWORD%,0x4


HKR,"Parameters\SMP2P_interrupts","NumSmp2pInterrupts",		%REG_DWORD%,0x3
HKR,"Parameters\SMP2P_interrupts\0","Host",					%REG_DWORD%,0x2				; ADSP: lpass_irq_in_apcs[2], Host = SMEM_Q6
HKR,"Parameters\SMP2P_interrupts\0","Processor",		    %REG_DWORD%,0x3             ; ipcc client , defined by ipcc
HKR,"Parameters\SMP2P_interrupts\0","irq",				    %REG_DWORD%,0x2             ;ipcc_signal for smp2p: defined by core-mproc
HKR,"Parameters\SMP2P_interrupts\0","Reserved",				%REG_DWORD%,0x0
HKR,"Parameters\SMP2P_interrupts\1","Host",					%REG_DWORD%,0x3				; SSC: APCS_IPC(26), Host = SMEM_SSC
HKR,"Parameters\SMP2P_interrupts\1","Processor",		    %REG_DWORD%,0x4             ; ipcc client , defined by ipcc
HKR,"Parameters\SMP2P_interrupts\1","irq",				    %REG_DWORD%,0x2             ;ipcc_signal for smp2p: defined by core-mproc
HKR,"Parameters\SMP2P_interrupts\1","Reserved",				%REG_DWORD%,0x0
HKR,"Parameters\SMP2P_interrupts\2","Host",					%REG_DWORD%,0x5				;  Host = SMEM_CDSP or SMEM_NSP0
HKR,"Parameters\SMP2P_interrupts\2","Processor",		    %REG_DWORD%,0x6
HKR,"Parameters\SMP2P_interrupts\2","irq",				    %REG_DWORD%,0x2
HKR,"Parameters\SMP2P_interrupts\2","Reserved",				%REG_DWORD%,0x0

[GLINK_Device.NT.Wdf]
KmdfService =  qcGLINK, GLINK_wdfsect
[GLINK_wdfsect]
KmdfLibraryVersion = 1.33

[Strings]
;Localizable Strings
QUALCOMM = "Qualcomm Inc."
DiskId1 = "Qualcomm Shared Memory Port Device Installation Disk"
GLINK.DeviceDesc = "Qualcomm(R) Shared Memory Port Device"
GLINK.SVCDESC = "Qualcomm(R) Shared Memory Port Driver"
REG_DWORD = 0x00010001
REG_QWORD = 0x000B0001
REG_SZ = 0x00000000
;Non-localizable Strings
SPSVCINST_ASSOCSERVICE = 0x00000002
