Compile the following ISA Option ROM source code using FASM. Inject the ISA Option ROM binary into your bios using cbrom182. Your MCHBAR will be unlocked at bootup unless you have a version of Windows that is locking it.

Code:
use16					; 16bit mode
	ROM_SIZE_IN_BLOCK = 1		; 1 means ROM size is 1 block (512 bytes)
	ROM_SIZE_IN_BYTE = ROM_SIZE_IN_BLOCK * 512
	
ROMStart:
	db 0x055, 0x0AA 	      ; ROM Header 55,AA -> Bootable rom
	db (ROMEnd - ROMStart)/512    ; ROM Size in 512byte
	jmp MAIN		      ;<------------ jump to main (Bug Fixed)
	db	0		      ; checksum, to be filled in later

times (256)-($-$$) db 0
MAIN:
	pushfd
	push	eax
	push	ecx
	push	dx

	mov eax,080000048h		; (G)MCH Base Address Register
	mov ebx,000000001h		; copy register data for MCHBAR Enable
	mov dx,0CF8h			; set port address
	out dx,eax			; send address through the port
	mov dx,0CFCh			; set port data
	in eax,dx			; fetch data
	and eax,0FFFFFFF0h		; set data byte to zero 
	or eax,ebx			; increase data by new setting
	out dx,eax			; send data through port data


	pop dx
	pop ecx
	pop eax
	popfd
	retf				; return far to system bios routine

	times (ROM_SIZE_IN_BYTE-$) db 0 ; use 00h as the padding bytes until we reach the ROM size

	; The last byte (512th) will be the patch_byte for the checksum
	; patch_byte is calculated and automagically inserted below
	PREV_CHKSUM = 0
	repeat $
	load CHKSUM byte from %-1
	CHKSUM = (PREV_CHKSUM + CHKSUM) mod 0x100
	PREV_CHKSUM = CHKSUM
	end repeat
	store byte (0x100 - CHKSUM) at ($-1)  ; store the patch_byte
ROMEnd: