कई SoC वेंडर और ODM, एक डिवाइस पर कई डिवाइस ट्री (डीटी) का इस्तेमाल करने की सुविधा देते हैं. इससे एक इमेज की मदद से, कई SKU या कॉन्फ़िगरेशन को चालू किया जा सकता है. ऐसे मामलों में, बूटलोडर हार्डवेयर की पहचान करता है और रनटाइम पर उससे जुड़ा DT लोड करता है:
पहली इमेज. बूटलोडर में कई डिवाइस ट्री ओवरले (डीटीओ).
ध्यान दें: एक से ज़्यादा डीटी का इस्तेमाल करना ज़रूरी नहीं है.
सेट अप करें
डीटीओ मॉडल में एक से ज़्यादा डीटी के लिए सहायता जोड़ने के लिए, मुख्य डीटी की सूची और ओवरले डीटी की एक और सूची सेट अप करें.
दूसरी इमेज. एक से ज़्यादा डीटी के लिए, रनटाइम डीटीओ लागू करना.
बूटलोडर को ये काम करने चाहिए:
- SoC आईडी पढ़ें और उससे जुड़ा मुख्य DT चुनें.
- बोर्ड आईडी पढ़ें और उसके हिसाब से ओवरले डीटी का सेट चुनें.
रनटाइम के दौरान इस्तेमाल करने के लिए, सिर्फ़ एक मुख्य DT चुना जाना चाहिए. एक से ज़्यादा ओवरले डीटी चुने जा सकते हैं. हालांकि, वे चुने गए मुख्य डीटी के साथ काम करने चाहिए. एक से ज़्यादा ओवरले का इस्तेमाल करने से, DTBO सेक्शन में हर बोर्ड के लिए एक ओवरले सेव करने से बचा जा सकता है. साथ ही, बूटलोडर को बोर्ड आईडी के आधार पर ज़रूरी ओवरले के सबसेट का पता लगाने में मदद मिलती है. इसके अलावा, यह काम, डिवाइस के बाहरी डिवाइसों की जांच करके भी किया जा सकता है. उदाहरण के लिए, बोर्ड A को ओवरले 1, 3, और 5 से जोड़े गए डिवाइसों की ज़रूरत हो सकती है, जबकि बोर्ड B को ओवरले 1, 4, और 5 से जोड़े गए डिवाइसों की ज़रूरत हो सकती है.
सेगमेंट
पार्टीशन बनाने के लिए, DTB और DTBO को सेव करने के लिए, फ़्लैश मेमोरी में ऐसी जगह तय करें जिसे बूटलोडर रनटाइम में ऐक्सेस कर सके और जिस पर भरोसा किया जा सके. बूटलोडर को मैच करने की प्रोसेस में इन फ़ाइलों को ढूंढना चाहिए. ध्यान रखें कि एक ही पार्टीशन में डीटीबी और डीटीबीओ मौजूद नहीं हो सकते. अगर आपके डीटीबी/डीटीबीओ dtb
/dtbo
सेक्शन में हैं, तो डीटीबी और डीटीबीओ सेक्शन के फ़ॉर्मैट में बताए गए टेबल स्ट्रक्चर और हेडर फ़ॉर्मैट का इस्तेमाल करें.
बूटलोडर में चलाना
चलाने के लिए:
- SoC की पहचान करें और स्टोरेज से उससे जुड़ा .dtb, मेमोरी में लोड करें.
- बोर्ड की पहचान करें और स्टोरेज से उससे जुड़े
.dtbo
को मेमोरी में लोड करें. .dtb
को.dtbo
के साथ ओवरले करें, ताकि मर्ज किया गया डेटाटेंप्लेट बनाया जा सके.- मर्ज किए गए DT के मेमोरी पते को ध्यान में रखते हुए, कर्नेल शुरू करें.