Aracılığıyla paylaş


Bileşen Firmware Güncelleştirmesi (CFU) protokol belirtimi

Bu belirtim, bilgisayarda veya aksesuarlarda bulunan bileşenler için üretici yazılımını güncelleştirmek için genel bir HID protokolünü açıklar. Belirtim, bir bileşenin indirme sırasında cihaz işlemini kesintiye uğratmadan üretici yazılımını kabul etmesini sağlar. Spesifikasyon, üretici yazılımını kabul eden bileşenin, ayrı üretici yazılımı görüntüleri gerektiren alt bileşenlere sahip olabileceği yapılandırmaları destekler. Teknik şartname, bileşen sorumlusunun üretici yazılımını kabul edip etmeyeceğine karar vermesine olanak tanır. Aynı zamanda bir optimizasyon işlevi de görür çünkü üretici yazılımı görüntüsü yalnızca bileşen kabul edebildiğinde veya kabul etmeye hazır olduğunda gönderilir.

Not

CFU, Windows 10, sürüm 2004 (Windows 10 Mayıs 2020 Güncelleştirmesi) ve sonraki sürümlerde kullanılabilir.

İçerik

Tablolar

Tablo 5.1-1 GET_FIRMWARE_VERSION Yanıt Düzeni

Tablo 5.1-2 GET_FIRMWARE_VERSION Yanıtı - Üst Bilgi Düzeni

Tablo 5.1-3 GET_FIRMWARE_VERSION Yanıtı - Başlık Bitleri

Tablo 5.1-4 GET_FIRMWARE_VERSION Yanıtı - Bileşen Sürümü ve Özellikler Düzeni

Tablo 5.1-5 GET_FIRMWARE_VERSION Yanıtı - Bileşen Sürümü ve Özellikleri Bitler

Tablo 5.2-1 FIRMWARE_UPDATE_OFFER Komut Düzeni

Tablo 5.2-2 FIRMWARE_UPDATE_OFFER Komutu - Bileşen Bilgisi Düzeni

Tablo 5.2-3 FIRMWARE_UPDATE_OFFER Komutu - Bileşen Bilgileri Bitleri

Tablo 5.2-4 FIRMWARE_UPDATE_OFFER Komutu - Donanım Yazılımı Sürüm Düzeni

Tablo 5.2-5 FIRMWARE_UPDATE_OFFER Komutu - Üretici Yazılım Sürümü Bitleri

Tablo 5.2-6 FIRMWARE_UPDATE_OFFER Komutu - Satıcıya Özgü Düzen

Tablo 5.2-7 FIRMWARE_UPDATE_OFFER komutu - Çeşitli ve Protokol sürümü

Tablo 5.2-8 FIRMWARE_UPDATE_OFFER Yanıt Belirteci Düzeni

Tablo 5.2-9 FIRMWARE_UPDATE_OFFER Yanıtı - Simge Düzeni

Tablo 5.2-10 FIRMWARE_UPDATE_OFFER Yanıtı - Belirteç Bitleri

Tablo 5.2-11 FIRMWARE_UPDATE_OFFER Yanıt - Reddetme Sebebi Düzeni

Tablo 5.2-12 FIRMWARE_UPDATE_OFFER Yanıtı - Reddetme Nedeni Bitleri

Tablo 5.2-13 FIRMWARE_UPDATE_OFFER Yanıt RR Kodu Değerleri

Tablo 5.2-14 FIRMWARE_UPDATE_OFFER Yanıt Durumu Düzeni

Tablo 5.2-15 FIRMWARE_UPDATE_OFFER Yanıtı - Durum Bitleri

Tablo 5.2-16 FIRMWARE_UPDATE_OFFER Yanıt Durumu Değerleri

Tablo 5.3-1 FIRMWARE_UPDATE_OFFER - Bilgi Komut Düzeni

Tablo 5.3-2 FIRMWARE_UPDATE_OFFER - Bilgi Komutu - Bileşen Düzeni

Tablo 5.3-3 FIRMWARE_UPDATE_OFFER - Bilgi Komutu - Bileşen Bitleri

Tablo 5.3-4 FIRMWARE_UPDATE_OFFER - Bilgilendirme Komutu - Bilgi Kodu Değerleri

Tablo 5.3-5 FIRMWARE_UPDATE_OFFER - Bilgi Yanıt Düzeni

Tablo 5.3-6 FIRMWARE_UPDATE_OFFER- Bilgi Paketi Yanıt Belirteci Düzeni

Tablo 5.3-7 FIRMWARE_UPDATE_OFFER - Bilgi Yanıtı - Belirteç Bitleri

Tablo 5.3-8 FIRMWARE_UPDATE_OFFER - Bilgi Yanıtı - RR Kod Düzeni

Tablo 5.3-9 FIRMWARE_UPDATE_OFFER- Teklif Bilgileri Yanıtı - RR Kod Bitleri

Tablo 5.3-10 FIRMWARE_UPDATE_OFFER- Bilgi Yanıtı - RR Kod Değerleri

Tablo 5.3-11 FIRMWARE_UPDATE_OFFER - Teklif Bilgisi Yanıt Durumu Düzeni

Tablo 5.3-12 FIRMWARE_UPDATE_OFFER - Teklif Bilgileri - Yanıt Durum Bitleri

Tablo 5.4-1 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Düzeni

Tablo 5.4-2 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Paketi - Komut - Bileşen Düzeni

Tablo 5.4-3 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut - Bileşen Bitleri

Tablo 5.4-4 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut - Komut Kodu Değerleri

Tablo 5.4-5 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Paketi Yanıt Düzeni

Tablo 5.4-6 FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi Yanıtı - Belirteç Düzeni

Tablo 5.4-7 FIRMWARE_UPDATE_OFFER - Teklif Komutu Yanıtı - Belirteç Bitleri

Tablo 5.4-8 FIRMWARE_UPDATE_OFFER - Teklif Bilgi Paketi Yanıtı RR Düzeni

Tablo 5.4-9 FIRMWARE_UPDATE_OFFER - Teklif Komutu Yanıtı - RR Kodu

Tablo 5.4-10 FIRMWARE_UPDATE_OFFER - Teklif Komut Paketi - RR Kod Değerleri

Tablo 5.4-11 FIRMWARE_UPDATE_OFFER - Teklif Komut Paketi Yanıt Durumu Düzeni

Tablo 5.4-12 FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi Yanıt RR Kodu

Tablo 5.5-1 FIRMWARE_UPDATE_CONTENT Komut Düzeni

Tablo 5.5-2 FIRMWARE_UPDATE_CONTENT Komut Üst Bilgisi Düzeni

Tablo 5.5-3 FIRMWARE_UPDATE_CONTENT Başlık Bitleri

Tablo 5.5-4 FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi - Bayrak Değerleri

Tablo 5.5-5 FIRMWARE_UPDATE_CONTENT Komut Veri Düzeni

Tablo 5.5-6 FIRMWARE_UPDATE_CONTENT Komut Veri Bitleri

Tablo 5.5-7 FIRMWARE_UPDATE_CONTENT Komut Yanıtı Düzeni

Tablo 5.5-8 FIRMWARE_UPDATE_CONTENT Yanıtı - Sıra Numarası

Tablo 5.5-9 FIRMWARE_UPDATE_CONTENT - Komut - Yanıt Bitleri

Tablo 5.5-10 FIRMWARE_UPDATE_CONTENT Yanıt Durumu Düzeni

Tablo 5.5-11 FIRMWARE_UPDATE_OFFER - Yanıt - Durum Bitleri

Tablo 5.5-12 FIRMWARE_UPDATE_OFFER- Yanıt - Durum Kodu Değerleri

1 Giriş

Günümüzün bilgisayarları ve aksesuarları karmaşık işlemler gerçekleştiren dahili bileşenlere sahiptir. Kaliteli bir ürün sağlamak için, geliştirmenin sonraki aşamalarında veya müşterilere gönderildikten sonra bu cihazların davranışlarını sık sık güncelleştirme ihtiyacı vardır. Güncelleştirme, tanımlanan işlevsel veya güvenlik sorunlarını veya yeni özellikler ekleme gereksinimini düzeltebilir. Karmaşık mantığın büyük bir kısmı, cihazda çalıştırılan üretici yazılımındadır ve bu da güncelleştirilebilir.

Bu belirtim, bir bilgisayar veya aksesuarlarında bulunan bileşenlerin donanım yazılımını güncellemek için genel bir HID protokolünü açıklar. HID uygulaması belirtim kapsamının dışındadır.

Protokolün özelliklerinden bazıları şunlardır:

  • Protokol, yaygın olan HID'yi temel alır ve USB ve I2C gibi çeşitli veriyolları üzerinden Windows yerleşik desteği vardır. Bu nedenle, tüm bileşenler için üretici yazılımını güncelleştirmek için aynı yazılım (sürücü) çözümünden yararlanabilirsiniz.

    Not

    Belirtim paket tabanlı olduğundan, bunu HID olmayan senaryolara uyarlamak kolaydır.

  • Belirtim, bir bileşenin indirme sırasında cihaz işlemini kesintiye uğratmadan üretici yazılımını kabul etmesine olanak tanır. Diğer görevleri sürdürebilmek için üretici yazılımı güncelleştirme işleminin tamamlanmasını beklemeleri gerekmeyen kullanıcılar için daha iyi bir deneyim sağlar. Yeni aygıt yazılımı, kullanıcı üzerinde en az etkiyi yaratacak şekilde tek bir atomik işlemle çalıştırılabilir.

  • Spesifikasyon, üretici yazılımını kabul eden bileşenin, ayrı üretici yazılımı görüntüleri gerektiren alt bileşenlere sahip olabileceği yapılandırmaları destekler.

    Not

    Bir bileşenin üretici yazılımını alt bileşene teslim etme işlemi bu belirtim kapsamı dışındadır.

  • Belirtim, teklifi kavramını destekler ve üretici yazılımının kabul edilip edilmeyeceğine karar vermek için sorumlu bileşene bağlıdır. Yeni üretici yazılımını kabul etme kararı önemsiz değildir. Üretici yazılımı türü ve/veya sürümü ile yeni üretici yazılımının uygulandığı temel donanım türü/sürümü arasında bağımlılıklar olabilir. Bileşen yalnızca kabule hazır olduğunda üretici yazılımı görüntüsünü alır, bu nedenle teklif bir iyileştirme mekanizması olarak işlev görür.

1.1 Sözlük

Terim Açıklama
Bileşen Kimliği Birden çok bileşeni olan bir cihazda, bileşen kimliği her bileşeni benzersiz olarak tanımlar.
CRC Döngüsel Yedeklilik Denetimi

Bir veri bloğunun özetini veya parmak izini oluşturmak için kullanılan şifreleme olmayan karma algoritması. CRC, CRC hesaplandığından beri veri bloğunun değişmediğinden emin olmak için denetim olarak kullanılır. CRC hatalı değildir, ancak verilerin doğru alındığına dair güven sağlar.
Aygıt Bileşenler koleksiyonu (bir birincil bileşen ve sıfır veya daha fazla alt bileşen). Cihaz, işletim sistemi tarafından tek bir birim olarak görülebilir. Konak, genellikle birincil bileşen olan cihazla etkileşim kurar.

Bir bilgisayarda birden çok cihaz olabilir. Bu belirtim ile ilgili olarak, 2 farklı cihazla iletişim tamamen bağımsızdır.
Sürücü Windows Driver Foundation (WDF) çerçevesi kullanılarak yazılan bir sürücü.
Donanım Yazılımı Fiziksel donanımda çalışan kod. Üretici yazılımı güncelleştirilebilir ve genellikle donanımla ilişkili programlanabilir bellekte bulunur.
Donanım Bilgisayarda fiziksel bir silikon parçası.
Birincil Bileşen Bilgisayardaki bir donanım parçası ve ona ait üretici yazılımı. Bu belirtim bağlamında bileşen, üretici yazılımı güncelleştirmesini gerektiren ve kabul eden varlıktır.
Parça Bir bileşen için üretici yazılımı görüntüsü daha küçük segmentlere bölünebilir. Her bir segment küçük bir üretici yazılımı görüntüsüdür.
Segment Kimliği Bir bileşenin üretici yazılımı daha küçük segmentlere ayrılmışsa, segment kimliği segment için benzersiz tanımlayıcıdır.
İmza Üretici yazılımı görüntüsünün yetkisiz yollarla değiştirilip değiştirilmediğini belirlemek için kriptografik bir yöntem. İmzalar isteğe bağlıdır ancak önerilir ve bu belirtim kapsamının dışındadır.
Alt bileşen Donanım mimarisine bağlı olarak, tüm bileşenler sistem tarafından görülebilen bir bileşenin aşağı akışına bağlı olabileceğinden işletim sistemi tarafından görülmeyebilir. Bu bileşenler, bu belirtimdeki alt bileşenler olarak adlandırılır.
TLC HID Üst Düzey Koleksiyonu.
Jeton Ana bilgisayar oturumu tanımlayıcısı. Konak bir belirteç oluşturup komutlar halinde gönderir ve cihaz bunu yanıtta döndürür. Belirteçler, belirli işlemleri seri hale getirmek veya oturumun kaybedildiğini ve başka bir oturumun başlatıldığını belirlemek için kullanılabilir.

1.2 Kapsam

1.2.1 Amaçlar

  • Her veri yolu türü için yeni bir protokol kullanmaktan kaçınmak için veri yolu agnostik bir çözüm gereklidir. HID her yerde bulunur ve bu gereksinimi giderir.

  • Bir bileşenin birincil bileşen olarak görev yaptığı ve diğerlerinin birincil bileşene bağlı alt bileşenler olduğu çok bileşenli bir cihaz için üretici yazılımı güncelleştirmesini destekleme olanağı. Her bileşen, aralarında önemli bağımlılık ilişkileri bulunan kendi üretici yazılımını gerektirir.

  • Üretici yazılımı görüntüsünü bileşene indirmek için yaygın bir sürücü modeli. Ardından bileşen, alt bileşenlere iletmek için alt bileşene özgü algoritmalara sahiptir. Alt bileşenler ayrıca üretici yazılımı üzerinde geçerlilik denetimleri gerçekleştirebilir ve sonuçları birincil bileşene geri geçirebilir.

  • Cihaz işlemi sırasında üretici yazılımı güncellemesini destekleme özelliği.

  • Üretim cihazlarında üretici yazılımını yetkili araçlar aracılığıyla güncelleştirme/geri alma ve pazardaki cihazları Windows Update aracılığıyla güncelleştirme olanağı.

  • Geliştirmekte olan yazılımı/pazardaki yazılımı destekleme esnekliği.

  • Bir bileşenin üretici yazılımı görüntüsünü kabul etmesini kolaylaştırmak için büyük bir üretici yazılımı görüntüsünü daha küçük segmentlere ayırma özelliği.

1.2.2 Hedef Olmayanlar

  • Üretici yazılımı görüntüsünün iç biçimini tanımlayın: Ana bilgisayar için üretici yazılımı görüntüsü bir adres ve yük girdileri kümesidir.

  • Kabul edilen üretici yazılımını imzalama/şifreleme/doğrulama: Bu belirtim, üretici yazılımı görüntülerinin nasıl imzalanıp şifrelendiğini açıklamaz. Beklenen geçerli donanım yazılımının bileşen üzerinde yürütülen yazılım olması ve indirilen donanım yazılımını doğrulaması gerekir.

  • Bileşenin alt bileşenlerle nasıl etkileşime geçtiğini gösteren bir mekanizma tanımlayın: Konak, cihazla genellikle birincil bileşen olarak tek bir birim olarak etkileşim kurar. Bileşenin alt bileşen üretici yazılımıyla ilgili iletişim için köprü görevi görmesi gerekir.

2 Desteklenen Donanım Mimarisi

Esnek donanım tasarımını desteklemek için protokol, her bileşenin kendi üretici yazılımı görüntüsünü gerektirdiği çok bileşenli bir cihazı destekler. Tasarımda, bir bileşen birincil bileşendir ve bağımlı alt bileşenler bu birincil bileşene bağlanır. Her bileşen benzersiz olarak bir bileşen kimliğiyle tanımlanır.

Çok bileşenli cihaz, işletim sistemi tarafından tek bir birim olarak görülebilir. Ana bilgisayar, genellikle birincil bileşen olan ve bu CFU protokolünü kullanan cihazla etkileşim kurar. Bileşen ile alt bileşenleri arasındaki iletişim bu belirtim kapsamının dışındadır.

Bir bilgisayarda birçok farklı cihaz olabilir (bir cihazda bir veya daha fazla bileşen olabilir). Bu protokol bağlamında, her cihazla iletişim bağımsızdır. Her cihazın ana bilgisayar ile karşılık gelen bir örneği vardır.

Cihaz Üretici Yazılımı, Birincil Bileşen ve Alt Bileşenleri.

3 Protokol Önkoşulları

Bu bölümde, bu protokolden yararlanmak için uygulanması gereken önkoşullar ve en iyi yöntemler listelenmiştir:

  • Atomik görüntü kullanımı

    Bir bileşen için üretici yazılımı görüntüsü, üretici yazılımı görüntüsünün tamamı başarıyla indirilene kadar kullanılmaz. Üretici yazılımının birden çok segmente bölünmesi durumunda, son kesim gönderenden alınana kadar görüntü kullanılmamalıdır. Bütünlük denetimleri son görüntüde gerçekleştirilmelidir. Üretici yazılımı görüntüsünü teslim etmek için kullanılan aktarımda, aktarım hatalarında tekrar indirmeyi önlemek için hata düzeltme ve yeniden deneme mekanizmaları bulunması önerilir.

  • Üretici yazılımı güncelleştirmesi cihaz işlemini kesintiye uğratmamalıdır

    Üretici yazılımı görüntüsünü kabul eden cihazın güncelleştirme sırasında çalışabilmesi gerekir. Cihazın gelen üretici yazılımını depolamak ve doğrulamak için ek belleğe sahip olması gerekir, ancak geçerli üretici yazılımının üzerine yazılmaz.

  • Kimlik doğrulaması ve bütünlük

    Uygulayıcı, özgün bir üretici yazılımı görüntüsü oluşturan faktörlere karar verir. Bileşenin mevcut üretici yazılımının, gelen üretici yazılımı görüntüsünün CRC'sini en azından doğrulaması önerilir. Geçerli üretici yazılımı dijital imza veya diğer hata algılama algoritmalarını da kullanmalıdır. Doğrulama başarısız olursa üretici yazılımı güncelleştirmeyi reddeder. Arıza Kurtarma

    Üretici yazılımı görüntüsü indirilir ve başarısız olursa cihaz yeni üretici yazılımını çağırmamalı ve mevcut üretici yazılımıyla çalışmaya devam etmelidir. Sunucu güncellemeyi yeniden deneyebilir. Yeniden deneme sıklığı uygulamaya özgüdür.

  • Gizli -lik

    Opsiyonel. Bir yazılım bölümü şifrelenebilir. Şifreleme ve şifre çözme teknikleri bu belirtim kapsamının dışındadır. Bu belirtim, bellenim yükünü şifrelenmiş olup olmadığına bakılmaksızın bir veri akışı olarak ele alır.

  • Geri alma koruması

    Geri alma politikaları birincil bileşen tarafından uygulanır ve uygulamaya özeldir. Bileşendeki geçerli yazılım, gelen yazılım dosyalarını sürüm numarasının güncel olması gerektiği veya sürüm türünden hata ayıklamaya geçiş yapılamaması gibi, dahili ilkelere göre doğrular. Protokol, geri alma ilkelerini ihlal etse bile bir güncelleştirmenin kabul edildiğine dair mesajlaşmaya izin verir.

4 CFU Protokolüne Genel Bakış

CFU protokolü, yeni üretici yazılımı görüntülerini ana bilgisayardan üretici yazılımının hedeflendiği cihaza göndermek için gereken bir dizi komut ve yanıttır.

Genel bakışla, protokol cihaza gönderilecek tüm üretici yazılımı görüntülerini tekrarlayarak tarar. Her bir üretici yazılımı görüntüsü için ana bilgisayar dosyayı cihaza göndermek üzere sunar. Yalnızca cihaz teklifi kabul ederse, konak dosyayı gönderir.

Cihaz güncelleştirme sırasının bağımlılıkları olduğu durumları desteklemek için, cihaz ilk geçişte belirli teklifleri kabul etmeyebilir, bu nedenle protokol konağın tüm bağımlılıklar çözümlenene kadar tüm üretici yazılımı tekliflerini cihaza yeniden göndermesine izin verir.

4.1 Üretici Yazılımı Güncelleştirme Programlama Komut Dizisi

Üretici yazılımı görüntüsünü güncelleştirmek için CFU komut dizisi aşağıdadır.

Bellenim Güncelleştirmesi Programlama Komut Dizisi.

4.1.1 Durumu: Ana Bilgisayar Tarafından Başlatılan Bildirim

Konak kendisini başlatıp cihaza göndermesi gereken bir dizi teklif belirledikten sonra, konak, konağın başlatıldığını bileşene göstermek için bir OFFER_INFO_START_ENTIRE_TRANSACTION komutu gönderir. Bu komutun amacı, geçerli cihaz üretici yazılımına konağın yeni bir örneğinin kullanılabilir olduğunu bildirmektir. Ana bilgisayarın önceki bir örneği beklenmedik şekilde sonlandırıldığında bu bildirim yararlıdır. Cihazın bu komutu başarıyla tamamlaması gerekir.

4.1.2 Durumu: OFFER_INFO_START_OFFER_LIST Bildirimi

Bu durumda konak, geçerli cihaz üretici yazılımına teklif göndermeye hazır olduğunu belirtmek için OFFER_INFO_START_OFFER_LIST komutunu gönderir. Cihazın birincil bileşeni bu komutu başarıyla tamamlamalıdır.

Konak tüm teklifleri cihaza birden çok kez gönderebileceğinden bu komut kullanışlıdır.

4.1.3 Durum: FIRMWARE_UPDATE_OFFER komutunu gönder

Ana bilgisayar, birincil bileşene (veya alt bileşenine) bir teklif göndererek bileşenin üretici yazılımını kabul etmek/reddetmek isteyip istemeyeceğini denetler. Teklif, donanım yazılımı görüntüsüyle ilgili tüm gerekli meta verileri içerir, böylece bileşendeki geçerli donanım yazılımı, teklifi kabul etmeye, bekletmeye, atlamaya veya reddetmeye karar verebilir.

Teklif birincil bileşen veya alt bileşen için olabilir. Bileşen teklifi kabul edebiliyorsa, ürün yazılımını almaya hazırlanır. Bu, gelen üretici yazılımı görüntüsünü almak için bir bellek bankası hazırlamayı içerebilir. Bileşen teklifi kabul etmeyebilir, örneğin, bileşen zaten konağın göndermek istediği daha yeni (veya aynı) bir firmware sürümüne sahip olabilir. Daha fazla nedenden dolayı Ek 1: Örnek Üretici Yazılımı Güncelleştirmesi Programlama Komut Dizisi bölümünde açıklanan örneklere bakın.

Bir teklif kabul edilmiş olsa bile, birincil bileşen, alınan imajın bütünlük hatası ve/veya geri alma denetimlerinde başarısız olması durumunda, indirmenin ardından üretici yazılımı imajını reddedebilir. Bileşen, her donanım yazılımı görüntüsü özelliğini, teklifteki herhangi bir bilgiden bağımsız olarak kontrol etmelidir.

Ana bilgisayar, göndermeyi planladığı üretici yazılımı görüntüsü hakkında birincil bileşeni bilgilendirmek amacıyla FIRMWARE_UPDATE_OFFER komutunu verir.

Bileşen teklifi kabul ederse, FIRMWARE_UPDATE_OFFER_ACCEPT durumuyla teklifi kabul eder.

Cihazın donanım yazılımı meşgulse ve ana bileşen şu anda bu veya bir sonraki teklifi kabul edemiyorsa, FIRMWARE_UPDATE_OFFER_BUSY durumuyla meşgul bir yanıt gönderir.

Geçerli üretici yazılımı teklifle ilgileniyorsa ancak teklifi kabul edemiyorsa (örneğin, alt bileşen için eksik bir güncelleme bağımlılığı nedeniyle), bu üretici yazılımla ilgilendiğini ancak kabul edemediğini belirten bir FIRMWARE_UPDATE_OFFER_SKIP yanıtı verir. Ardından ana bilgisayar bir sonraki teklife devam eder ve bu üretici yazılımını daha sonra tekrar sunmalıdır.

Geçerli üretici yazılımı teklifle ilgilenmiyorsa (örneğin, eski bir sürümdür), uygun reddetme nedenini sağlayan FIRMWARE_UPDATE_OFFER_REJECT durumuyla yanıt verir. Bu durum, ev sahibinin bu teklifi gelecekte yeniden gönderemeyeceğini göstermez. Ana bilgisayar, genellikle her teklifi başlattığında veya teklif listesini cihaza yeniden gönderdiğinde, her teklifi yollar (bkz. Durum: OFFER_INFO_START_OFFER_LIST Bildirimi).

4.1.4 Durumu: Üretici Yazılımı Gönder

Bu durumda, ana bilgisayar üretici yazılımı görüntüsünü bileşenin daha önce teklifi kabul ettiği birincil bileşene göndermeye başlar.

Üretici yazılımı görüntüsünün içeriği büyük olasılıkla tek bir komutun yük sınırlarını aşacağından, konak üretici yazılımı görüntülerini paketlere böler. Ana bilgisayar, her paketi ayrı bir FIRMWARE_UPDATE CONTENT komutuyla sırayla gönderir. Birincil bileşenin her komut için bir yanıt paketi oluşturması gerekir.

Her FIRMWARE_UPDATE CONTENT komutu, kısmi üretici yazılımı yükü içeren bir ofset adresini açıklar. Bileşen, kısmi üretici yazılımı yükünün depolanması gereken adresi belirlemek için uzaklığı kullanır. Cihaz içeriği uygun bir konuma yazar ve bir yanıt göndererek komutu kabul eder.

Konağın gönderdiği ilk paket için, cihaza bunun üretici yazılımı görüntüsünün ilk paketi olduğunu belirten FIRMWARE_UPDATE_FLAG_FIRST_BLOCK bayrağını ayarlar. Cihaz üretici yazılımını almaya hazır değilse, şu anda bunu yapabilir.

Son paket için, ana bilgisayar FIRMWARE_UPDATE_FLAG_LAST_BLOCK bayrağını ayarlayarak gönderir.

Cihazdaki geçerli üretici yazılımı bu komutta yer alan kısmi üretici yazılımı yükünü yazdıktan sonra, yanıt göndermeden önce gelen üretici yazılımı görüntüsünde doğrulama ve kimlik doğrulama denetimleri gerçekleştirmesi gerekir. Bu en düşük düzeyde şunları içerir:

  • Üretici yazılımı görüntüsünün tamamının bütünlüğünü doğrulamak için crc denetimi.

  • CRC denetimi başarılı olursa, gelen görüntünün imzasının isteğe bağlı olarak doğrulanması.

  • İsteğe bağlı imza denetiminden sonra, yeni üretici yazılımı sürümünün mevcut üretici yazılımı sürümüyle aynı veya ondan daha yeni olduğunu doğrulamak için bir sürüm denetimi yapılır.

Gelen üretici yazılımı görüntüsünün daha küçük segmentlere bölünmesi durumunda, bunun üretici yazılımı görüntüsünün son segmenti olup olmadığını belirlemek ve ardından doğrulama sürecine dahil etmek mevcut üretici yazılımına bağlıdır.

Yukarıdaki denetimler geçerse, geçerli üretici yazılımı cihazı bir sonraki sıfırlamada yeni görüntüye geçecek şekilde ayarlayabilir ve ana bilgisayara başarılı olduğunu bildirir. Genellikle bileşen kendi kendine sıfırlama başlatmaz. Bu, bileşenin etkileşimde bulunduğu yazılım, üretici yazılımı, donanım varlıklarındaki kesintileri önlemektir. Ancak bu bir gereksinim değildir ve uygulamaya bağlı olarak farklılık gösterebilir.

Doğrulama adımları başarısız olursa üretici yazılımının bir sonraki sıfırlamada değiştirme ayarlamaması ve konağa bir hata yanıtı belirtmesi gerekir.

4.1.5 Karar Durumu: Daha fazla teklif var mı?

Bu durumda konak, cihaza gönderilecek daha fazla teklif olup olmadığını belirler.

4.1.6 Durumu: OFFER_INFO_END_OFFER_LIST Bildirimi

Ana bilgisayar tüm teklifleri mevcut cihaz üretici yazılımındaki birincil bileşene gönderdiğinde bu duruma ulaşılır. Sunucu, tüm teklifleri bileşene gönderdiğini belirtmek için OFFER_INFO_END_OFFER_LIST komutunu gönderir.

Cihazın bu komutu başarıyla tamamlaması gerekir.

4.1.7 Karar Durumu: Teklifi Tekrar Oynatma Listesi

Ana bilgisayar, tüm teklifleri yeniden gönderip göndermemesi gerektiğini belirler. Bu durum, birincil bileşen daha önce bazı teklifleri atlayıp bazı teklifleri kabul ettiyse ortaya çıkabilir. Ev sahibinin teklif listesini tekrar tekrarlaması gerekir.

Teklif listesini yeniden yürütme kararına neden olabilecek başka uygulamaya özgü mantık da olabilir.

4.1.8 Durumu: Cihaz Meşgul

Bu durum, bir cihazın teklife meşgul bir yanıt döndürdüğünü gösterir.

Ana bilgisayar, cihaz serbest olana kadar cihazın kabul ile yanıt vermediği bir OFFER_NOTIFY_ON_READY komutu gönderir.

5 CFU Protokolü Paket Biçimi

CFU protokolü, komut ve yanıt kümesi olarak uygulanır. Protokol doğası gereği sıralı. Konağın bir bileşene gönderdiği her komut için bileşenin yanıt vermesi beklenir (bu belirtimde açıkça aksi belirtilmedikçe). Ana bilgisayar, gönderdiği önceki komut için geçerli bir yanıt alınana kadar sonraki komutu göndermez.

Bileşen bir süre içinde yanıt vermezse veya geçersiz bir yanıt gönderirse, konak işlemi baştan başlatabilir. Bu protokol belirli bir zaman aşımı değerini tanımlamaz.

Bileşendeki geçerli üretici yazılımının sürüm bilgilerini almak, teklifi göndermek ve üretici yazılımı görüntüsünü göndermek için komutlar vardır.

Ancak konağın sorgulanan sürüm bilgileriyle ilgili birincil bileşenden alınan yanıta bağlı olarak bir teklifi saklaması gerekmez. Bilgiler kayıt tutma veya başka amaçlarla erişilebilir hale getirilir.

5.1 FİRMWARE_SÜRÜMÜNÜ_AL

Birincil bileşenin (ve alt bileşenlerinin) geçerli üretici yazılımı sürümlerini alır. Komutun bağımsız değişkeni bulunmuyor.

5.1.1 Komut

Bu komut, ana bilgisayar tarafından birincil bileşendeki (ve alt bileşenlerindeki) geçerli üretici yazılımlarının sürümlerini sorgulamak için gönderilir. Sunucu, üretici yazılımının başarıyla güncellenip güncellenmediğini teyit etmek için bunu kullanabilir. Bu komutu aldıktan sonra birincil bileşen kendisi ve tüm alt bileşenler için üretici yazılımı sürümüyle yanıt verir.

5.1.2 Yanıtı

Bileşen, birincil bileşenin ve alt bileşenlerin üretici yazılımı sürümüyle yanıt verir. Yanıt boyutu 60 bayttır ve en fazla yedi bileşen (bir birincil ve altı alt bileşen) için sürüm bilgilerine izin verir.

Tablo 5.1-1 GET_FIRMWARE_VERSION Yanıt Düzeni

GET_FIRMWARE_VERSION Yanıt Düzeni .

5.1.2.1 Başlık
Tablo 5.1-2 GET_FIRMWARE_VERSION yanıtı - Üst Bilgi Düzeni

GET_FIRMWARE_VERSION Yanıtı - Üst Bilgi Düzeni.

Yanıtın üst bilgisi aşağıdaki bilgileri sağlar.

Tablo 5.1-3 GET_FIRMWARE_VERSION Yanıtı - Başlık Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Bileşen Sayısı 8 Bu Bileşen için bu mekanizma aracılığıyla yönetilen indirilebilir bileşenlerin sayısı. Bileşen Sayısı, en büyük tablo boyutunu belirler. Şu anda, yanıtın izin verilen 60 bayt içine sığmasını sağlamak için en fazla 7 bileşen desteklenir.
8 Yanıtla 16 Ayrılmış alanlar. Gönderenin bunları 0 olarak ayarlaması gerekir. Alıcı bu değeri yoksaymalıdır.
24 Protokol Sürümü 4 Üretici yazılımı güncelleme revizyon bitleri, şu anda aktarımda kullanılmakta olan FW Güncelleme Protokolü revizyonunu temsil eder. Burada tanımlanan arabirim için FW Güncelleştirme Düzeltmesi 0010b olmalıdır.
28 Yanıtla 3 Ayrılmış alanlar. Gönderenin bunları 0 olarak ayarlaması gerekir. Alıcı bu değeri yoksaymalıdır.
31 E 1 Uzantı bayrağı, ek bileşenlerin bildirilmesini sağlamak için gelecekteki bir protokol kancasıdır.
5.1.2.2 Bileşen Sürümü ve Özellikleri

Her bileşen için, en fazla 7 bileşenin özelliklerini açıklamak için iki DWORD kullanılır. Üst bilgideki bileşen sayısı 7'den küçükse, yanıtın sonunda kullanılmayan DWORDS değeri 0 olarak ayarlanmalıdır.

Tablo 5.1-4 GET_FIRMWARE_VERSION Yanıtı - Bileşen Sürümü ve Özellikler Düzeni

GET_FIRMWARE_VERSION Yanıtı - Bileşen Sürümü ve Özellikler Düzeni.

Her bileşene özgü bilgi iki DWORD'de aşağıdaki gibi açıklanmıştır:

Tablo 5.1-5 GET_FIRMWARE_VERSION Yanıtı - Bileşen Sürümü ve Özellik Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Üretici Yazılımı Sürümü 32 Bu bileşen için geçerli üretici yazılımının sürümünü döndürür. Bu teknik özellik, üretici yazılımı sürümü için belirli bir biçimi zorunlu kılmaz. Yönergeler için Üretici Yazılımı Sürümü bölümüne bakın.
32 Banka 2 Opsiyonel. Mimariye bağlı olarak, bileşen donanımında üretici yazılımının depolanabileceği birden çok banka olabilir. Uygulamaya bağlı olarak, gönderen üretici yazılımının mevcut olduğu bankayı belirtebilir. Bu alan Koşullu Zorunludur; destek isteğe bağlıdır, ancak başka bir amaçla kullanılmamalıdır.
34 Rezerve 2 Ayrılmış alanlar. Gönderenin bunları 0 olarak ayarlaması gerekir. Alıcı bu değeri yoksaymalıdır.
36 Tedarikçiye Özgü 4 Satıcıya özgü olan ve uygulamaya özel bir şekilde kullanılabilecek alan.

Satıcı aşağıdaki gibi bilgileri kodlamak için bu bitleri kullanabilir:

- Üretici yazılımının türü: Yayın öncesi/kendi kendine barındırma/üretim, hata ayıklama/perakende

- Geliştirme aşaması

Aynı güncelleme protokollerini kullanan diğer ürünler için bileşenlerin üretici yazılımı almasını önlemek amacıyla Ürün Kimliği kullanılır.
40 Bileşen Kimliği 8 Bileşen için benzersiz bir tanımlayıcı.
48 Tedarikçiye Özgü 16 Satıcıya özgü olan ve uygulamaya özel bir şekilde kullanılabilecek alan.

5.1.3 HID ile Eşleme

Bu, Rapor Kimliği'ne ek olarak 60 bayt yanıt boyutuna sahip HID Özellik Alma isteği olarak uygulanır. Özellik raporu uzunluğu, tüm GET_FIRMWARE_VERSION yanıtını barındırıyor. Konaktan Özellik Al isteğiyle ilişkilendirilmiş veri yok.

5.2 FIRMWARE_GÜNCELLEME_TEKLİFİ

Birincil bileşenin bir üretici yazılımını kabul edip etmediğini belirler.

5.2.1 Komutu

Ana bilgisayar, bir üretici yazılımını kabul edip etmediğini belirlemek için bu komutu bileşene gönderir. Host, üretici yazılımını gönderebilmeden önce bir teklif göndermeli ve bileşenin bu teklifi kabul etmesi gerekir.

FIRMWARE_UPDATE_OFFER Komut paketi aşağıdaki gibi tanımlanır.

Tablo 5.2-1 FIRMWARE_UPDATE_OFFER Komut Düzeni

FIRMWARE_UPDATE_OFFER Komut Düzeni.

5.2.1.1 Bileşen Bilgileri
Tablo 5.2-2 FIRMWARE_UPDATE_OFFER Komutu - Bileşen Bilgileri Düzeni

FIRMWARE_UPDATE_OFFER Komutu - Bileşen Bilgileri Düzeni.

Bileşen Bilgileri baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.2-3 FIRMWARE_UPDATE_OFFER Komutu - Bileşen Bilgileri Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Segment Numarası 8 Bu alan, bir bileşenin üretici yazılımının daha küçük segmentlere ayrılmış olması durumunda kullanılır. Kullanılırsa, bu değer sonraki yük paketinde yer alan kesimi gösterir. Örneğin, bileşen için üretici yazılımı görüntüsü çok büyükse ve birincil bileşen bir kerede görüntünün yalnızca daha küçük bölümlerini alabiliyorsa, bu alan bu teklifin görüntünün tamamının ,segmenti için olduğunu belirtmek için kullanılabilir. Görüntününve +1'inci segmentini içeren birincil bileşene ayrı bir teklif gönderilebilir.
8 Rezerve 6 Ayrılmış alanlar. Gönderenin bunları 0 olarak ayarlaması gerekir. Alıcı bu değeri yoksaymalıdır.
14 Ben 1 Hemen Sıfırlamayı Zorla (I)

- Bu bit değeri, üretici yazılımı indirme işlemi tamamlandıktan ve hemen çağırıldığı doğrulandıktan sonra bileşenin kendisini hemen sıfırlayacağına işaret etmek için kullanılır.

- Bu bayrak geliştirme aşamasına yöneliktir.
15 V 1 Sürümü Yoksaymak için Zorla (V)

- Bu işaret, yayın öncesi veya hata ayıklama imajı için tasarlanmıştır. Üretici yazılımı sürümüne bağlı olarak bileşenin üretici yazılımını reddetmemesi gerektiğini belirtir.

- Bu bayrak geliştirme aşamasına yöneliktir. Önceki bir üretici yazılımı sürümüne kasıtlı olarak dönmek için kullanılabilir.

- Bu bayrak üretim yazılımı tarafından yoksayılmalıdır.
16 Bileşen Kimliği 8 Bu bayt, çok bileşenli senaryolar için kullanılır. Bu alan, teklifin hedeflendiği alt bileşeni tanımlamak için kullanılabilir. Kullanılmadıysa değer 0 olmalıdır. Bileşen kimliklerinin olası değerleri aşağıdaki gibidir:

1 - 0xDF: Geçerli

0xE0 - 0xFD: Rezerve. Kullanma.

0xFF: Teklif, özel bir teklif bilgi paketidir. Ayrıntılar için bkz. FIRMWARE_UPDATE_OFFER Bilgileri.

0xFE: Teklif, özel bir teklif komut paketidir. Ayrıntılar için FIRMWARE_UPDATE_OFFER Genişletilmiş bölümüne bakın.
24 Jeton 8 Ana bilgisayar, teklif paketine bileşen için benzersiz bir belirteç ekler. Bu belirteç, teklif yanıtında bileşen tarafından döndürülmelidir.

Bu, bileşenin farklı konak veya konak türlerini ayırt etmesi gerektiğinde yararlıdır.

Kullanılacak tam değerler uygulamaya özgü değerlerdir. Örneğin, bir değer bir sürücü için, diğeri uygulama için kullanılabilir. Bu, geçerli cihaz üretici yazılımının CFU komutlarının olası birden çok gönderenini hesaba katmasını sağlar. Olası bir uygulama, ilk CFU komutunu kabul etmek ve ilk CFU işlemleri tamamlanana kadar farklı belirteçlere sahip diğer tüm komutları reddetmek olabilir.
5.2.1.2 Üretici Yazılımı Sürümü

Bu dört bayt, üretici yazılımının 32 bit sürümünü temsil eder. Üretici yazılımı sürümünün biçimi bu belirtim tarafından zorunlu değildir. Aşağıdakiler önerilir.

Tablo 5.2-4 FIRMWARE_UPDATE_OFFER Komutu - Ürün Yazılımı Sürüm Düzeni

FIRMWARE_UPDATE_OFFER Komutu - Firmware Sürüm Düzeni.

Üretici yazılımı sürümünün biçimi bu belirtim tarafından zorunlu değildir, ancak aşağıdakiler önerilen bir yönergedir.

Tablo 5.2-5 FIRMWARE_UPDATE_OFFER Komutu - Üretici Yazılımı Sürüm Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Varyant 8 Bu alan, yayın öncesi üretici yazılımı ile üretim üretici yazılımı arasında ayrım yapmak için açıklanabilir. Üretici yazılımını imzalamak için kullanılan imza türünü gösterebilir.
8 Küçük Sürüm 16 Bu alan değeri, üretici yazılımının her derlemesi için güncelleştirilmelidir.

Bu alan değeri, üretici yazılımının her derlemesi için güncelleştirilmelidir.
24 Ana Sürüm 8 Bu alan, üretici yazılımı görüntüsünün ana sürümüdür. Yeni bir ürün serisi, üretici yazılımında önemli yeni güncellemeler gibi durumlarda bu alan güncelleştirilmelidir.
5.2.1.3 Satıcıya Özgü

Bu dört bayt, teklifteki satıcı uygulamasına özgü özel bilgileri kodlamak için kullanılabilir.

5.2.1.4 Muhtelif ve Protokol sürümü

Bu dört bayt, teklifteki satıcı uygulamasına özgü özel bilgileri kodlamak için kullanılabilir.

Tablo 5.2-6 FIRMWARE_UPDATE_OFFER Komutu - Satıcıya Özgü Düzen

FIRMWARE_UPDATE_OFFER Komutu - Satıcıya Özgü Düzen.

Satıcıya Özgü bayt bitleri bu tabloda açıklanmıştır.

Tablo 5.2-7 FIRMWARE_UPDATE_OFFER Komutu - Diğer ve Protokol Sürümü
Bit Uzaklığı Alan Boyut Açıklama
0 Protokol Sürümü 4 Bu alan, konağın/teklifin CFU protokolünün 2. sürümüne karşılık geldiğini belirten 0010b olarak ayarlanmalıdır.
4 Rezerve 4 Rezerve Kullanma.
8 Rezerve 8 Rezerve Kullanma.
16 Tedarikçiye Özgü 16 Bu alan, teklifteki satıcı uygulamasına özgü özel bilgileri kodlamak için kullanılabilir.

5.2.2 Yanıtı

FIRMWARE_UPDATE_OFFER Yanıt paketi aşağıdaki gibi tanımlanır.

Tablo 5.2-8 FIRMWARE_UPDATE_OFFER Yanıt Belirteci Düzeni

FIRMWARE_UPDATE_OFFER Yanıt Belirteci Düzeni.

5.2.2.1 Jeton
Tablo 5.2-9 FIRMWARE_UPDATE_OFFER Yanıtı - Belirteç Düzeni

FIRMWARE_UPDATE_OFFER Yanıtı - Belirteç Düzeni.

Belirteç baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.2-10 FIRMWARE_UPDATE_OFFER Yanıtı - Belirteç Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Rezerve 8 Rezerve Kullanma.
8 Rezerve 8 Rezerve Kullanma.
16 Rezerve 8 Rezerve Kullanma.
24 Jeton 8 Ana bilgisayarı tanımlamak için belirteç.
5.2.2.2 Ayrılmış (B7 - B4)

Rezerve Kullanma.

5.2.2.3 Reddetme Nedeni (RR)
Tablo 5.2-11 FIRMWARE_UPDATE_OFFER Cevabı - Reddetme Nedeni Düzeni

FIRMWARE_UPDATE_OFFER Yanıtı - Reddetme Nedeni Düzeni.

Tablo 5.2-12 FIRMWARE_UPDATE_OFFER Yanıtı - Reddetme Nedeni Bitleri

Reddetme Nedeni baytının bitleri bu tabloda açıklanmıştır.

Bit Uzaklığı Alan Boyut Açıklama
0 RR Kodu 8 Teklifi reddetmek için bileşen tarafından sağlanan nedeni gösteren Reddetme Nedeni Kodu. Bu değer Durum alanına bağlıdır. Durum-RR Kodu eşlemesi için bkz. Tablo 5.2-13.
8 Rezerve 24 Rezerve Kullanma.
Tablo 5.2-13 FIRMWARE_UPDATE_OFFER Yanıt RR Kodu Değerleri

RR Kodu bayt için olası değerler bu tabloda açıklanmıştır.

RR Kodu Ad Açıklama
0x00 FIRMWARE_TEKLİFİ_RED_ET_ESKİ_FW Sunulan üretici yazılımının sürümü geçerli üretici yazılımıyla daha eski veya aynı olduğundan teklif reddedildi.
0x01 FIRMWARE_OFFER_REJECT_INV_COMPONENT Sunulan üretici yazılımı ürünün platformu için geçerli olmadığından teklif reddedildi. Bunun nedeni, desteklenmeyen bir bileşen kimliği veya sunulan görüntünün sistem donanımıyla uyumlu olmaması olabilir.
0x02 FIRMWARE_GÜNCELLEME_TEKLİFİ DEĞİŞİM_BEKLEMEDE Bileşen üretici yazılımı güncelleştirildi fakat yeni üretici yazılımına geçiş bekleniyor. Yazılım güncellemesi işlemi, değiştirme işlemi tamamlanana kadar, genellikle sıfırlama yoluyla, gerçekleşemez.
0x03 - 0x08 (Ayrılmış) Rezerve Kullanma.
0x09 - 0xDF (Ayrılmış) Rezerve Kullanma.
0xE0 - 0xFF (Satıcıya Özgü) Bu değerler protokol tasarımcıları tarafından kullanılır ve anlamı satıcıya özgüdür.
5.2.2.4 Durumu
Tablo 5.2-14 FIRMWARE_UPDATE_OFFER Yanıt Durumu Düzeni

Yanıt Durumu Düzeni FIRMWARE_UPDATE_OFFER .

Durum baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.2-15 FIRMWARE_UPDATE_OFFER Yanıtı - Durum Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Durum 8 Bu değer, bileşenin teklifi kabul etme, bekletme, atlama veya reddetme kararını gösterir. Bileşen, RR Kodu alanındaki değerin nedenini sağlar. Durum-RR Kodu eşlemesi için bkz. Tablo 5.2-16.
8 Rezerve 24 Rezerve Kullanma.

Durum bayt için olası değerler bu tabloda açıklanmıştır.

Tablo 5.2-16 FIRMWARE_UPDATE_OFFER Yanıt Durumu Değerleri
Durum Ad Açıklama
0x00 FIRMWARE_GÜNCELLEME_TEKLİFİ_ATLA Bileşen teklifi atlama kararı aldı. Ev sahibinin daha sonra tekrar teklif etmesi gerekir.
0x01 FIRMWARE GÜNCELLEME TEKLİFİNİ KABUL ET Bileşen teklifi kabul etmeye karar verdi.
0x02 Donanım Yazılımı Güncelleme Teklifini Reddet Bileşen teklifi reddetmeye karar verdi.
0x03 FIRMWARE_GÜNCELLEME_TEKLİF_MEŞGUL Cihaz meşgul, ve ana bilgisayar cihaz hazır olana kadar beklemelidir.
0x04 FIRMWARE_GÜNCELLEME_TEKLİF_KOMUTU Bileşen Bilgileri baytlarındaki Bileşen Kimliği (bkz. 5.1.2.1.1 Bileşen Bilgileri) 0xFE olarak ayarlandığında kullanılır.

Komut Kodu OFFER_NOTIFY_ON_READY isteği olarak ayarlandığında aksesuarın ek teklifleri kabul etmeye hazır olduğunu gösterir.
0xFF FIRMWARE_GÜNCELLEME_KOMUTU_DESTEKLENMİYOR Teklif isteği tanınmıyor.

5.2.3 HID Protokolüne Eşleme

Mesaj, üretici yazılım güncellemesi için ayrılmış HID Yardımcı Rapor Kimliği kullanılarak HID Çıktı Raporu mekanizmasıyla bileşene iletilir. Ekte açıklanan kullanılacak HID Yardımcı Programı TLC'sini seçin.

5.3 FIRMWARE_UPDATE_OFFER - Bilgi

Bileşen Bilgileri baytlarındaki Bileşen Kimliği (bkz. Bileşen Bilgileri) 0xFF olarak ayarlandıysa, 15 baytlık bitler ana bilgisayardan bileşene yalnızca Teklif Bilgileri'ni göstermek için yeniden tanımlanır. Bu mekanizma, genişletilebilirlik ve Konağın cihaza Teklif Listesini Başlat, Teklif Listesini Sonlandır, İşlemin Tamamını Başlat gibi belirli bilgileri sağlaması için bir yol sağlar. Teklif Bilgileri paketleri her zaman bileşen tarafından hemen Kabul Edilir.

5.3.1 Komutu

FIRMWARE_UPDATE_OFFER -Information Komut paketi aşağıdaki gibi tanımlanır:

Tablo 5.3-1 FIRMWARE_UPDATE_OFFER - Bilgi Komut Düzeni

FIRMWARE_UPDATE_OFFER - Bilgi Komut Düzeni.

5.3.1.1 Bileşeni
Tablo 5.3-2 FIRMWARE_UPDATE_OFFER - Bilgi Komutu - Bileşen Düzeni

FIRMWARE_UPDATE_OFFER - Bilgi Komutu - Bileşen Düzeni.

Bileşen baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.3-3 FIRMWARE_UPDATE_OFFER - Bilgi Komutu - Bileşen Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Bilgi Kodu 8 Bu değer, bilgi türünü gösterir. Bu değer bit maskesi değildir ve Tablo 5.3-4'te açıklanan olası değerlerden yalnızca biri olabilir.
8 Rezerve 8 Rezerve Kullanma.
16 Bileşen Kimliği 8 0xFF olarak ayarlayın.
24 Jeton Ana bilgisayar, teklif paketine bileşen için benzersiz bir belirteç ekler. Bu belirteç, teklif yanıtında bileşen tarafından döndürülmelidir.
Tablo 5.3-4 FIRMWARE_UPDATE_OFFER - Bilgi Komutu - Bilgi Kodu Değerleri
Durum Ad Açıklama
0x00 TEKLİF_BİLGİSİ_BAŞLANGIÇ_TÜM_İŞLEM Sunucunun yeni olduğunu veya yeniden yüklendiğini ve tüm teklif işlemenin (yeniden) başladığını gösterir.
0x01 OFFER_INFO_START_OFFER_LIST Aksesuarın, sistemdeki bir alt bileşenin başka bir alt bileşenden önce güncellenmesini sağlamak için indirme kuralları olması durumunda, ana bilgisayardan Teklif listesinin başlangıcını gösterir.
0x02 Teklif Bilgisi - Teklif Listesi Sonu Ev sahibinden gelen Teklif listesinin sonunu gösterir.
5.3.1.2 Ayrılmış B7 - B4

Rezerve Kullanma.

5.3.1.3 Ayrılmış B11 - B8

Rezerve Kullanma.

5.3.1.4 Ayrılmış B15 - B12

Rezerve Kullanma.

5.3.2 Yanıtı

FIRMWARE_UPDATE_OFFER - Teklif Bilgileri Yanıt paketi yanıtı aşağıdaki gibi tanımlanır.

Tablo 5.3-5 FIRMWARE_UPDATE_OFFER - Bilgi Yanıt Düzeni

FIRMWARE_UPDATE_OFFER - Bilgi Yanıt Düzeni.

5.3.2.1 Jeton
Tablo 5.3-6 FIRMWARE_UPDATE_OFFER- Bilgi Paketi Yanıt Belirteci Düzeni

FIRMWARE_UPDATE_OFFER- Bilgi Paketi Yanıt Belirteci Düzeni.

Belirteç baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.3-7 FIRMWARE_UPDATE_OFFER - Bilgi Yanıtı - Belirteç Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Rezerve 8 Rezerve Kullanma.
8 Rezerve 8 Rezerve Kullanma.
16 Rezerve 8 Rezerve Kullanma.
24 Jeton 8 Ana bilgisayarı tanımlamak için belirteç
5.3.2.2 Ayrılmış B7 - B4

Rezerve Kullanma.

5.3.2.3 Reddetme Nedeni (RR)
Tablo 5.3-8 FIRMWARE_UPDATE_OFFER - Bilgilendirme Yanıtı - RR Kod Düzeni

FIRMWARE_UPDATE_OFFER - Bilgilendirme Yanıtı - RR Kod Düzeni.

Reddetme Nedeni baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.3-9 FIRMWARE_GÜNCELLEME_TEKLİFİ- Teklif Bilgileri Yanıtı - RR Kod Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 RR Kodu 8 Teklifi reddetmek için bileşen tarafından sağlanan nedeni gösteren Reddetme Nedeni Kodu. Olası değerler Tablo 5.3-10'da açıklanmıştır. Bu değer Durum alanına bağlıdır.
8 Rezerve 24 Rezerve Kullanma.

RR Kodu bayt için olası değerler bu tabloda açıklanmıştır.

Tablo 5.3-10 FIRMWARE_UPDATE_OFFER- Bilgi Cevabı - RR Kod Değerleri
RR Kodu Ad Açıklama
0x00 FIRMWARE_TEKLİFİ_RED_ET_ESKİ_FW Sunulan üretici yazılımının sürümü geçerli üretici yazılımıyla daha eski veya aynı olduğundan teklif reddedildi.
0x01 FIRMWARE_OFFER_REJECT_INV_COMPONENT Sunulan üretici yazılımı ürünün platformu için geçerli olmadığından teklif reddedildi. Bunun nedeni, desteklenmeyen bir bileşen kimliği veya sunulan görüntünün sistem donanımıyla uyumlu olmaması olabilir.
0x02 FIRMWARE_GÜNCELLEME_TEKLİFİ DEĞİŞİM_BEKLEMEDE Bileşen üretici yazılımı güncelleştirildi fakat yeni üretici yazılımına geçiş bekleniyor. Yazılım güncellemesi işlemi, değiştirme işlemi tamamlanana kadar, genellikle sıfırlama yoluyla, gerçekleşemez.
0x03 - 0x08 (Ayrılmış) Rezerve Kullanma.
0x09 - 0xDF (Ayrılmış) Rezerve Kullanma.
0xE0 — 0xFF (Satıcıya Özgü) Bu değerler protokol tasarımcıları tarafından kullanılır ve anlamı satıcıya özgüdür.
5.3.2.4 Durumu
5.3-11 No'lu Tablo FIRMWARE_UPDATE_OFFER - Teklif Bilgisi Yanıt Durumu Düzeni

FIRMWARE_UPDATE_OFFER - Teklif Bilgileri Yanıt Durumu Düzeni.

Durum baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.3-12 FIRMWARE_UPDATE_OFFER - Teklif Bilgileri - Yanıt Durumu Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Durum 8 Bu alan FIRMWARE_UPDATE_OFFER_ACCEPT olarak ayarlanmalıdır. Bu, bileşenin teklifi kabul etmeye karar vermiş olduğunu gösterir.
8 Rezerve 24 Rezerve Kullanma.

5.4 FIRMWARE_UPDATE_OFFER - Genişletilmiş

Bileşen Bilgileri baytlarındaki Bileşen Kimliği 0xFE olarak ayarlanırsa, ana bilgisayardan cihaz üretici yazılımına Teklif Komutu'na işaret etmek için bitler (15 bayt) yeniden tanımlanır. Bu mekanizma, genişletilebilirlik ve konağın cihaza belirli bilgiler sağlaması için bir yol sağlar. Teklif Komutu paketleri, bileşen Kabul Edildi yanıt vermeye hazır olduğunda döndürülür.

5.4.1 Komutu

Bileşen Bilgileri baytlarındaki Bileşen Kimliği 0xFE olarak ayarlanırsa, dört DWORD aşağıdaki gibi yeniden tanımlanır:

Tablo 5.4-1 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Düzeni

FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Düzeni.

5.4.1.1 Bileşeni
Tablo 5.4-2 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Paketi - Komut - Bileşen Düzeni

FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Paketi - Komut - Bileşen Düzeni.

Bileşen baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.4-3 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut - Bileşen Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Komut Kodu 8 Bu değer komutun türünü gösterir. Bu değer bit maskesi değildir ve Tablo 5.4-4'te açıklanan olası değerlerden yalnızca biri olabilir.
8 Rezerve 8 Rezerve Kullanma.
16 Bileşen Kimliği 8 0xFE olarak ayarlayın.
24 Jeton Ana bilgisayar, teklif paketine bileşen için benzersiz bir belirteç ekler. Bu belirteç, teklif yanıtında bileşen tarafından döndürülmelidir.
Tablo 5.4-4 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut - Komut Kodu Değerleri
Durum Ad Açıklama
0x01 TEKLİF_HAZIR_OLDUĞUNDA_BİLDİR Teklif daha önce bileşen tarafından reddedildiyse konak tarafından gönderilir.
0x02 - 0xFF Rezerve Rezerve
5.4.1.2 Ayrılmış B7 - B4

Rezerve Kullanma.

5.4.1.3 Ayrılmış B11 - B8

Rezerve Kullanma.

5.4.1.4 Ayrılmış B15 - B12

Rezerve Kullanma.

5.4.2 Yanıtı

Cihazdan FIRMWARE_UPDATE_OFFER - Teklif Komutunun yanıtı hemen alınamayabilir. Yanıt aşağıdaki gibi tanımlanır.

Tablo 5.4-5 FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Paketi Yanıt Düzeni

FIRMWARE_UPDATE_OFFER - Genişletilmiş Komut Paketi Yanıt Düzeni.

5.4.2.1 Jeton
Tablo 5.4-6 FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi Yanıtı - Belirteç Düzeni

FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi Yanıtı - Belirteç Düzeni.

Belirteç baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.4-7 FIRMWARE_UPDATE_OFFER - Teklif Komutu Yanıtı - Belirteç Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Rezerve 8 Rezerve Kullanma.
8 Rezerve 8 Rezerve Kullanma.
16 Rezerve 8 Rezerve Kullanma.
24 Jeton 8 Ana bilgisayarı tanımlamak için belirteç.
5.4.2.2 Ayrılmış B7 - B4

Rezerve Kullanma.

5.4.2.3 Reddetme Nedeni
Tablo 5.4-8 FIRMWARE_UPDATE_OFFER - Teklif Bilgileri Paket Yanıtı RR Düzeni

FIRMWARE_UPDATE_OFFER - Teklif Bilgileri Paket Yanıtı RR Düzeni.

Reddetme Nedeni baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.4-9 FIRMWARE_UPDATE_OFFER- Teklif Komut Cevabı - RR Kodu
Bit Uzaklığı Alan Boyut Açıklama
0 RR Kodu 8 Bu değer Durum alanına bağlıdır. Olası RR Kodu değerleri için bkz. Tablo 5.4-10.
8 Rezerve 24 Rezerve Kullanma.

RR Kodu bayt için olası değerler bu tabloda açıklanmıştır.

Tablo 5.4-10 FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi - RR Kod Değerleri
RR Kodu Ad Açıklama
0x00 FIRMWARE_TEKLİFİ_RED_ET_ESKİ_FW Sunulan üretici yazılımının sürümü geçerli üretici yazılımıyla daha eski veya aynı olduğundan teklif reddedildi.
0x01 FIRMWARE_OFFER_REJECT_INV_COMPONENT Sunulan üretici yazılımı ürünün platformu için geçerli olmadığından teklif reddedildi. Bunun nedeni, desteklenmeyen bir bileşen kimliği veya sunulan görüntünün sistem donanımıyla uyumlu olmaması olabilir.
0x02 FIRMWARE_GÜNCELLEME_TEKLİFİ DEĞİŞİM_BEKLEMEDE Bileşen üretici yazılımı güncelleştirildi fakat yeni üretici yazılımına geçiş bekleniyor. Yazılım güncellemesi işlemi, değiştirme işlemi tamamlanana kadar, genellikle sıfırlama yoluyla, gerçekleşemez.
0x03 - 0x08 (Ayrılmış) Rezerve Kullanma.
0x09 - 0xDF (Ayrılmış) Rezerve Kullanma.
0xE0 — 0xFF (Satıcıya Özgü) Bu değerler protokol tasarımcıları tarafından kullanılır ve anlamı satıcıya özgüdür.
5.4.2.4 Durumu
Tablo 5.4-11 FIRMWARE_UPDATE_OFFER - Teklif Komut Paketi Yanıt Durumu Düzeni

FIRMWARE_UPDATE_OFFER - Teklif Komut Paketi Yanıt Durumu Düzeni.

Durum baytının bitleri bu tabloda açıklanmıştır.

Tablo 5.4-12 FIRMWARE_UPDATE_OFFER - Teklif Komut Paketi Yanıtı RR Kodu
Bit Uzaklığı Alan Boyut Açıklama
0 Durum 8 Bu alan FIRMWARE_UPDATE_OFFER_ACCEPT olarak ayarlanmalıdır. Bu, bileşenin teklifi kabul etmeye karar vermiş olduğunu gösterir.
8 Rezerve 24 Rezerve Kullanma.

5,5 FIRMWARE_UPDATE_CONTENT

Ana bilgisayar, üretici yazılımı içeriğini (üretici yazılımı görüntüsü) sağlamak için bu komutu cihaz üretici yazılımına gönderir. Görüntü dosyasının tamamının tek bir komuta sığmamış olması beklenir. Konağın görüntüyü daha küçük bloklara ayırması gerekir ve her komut aynı anda görüntünün bir bloğunu gönderir.

Her komutta ana bilgisayar, üretici yazılımının ilk bloğu, son bloğu vb. olup olmadığına dair ek bilgileri belirtir. Cihaz üretici yazılımının birincil bileşeni, gelen üretici yazılımı görüntüsünün her bloğunu kabul eder, bunu belleğinde depolar ve her komuta ayrı ayrı yanıt vermesi gerekir.

Birincil bileşen son bloğu aldığında, bileşen üretici yazılımı görüntüsünün tamamını doğrular (CRC denetimi, imza doğrulaması). Bu denetimlerin sonuçlarına bağlı olarak, son blok için uygun bir yanıt (başarısızlık veya başarı) döndürür.

5.5.1 Komut

Tablo 5.5-1 FIRMWARE_UPDATE_CONTENT Komut Düzeni

FIRMWARE_UPDATE_CONTENT Komut Düzeni.

5.5.1.1 Başlık (B7 - B0)
Tablo 5.5-2 FIRMWARE_UPDATE_CONTENT Komut Üst Bilgisi Düzeni

FIRMWARE_UPDATE_CONTENT Komut Üst Bilgisi Düzeni.

FIRMWARE_UPDATE_CONTENT Başlığının bölümleri bu tabloda açıklanmıştır.

Tablo 5.5-3 FIRMWARE_UPDATE_CONTENT Üst Bilgi Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Bayrak 8 Bu alan, komut hakkında ek bilgi sağlar. Bu değer, veri aktarımları için kullanılacak bayrak maskesidir. Olası değerler Tablo 5.5-4'te açıklanmıştır.
8 Veri Uzunluğu 8 Yazılacak bayt sayısını gösteren geçerli Veri alanının uzunluğu.

Bu komutun boyutu göz önüne alındığında, uzunluk için izin verilen en yüksek değer 52 bayttır.
16 Sıra Numarası 16 Bu değer konak tarafından oluşturulur ve verilen her içerik paketi için benzersizdir. Bileşenin bu isteğe yanıt olarak sıra numarasını döndürmesi gerekir.
32 Üretici Yazılımı Adresi 32 Little Endian (LSB First) Verinin yazılacağı adres. Adres 0 tabanlıdır. Üretici yazılımı, görüntüyü belleğe yerleştirirken gereken adresi belirlemek için bunu uzaklık olarak kullanır.

Bayraklar bayt için olası değerler bu tabloda açıklanmıştır.

Tablo 5.5-4 FIRMWARE_UPDATE_OFFER- Teklif Komut Paketi - Bayrak Değerleri
Bayrak Ad Açıklama
0x80 FIRMWARE GÜNCELLEME BAYRAĞI İLK BLOK Bu işaret, bunun üretici yazılımı görüntüsünün ilk bloğu olduğunu gösterir.
0x40 FIRMWARE_UPDATE_FLAG_LAST_BLOCK (Ünite Güncelleme Bayrağı Son Blok) Bu bayrak, bunun üretici yazılımı görüntüsünün son bloğu olduğunu ve görüntünün doğrulanması için hazır olduğunu gösterir.

Bileşendeki mevcut ürün yazılımının, bu bloğu kalıcı belleğe yazdıktan sonra indirilen ürün yazılımı imajının tamamında doğrulama gerçekleştirmesi önemlidir.
5.5.1.2 Verileri
Tablo 5.5-5 FIRMWARE_UPDATE_CONTENT Komut Veri Düzeni

FIRMWARE_UPDATE_CONTENT Komut Veri Düzeni.

FIRMWARE_UPDATE_CONTENT Verilerinin bitleri bu tabloda açıklanmıştır.

Tablo 5.5-6 FIRMWARE_UPDATE_CONTENT Komut VeriSi Bitleri
Bit Uzaklığı Alan Boyut Açıklama
64 Veri En fazla 52. Yazılacak olan bayt dizisi. Ana bilgisayar genellikle ürün mimarisine göre 4 baytlık bloklar gönderir. Sonunda kullanılmayan tüm baytlar 0 ile doldurulmalıdır.

5.5.2 Yanıtı

Tablo 5.5-7 FIRMWARE_UPDATE_CONTENT Komut Yanıtı Düzeni

FIRMWARE_UPDATE_CONTENT Komut Yanıtı Düzeni .

5.5.2.1 Sıra Numarası
Tablo 5.5-8 FIRMWARE_UPDATE_CONTENT Yanıtı - Sıra Numarası

FIRMWARE_UPDATE_CONTENT Yanıtı - Sıra Numarası.

FIRMWARE_UPDATE_CONTENT Yanıtının (3-0) bitleri bu tabloda açıklanmıştır.

Tablo 5.5-9 FIRMWARE_UPDATE_CONTENT - Komut - Yanıt Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Sıra Numarası 16 Bu alan, istekteki sunucu tarafından gönderilen sıra numarasıdır.
16 Rezerve 16 Rezerve Kullanma.
5.5.2.2 Durumu
Tablo 5.5-10 FIRMWARE_UPDATE_CONTENT Yanıt Durumu Düzeni

FIRMWARE_UPDATE_CONTENT Yanıt Durumu Düzeni.

FIRMWARE_UPDATE_CONTENT Yanıtının (7-4) bitleri bu tabloda açıklanmıştır.

Tablo 5.5-11 FIRMWARE_UPDATE_OFFER - Yanıt - Durum Bitleri
Bit Uzaklığı Alan Boyut Açıklama
0 Durum 8 Bu değer, cihaz bileşeni tarafından döndürülen durum kodunu gösterir. Bu bit düzeyinde değildir ve Tablo 5.5-12'de açıklanan değerlerden biri olabilir.
8 Rezerve 24 Rezerve Kullanma.

Durum bayt için olası değerler bu tabloda açıklanmıştır.

Tablo 5.5-12 FIRMWARE_UPDATE_OFFER- Yanıt - Durum Kodu Değerleri
Bayrak Ad Açıklama
0x00 FİRMWARE GÜNCELLEMESİ BAŞARILI İstek başarıyla tamamlandı.
0x01 FİRMWARE_GÜNCELLEME_HATASI_HAZIRLAMA Bileşen, üretici yazılımının içeriğini almaya hazır değildi.

Kullanılırsa, bu kod genellikle ilk bloğun yanıtında kullanılır. Örneğin, flash'ta silme hatası.
0x02 FIRMWARE_GÜNCELLEME_HATASI_YAZMA İstek baytları yazamadı.
0x03 ÜRÜN YAZILIMI GÜNCELLEME HATASI TAMAMLANDI İstek, FIRMWARE_UPDATE_FLAG_LAST_BLOCK yanıtı doğrultusunda değişim işlemini ayarlayamadı.
0x04 FİRMWARE_GÜNCELLEME_HATASI_DOĞRULA DWORD doğrulaması, FIRMWARE_UPDATE_FLAG_VERIFY yanıt olarak başarısız oldu.
0x05 FIRMWARE_GÜNCELLEME_HATASI_CRC Üretici yazılımı görüntüsünün CRC'si, FIRMWARE_UPDATE_FLAG_LAST_BLOCK yanıtında başarısız oldu.
0x06 FIRMWARE GÜNCELLEME HATASI İMZASI Üretici yazılımı imzası doğrulaması, FIRMWARE_UPDATE_FLAG_LAST_BLOCK yanıtında başarısız oldu.
0x07 FIRMWARE GÜNCELLEME HATASI - SÜRÜM FIRMWARE_UPDATE_FLAG_LAST_BLOCK'a yanıt olarak, ürün yazılımı sürümü doğrulaması başarısız oldu.
0x08 FIRMWARE_UPDATE_SWAP_PENDING (Firmware güncellemesi değişimi beklemede) Üretici yazılımı zaten güncelleştirildi ve değiştirme işlemi bekleniyor. Aksesuar sıfırlanana kadar başka Üretici Yazılımı Güncelleştirme komutları kabul edilemez.
0x09 DONANIM_YAZILIM_GUNCELLEME_HATASI_GECERSIZ_ADRES Üretici yazılımı, ileti veri içeriğinde geçersiz bir hedef adres algılamıştır.
0x0A ÜRÜN YAZILIMI_GÜNCELLEME_HATASI_TEKLİF_YOK FIRMWARE_UPDATE_OFFER Komutu, önce geçerli ve kabul edilen bir üretici yazılımı güncelleştirme teklifi alınmadan alındı.
0x0B FIRMWARE_GÜNCELLEME_HATASI_GEÇERSİZ FIRMWARE_UPDATE_OFFER Komutu için geçersiz bir geçerli Veri Uzunluğu gibi genel bir hata.
5.5.2.3 Ayrılmış B8 - B11

Rezerve Kullanma.

5.5.2.4 Ayrılmış B12 - B15

Rezerve Kullanma.

6 Ek 1: Örnek Üretici Yazılımı Güncelleştirme Programlama Komut Dizisi

6.1 Örnek 1

Aşağıdaki cihaz üretici yazılımını göz önünde bulundurun:

  • Birincil Bileşen - Bileşen Kimliği 1 - Geçerli firmware sürümü 7.0.1

  • Alt Bileşen - Bileşen Kimliği 2 - Geçerli firmware sürümü 12.4.54

  • Alt Bileşen - Bileşen Kimliği 3 - Geçerli üretici yazılımı sürümü 4.4.2

  • Alt Bileşen - Bileşen Kimliği 4 - Geçerli donanım yazılımı sürümü 23.32.9

Ana bilgisayar şu üç üretici yazılımı görüntüsüne sahiptir:

  • Bileşen Kimliği 1 - Üretici yazılımı sürümü 7.1.3

  • Bileşen Kimliği 2 - Üretici yazılımı sürüm 12.4.54

  • Bileşen Kimliği 3 - Firmware sürümü 4.5.0

Sıra şu şekilde olacaktır:

  1. Sunucu teklifleri: Bileşen Kimliği 1 - Üretici yazılımı sürümü 7.1.3

  2. Birincil bileşen teklifi kabul eder

  3. Sunucu üretici yazılımı görüntüsünü gönderir

  4. Üretici yazılımını kabul eden ve doğrulayan birincil bileşen

  5. Sunucu teklifleri: Bileşen Kimliği 2 - Üretici yazılımı sürümü 12.4.54

  6. Birincil bileşen teklifi reddeder

  7. Konak teklifleri: Bileşen Kimliği 3 - Üretici yazılımı sürümü 4.5.0

  8. Birincil bileşen teklifi kabul eder

  9. Sunucu üretici yazılımı görüntüsünü gönderir

  10. Üretici yazılımını kabul eden ve doğrulayan birincil bileşen

Tüm teklifler reddedilmediği için, ev sahibi tüm teklifleri yeniden gösteriyor.

  1. Sunucu teklifleri: Bileşen Kimliği 1 - Üretici yazılımı sürümü 7.1.3

  2. Bileşen reddediyor

  3. Sunucu teklifleri: Bileşen Kimliği 2 - Üretici yazılımı sürümü 12.4.54

  4. Bileşen reddediyor

  5. Konak teklifleri: Bileşen Kimliği 3 - Üretici yazılımı sürümü 4.5.0

  6. Bileşen reddediyor

6.2 Örnek 2

Aşağıdaki cihaz üretici yazılımını göz önünde bulundurun:

  • Birincil Bileşen - Bileşen Kimliği 1 - Geçerli firmware sürümü 7.0.1

  • Alt Bileşen - Bileşen Kimliği 2 - Geçerli firmware sürümü 12.4.54

  • Alt Bileşen - Bileşen Kimliği 3 - Geçerli üretici yazılımı sürümü 7.4.2

  • Alt Bileşen - Bileşen Kimliği 4 - Geçerli donanım yazılımı sürümü 23.32.9

Ana bilgisayar şu üç üretici yazılımı görüntüsüne sahiptir:

  • Bileşen Kimliği 1 - Üretici yazılımı sürümü 8.0.0

  • Bileşen Kimliği 2 - Üretici yazılımı sürüm 12.4.54

  • Bileşen Kimliği 3 - Üretici yazılımı sürümü 9.0.0

Buna ek olarak, uygulama alt bileşenlerin üretici yazılımı sürümünün birincil bileşende çalışan üretici yazılımı sürümünden küçük olmamasını gerektirir. Ev sahibi bu gereksinimin farkında değildir ve bu kuralın sağlanması için birincil bileşen up-to'dır.

Sıra şu şekilde olacaktır:

  1. Sunucu teklifleri: Bileşen Kimliği 1 - Üretici yazılımı sürümü 8.0.0

  2. Birincil bileşen reddeder (bileşen kimliği 3 henüz güncelleştirilmediğinden)

  3. Sunucu teklifleri: Bileşen Kimliği 2 - Üretici yazılımı sürümü 12.4.54

  4. Birincil bileşen reddeder

  5. Sunucu seçenekleri: Bileşen Kimliği 3 - Üretici yazılımı sürümü 9.0.0

  6. Birincil bileşen teklifi kabul eder

  7. Sunucu üretici yazılımı görüntüsünü gönderir

  8. Üretici yazılımını kabul eden ve doğrulayan birincil bileşen

Tüm teklifler reddedilmediği için, sunucu tüm teklifleri tekrar gösteriyor.

  1. Sunucu teklifleri: Bileşen Kimliği 1 - Üretici yazılımı sürümü 8.0.0

  2. Birincil bileşen teklifi kabul eder

  3. Sunucu üretici yazılımı görüntüsünü gönderir

  4. Üretici yazılımını kabul eden ve doğrulayan birincil bileşen

  5. Sunucu teklifleri: Bileşen Kimliği 2 - Üretici yazılımı sürümü 12.4.54

  6. Birincil bileşen reddeder

  7. Sunucu seçenekleri: Bileşen Kimliği 3 - Üretici yazılımı sürümü 9.0.0

  8. Birincil bileşen reddeder