| NVME-FW-DOWNLOAD(1) | NVMe Manual | NVME-FW-DOWNLOAD(1) |
نام (NAME)
nvme-fw-download - بارگیری میانافزار (Firmware) جدید در دستگاه NVMe
خلاصه دستور (SYNOPSIS)
nvme fw-download <device> [--fw=<firmware-file> | -f <firmware-file>]
[--xfer=<transfer-size> | -x <transfer-size>]
[--offset=<offset> | -O <offset>]
[--output-format=<fmt> | -o <fmt>] [--verbose | -v]
[--timeout=<timeout> | -t <timeout>]
توضیحات (DESCRIPTION)
دستور Firmware Image Download برای بارگیری تمام یا بخشی از ایمیج میانافزار بهمنظور بهروزرسانی کنترلر در آینده استفاده میشود. این دستور میتواند زمانی که سایر دستورها در صف ارسال مدیریت (Admin Submission Queue) یا صفهای ارسال ورودی/خروجی (I/O Submission Queues) در انتظار اجرا هستند نیز ارسال شود. دستور Firmware Image Download، ایمیج جدید میانافزار را (بهصورت کامل یا بخشی از آن) در کنترلر رونوشت میکند.
ایمیج میانافزار میتواند از چندین بخش تشکیل شده باشد که هر کدام با دستورهای جداگانهٔ Firmware Image Download بهطور جداگانه بارگیری شوند. هر دستور Firmware Image Download شامل یک آفست بر مبنای Dword و تعداد Dword است که محدودهٔ Dword را مشخص میکند. نرمافزار میزبان باید اطمینان حاصل کند که بخشهای میانافزار دارای محدودههای Dword همپوشان نباشند. بخشهای میانافزار میتوانند بدون ترتیب مشخصی به کنترلر ارسال شوند.
ایمیج جدید میانافزار به عنوان بخشی از دستور Firmware Image Download اعمال نمیشود. اعمال آن پس از یک راهاندازی مجدد (reset) انجام میگیرد، که در آن ایمیج مورد نظر برای اعمال و شیار میانافزاری که باید در آن تثبیت شود با دستور Firmware Commit (بهصورت nvme fw-commit <args>) تعیین میشود.
نکته: ابزار nvme-cli باید یک بافر حافظه پیوسته (خطی) اختصاص داده و باینری میانافزار را در آن نگاشت کند. برای این کار، nvme-cli ابتدا تلاش میکند بافر را با استفاده از صفحههای بزرگ تیالبی (huge TLB pages) تخصیص دهد. اگر تخصیص با استفاده از huge pages با شکست مواجه شود، به استفاده از posix_memalign() همراه با madvise() بازمیگردد، هرچند که این کار نیز احتمالاً با شکست روبرو خواهد شد.
برای افزایش احتمال موفقیت، ممکن است بخواهید پیش از شروع بارگیری میانافزار، تعدادی صفحهٔ بزرگ (huge pages) را از پیش تخصیص دهید:
echo 20 > /proc/sys/vm/nr_hugepages
برای جزئیات بیشتر به این نشانی مراجعه کنید: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt
گزینهها (OPTIONS)
-f <firmware-file>, --fw=<firmware-file>
-x <transfer-size>, --xfer=<transfer-size>
-O <offset>, --offset=<offset>
-o <fmt>, --output-format=<fmt>
-v, --verbose
-t <timeout>, --timeout=<timeout>
مثالها (EXAMPLES)
# nvme fw-download /dev/nvme0 --fw=/path/to/nvme.fw --xfer=0x20000
NVME
بخشی از مجموعهٔ nvme-user
| 02/16/2026 | NVMe |