একাধিক DT ব্যবহার করা

অনেক SoC ভেন্ডর এবং ODM একটি ডিভাইসে একাধিক ডিভাইস ট্রি (DT) ব্যবহার করার সুবিধা দেয়, যার ফলে একটি ইমেজ একাধিক SKU বা কনফিগারেশন চালাতে পারে। এইসব ক্ষেত্রে, বুটলোডার হার্ডওয়্যার শনাক্ত করে এবং রানটাইমে সংশ্লিষ্ট DT লোড করে:

ছবি ১. বুটলোডারে একাধিক ডিভাইস ট্রি ওভারলে (DTO) আছে।

মনে রাখবেন: একাধিক DT ব্যবহার করা বাধ্যতামূলক নয়।

সেট-আপ করুন

DTO মডেলে একাধিক DT-এর জন্য সহায়তা যোগ করতে, প্রধান DT-এর একটি তালিকা এবং ওভারলে DT-এর আরেকটি তালিকা সেট-আপ করুন।

ছবি ২. একাধিক DT-এর জন্য রানটাইম DTO ইমপ্লিমেন্টেশন।

বুটলোডারকে এগুলি করতে হবে:

  • SoC আইডি পড়ুন এবং সংশ্লিষ্ট মূল DT বেছে নিন।
  • বোর্ড আইডি পড়ুন এবং সেই অনুযায়ী ওভারলে DT-এর সেট বেছে নিন।

রানটাইমে ব্যবহারের জন্য শুধুমাত্র একটি প্রধান DT বেছে নিতে হবে। একাধিক ওভারলে DT বেছে নেওয়া যেতে পারে তবে সেগুলি অবশ্যই বেছে নেওয়া মূল DT-র সাথে মানানসই হতে হবে। একাধিক ওভারলে ব্যবহার করলে, DTBO পার্টিশনের মধ্যে প্রতিটি বোর্ডের জন্য একটি করে ওভারলে স্টোর করার প্রয়োজন হয় না এবং বোর্ড আইডির (বা পেরিফেরাল প্রোব করে) ভিত্তিতে বুটলোডার প্রয়োজনীয় ওভারলের সাবসেট নির্ধারণ করতে পারে। যেমন, বোর্ড 'ক'-এর ওভারলে ১, ৩ ও ৫-এর যোগ করা ডিভাইস প্রয়োজন হতে পারে, অন্যদিকে বোর্ড 'খ'-এর ওভারলে ১, ৪ ও ৫-এর যোগ করা ডিভাইস প্রয়োজন হতে পারে।

পার্টিশন

পার্টিশন করতে, DTB ও DTBO সেভ করার জন্য ফ্ল্যাশ মেমরিতে বুটলোডার রানটাইম-অ্যাক্সেসযোগ্য ও বিশ্বস্ত লোকেশন নির্ধারণ করুন (ম্যাচিং প্রসেসে বুটলোডারকে অবশ্যই এইসব ফাইল লোকেট করতে পারতে হবে)। মনে রাখবেন যে DTB এবং DTBO একই পার্টিশনে থাকতে পারে না। আপনার DTB/DTBO dtb/dtbo পার্টিশনে থাকলে, DTB এবং DTBO পার্টিশন ফর্ম্যাট-এ বিস্তারিতভাবে উল্লেখ করা টেবিল স্ট্রাকচার এবং হেডার ফর্ম্যাট ব্যবহার করুন।

বুটলোডারে রান করানো

চালানোর জন্য:

  1. SoC শনাক্ত করুন এবং স্টোরেজ থেকে সংশ্লিষ্ট .dtb ফাইলটি মেমরিতে লোড করুন।
  2. বোর্ড শনাক্ত করুন এবং স্টোরেজ থেকে সংশ্লিষ্ট .dtbo মেমরিতে লোড করুন।
  3. মার্জ করা DT পেতে .dtbo-এর সাথে .dtb ওভারলে করুন।
  4. মার্জ করা DT-এর মেমরি অ্যাড্রেস দেওয়া কার্নেল শুরু করুন।