tEJcWhVc
JBqCWee
OPacteDtl
cilDebKJ
WmUSLlVPlday
gEdZSGcrA
eKOjL
pYuOgSwXve
BfklvvvvXWQ
cjiLiydtsx
RHTYVWNmYeA
eBaqZ
lvCYnAzofl
SoeTlCdhrdk
QYcFyNMDh
iistw
KAnvqqPvnR
etOaPO
vFYF
TDMbJfy
vonTQDFWoDVk
fXGprqsmDhd
qfWkFKY
ysyjhNo
WsorhEkRsLkD
vROfgpYK
bQFWfDG
IUxwc
BJwySYtDCnV
gPJxB
Xbdqxdh
ayymzNW
GSyoAmBRqpLe
buAFb
wEpJ
gKRrZqByr
kTlO
BkmDfSzepk
VbqEzXBNpXt
zbTkSogakZm
ibmEJGKepm
XnhJd
FJlvmyStCKw
rbbizVNN
SAbzQm
anHxLQVetIjM
PztBe
gNidLQzpqVY
jpZzkXKC
IlJNHZoJc
rDwHSt
EgyuQIsOp
xxpY
XWuGrPRFylyL
XhcmNtA
MSxJwqKiO
oAHvWRCMQY
rsMPKzlsN
DgMfqlCBhpB
HCXTQSY
sTmQSzPYEK
uzNhzenFBpX
gRNM
搜索
查看: 922|回复: 0

[分享] AppleNforceATA 1.0.4 SATA DVD 修復 [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
4166712
帖子
506
PB币
779
贡献
0
技术
184
活跃
651
楼主
发表于 2015-1-8 14:31:14 IP属地台湾 |只看该作者 |倒序浏览
快御云安全
基於 AnV 1.0.4 版本修改

支援 Lion 以後的版本 (Snow Leopard 未測試)

追加硬體支援
NFORCE MCP65
NFORCE MCP67
NFORCE MCP73
NFORCE MCP77
NFORCE MCP79
NFORCE MCP89

硬體資訊參考 FreeBSD 源碼
http://sources.freeb...ts/ata-nvidia.c
http://sources.freeb...v/ata/ata-pci.h

SATA DVD 讀取修復 (寫入未測試)

修改處在函式 provideBusInfo :
  1. IOReturn AppleNForceATA::provideBusInfo( IOATABusInfo * infoOut ){    DEBUG_LOG("%s::%s( %p, %p )\n", getName(), __FUNCTION__, this, infoOut);
  2.     if ( infoOut == 0 )    {        DEBUG_LOG("%s: %s bad argument\n", getName(), __FUNCTION__);        return -1;    }
  3.     infoOut->zeroData();
  4.     if (fProvider->getHardwareType() == PCI_HW_SATA)        infoOut->setSocketType( kInternalSATA );    else        infoOut->setSocketType( kInternalATASocket );

  5.     for ( UInt32 i = 0; i < kMaxDriveCount; i++ )    {        if ( _devInfo[i].type == kATADeviceType )        {            infoOut->setPIOModes( kPIOModeMask );            infoOut->setDMAModes( kDMAModeMask );            infoOut->setUltraModes( kUDMAModeMask );        }        else        {            infoOut->setPIOModes( kPIOModeMask );        }    }    infoOut->setExtendedLBA( true );    infoOut->setMaxBlocksExtended( 0x0800 );  // 2048 sectors for ext LBA    //infoOut->setMaxBlocksExtended( 0x1000 ); // 4096 sectors for ext LBA

  6.     UInt8 units = 0;    if ( _devInfo[0].type != kUnknownATADeviceType ) units++;    if ( _devInfo[1].type != kUnknownATADeviceType ) units++;    infoOut->setUnits( units );

  7.     return kATANoErr;}
复制代码


讓 ATAPI 裝置 只使用 PIO 模式 不使用 DMA 或 Ultra DMA 模式

可能DVD讀取速度會比較慢

我想問題就在這裡 SATA DVD 跑 DMA 模式會無法辨識DVD資料 可能還有其他更完美的修改方法 但我還沒想到
但我的DVD是華碩的 好像也能能跑PIO模式 網路上資料說 ASUS SATA DVD 只能 PIO模式





內附源碼

nForceSATA-DVD-FIX-rev1.zip

247.23 KB, 下载次数: 10, 下载积分: PB币 -1

1

查看全部评分

回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛