Comments (26)
@xCuri0 It works! Fix it all now!
I sincerely appreciate your help!!!
Remove "npci=0x2000" on boot args and set MMIOHBase=1T~12T (the maximum support I tested)
from rebaruefi.
@dawenhaozx Actually I know the fix for this because I booted OpenCore Hackintosh on my system a few weeks ago (still haven't downloaded it but whatever).
You have to set ResizeAppleGpuBars
in your plist to 8
(256mb). This is because macOS doesn't support large BARs
If it still doesn't work and you're seeing RBAR is unsupported by device - Device Error
you will need to download the latest OpenCore version from GitHub actions and enable ResizeUsePciRbIo
. I submitted the patch to add ResizeUsePciRbIo
to OpenCore because I was getting that issue acidanthera/OpenCorePkg#418.
from rebaruefi.
@xCuri0 Thank you, I've tried it and it still doesn't work. May be the reason of opencore 0.8.9 beta.
ResizeAppleGpuBars=8 boot failed
ResizeAppleGpuBars=8 ResizeUsePciRbIo=enable boot failed
from rebaruefi.
@dawenhaozx are you on the latest opencore from GitHub actions ? Only that has ResizeUsePciRbIo
You could try sending your boot log with debug build also
from rebaruefi.
@xCuri0 I'm using the latest opencore from dortania/build-repo
debug log
opencore-2023-02-12-084435.txt
from rebaruefi.
@dawenhaozx does it happen when using the pcibus patch without rebar enabled ?
from rebaruefi.
@xCuri0 Yes, It seems to be the same problem whether rebar is enabled or disabled.(When i use the pcibus patch)
opencore-2023-02-12-094754.txt
from rebaruefi.
@dawenhaozx What the PciBus patch does is make 64-bit BARs (like GPU) get allocated in the 64-bit region which firmware doesn't do by default so that CSM works with 4G decode.
Does disabling ResizeAppleGpuBars
(-1) with rebar off not work ?
from rebaruefi.
ReBarState.exe - disabled
ResizeAppleGpuBars (-1)
ResizeUsePciRbIo - disabled
opencore-2023-02-12-101817.txt
from rebaruefi.
@dawenhaozx and this doesn't boot right ?
u could try show device manager view -> resources by type -> memory and scroll to the bottom. should show what got allocated in the 64-bit space
also could try and ask about this in hackintosh communities
from rebaruefi.
Yes, it stuck at [pci configuration begin]
from rebaruefi.
@dawenhaozx the PCIe device BARs are getting allocated at a 48 bit address apparently. Maybe that's too high for macOS. See if there's a BIOS setting to limit it
from rebaruefi.
@xCuri0 Sincerely thank you for your help. X99A doesn't seem to have such an option in the bios.
from rebaruefi.
@dawenhaozx no MMIO option or similar ? Should ask about this issue in some Hackintosh/OpenCore communities, maybe there's a fix for this.
Last thing that can be done is disassembling PciRootBrudge/PciHostBridge and modifying the AddMemorySpace
call to use a lower maximum address such as 39 bit
from rebaruefi.
@xCuri0 I found something different in opencore-debug
The same config.plist setting
_1._Bios not used pcibus patch - on the left of the screenshot
Successfully boot to macOS and the log shows "Allocated new table SSDT at BBC***"
_2._Bios used pcibus patch - on the Right of the screenshot
Failed to boot and the log shows "Allocated new table SSDT at DBC***"
I'm not sure if this is the reason, but after trying many times I found the difference here.
from rebaruefi.
@xCuri0
Or do I need a DSDT patch?
Large Memory
0000380000000000 - 0000383FFFFFFFFFF
Thank you very much for your help !!!
X99AII DSDT
DSDT.zip
from rebaruefi.
@dawenhaozx you need to patch both DSDT and PciHostBridge/PciRootBridge to use a lower address that macOS supports.
OpenCore in-fact mentions that there are some issues with macOS and X99/X299 boards with 4G decoding
Use efiSeek plugin with Ghidra on PciHostBridge/PciRootBridge to find the AddMemorySpace
call and modify it to use a lower address. I'm not sure what the maximum BAR address macOS can handle is but you can probably find information about that somewhere.
efiSeek with Ghidra is the same method I used to modify the AddMemorySpace
call to increase Ivy Bridge BAR space. All the ReBarUEFI patches I made were done using Ghidra + efiSeek
from rebaruefi.
@xCuri0 This is too difficult for me to understand. But if you have to solve each motherboard issues, it will undoubtedly increase your troubles. Thank you so much anyway, you are a legend!!!
from rebaruefi.
@dawenhaozx If you are able to do it then you can then make a patch that works on all X99 motherboards with the issue.
It is hard to do though yes
from rebaruefi.
@dawenhaozx You need to set the MMIOHBase
setting to a lower value such as 1TB. It seems to be set to 56TB by default
macOS should handle 41-bit (<2TB) addressing fine because Mac Pro can support upto 1.5TB of RAM.
This setting can be found in the Platform
module if its not in BIOS settings IntelRCSetup. I think the settings are stored in IntelSetup
variable if it's not a visible option so you can use that with the setup_var tool.
If you do get it working with 1TB you could also try higher values to see what the maximum supported by macOS is
from rebaruefi.
@xCuri0 I've tried various combinations and still can't solve it.
MMIOHBase 1T ~ 56T
MMIO High Size 128G ~ 1024G
0x15351 One Of: MMIOHBase, VarStoreInfo (VarOffset/VarName): 0x10E2, VarStore: 0x1, QuestionId: 0x1A8, Size: 4, Min: 0x0, Max 0x7, Step: 0x0 {05 9A 0C 00 0D 00 A8 01 01 00 E2 10 10 12 00 00 00 00 07 00 00 00 00 00 00 00}
0x1536B One Of Option: 56T, Value (32 bit): 0x0 (default) {09 0A 14 11 32 02 00 00 00 00}
0x15375 One Of Option: 40T, Value (32 bit): 0x1 {09 0A 13 11 02 02 01 00 00 00}
0x1537F One Of Option: 24T, Value (32 bit): 0x2 {09 0A 12 11 02 02 02 00 00 00}
0x15389 One Of Option: 16T, Value (32 bit): 0x3 {09 0A 11 11 02 02 03 00 00 00}
0x15393 One Of Option: 12T, Value (32 bit): 0x4 {09 0A 10 11 02 02 04 00 00 00}
0x1539D One Of Option: 4T, Value (32 bit): 0x5 {09 0A 0F 11 02 02 05 00 00 00}
0x153A7 One Of Option: 2T, Value (32 bit): 0x6 {09 0A 0E 11 02 02 06 00 00 00}
0x153B1 One Of Option: 1T, Value (32 bit): 0x7 {09 0A 0D 11 02 02 07 00 00 00}
0x153BB End One Of {29 02}
0x153BD One Of: MMIO High Size, VarStoreInfo (VarOffset/VarName): 0x10E6, VarStore: 0x1, QuestionId: 0x1A9, Size: 4, Min: 0x0, Max 0x3, Step: 0x0 {05 9A 0E 00 0F 00 A9 01 01 00 E6 10 10 12 00 00 00 00 03 00 00 00 00 00 00 00}
0x153D7 One Of Option: 256G, Value (32 bit): 0x0 (default) {09 0A 0A 11 32 02 00 00 00 00}
0x153E1 One Of Option: 128G, Value (32 bit): 0x1 {09 0A 09 11 02 02 01 00 00 00}
0x153EB One Of Option: 512G, Value (32 bit): 0x2 {09 0A 0B 11 02 02 02 00 00 00}
0x153F5 One Of Option: 1024G, Value (32 bit): 0x3 {09 0A 0C 11 02 02 03 00 00 00}
0x153FF End One Of {29 02}
from rebaruefi.
@dawenhaozx if possible could you show a screenshot of device manager memory like before (showing the hd audio device is important) when using these settings 1T and 128G
also send a DSDT dump from windows using those same settings. seems like the DSDT on your board is dynamically generated as the version extracted with UEFITool is different
I found this https://www.insanelymac.com/forum/topic/321326-cant-get-above-4g-decoding-working-on-x99-e-ws/, they were successful by disabling the GPU but of course that's not ideal.
My only guess at what's going on is that even the 1TB MMIO is too high for macOS.
from rebaruefi.
@dawenhaozx you could also try npci=0x2000
or npci=0x3000
in kernel command line in addition to using 1T and 128G. I see some reports that it fixes this issue on X99
from rebaruefi.
When I set to MMIO Base 1T, MMIO High 128G
large memory pcibus [0000380000000000 - 0000383FFFFFFFFF] becomes [0000380000000000 - 0000381FFFFFFFFF]
6600xt....
.......
I forgot to take a screenshot. I remember changing them and the difference was that xxx383FFxx became xxx381FFx
I have always set npci=0x2000
Anyway, thank you very much for your help
from rebaruefi.
@dawenhaozx without npci=0x2000
is it the same because I see some people say it's incompatible with 4g decoding (use 1T and 128GB when testing this).
do send a screenshot when you're able to it would be helpful
from rebaruefi.
@dawenhaozx hi any update ?
i was messing with my hackintosh install and saw that the opencore wiki mentions that npci
should not be set while 4g decode is on.
Ryzen boards properly allocate 64-bit BARs (GPU) into the 64-bit MMIO region, just like our patched BIOS does so I thought it might be similar.
this is probably the cause of it along with the default MMIO Base being too high (which can be fixed by setting to 1T).
from rebaruefi.
Related Issues (20)
- LGA1151 PCI allocation limited to 64GB HOT 32
- Please add important warning in guide for Optane, Raid, Soft raid users HOT 3
- When trying to flash BIOS, it says not a proper BIOS
- Too stupid to modify REBAR
- Rebarstate does not change bar size
- ASRock H97M-ITxac Error 6126 - syntax error, unexpected '}' during DSDT Patching HOT 11
- ReBar.ffs missing after successful BIOS Flash HOT 1
- "Video Scheduler Error" BSODS HOT 1
- Question regarding X79 boards and DSDT patching
- EFI Error (at Create Timer) (0x01001202000000B4) HOT 3
- Site needs update HOT 2
- Asus motherboard bios file cannot be updated using ezflash after modification
- 4GB Bar on 4GB VRAM card breaks DirectX HOT 1
- Resizable Bar not enabling after patching HOT 3
- QUESTION ReBar setting in BIOS HOT 5
- ReBar not working on Asus B450F. HOT 4
- Dell Precision T3600 HOT 1
- Gigabyte Z87: No ReBar after applying FFS HOT 1
- OS compatibility HOT 1
- ResizableBar still disabled after doing all the steps HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rebaruefi.