From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=linux.intel.com (client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=yuan.li@linux.intel.com; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=linux.intel.com Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 45Tx0b41QxzDr7q for ; Thu, 20 Jun 2019 19:12:13 +1000 (AEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Jun 2019 02:12:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,396,1557212400"; d="scan'208,217";a="186746366" Received: from linux.intel.com ([10.54.29.200]) by fmsmga002.fm.intel.com with ESMTP; 20 Jun 2019 02:12:11 -0700 Received: from yli41-MOBL1 (yli41-mobl1.ccr.corp.intel.com [10.255.31.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by linux.intel.com (Postfix) with ESMTPS id 3F95658050C; Thu, 20 Jun 2019 02:12:10 -0700 (PDT) Date: Thu, 20 Jun 2019 17:12:09 +0800 From: "yuan.li@linux.intel.com" To: "Lei YU" , openbmc Subject: Re: Re: [Design][v2] PSU firmware update References: , X-Priority: 3 X-Has-Attach: no X-Mailer: Foxmail 7.2.9.156[cn] Mime-Version: 1.0 Message-ID: <201906201712079957931@linux.intel.com> Content-Type: multipart/alternative; boundary="----=_001_NextPart376565420363_=----" X-BeenThere: openbmc@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development list for OpenBMC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Jun 2019 09:12:16 -0000 This is a multi-part message in MIME format. ------=_001_NextPart376565420363_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 VGhpcyBpcyBjb29sIGRyYWZ0IGZvciBvbmUgb2YgdGhlIHNhdGVsbGl0ZSBmaXJtd2FyZSB1cGRh dGUuIFRoYW5rcyBmb3IgdGhlIGdvb2Qgc3RhcnQuIA0KSGF2ZSBzb21lIGNvbW1lbnRzIGFuZCBt b3JlIGNvbnNpZGVyYXRpb25zLCBhbHJlYWR5IGluIHRoZSBnZXJyaXQgZGVzaWduIHJldmlldy4g V2UgY2FuIHRhbGsgbW9yZSBhYm91dCB0aGVtLg0KDQoNCg0KDQp5dWFuLmxpQGxpbnV4LmludGVs LmNvbQ0KIA0KRnJvbTogTGVpIFlVDQpEYXRlOiAyMDE5LTA2LTIwIDEwOjUzDQpUbzogT3BlbkJN QyBNYWlsbGlzdA0KU3ViamVjdDogUmU6IFtEZXNpZ25dW3YyXSBQU1UgZmlybXdhcmUgdXBkYXRl DQpUaGlzIGRvYyBpcyBzdWJtaXR0ZWQgdG8NCmh0dHBzOi8vZ2Vycml0Lm9wZW5ibWMtcHJvamVj dC54eXovYy9vcGVuYm1jL2RvY3MvKy8yMjgyMQ0KUGxlYXNlIHJldmlldyB0aGUgZG9jIGluIGdl cnJpdC4NClRoYW5rcyENCiANCiANCk9uIE1vbiwgSnVuIDE3LCAyMDE5IGF0IDM6MzYgUE0gTGVp IFlVIDxtaW5lMjYwMzA5QGdtYWlsLmNvbT4gd3JvdGU6DQo+DQo+IEhpIEFsbCwNCj4NCj4gVGhp cyBpcyB0aGUgdjItdXBkYXRlZCBkZXNpZ24gZG9jIG9mIFBTVSBmaXJtd2FyZSB1cGRhdGUuDQo+ IEl0IHdpbGwgYmUgcG9zdGVkIHRvIGdlcnJpdCBmb3IgcmV2aWV3IGFmdGVyIHdlIGhhdmUgcmVz b2x2ZWQgY29tbWVudHMNCj4gaW4gdGhlIG1haWxpbmcgbGlzdC4NCj4NCj4gIyBQU1UgZmlybXdh cmUgdXBkYXRlDQo+DQo+IEF1dGhvcjoNCj4gICAgTGVpIFlVIDxtaW5lMjYwMzA5QGdtYWlsLmNv bT4gPExlaVlVPg0KPiBQcmltYXJ5IGFzc2lnbmVlOg0KPiAgICBOb25lDQo+IE90aGVyIGNvbnRy aWJ1dG9yczoNCj4gICAgU3UgWGlhbyA8c3V4aWFvQGluc3B1ci5jb20+DQo+ICAgIERlcmVrIEhv d2FyZCA8ZGVyZWtoQHVzLmlibS5jb20+DQo+IENyZWF0ZWQ6DQo+ICAgIDIwMTktMDYtMDMNCj4N Cj4NCj4gIyMgUHJvYmxlbSBEZXNjcmlwdGlvbg0KPg0KPiBUaGVyZSBpcyBubyBzdXBwb3J0IGlu IE9wZW5CTUMgdG8gdXBkYXRlIHRoZSBmaXJtd2FyZSBmb3IgUFNVcy4NCj4NCj4NCj4gIyMgQmFj a2dyb3VuZCBhbmQgUmVmZXJlbmNlcw0KPg0KPiBJbiBPcGVuQk1DLCB0aGVyZSBpcyBhbiBleGlz dGluZyBpbnRlcmZhY2UgZm9yIFtzb2Z0d2FyZSB1cGRhdGVdWzFdLg0KPg0KPiBUaGUgdXBkYXRl IHByb2Nlc3MgY29uc2lzdHMgb2Y6DQo+IDEuIFVwbG9hZGluZyBhbiBpbWFnZSB0byBCTUM7DQo+ IDIuIFByb2Nlc3NpbmcgdGhlIGltYWdlIHRvIGNoZWNrIHRoZSB2ZXJzaW9uIGFuZCBwdXJwb3Nl IG9mIHRoZSBpbWFnZTsNCj4gMy4gVmVyaWZ5aW5nIGFuZCBhY3RpdmF0aW5nIHRoZSBpbWFnZS4N Cj4NCj4gQ3VycmVudGx5LCBCTUMgYW5kIFBOT1IgZmlybXdhcmUgdXBkYXRlIGFyZSBzdXBwb3J0 ZWQ6DQo+ICogW3Bob3NwaG9yLWJtYy1jb2RlLW1nbXRdWzJdIGltcGxlbWVudHMgQk1DIGNvZGUg dXBkYXRlLCBhbmQgaXQgc3VwcG9ydHMgYWxsDQo+ICAgdGhlIGFib3ZlIDMgcHJvY2Vzc2VzLg0K PiAqIFtvcGVucG93ZXItcG5vci1jb2RlLW1nbXRdWzNdIGltcGxlbWVudHMgUE5PUiBjb2RlIHVw ZGF0ZSwgYW5kIGl0IG9ubHkNCj4gICBpbXBsZW1lbnRzICJ2ZXJpZnlpbmcgYW5kIGFjdGl2YXRp bmciIHRoZSBpbWFnZS4gSXQgc2hhcmVzIHRoZSBmdW5jdGlvbiBvZg0KPiAgIHRoZSBhYm92ZSAx ICYgMiBwcm9jZXNzZXMuDQo+DQo+IEZvciBQU1UgZmlybXdhcmUgY29kZSB1cGRhdGUsIGl0IGlz IHByZWZlcnJlZCB0byByZS11c2UgdGhlIHNhbWUgZnVuY3Rpb24gZm9yDQo+IHRoZSBhYm92ZSAx ICYgMi4NCj4NCj4NCj4gIyMgUmVxdWlyZW1lbnRzDQo+DQo+IFRoZSBQU1UgZmlybXdhcmUgc2hh bGwgYmUgdXBkYXRlZCBpbiB0aGUgYmVsb3cgY2FzZXM6DQo+IDEuIFRoZSB1c2VyIG1hbnVhbGx5 IGludm9rZSB0aGUgQVBJcyB0byBkbyB0aGUgdXBkYXRlOw0KPiAyLiBBZnRlciBCTUMgY29kZSB1 cGRhdGUgYW5kIGlmIHRoZXJlIGlzIGEgbmV3ZXIgUFNVIGltYWdlIGluIEJNQydzIGZpbGVzeXN0 ZW0sDQo+ICAgIEJNQyBzaGFsbCB1cGRhdGUgdGhlIFBTVSBmaXJtd2FyZTsNCj4gMy4gV2hlbiBh IFBTVSBpcyByZXBsYWNlZCBhbmQgdGhlIHZlcnNpb24gaXMgb2xkZXIgdGhhbiB0aGUgb25lIGlu IEJNQydzDQo+ICAgIGZpbGVzeXN0ZW0sIEJNQyBzaGFsbCB1cGRhdGUgdGhlIFBTVSBmaXJtd2Fy ZS4NCj4gNC4gVGhlcmUgYXJlIGNhc2VzIHRoYXQgYSBzeXN0ZW0gY291bGQgdXNlIGRpZmZlcmVu dCBtb2RlbHMgb2YgUFNVcywgYW5kIHRodXMNCj4gICAgZGlmZmVyZW50IFBTVSBmaXJtd2FyZSBp bWFnZXMgbmVlZCB0byBiZSBzdXBwb3J0ZWQuDQo+DQo+IEZvciBzb21lIFBTVXMsIGl0IGlzIHJp c2t5IHRvIGRvIFBTVSBjb2RlIHVwZGF0ZSB3aGlsZSB0aGUgaG9zdCBpcyBydW5uaW5nIHRvDQo+ IGF2b2lkIHBvd2VyIGxvc3MuIFRoaXMgc2hhbGwgYmUgaGFuZGxlZCBieSB2ZW5kb3Itc3BlY2lm aWMgdG9vbHMsIGJ1dCBub3QgaW4NCj4gdGhlIGdlbmVyaWMgZnJhbWV3b3JrLg0KPg0KPiBTbyB0 aGUgYmVsb3cgY2hlY2tzIGFyZSBvcHRpb25hbCBhbmQgZXhwZWN0ZWQgdG8gYmUgaGFuZGxlZCBi eSB2ZW5kb3Itc3BlY2lmaWMNCj4gdG9vbDoNCj4gMS4gSWYgdGhlIGhvc3QgaXMgcG93ZXJlZCBv ZmY7DQo+IDIuIElmIHRoZSByZWR1bmRhbnQgUFNVcyBhcmUgYWxsIGNvbm5lY3RlZDsNCj4gMy4g SWYgdGhlIEFDIGlucHV0IGFuZCBEQyBzdGFuZGJ5IG91dHB1dCBpcyBPSyBvbiBhbGwgdGhlIFBT VXM7DQo+DQo+DQo+ICMjIFByb3Bvc2VkIERlc2lnbg0KPg0KPiBBcyBkZXNjcmliZWQgaW4gdGhl IGFib3ZlIHJlcXVpcmVtZW50cywgdGhlcmUgYXJlIGRpZmZlcmVudCBjYXNlcyBQU1UgZmlybXdh cmUNCj4gaXMgdXBkYXRlZDoNCj4gKiBXaGVuIHRoZSBBUElzIGFyZSBpbnZva2VkOw0KPiAqIFdo ZW4gYSBuZXcgdmVyc2lvbiBpcyB1cGRhdGVkIHRvZ2V0aGVyIHdpdGggQk1DIGNvZGUgdXBkYXRl Ow0KPiAqIFdoZW4gYSBQU1UgaXMgcmVwbGFjZWQgd2l0aCBhbiBvbGQgdmVyc2lvbiBvZiB0aGUg ZmlybXdhcmUuDQo+DQo+ICMjIyBVcGRhdGUgYnkgQVBJDQo+DQo+IFRoaXMgbWV0aG9kIGlzIHVz dWFsbHkgdXNlZCBieSB1c2VycyB3aG8gbWFudWFsbHkgdXBkYXRlIFBTVSBmaXJtd2FyZS4NCj4N Cj4gSXQgd2lsbCByZS11c2UgdGhlIGN1cnJlbnQgaW50ZXJmYWNlcyB0byB1cGxvYWQsIHZlcmlm eSwgYW5kIGFjdGl2YXRlIHRoZQ0KPiBpbWFnZS4NCj4NCj4gMS4gVGhlICJWZXJzaW9uIiBpbnRl cmZhY2UgbmVlZHMgdG8gYmUgZXh0ZW5kZWQ6DQo+ICAgICogQWRkIGEgbmV3IFtWZXJzaW9uUHVy cG9zZV1bNF0gZm9yIFBTVTsNCj4gICAgKiBSZS11c2UgdGhlIGV4aXN0aW5nIEV4dGVuZGVkVmVy c2lvbiBhcyBhbiBhZGRpdGlvbmFsIHN0cmluZyBmb3INCj4gICAgICB2ZW5kb3Itc3BlY2lmaWMg cHVycG9zZSwgZS5nLiB0byBpbmRpY2F0ZSB0aGUgUFNVIG1vZGVsLg0KPiAyLiBSZS11c2UgdGhl IGV4aXN0aW5nIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBieSBbcGhvc3Bob3ItYm1jLWNvZGUtbWdt dF1bMl0gZm9yDQo+ICAgIHVwbG9hZGluZyBhbmQgcHJvY2Vzc2luZyB0aGUgaW1hZ2UuDQo+ICAg ICogVGhlIFBTVSB1cGRhdGUgaW1hZ2Ugc2hhbGwgYmUgYSB0YXJiYWxsIGNvbnNpc3RzIG9mIGEg TUFOSUZFU1QsIGltYWdlcywNCj4gICAgICBhbmQgc2lnbmF0dXJlcw0KPiAzLiBUaGVyZSB3aWxs IGJlIGEgbmV3IHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIHRoZSBbQWN0aXZhdGlvbl1bNV0gaW50 ZXJmYWNlIHRvDQo+ICAgIHVwZGF0ZSB0aGUgUFNVIGZpcm13YXJlLg0KPiAgICAqIFRoZSBzZXJ2 aWNlIHdpbGwgYmUgc3RhcnRlZCBieSBkZWZhdWx0IHdoZW4gQk1DIHN0YXJ0czsNCj4gICAgKiBP biBzdGFydCwgdGhlIHNlcnZpY2Ugd2lsbCBjaGVjayB0aGUgUFNVJ3MgZXhpc3RpbmcgZmlybXdh cmUgYW5kIGNyZWF0ZQ0KPiAgICAgIHRoZSBWZXJzaW9uIGFuZCBBY3RpdmF0aW9uIGludGVyZmFj ZXM7DQo+ICAgICogVGhlIHNlcnZpY2Ugd2lsbCB2ZXJpZnkgdGhlIHNpZ25hdHVyZSBvZiB0aGUg aW1hZ2U7DQo+ICAgICogVGhlIHNlcnZpY2Ugc2hhbGwgY2hlY2sgdGhlIEV4dGVuZGVkVmVyc2lv biB0byBtYWtlIHN1cmUgdGhlIGltYWdlIG1hdGNoZXMNCj4gICAgICB0aGUgUFNVIG1vZGVsLg0K PiAgICAqIFRoZSBzZXJ2aWNlIHdpbGwgaGF2ZSBhIGNvbmZpZ3VyZSBmaWxlIHRvIGRlc2NyaWJl IHRoZSBQU1UgbW9kZWwgYW5kIGl0cw0KPiAgICAgIHJlbGF0ZWQgdmVuZG9yLXNwZWNpZmljIHRv b2xzLg0KPiAgICAqIFRoZSBzZXJ2aWNlIHdpbGwgZmluZCB0aGUgbWF0Y2hlZCB2ZW5kb3Itc3Bl Y2lmaWMgdG9vbCB0byBwZXJmb3JtIHRoZSBjb2RlDQo+ICAgICAgdXBkYXRlLg0KPiAgICAqIFdo ZW4gdGhlIFBTVSBjb2RlIHVwZGF0ZSBpcyBjb21wbGV0ZWQsIGFuIGluZm9ybWF0aW9uYWwgZXZl bnQgbG9nIHNoYWxsIGJlDQo+ICAgICAgY3JlYXRlZC4NCj4gICAgKiBXaGVuIHRoZSBQU1UgY29k ZSB1cGRhdGUgaXMgY29tcGxldGVkLCB0aGUgaW1hZ2UsIE1BTklGRVNULCBhbmQgb3B0aW9uYWxs eQ0KPiAgICAgIHRoZSBzaWduYXR1cmUgd2lsbCBiZSBzYXZlZCB0byBhIHByZS1kZWZpbmVkIGRp cmVjdG9yeSBpbiByZWFkLXdyaXRlDQo+ICAgICAgZmlsZXN5c3RlbSBmb3IgZnV0dXJlIHVzZSwg aW4gY2FzZSBhIG5ldyBQU1Ugd2l0aCBvbGQgZmlybXdhcmUgaXMgcGx1Z2dlZC4NCj4gNC4gVGhl IHZlbmRvci1zcGVjaWZpYyB0b29sIHNoYWxsIHJ1biBhbGwgdGhlIGNoZWNrcyBpdCBuZWVkcyB0 byBiZSBydW4sIGJlZm9yZQ0KPiAgICBhbmQgYWZ0ZXIgdGhlIFBTVSB1cGRhdGUsIGFuZCByZXR1 cm4gYSBzdGF0dXMgdG8gdGhlIGFib3ZlIHNlcnZpY2UgdG8NCj4gICAgaW5kaWNhdGUgdGhlIHJl c3VsdC4NCj4gNS4gV2hlbiB0aGUgdmVuZG9yLXNwZWNpZmljIHRvb2wgcmV0dXJucyBlcnJvcnMs IHRoZSBQU1UgdXBkYXRlIHdpbGwgYmUgYWJvcnRlZA0KPiAgICBhbmQgYW4gZXJyb3IgZXZlbnQg bG9nIHNoYWxsIGJlIGNyZWF0ZWQuDQo+IDYuIER1cmluZyB0aGUgdXBkYXRlLCB0aGUgdmVuZG9y LXNwZWNpZmljIHRvb2wgc2hhbGwgc2V0IHRoZSByZWxhdGVkIHNlbnNvcnMgdG8NCj4gICAgbm9u LWZ1bmN0aW9uYWwsIGFuZCB3aGVuIHRoZSB1cGRhdGUgaXMgZG9uZSwgaXQgc2hhbGwgc2V0IHRo ZSByZWxhdGVkDQo+ICAgIHNlbnNvcnMgYmFjayB0byBmdW5jdGlvbmFsLg0KPg0KPiAjIyMgVXBk YXRlIGJ5IG5ldyBCTUMgaW1hZ2UNCj4NCj4gV2hlbiBCTUMgaXMgdXBkYXRlZCBhbmQgYSBuZXcg dmVyc2lvbiBvZiBQU1UgZmlybXdhcmUgaXMgaW5jbHVkZWQsIGl0IHNoYWxsIGJlDQo+IHVwZGF0 ZWQgdG8gdGhlIFBTVS4NCj4gVGhpcyB3aWxsIGJlIGRvbmUgYnkgdGhlIHNhbWUgc2VydmljZSBk ZXNjcmliZWQgYWJvdmUuDQo+DQo+IDEuIE9uIHN0YXJ0LCB0aGUgc2VydmljZSB3aWxsIGNoZWNr IHRoZSBQU1UgaW1hZ2UsIG1vZGVsIGFuZCB2ZXJzaW9uIGluIGl0cw0KPiAgICBmaWxlc3lzdGVt LCBjb21wYXJlIHdpdGggdGhlIG9uZXMgaW4gUFNVIGhhcmR3YXJlIGFuZCBkZWNpZGUgaWYgUFNV IGZpcm13YXJlDQo+ICAgIHVwZGF0ZSBzaGFsbCBiZSBwZXJmb3JtZWQuDQo+IDIuIFRoZXJlIGNv dWxkIGJlIHR3byBwbGFjZXMgY29udGFpbmluZyB0aGUgUFNVIGltYWdlczoNCj4gICAgKiBUaGUg cHJlLWRlZmluZWQgZGlyZWN0b3J5IGluIHJlYWQtb25seSBmaWxlc3lzdGVtLCB3aGljaCBpcyBw YXJ0IG9mIEJNQw0KPiAgICAgIGltYWdlLg0KPiAgICAqIFRoZSBvdGhlciBwcmUtZGVmaW5lZCBk aXJlY3RvcnkgaW4gcmVhZC13cml0ZSBmaWxlc3lzdGVtLCB3aGljaCBpcyB0aGUNCj4gICAgICBs b2NhdGlvbiBmb3IgdGhlIHNhdmVkIFBTVSBpbWFnZXMgYnkgQVBJIHVwZGF0ZS4NCj4gICAgQm90 aCBwbGFjZXMgc2hhbGwgYmUgY2hlY2tlZCBhbmQgYSBuZXdlciB2ZXJzaW9uIHdpbGwgYmUgc2Vs ZWN0ZWQgdG8gY29tcGFyZQ0KPiAgICB3aXRoIHRoZSBQU1UgaGFyZHdhcmUuDQo+IDMuIElmIFBT VSB1cGRhdGUgaXMgbmVlZGVkLCB0aGUgc2VydmljZSB3aWxsIGZpbmQgdGhlIG1hdGNoZWQgdmVu ZG9yLXNwZWNpZmljDQo+ICAgIHRvb2wgdG8gcGVyZm9ybSB0aGUgY29kZSB1cGRhdGUuDQo+IDQu IFRoZSBmb2xsb3dpbmcgcHJvY2VzcyB3aWxsIGJlIHRoZSBzYW1lIGFzIFtVcGRhdGUgYnkgQVBJ XS4NCj4NCj4gIyMjIFVwZGF0ZSBvbiByZXBsYWNlZCBQU1UNCj4NCj4gV2hlbiBhIFBTVSBpcyBy ZXBsYWNlZCwgYW5kIHRoZSBmaXJtd2FyZSB2ZXJzaW9uIGlzIG9sZGVyIHRoYW4gdGhlIG9uZSBp biBCTUMNCj4gZmlsZXN5c3RlbSwgaXQgc2hhbGwgYmUgdXBkYXRlZC4NCj4gVGhpcyB3aWxsIGJl IGRvbmUgYnkgdGhlIHNhbWUgc2VydmljZSBkZXNjcmliZWQgYWJvdmUuDQo+DQo+IDEuIE9uIHN0 YXJ0LCB0aGUgc2VydmljZSB3aWxsIHN1YnNjcmliZSB0byB0aGUgUHJvcGVydGllc0NoYW5nZWQg c2lnbmFsIHRvDQo+ICAgIHRoZSBQU1Ugb2JqZWN0IHBhdGggdG8gbW9uaXRvciB0aGUgUFNVIHBy ZXNlbmNlIHN0YXR1cy4NCj4gICAgKE9yIG1heWJlIHN1YnNjcmliZSB0aGUgSW50ZXJmYWNlc0Fk ZWQvUmVtb3ZlZCBzaWduYWw/KQ0KPiAyLiBXaGVuIGEgUFNVJ3MgcHJlc2VuY2Ugc3RhdHVzIGlz IGNoYW5nZWQgZnJvbSBmYWxzZSB0byB0cnVlIChvciB0aGUNCj4gICAgSW50ZXJmYWNlc0FkZGVk IGV2ZW50IG9jY3VycyksIHRoZSBzZXJ2aWNlIHdpbGwgY2hlY2sgdGhlIG5ldyBQU1UncyBtb2Rl bCwNCj4gICAgZmlybXdhcmUgdmVyc2lvbiB0byBkZWNpZGUgaWYgdGhlIGZpcm13YXJlIG5lZWRz IHRvIGJlIHVwZGF0ZWQuDQo+IDMuIElmIHllcywgdGhlIHNlcnZpY2Ugd2lsbCBmaW5kIHRoZSBt YXRjaGVkIHZlbmRvci1zcGVjaWZpYyB0b29sIHRvIHBlcmZvcm0NCj4gICAgdGhlIGNvZGUgdXBk YXRlLg0KPiA0LiBUaGUgZm9sbG93aW5nIHByb2Nlc3Mgd2lsbCBiZSB0aGUgc2FtZSBhcyBbVXBk YXRlIGJ5IEFQSV0uDQo+DQo+ICMjIEFsdGVybmF0aXZlcyBDb25zaWRlcmVkDQo+DQo+ICMjIyBH ZW5lcmFsIGltcGxlbWVudGF0aW9uDQo+DQo+IFRoZSBQU1UgZmlybXdhcmUgdXBkYXRlIGNvdWxk IGJlIGltcGxlbWVudGVkIGJ5IHNlcGFyYXRlZCByZWNpcGVzIHRoYXQgb25seQ0KPiBjYWxsIHZl bmRvci1zcGVjaWZpYyB0b29scy4NCj4gSXQgd2lsbCBiZSBhIGJpdCBzaW1wbGVyIGJ1dCBsb3Nl cyB0aGUgdW5pZmllZCBpbnRlcmZhY2UgcHJvdmlkZWQgYnkgT3BlbkJNQydzDQo+IGV4aXN0aW5n IFtzb2Z0d2FyZSB1cGRhdGUgaW50ZXJmYWNlXVsxXSwgYW5kIHRodXMgaXQgd2lsbCBiZWNvbWUg ZGlmZmljdWx0IHRvDQo+IHVzZSBhIHN0YW5kYXJkIEFQSSB0byB0aGUgUFNVIGZpcm13YXJlIHVw ZGF0ZS4NCj4NCj4gIyMjIFZlcnNpb25QdXJwb3NlDQo+IEl0IGlzIHBvc3NpYmxlIHRvIHJlLXVz ZSB0aGUgVmVyc2lvblB1cnBvc2UuT3RoZXIgdG8gcmVwcmVzZW50IHRoZSBQU1UgaW1hZ2Uncw0K PiB2ZXJzaW9uIHB1cnBvc2UuDQo+IEJ1dCB0aGF0IHJlcXVpcmVzIGFkZGl0aW9uYWwgaW5mb3Jt YXRpb24gYWJvdXQgdGhlIGltYWdlLCBvdGhlcndpc2UsIHRoZXJlIGlzDQo+IG5vIHdheSB0byB0 ZWxsIGlmIHRoZSBpbWFnZSBpcyBmb3IgUFNVLCBvciBDUExELCBvciBvdGhlciBwZXJpcGhlcmFs cy4NCj4gQSBuZXcgVmVyc2lvblB1cnBvc2UuUFNVIGlzIG1vcmUgc3BlY2lmaWMgYW5kIG1ha2Vz IGl0IGVhc2llciB0byBpbXBsZW1lbnQgYW5kDQo+IGZyaWVuZGx5IGZvciB0aGUgdXNlci4NCj4N Cj4gIyMjIEFkZGl0aW9uYWwgc3RyaW5nDQo+IFRoZSBkZXNpZ24gcHJvcG9zYWwgdXNlcyBFeHRl bmRlZFZlcnNpb24gYXMgdGhlIGFkZGl0aW9uYWwgc3RyaW5nIGZvcg0KPiB2ZW5kb3Itc3BlY2lm aWMgcHVycG9zZSwgZS5nLiB0byBpbmRpY2F0ZSB0aGUgUFNVIG1vZGVsLCBzbyB0aGUgaW1wbGVt ZW50YXRpb24NCj4gY291bGQgY2hlY2sgYW5kIGNvbXBhcmUgaWYgdGhlIGltYWdlIG1hdGNoZXMg dGhlIFBTVSBtb2RlbC4NCj4gSXQgaXMgcG9zc2libGUgdG8gbWFrZSBpdCBvcHRpb25hbCBvciBy ZW1vdmUgdGhpcyBhZGRpdGlvbmFsIHN0cmluZywgdGhlbiB0aGUNCj4gaW1wbGVtZW50YXRpb24g d2lsbCBub3QgdmVyaWZ5IGlmIHRoZSBpbWFnZSBtYXRjaGVzIHRoZSBQU1UuIEl0IGNvdWxkIGJl IE9LIGlmDQo+IHdlIHRydXN0IHRoZSB1c2VyIHdobyBpcyB1cGxvYWRpbmcgdGhlIGNvcnJlY3Qg aW1hZ2UsIGVzcGVjaWFsbHkgdGhlIGltYWdlDQo+IHNoYWxsIGJlIHNpZ25lZC4NCj4gQnV0IGl0 IGlzIGFsd2F5cyByaXNreSBpbiBjYXNlIHRoZSBpbWFnZSBkb2VzIG5vdCBtYXRjaCB0aGUgUFNV LCBhbmQgY2F1c2UNCj4gdW5pbnRlbmRlZCBkYW1hZ2UgaWYgdGhlIGluY29ycmVjdCBQU1UgZmly bXdhcmUgaXMgdXBkYXRlZC4NCj4NCj4NCj4gIyMgSW1wYWN0cw0KPg0KPiBUaGlzIGRlc2lnbiBv bmx5IGludHJvZHVjZXMgYSBuZXcgVmVyc2lvblB1cnBvc2UgZW51bSBpbnRvIHRoZSBkYnVzIGlu dGVyZmFjZXMuDQo+IFRoZSBuZXdseSBpbnRyb2R1Y2VkIFBTVSBmaXJtd2FyZSB1cGRhdGUgc2Vy dmljZSB3aWxsIGJlIGEgbmV3IHNlcnZpY2UgdGhhdA0KPiBpbXBsZW1lbnRzIGV4aXN0aW5nIFtB Y3RpdmF0aW9uXVs1XSBpbnRlcmZhY2UuDQo+IFNvIHRoZSBpbXBhY3RzIGFyZSBtaW5pbWFsIHRv IGV4aXN0aW5nIHN5c3RlbXMuDQo+DQo+DQo+ICMjIFRlc3RpbmcNCj4NCj4gSXQgcmVxdWlyZXMg dGhlIG1hbnVhbCB0ZXN0cyB0byB2ZXJpZnkgdGhlIFBTVSBjb2RlIHVwZGF0ZSBwcm9jZXNzLg0K PiAqIFZlcmlmeSB0aGUgUFNVIGNvZGUgdXBkYXRlIGlzIGRvbmUgb24gYWxsIFBTVXMgc3VjY2Vz c2Z1bGx5Ow0KPiAqIFZlcmlmeSB0aGUgUFNVIGNvZGUgdXBkYXRlIHdpbGwgZmFpbCBpZiB0aGUg dmVuZG9yLXNwZWNpZmljIHRvb2wgZmFpbHMgb24NCj4gICBwcmUtY29uZGl0aW9uIGNoZWNrLCBv ZiBmYWlscyBvbiB1cGRhdGluZyBQU1UuDQo+ICogVmVyaWZ5IHRoZSBQU1UgY29kZSB1cGRhdGUg aXMgcGVyZm9ybWVkIGFmdGVyIGEgbmV3IEJNQyBpbWFnZSBpcyB1cGRhdGVkDQo+ICAgY29udGFp bmluZyBhIG5ldyB2ZXJzaW9uIG9mIFBTVSBmaXJtd2FyZS4NCj4gKiBWZXJpZnkgdGhlIFBTVSBj b2RlIHVwZGF0ZSBpcyBwZXJmb3JtZWQgYWZ0ZXIgYSBQU1Ugd2l0aCBvbGQgZmlybXdhcmUgaXMN Cj4gICBwbHVnZ2VkIGluLg0KPg0KPg0KPiBbMV06IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuYm1j L3Bob3NwaG9yLWRidXMtaW50ZXJmYWNlcy90cmVlL21hc3Rlci94eXovb3BlbmJtY19wcm9qZWN0 L1NvZnR3YXJlDQo+IFsyXTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5ibWMvcGhvc3Bob3ItYm1j LWNvZGUtbWdtdC8NCj4gWzNdOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbmJtYy9vcGVucG93ZXIt cG5vci1jb2RlLW1nbXQvDQo+IFs0XTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5ibWMvcGhvc3Bo b3ItZGJ1cy1pbnRlcmZhY2VzL2Jsb2IvNTdiODc4ZDA0OGY5Mjk2NDMyNzZmMWJmN2ZkZjc1MGFi YzRiZGU4Yi94eXovb3BlbmJtY19wcm9qZWN0L1NvZnR3YXJlL1ZlcnNpb24uaW50ZXJmYWNlLnlh bWwjTDE0DQo+IFs1XTogaHR0cHM6Ly9naXRodWIuY29tL29wZW5ibWMvcGhvc3Bob3ItZGJ1cy1p bnRlcmZhY2VzL2Jsb2IvbWFzdGVyL3h5ei9vcGVuYm1jX3Byb2plY3QvU29mdHdhcmUvQWN0aXZh dGlvbi5pbnRlcmZhY2UueWFtbA0K ------=_001_NextPart376565420363_=---- Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <= body>=0A
This is cool draft for one of the sa= tellite firmware update. Thanks for the good start. 
Have some comments and more considerations, already in the ge= rrit design review. We can talk more about them.

=0A


=0A
yuan.li@linu= x.intel.com
=0A
 
=0A
> This is the v2-updated design doc of PSU firmwar= e update.
=0A
> It will be posted to gerrit for review after w= e have resolved comments
=0A
> in the mailing list.
=0A>=0A
> # PSU firmware update
=0A
>
=0A=
> Author:
=0A
>    Lei YU <mine26030= 9@gmail.com> <LeiYU>
=0A
> Primary assignee:
=0A=
>    None
=0A
> Other contributors:=0A
>    Su Xiao <suxiao@inspur.com>
= =0A
>    Derek Howard <derekh@us.ibm.com>=0A
> Created:
=0A
>    2019-06-03=0A
>
=0A
>
=0A
> ## Problem Description=0A
>
=0A
> There is no support in OpenBMC to updat= e the firmware for PSUs.
=0A
>
=0A
>
=0A
= > ## Background and References
=0A
>
=0A
> In O= penBMC, there is an existing interface for [software update][1].
=0A<= div>>
=0A
> The update process consists of:
=0A
&g= t; 1. Uploading an image to BMC;
=0A
> 2. Processing the image= to check the version and purpose of the image;
=0A
> 3. Verif= ying and activating the image.
=0A
>
=0A
> Current= ly, BMC and PNOR firmware update are supported:
=0A
> * [phosp= hor-bmc-code-mgmt][2] implements BMC code update, and it supports all=0A
>   the above 3 processes.
=0A
> * [open= power-pnor-code-mgmt][3] implements PNOR code update, and it only
=0A=
>   implements "verifying and activating" the image. It = shares the function of
=0A
>   the above 1 & 2 p= rocesses.
=0A
>
=0A
> For PSU firmware code update= , it is preferred to re-use the same function for
=0A
> the ab= ove 1 & 2.
=0A
>
=0A
>
=0A
> ## Re= quirements
=0A
>
=0A
> The PSU firmware shall be u= pdated in the below cases:
=0A
> 1. The user manually invoke t= he APIs to do the update;
=0A
> 2. After BMC code update and i= f there is a newer PSU image in BMC's filesystem,
=0A
> &= nbsp;  BMC shall update the PSU firmware;
=0A
> 3. When a= PSU is replaced and the version is older than the one in BMC's
=0A>    filesystem, BMC shall update the PSU firmware.=0A
> 4. There are cases that a system could use different mode= ls of PSUs, and thus
=0A
>    different PSU fir= mware images need to be supported.
=0A
>
=0A
> For= some PSUs, it is risky to do PSU code update while the host is running to=
=0A
> avoid power loss. This shall be handled by vendor-speci= fic tools, but not in
=0A
> the generic framework.
=0A>
=0A
> So the below checks are optional and expected to = be handled by vendor-specific
=0A
> tool:
=0A
> 1.= If the host is powered off;
=0A
> 2. If the redundant PSUs ar= e all connected;
=0A
> 3. If the AC input and DC standby outpu= t is OK on all the PSUs;
=0A
>
=0A
>
=0A
= > ## Proposed Design
=0A
>
=0A
> As described i= n the above requirements, there are different cases PSU firmware
=0A<= div>> is updated:
=0A
> * When the APIs are invoked;
= =0A
> * When a new version is updated together with BMC code update= ;
=0A
> * When a PSU is replaced with an old version of the fi= rmware.
=0A
>
=0A
> ### Update by API
=0A>
=0A
> This method is usually used by users who manually = update PSU firmware.
=0A
>
=0A
> It will re-use th= e current interfaces to upload, verify, and activate the
=0A
>= image.
=0A
>
=0A
> 1. The "Version" interface nee= ds to be extended:
=0A
>    * Add a new [Versio= nPurpose][4] for PSU;
=0A
>    * Re-use the exi= sting ExtendedVersion as an additional string for
=0A
> &= nbsp;    vendor-specific purpose, e.g. to indicate the PSU = model.
=0A
> 2. Re-use the existing functions implemented by [= phosphor-bmc-code-mgmt][2] for
=0A
>    uploadi= ng and processing the image.
=0A
>    * The PSU= update image shall be a tarball consists of a MANIFEST, images,
=0A<= div>>      and signatures
=0A
> 3.= There will be a new service that implements the [Activation][5] interface= to
=0A
>    update the PSU firmware.
=0A<= div>>    * The service will be started by default when B= MC starts;=0A
>    * On start, the service wil= l check the PSU's existing firmware and create
=0A
> &nbs= p;    the Version and Activation interfaces;
=0A
&= gt;    * The service will verify the signature of the image= ;
=0A
>    * The service shall check the Extend= edVersion to make sure the image matches
=0A
>  &nbs= p;   the PSU model.
=0A
>    * The se= rvice will have a configure file to describe the PSU model and its
= =0A
>      related vendor-specific tools.<= /div>=0A
>    * The service will find the matched ve= ndor-specific tool to perform the code
=0A
>   =    update.
=0A
>    * When the PSU co= de update is completed, an informational event log shall be
=0A
&= gt;      created.
=0A
>  &n= bsp; * When the PSU code update is completed, the image, MANIFEST, and opt= ionally
=0A
>      the signature will= be saved to a pre-defined directory in read-write
=0A
> =      filesystem for future use, in case a new PSU with= old firmware is plugged.
=0A
> 4. The vendor-specific tool sh= all run all the checks it needs to be run, before
=0A
> &= nbsp;  and after the PSU update, and return a status to the above ser= vice to
=0A
>    indicate the result.
=0A<= div>> 5. When the vendor-specific tool returns errors, the PSU update w= ill be aborted
=0A
>    and an error event log = shall be created.
=0A
> 6. During the update, the vendor-speci= fic tool shall set the related sensors to
=0A
>  &nb= sp; non-functional, and when the update is done, it shall set the related<= /div>=0A
>    sensors back to functional.
=0A>
=0A
> ### Update by new BMC image
=0A
>=0A
> When BMC is updated and a new version of PSU firmware is i= ncluded, it shall be
=0A
> updated to the PSU.
=0A
&g= t; This will be done by the same service described above.
=0A
>= ;
=0A
> 1. On start, the service will check the PSU image, mod= el and version in its
=0A
>    filesystem, comp= are with the ones in PSU hardware and decide if PSU firmware
=0A
= >    update shall be performed.
=0A
> 2. The= re could be two places containing the PSU images:
=0A
> &= nbsp;  * The pre-defined directory in read-only filesystem, which is = part of BMC
=0A
>      image.
= =0A
>    * The other pre-defined directory in read-w= rite filesystem, which is the
=0A
>    &nb= sp; location for the saved PSU images by API update.
=0A
>&nbs= p;   Both places shall be checked and a newer version will be se= lected to compare
=0A
>    with the PSU hardwar= e.
=0A
> 3. If PSU update is needed, the service will find the= matched vendor-specific
=0A
>    tool to perfo= rm the code update.
=0A
> 4. The following process will be the= same as [Update by API].
=0A
>
=0A
> ### Update o= n replaced PSU
=0A
>
=0A
> When a PSU is replaced,= and the firmware version is older than the one in BMC
=0A
> f= ilesystem, it shall be updated.
=0A
> This will be done by the= same service described above.
=0A
>
=0A
> 1. On s= tart, the service will subscribe to the PropertiesChanged signal to
= =0A
>    the PSU object path to monitor the PSU pres= ence status.
=0A
>    (Or maybe subscribe the I= nterfacesAded/Removed signal?)
=0A
> 2. When a PSU's presence = status is changed from false to true (or the
=0A
>  =   InterfacesAdded event occurs), the service will check the new PSU's= model,
=0A
>    firmware version to decide if = the firmware needs to be updated.
=0A
> 3. If yes, the service= will find the matched vendor-specific tool to perform
=0A
>&n= bsp;   the code update.
=0A
> 4. The following proce= ss will be the same as [Update by API].
=0A
>
=0A
>= ; ## Alternatives Considered
=0A
>
=0A
> ### Gener= al implementation
=0A
>
=0A
> The PSU firmware upd= ate could be implemented by separated recipes that only
=0A
> = call vendor-specific tools.
=0A
> It will be a bit simpler but= loses the unified interface provided by OpenBMC's
=0A
> exist= ing [software update interface][1], and thus it will become difficult to=0A
> use a standard API to the PSU firmware update.
=0A>
=0A
> ### VersionPurpose
=0A
> It is possi= ble to re-use the VersionPurpose.Other to represent the PSU image's
= =0A
> version purpose.
=0A
> But that requires addition= al information about the image, otherwise, there is
=0A
> no w= ay to tell if the image is for PSU, or CPLD, or other peripherals.
= =0A
> A new VersionPurpose.PSU is more specific and makes it easier= to implement and
=0A
> friendly for the user.
=0A
&g= t;
=0A
> ### Additional string
=0A
> The design pr= oposal uses ExtendedVersion as the additional string for
=0A
>= vendor-specific purpose, e.g. to indicate the PSU model, so the implement= ation
=0A
> could check and compare if the image matches the P= SU model.
=0A
> It is possible to make it optional or remove t= his additional string, then the
=0A
> implementation will not = verify if the image matches the PSU. It could be OK if
=0A
> w= e trust the user who is uploading the correct image, especially the image<= /div>=0A
> shall be signed.
=0A
> But it is always risk= y in case the image does not match the PSU, and cause
=0A
> un= intended damage if the incorrect PSU firmware is updated.
=0A
>= ;
=0A
>
=0A
> ## Impacts
=0A
>
= =0A
> This design only introduces a new VersionPurpose enum into th= e dbus interfaces.
=0A
> The newly introduced PSU firmware upd= ate service will be a new service that
=0A
> implements existi= ng [Activation][5] interface.
=0A
> So the impacts are minimal= to existing systems.
=0A
>
=0A
>
=0A
>= ; ## Testing
=0A
>
=0A
> It requires the manual te= sts to verify the PSU code update process.
=0A
> * Verify the = PSU code update is done on all PSUs successfully;
=0A
> * Veri= fy the PSU code update will fail if the vendor-specific tool fails on=0A
>   pre-condition check, of fails on updating PSU.=0A
> * Verify the PSU code update is performed after a new BMC= image is updated
=0A
>   containing a new version o= f PSU firmware.
=0A
> * Verify the PSU code update is performe= d after a PSU with old firmware is
=0A
>   plugged i= n.
=0A
>
=0A
>
=0A
> [1]: https://gith= ub.com/openbmc/phosphor-dbus-interfaces/tree/master/xyz/openbmc_project/So= ftware
=0A
> [2]: https://github.com/openbmc/phosphor-bmc-code= -mgmt/
=0A
> [3]: https://github.com/openbmc/openpower-pnor-co= de-mgmt/
=0A
> [4]: https://github.com/openbmc/phosphor-dbus-i= nterfaces/blob/57b878d048f929643276f1bf7fdf750abc4bde8b/xyz/openbmc_projec= t/Software/Version.interface.yaml#L14
=0A
> [5]: https://githu= b.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Sof= tware/Activation.interface.yaml
=0A
=0A ------=_001_NextPart376565420363_=------