First off, thank you for your patience with this. I wanted to make sure I'd gotten an authoritative answer on this, and it look a little while to get to the right person. Next, my answer here is primarily about Apple Silicon support. I think the same code will also work on 64-bit Intel and I'm not going to try and sort out 32-bit Intel. If you have time, Could you take a look at the code? I have submitted on the bug. One more thing to add: I have also tried using the prepare() interface of IODMACommand, but there have been no significant changes. So, first off, what doesn't matter here is the IOMemoryDescriptor configuration or inTaskWithPhysicalMask.Your trying to map 20Kb, so I would start testing with a size of 32Kb (2 pages). You could also specify a mask of: 0x0000 0000 FFFF F000ULL (32 bits, 16Kb aligned) ...but that's simply to start with the most straightforward configuration, not because other configuration won't work fine. What DOES matter here is the IOMapper argument of your IODMACommand
Topic:
App & System Services
SubTopic:
Drivers
Tags: