kernel: (AppleRTC) RTC: Only single RAM bank (128 bytes)
kernel: (AppleRTC) RTC: Only single RAM bank (128 bytes)
kernel: (AppleRTC) RTC: lost battery power - time may be invalid
kernel: (AppleRTC) RTC: lost battery power - time may be invalid
kernel: (AppleACPIPlatform) found RTC service
kernel: (AppleRTC) RTC: getGMTTimeOfDay 1666641484
kernel: clock_initialize_calendar system does not have monotonic clock
Could you try on another AMD system if you have any?Incidentally, we get this log early in the boot process:
But a few lines later the system is able to get the time of day:Code:kernel: (AppleRTC) RTC: Only single RAM bank (128 bytes) kernel: (AppleRTC) RTC: Only single RAM bank (128 bytes) kernel: (AppleRTC) RTC: lost battery power - time may be invalid kernel: (AppleRTC) RTC: lost battery power - time may be invalid
Not sure if this offers anything of value, but the logs on my Intel hacks do not have lost battery power - time may be invalid.Code:kernel: (AppleACPIPlatform) found RTC service kernel: (AppleRTC) RTC: getGMTTimeOfDay 1666641484 kernel: clock_initialize_calendar system does not have monotonic clock
False alarm!Could you try on another AMD system if you have any?
** Audio Update: Line Out Miracle **
I can post an issue/bug on the Asus X670 forum where it’s likely to get the attention of Asus tech support. But first we need a valid bug description. I don’t think we can say, my Hackintosh isn’t working!It's really encouraging to hear these bios updates making such a big difference. If only we had some people on the inside who worked on them.
Interesting! In this case, however, you asked them for something specific -- namely, ability to unlock MSR 0xE2. But in our case, what shall we ask Asus to do?check this my conversation with AsRock tech some years ago
they know sometime the use we didd with our pc..and sometimes they give some help
Asrock from my request unlock all they bios (MSR)
My guess is that it's related to PCIe lane routing, but I have no proof of that... Did you try the new BIOS version?Interesting! In this case, however, you asked them for something specific -- namely, ability to unlock MSR 0xE2. But in our case, what shall we ask Asus to do?
Our problem is that we don't know what is the problem!
We only know the symptom, and I don't think we can expect Asus technicians to troubleshoot macOS kernel issues for us!
in that time pikeralpha helped me to ask right stuffInteresting! In this case, however, you asked them for something specific -- namely, ability to unlock MSR 0xE2. But in our case, what shall we ask Asus to do?
My guess is that it's related to PCIe lane routing, but I have no proof of that... Did you try the new BIOS version?
pci=0x03
enables detailed IOPCIFamily logging in both system log and dmesg. Attached are dmesg logs from both VanillaMon and FrankenMon. System configuration is currently as follows:UInt16 IOPCIDevice::configRead16( UInt8 offset )
{
if (!configAccess(false)) return (0xFFFF);
return (parent->configRead16(space, offset));
}
configAccess
function returns false, hence configRead16
just returns 0xFFFF
.Good find on the boot arg! Can you check if anything changes if you add the boot arg pci-msi-limit=0? If not, try setting it to a high number like before. If it doesn't work, maybe something like this RTL8111 commit would? We could try making a kext that automatically polls interrupts for every PCIe device...** Interim Update #4 **
Using the boot argumentpci=0x03
enables detailed IOPCIFamily logging in both system log and dmesg. Attached are dmesg logs from both VanillaMon and FrankenMon. System configuration is currently as follows:
I've also modified AirportItlwm and recompiled it to show a few extra logs.
- Intel WiFi enabled and AirportItlwm enabled
- Broadcom WiFi/BT card removed
- Thunderbolt disabled
First observation from the dmesg comparison is that PCI interrupts are not resolved in Vanilla Mon for a host of devices. Interrupts are, however, resolved for all USB controllers (XHC devices). This points to the MSI (Message System Interrupt) issue that was brought up earlier in this thread.
Every device that experiences a resolved interrupt failure gets marked Inactive. Hence, any further attempt to read or write to its configuration registers results in 0xff (or decimal -1).
View attachment 8081
For the Intel WiFi device, we see this on Vanilla Monterey: The devId is 0xFFFF or -1 because the device has been marked InActive. To get the devId the AirportItlwm code uses this code:
TheC:UInt16 IOPCIDevice::configRead16( UInt8 offset ) { if (!configAccess(false)) return (0xFFFF); return (parent->configRead16(space, offset)); }
configAccess
function returns false, henceconfigRead16
just returns0xFFFF
.
View attachment 8082
But on FrankenMon (with IOPCIFamily from Big Sur), we have no problem. The device ID is read and reported as Wi-Fi 6 AX210.
View attachment 8083
More soon...
Good find on the boot arg! Can you check if anything changes if you add the boot arg pci-msi-limit=0? If not, try setting it to a high number like before. If it doesn't work, maybe something like this RTL8111 commit would? We could try making a kext that automatically polls interrupts for every PCIe device...
IOPCIConfigurator.h
defines all of these flags that govern the behavior of IOPCIFamily. The value 0x03 is the combination of the first two. Any combination of these flags can be passed in as one of two boot-arguments:pci=0x____
npci=0x____
enum {
kIOPCIConfiguratorIOLog = 0x00000001,
kIOPCIConfiguratorKPrintf = 0x00000002,
kIOPCIConfiguratorVTLog = 0x00000004,
kIOPCIConfiguratorAER = 0x00000008,
kIOPCIConfiguratorWakeToOff = 0x00000010, // deprecated rdar://problem/64949845
kIOPCIConfiguratorDeviceMap = 0x00000020,
kIOPCIConfiguratorLogSaveRestore = 0x00000040,
kIOPCIConfiguratorMapInterrupts = 0x00000080,
kIOPCIConfiguratorPanicOnFault = 0x00000100,
kIOPCIConfiguratorNoL1 = 0x00000200, // disable L1 on thunderbolt
kIOPCIConfiguratorDeepIdle = 0x00000400,
kIOPCIConfiguratorNoTB = 0x00000800,
kIOPCIConfiguratorTBMSIEnable = 0x00001000,
kIOPCIConfiguratorPFM64 = 0x00002000,
kIOPCIConfiguratorBoot = 0x00004000,
kIOPCIConfiguratorIGIsMapped = 0x00008000,
kIOPCIConfiguratorFPBEnable = 0x00010000,
// kIOPCIConfiguratorAllocate = 0x00020000,
kIOPCIConfiguratorUsePause = 0x00040000,
kIOPCIConfiguratorCheckTunnel = 0x00080000,
kIOPCIConfiguratorNoTunnelDrv = 0x00100000,
kIOPCIConfiguratorNoTerminate = 0x00200000,
kIOPCIConfiguratorDeferHotPlug = 0x00400000,
kIOPCIConfiguratorNoACS = 0x00800000,
kIOPCIConfiguratorTBPanics = 0x01000000,
kIOPCIConfiguratorTBUSBCPanics = 0x02000000,
kIOPCIConfiguratorSystemMap = 0x04000000, // Force all devices to use system mapper, x86 only
kIOPCIConfiguratorDefaultETF = 0x08000000, // Use default extended tag settings
kIOPCIConfiguratorBootDefer = kIOPCIConfiguratorDeferHotPlug | kIOPCIConfiguratorBoot,
};