From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1BVJBy-0002MQ-QA for qemu-devel@nongnu.org; Tue, 01 Jun 2004 20:01:14 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1BVJBw-0002Lr-Ur for qemu-devel@nongnu.org; Tue, 01 Jun 2004 20:01:14 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BVJBw-0002Lg-TK for qemu-devel@nongnu.org; Tue, 01 Jun 2004 20:01:12 -0400 Received: from [213.146.130.142] (helo=trantor.org.uk) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1BVJBL-0003aW-FU for qemu-devel@nongnu.org; Tue, 01 Jun 2004 20:00:36 -0400 From: Gianni Tedesco Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-b1EZJYutdGSO5p51mwIX" Date: Wed, 02 Jun 2004 00:59:42 +0100 Message-Id: <1086134382.21903.84.camel@sherbert> Mime-Version: 1.0 Subject: [Qemu-devel] [PATCH]: PCI ROM support. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --=-b1EZJYutdGSO5p51mwIX Content-Type: multipart/mixed; boundary="=-9LcaFVt4fhF/OkFTiPUM" --=-9LcaFVt4fhF/OkFTiPUM Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Attached is a preliminary patch which adds support for ROM resources to the PCI subsystem as a 7th resource. It's fairly self explanatory, but for some reason in my guest Linux OS, ROM resources are all sized to 2KB (but unassigned and disabled) even if the ROM base address register (@0x30) is all zeros... Not sure if it's just the version of lspci I'm using... There is probably an obvious bug that Fabrice can spot ;) --=20 // Gianni Tedesco (gianni at scaramanga dot co dot uk) lynx --source www.scaramanga.co.uk/scaramanga.asc | gpg --import 8646BE7D: 6D9F 2287 870E A2C9 8F60 3A3C 91B5 7669 8646 BE7D --=-9LcaFVt4fhF/OkFTiPUM Content-Description: Content-Disposition: attachment; filename=qemu-pci-roms-1.diff Content-Type: text/x-patch; charset=UTF-8 Content-Transfer-Encoding: base64 ZGlmZiAtdXJOIHFlbXUub3JpZy9ody9wY2kuYyBxZW11LnBjaS1yb21zL2h3L3BjaS5jDQotLS0g cWVtdS5vcmlnL2h3L3BjaS5jCTIwMDQtMDUtMzAgMjE6NDg6MjUuMDAwMDAwMDAwICswMTAwDQor KysgcWVtdS5wY2ktcm9tcy9ody9wY2kuYwkyMDA0LTA2LTAyIDAwOjUyOjIyLjAwMDAwMDAwMCAr MDEwMA0KQEAgLTEwMCw3ICsxMDAsNyBAQA0KIHsNCiAgICAgUENJSU9SZWdpb24gKnI7DQogDQot ICAgIGlmICgodW5zaWduZWQgaW50KXJlZ2lvbl9udW0gPj0gNikNCisgICAgaWYgKCh1bnNpZ25l ZCBpbnQpcmVnaW9uX251bSA+PSBQQ0lfTlVNX1JFR0lPTlMpDQogICAgICAgICByZXR1cm47DQog ICAgIHIgPSAmcGNpX2Rldi0+aW9fcmVnaW9uc1tyZWdpb25fbnVtXTsNCiAgICAgci0+YWRkciA9 IC0xOw0KQEAgLTEyNSwxNiArMTI1LDIxIEBADQogew0KICAgICBQQ0lJT1JlZ2lvbiAqcjsNCiAg ICAgaW50IGNtZCwgaTsNCi0gICAgdWludDMyX3QgbGFzdF9hZGRyLCBuZXdfYWRkcjsNCisgICAg dWludDMyX3QgbGFzdF9hZGRyLCBuZXdfYWRkciwgY29uZmlnX29mczsNCiAgICAgDQogICAgIGNt ZCA9IGxlMTZfdG9fY3B1KCoodWludDE2X3QgKikoZC0+Y29uZmlnICsgUENJX0NPTU1BTkQpKTsN Ci0gICAgZm9yKGkgPSAwOyBpIDwgNjsgaSsrKSB7DQorICAgIGZvcihpID0gMDsgaSA8IFBDSV9O VU1fUkVHSU9OUzsgaSsrKSB7DQogICAgICAgICByID0gJmQtPmlvX3JlZ2lvbnNbaV07DQorICAg ICAgICBpZiAoIGkgPT0gUENJX1JPTV9TTE9UICkgew0KKyAgICAgICAgICAgIGNvbmZpZ19vZnMg PSAweDMwOw0KKyAgICAgICAgfWVsc2V7DQorICAgICAgICAgICAgY29uZmlnX29mcyA9IDB4MTAg KyBpICogNDsNCisgICAgICAgIH0NCiAgICAgICAgIGlmIChyLT5zaXplICE9IDApIHsNCiAgICAg ICAgICAgICBpZiAoci0+dHlwZSAmIFBDSV9BRERSRVNTX1NQQUNFX0lPKSB7DQogICAgICAgICAg ICAgICAgIGlmIChjbWQgJiBQQ0lfQ09NTUFORF9JTykgew0KICAgICAgICAgICAgICAgICAgICAg bmV3X2FkZHIgPSBsZTMyX3RvX2NwdSgqKHVpbnQzMl90ICopKGQtPmNvbmZpZyArIA0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAg KyBpICogNCkpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbmZpZ19vZnMpKTsNCiAgICAgICAgICAgICAgICAgICAgIG5ld19hZGRy ID0gbmV3X2FkZHIgJiB+KHItPnNpemUgLSAxKTsNCiAgICAgICAgICAgICAgICAgICAgIGxhc3Rf YWRkciA9IG5ld19hZGRyICsgci0+c2l6ZSAtIDE7DQogICAgICAgICAgICAgICAgICAgICAvKiBO T1RFOiB3ZSBoYXZlIG9ubHkgNjRLIGlvcG9ydHMgb24gUEMgKi8NCkBAIC0xNDgsNyArMTUzLDcg QEANCiAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICBpZiAoY21kICYgUENJ X0NPTU1BTkRfTUVNT1JZKSB7DQogICAgICAgICAgICAgICAgICAgICBuZXdfYWRkciA9IGxlMzJf dG9fY3B1KCoodWludDMyX3QgKikoZC0+Y29uZmlnICsgDQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCArIGkgKiA0KSk7DQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u ZmlnX29mcykpOw0KICAgICAgICAgICAgICAgICAgICAgbmV3X2FkZHIgPSBuZXdfYWRkciAmIH4o ci0+c2l6ZSAtIDEpOw0KICAgICAgICAgICAgICAgICAgICAgbGFzdF9hZGRyID0gbmV3X2FkZHIg KyByLT5zaXplIC0gMTsNCiAgICAgICAgICAgICAgICAgICAgIC8qIE5PVEU6IHdlIGRvIG5vdCBz dXBwb3J0IHdyYXBwaW5nICovDQpAQCAtMjE2LDE4ICsyMjEsMjIgQEANCiAgICAgaW50IGNhbl93 cml0ZSwgaTsNCiAgICAgdWludDMyX3QgZW5kLCBhZGRyOw0KIA0KLSAgICBpZiAobGVuID09IDQg JiYgKGFkZHJlc3MgPj0gMHgxMCAmJiBhZGRyZXNzIDwgMHgxMCArIDQgKiA2KSkgew0KKyAgICBp ZiAobGVuID09IDQgJiYgKChhZGRyZXNzID49IDB4MTAgJiYgYWRkcmVzcyA8IDB4MTAgKyA0ICog NikgfHwgYWRkcmVzcyA9PSAweDMwKSApIHsNCiAgICAgICAgIFBDSUlPUmVnaW9uICpyOw0KICAg ICAgICAgaW50IHJlZzsNCiANCi0gICAgICAgIHJlZyA9IChhZGRyZXNzIC0gMHgxMCkgPj4gMjsN CisgICAgICAgIGlmICggYWRkcmVzcyA9PSAweDMwICkgew0KKyAgICAgICAgICAgIHJlZyA9IFBD SV9ST01fU0xPVDsNCisgICAgICAgIH1lbHNlew0KKyAgICAgICAgICAgIHJlZyA9IChhZGRyZXNz IC0gMHgxMCkgPj4gMjsNCisgICAgICAgIH0NCiAgICAgICAgIHIgPSAmZC0+aW9fcmVnaW9uc1ty ZWddOw0KICAgICAgICAgaWYgKHItPnNpemUgPT0gMCkNCiAgICAgICAgICAgICBnb3RvIGRlZmF1 bHRfY29uZmlnOw0KICAgICAgICAgLyogY29tcHV0ZSB0aGUgc3RvcmVkIHZhbHVlICovDQogICAg ICAgICB2YWwgJj0gfihyLT5zaXplIC0gMSk7DQogICAgICAgICB2YWwgfD0gci0+dHlwZTsNCi0g ICAgICAgICoodWludDMyX3QgKikoZC0+Y29uZmlnICsgMHgxMCArIHJlZyAqIDQpID0gY3B1X3Rv X2xlMzIodmFsKTsNCisgICAgICAgICoodWludDMyX3QgKikoZC0+Y29uZmlnICsgYWRkcmVzcykg PSBjcHVfdG9fbGUzMih2YWwpOw0KICAgICAgICAgcGNpX3VwZGF0ZV9tYXBwaW5ncyhkKTsNCiAg ICAgICAgIHJldHVybjsNCiAgICAgfQ0KQEAgLTgxMiw3ICs4MjEsNyBAQA0KICAgICBpZiAoZC0+ Y29uZmlnW1BDSV9JTlRFUlJVUFRfUElOXSAhPSAwKSB7DQogICAgICAgICBwcmludGYoIiAgICAg IElSUSAlZC5cbiIsIGQtPmNvbmZpZ1tQQ0lfSU5URVJSVVBUX0xJTkVdKTsNCiAgICAgfQ0KLSAg ICBmb3IoaSA9IDA7aSA8IDY7IGkrKykgew0KKyAgICBmb3IoaSA9IDA7aSA8IFBDSV9OVU1fUkVH SU9OUzsgaSsrKSB7DQogICAgICAgICByID0gJmQtPmlvX3JlZ2lvbnNbaV07DQogICAgICAgICBp ZiAoci0+c2l6ZSAhPSAwKSB7DQogICAgICAgICAgICAgcHJpbnRmKCIgICAgICBCQVIlZDogIiwg aSk7DQpAQCAtOTM0LDEzICs5NDMsMjIgQEANCiB7DQogICAgIFBDSUlPUmVnaW9uICpyOw0KICAg ICB1aW50MTZfdCBjbWQ7DQorICAgIHVpbnQzMl90IG9mczsNCiANCi0gICAgcGNpX2NvbmZpZ193 cml0ZWwoZCwgMHgxMCArIHJlZ2lvbl9udW0gKiA0LCBhZGRyKTsNCisgICAgaWYgKCByZWdpb25f bnVtID09IFBDSV9ST01fU0xPVCApIHsNCisgICAgICAgIG9mcyA9IDB4MzA7DQorICAgIH1lbHNl ew0KKyAgICAgICAgb2ZzID0gMHgxMCArIHJlZ2lvbl9udW0gKiA0Ow0KKyAgICB9DQorDQorICAg IHBjaV9jb25maWdfd3JpdGVsKGQsIG9mcywgYWRkcik7DQogICAgIHIgPSAmZC0+aW9fcmVnaW9u c1tyZWdpb25fbnVtXTsNCiANCiAgICAgLyogZW5hYmxlIG1lbW9yeSBtYXBwaW5ncyAqLw0KICAg ICBjbWQgPSBwY2lfY29uZmlnX3JlYWR3KGQsIFBDSV9DT01NQU5EKTsNCi0gICAgaWYgKHItPnR5 cGUgJiBQQ0lfQUREUkVTU19TUEFDRV9JTykNCisgICAgaWYgKCByZWdpb25fbnVtID09IFBDSV9S T01fU0xPVCApDQorICAgICAgICBjbWQgfD0gMjsNCisgICAgZWxzZSBpZiAoci0+dHlwZSAmIFBD SV9BRERSRVNTX1NQQUNFX0lPKQ0KICAgICAgICAgY21kIHw9IDE7DQogICAgIGVsc2UNCiAgICAg ICAgIGNtZCB8PSAyOw0KQEAgLTk3Nyw3ICs5OTUsNyBAQA0KICAgICAgICAgYnJlYWs7DQogICAg IGRlZmF1bHQ6DQogICAgICAgICAvKiBkZWZhdWx0IG1lbW9yeSBtYXBwaW5ncyAqLw0KLSAgICAg ICAgZm9yKGkgPSAwOyBpIDwgNjsgaSsrKSB7DQorICAgICAgICBmb3IoaSA9IDA7IGkgPCBQQ0lf TlVNX1JFR0lPTlM7IGkrKykgew0KICAgICAgICAgICAgIHIgPSAmZC0+aW9fcmVnaW9uc1tpXTsN CiAgICAgICAgICAgICBpZiAoci0+c2l6ZSkgew0KICAgICAgICAgICAgICAgICBpZiAoci0+dHlw ZSAmIFBDSV9BRERSRVNTX1NQQUNFX0lPKQ0KZGlmZiAtdXJOIHFlbXUub3JpZy92bC5oIHFlbXUu cGNpLXJvbXMvdmwuaA0KLS0tIHFlbXUub3JpZy92bC5oCTIwMDQtMDUtMzEgMTY6NTM6MjQuMDAw MDAwMDAwICswMTAwDQorKysgcWVtdS5wY2ktcm9tcy92bC5oCTIwMDQtMDYtMDIgMDA6NTI6MjIu MDAwMDAwMDAwICswMTAwDQpAQCAtMzgxLDYgKzM4MSw3IEBADQogDQogI2RlZmluZSBQQ0lfQURE UkVTU19TUEFDRV9NRU0JCTB4MDANCiAjZGVmaW5lIFBDSV9BRERSRVNTX1NQQUNFX0lPCQkweDAx DQorI2RlZmluZSBQQ0lfQUREUkVTU19TUEFDRV9ST00JCTB4MDIgLyogbm90IGEgcmVhbCBmbGFn ICovDQogI2RlZmluZSBQQ0lfQUREUkVTU19TUEFDRV9NRU1fUFJFRkVUQ0gJMHgwOA0KIA0KIHR5 cGVkZWYgc3RydWN0IFBDSUlPUmVnaW9uIHsNCkBAIC0zOTAsNiArMzkxLDggQEANCiAgICAgUENJ TWFwSU9SZWdpb25GdW5jICptYXBfZnVuYzsNCiB9IFBDSUlPUmVnaW9uOw0KIA0KKyNkZWZpbmUg UENJX1JPTV9TTE9UIDYNCisjZGVmaW5lIFBDSV9OVU1fUkVHSU9OUyA3DQogc3RydWN0IFBDSURl dmljZSB7DQogICAgIC8qIFBDSSBjb25maWcgc3BhY2UgKi8NCiAgICAgdWludDhfdCBjb25maWdb MjU2XTsNCkBAIC0zOTgsNyArNDAxLDcgQEANCiAgICAgaW50IGJ1c19udW07DQogICAgIGludCBk ZXZmbjsNCiAgICAgY2hhciBuYW1lWzY0XTsNCi0gICAgUENJSU9SZWdpb24gaW9fcmVnaW9uc1s2 XTsNCisgICAgUENJSU9SZWdpb24gaW9fcmVnaW9uc1tQQ0lfTlVNX1JFR0lPTlNdOw0KICAgICAN CiAgICAgLyogZG8gbm90IGFjY2VzcyB0aGUgZm9sbG93aW5nIGZpZWxkcyAqLw0KICAgICBQQ0lD b25maWdSZWFkRnVuYyAqY29uZmlnX3JlYWQ7DQo= --=-9LcaFVt4fhF/OkFTiPUM-- --=-b1EZJYutdGSO5p51mwIX Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQBAvRhukbV2aYZGvn0RAmbPAJ9+iQocsy/UL0Pb7B1ru55RYL/iFACfTxE1 UM4REoAVPowlwaNe5onuTxg= =/q/n -----END PGP SIGNATURE----- --=-b1EZJYutdGSO5p51mwIX--