सार:
असाही लिनक्स प्रोजेक्ट के डेवलपर्स के काम के लिए धन्यवाद, लिनक्स कर्नेल जल्द ही M1/M2/M3 चिप्स वाले उपकरणों पर USB4 प्रोटोकॉल का समर्थन करेगा। फ़ंक्शंस का यह सेट पहले असाही लिनक्स द्वारा बनाए गए डाउनस्ट्रीम कोड में मौजूद था। इस सबमिशन का महत्व मुख्य रूप से संबंधित ड्राइवरों को आधिकारिक तौर पर लिनक्स मेनलाइन में प्रवेश करने के लिए बढ़ावा देना है।

Apple का USB4 आर्किटेक्चर सामान्य PC से अलग है:
Apple द्वारा M चिप्स से लैस उपकरणों में प्रदान किया गया USB4 प्रोटोकॉल सामान्य पीसी से अलग है। प्रत्येक Apple USB4 टाइप-C इंटरफ़ेस में ACIO नामक एक हार्डवेयर मॉड्यूल होता है, जो Cortex-M3 कोप्रोसेसर, USB4 होस्ट रूटिंग, नेटिव होस्ट कंट्रोल प्लेन और DART IOMMU को एकीकृत करता है।
ये हार्डवेयर लगातार मुख्य प्रोसेसर के संपर्क में नहीं रहते हैं। ACIO कोप्रोसेसर चलने के बाद मुख्य प्रोसेसर केवल 16MiB MMIO विंडो के माध्यम से आंतरिक उपकरणों तक पहुंच सकता है। इसलिए, ड्राइवर को इंटरफ़ेस कनेक्शन स्थिति के अनुसार ACIO मॉड्यूल को चालू करने, RTKit कोप्रोसेसर शुरू करने और फिर गतिशील रूप से DART और NHI डिवाइस बनाने की आवश्यकता होती है।
जब इंटरफ़ेस डिस्कनेक्ट हो जाता है, तो डिवाइस को नष्ट कर दिया जाना चाहिए और रिवर्स ऑर्डर में बंद कर दिया जाना चाहिए। यह भी मुख्य कारण है कि एम चिप्स से लैस ऐप्पल डिवाइसों को लंबे समय से लिनक्स अपस्ट्रीम समर्थन प्राप्त करना मुश्किल हो गया है।
NHI ड्राइवरों को Apple-विशिष्ट प्रसंस्करण की बहुत आवश्यकता होती है:
असाही लिनक्स इंजीनियरों द्वारा प्रस्तुत पैच ऐप्पल थंडरबोल्ट प्रोटोकॉल के लिए ड्राइवर कोड की 1,000 से अधिक लाइनें जोड़ता है। पैच लिनक्स कर्नेल के मौजूदा थंडरबोल्ट कोर को भी संशोधित करता है। Apple NHI प्रत्येक रिंग को एक स्वतंत्र इंटरप्ट डिज़ाइन में सक्षम बनाता है, और इसका रजिस्टर लेआउट, रिंग कॉन्फ़िगरेशन और टर्मिनल हैंडलिंग यूनिवर्सल USB4 नियंत्रक से भिन्न है।
M3 में, Apple सख्त प्रबंधन लागू करता है और विभिन्न डेटा चैनलों के बीच अलगाव को बढ़ाने के लिए विभिन्न TX/RX रिंगों के लिए 24 IOMMU प्रविष्टियाँ प्रदान करता है। Apple हार्डवेयर भी Linux के मौजूदा USB4 कोड द्वारा अपेक्षित कुछ USB3 बैंडविड्थ आवंटन रजिस्टरों को लागू नहीं करता है, इसलिए Asahi Linux इंजीनियरों द्वारा सबमिट किए गए पैच में संबंधित प्रक्रिया को बायपास करने के लिए विशेष रूप से क्विर्क जोड़ा गया है।
यह अभी तक पूर्ण थंडरबोल्ट समर्थन नहीं है:
कोड का पहला बैच वर्तमान में केवल XDomain होस्ट-टू-होस्ट कनेक्शन और USB3-ओवर-USB4 टनलिंग का समर्थन करता है। PCIe डिवाइस टनलिंग और DP वीडियो टनलिंग अभी तक पूरी नहीं हुई है। इसलिए, थंडरबोल्ट डॉकिंग स्टेशन, बाहरी ग्राफिक्स कार्ड, हाई-स्पीड PCIe डिवाइस और थंडरबोल्ट प्रोटोकॉल के माध्यम से जुड़े मॉनिटर जैसे परिदृश्य अभी भी ठीक से काम करने की गारंटी नहीं देते हैं।
असाही लिनक्स इंजीनियरों द्वारा प्रस्तुत पैच को एम1/एम2/एम3 प्लेटफॉर्म पर विकसित और परीक्षण किया गया है, लेकिन यह वर्तमान में लिनक्स कर्नेल मेलिंग सूची समीक्षा चरण में है और अभी तक आधिकारिक तौर पर लिनक्स कर्नेल में विलय नहीं किया गया है।
टिप्पणियाँ