मैं एक एफपीजीए एंडपॉइंट के लिए नेटवर्क ड्राइवर पर काम कर रहा हूं जो पीसीआई बस पर बहु-संदेश एमएसआई इंटरप्ट्स (एमएसआईक्स नहीं) का समर्थन करता है। होस्ट प्रोसेसर एक x86 इंटेल i7 620LM 4.2 कर्नेल के साथ CentOS पर चल रहा है।क्या मल्टी संदेश एमएसआई लिनक्स/x86 पर लागू किया गया है?
एफपीजीए एंडपॉइंट सही ढंग से एमएसआई क्षमताओं रजिस्टर (0x101 = 32 कुल संभावित वैक्टर) में कई एमएसआई वैक्टर का विज्ञापन करता है।
जो मैं बता सकता हूं, बहु-संदेश कार्यक्षमता कर्नेल 4.2 में जोड़ा गया था। दुर्भाग्य से जब मैं pci_enable_msi_range(pdev, 1, 32);
पर कॉल करता हूं तो यह केवल 1
देता है। जब मैं pci_msi_vec_count(pdev);
पर कॉल करता हूं तो यह 32
देता है। मैं एक वेक्टर पर एक irq हैंडलर का अनुरोध करने में सक्षम हूं और यह उम्मीद के अनुसार काम करता है।
क्या किसी को पता है कि क्या बहु-संदेश एमएसआई वैक्टर वास्तव में x86 आर्किटेक्चर पर लिनक्स में समर्थित हैं?
अद्यतन: मैं सभी 32 एमएसआई वैक्टर एक i7-4700EQ प्रोसेसर के साथ एक अलग एसबीसी का उपयोग करके सक्षम प्राप्त करने में सक्षम था। यह 4.4-आरसी 1 कर्नेल के साथ है।
अद्यतन: 4.2 के साथ भी काम करता है।
अद्यतन: इस मामले में, समस्या कोरबूट में थी। एक बार बोर्ड विक्रेता ने एक अद्यतन प्रदान करने के बाद मैं कई वैक्टर काम करने में सक्षम था।
बेशक यह है। मुझे यकीन नहीं है कि आपको वास्तव में त्रुटि क्यों मिलती है। लेकिन मैंने कुछ ड्राइवर लिखे हैं जो 1 से अधिक वेक्टर का इस्तेमाल करते हैं। – stdcall
यह किस प्लेटफ़ॉर्म पर था। क्या आपको कोई प्रोसेसर, एपीआईसी, इत्यादि मिल गया है जो एकाधिक वैक्टरों को रीमेप करने में असमर्थ हैं? – Tanner