From owner-freebsd-mips@FreeBSD.ORG Sun Mar 11 02:12:00 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 828471065675; Sun, 11 Mar 2012 02:12:00 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 10AA08FC1A; Sun, 11 Mar 2012 02:12:00 +0000 (UTC) Received: by dald2 with SMTP id d2so3699325dal.13 for ; Sat, 10 Mar 2012 18:11:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=IMh+UNtLZpQ6Q6NkCe+zzdzPxJs+m2H1OQrdTGsiRUg=; b=IZ/IZQP1Fxb23q68HwTf+Z8j3u5QTNq6oNswTQTThxtk1NCk+Qyncaex2wCFts1BoD uzRZk3NBypzLdlI0xG9vQFMPdPYcxzoZTZNv0FXRDQ5PVxYGSIRSz0jPjK4PeKl62ICI H3g/zTNRymQTpYrpzQ0WpQ8zCuPlTrX17sWYlwGCpOzKxJJvCd7ZvoYzrxW3o7Vu4/0K 0btH7HSL7yuDb3H8svSrw/REcogD1a4pgBewpQU04kmpOO6lSot/RSwtdeTcM0+1i8ja R83CRhHO9tFLYduJMnAEfvry/Pn6Bhh4u+8EsElBW+5wBcleAo/6LYvoyFLXnhw38JPS c6lg== MIME-Version: 1.0 Received: by 10.68.232.2 with SMTP id tk2mr12479181pbc.68.1331431919843; Sat, 10 Mar 2012 18:11:59 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Sat, 10 Mar 2012 18:11:59 -0800 (PST) In-Reply-To: References: <20120310151128.647d4a18.ray@ddteam.net> <20120311002908.58ea1513.ray@ddteam.net> <20120311010755.ca51d8d0.ray@ddteam.net> Date: Sat, 10 Mar 2012 18:11:59 -0800 X-Google-Sender-Auth: NoPwbfP_cwYepwR8lV2nIYXxDqg Message-ID: From: Adrian Chadd To: Juli Mallett Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Aleksandr Rybalko , freebsd-mips@freebsd.org Subject: Re: [PATCH] Fix for using NFS root with if_arge X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2012 02:12:00 -0000 On 10 March 2012 15:12, Juli Mallett wrote: > On Sat, Mar 10, 2012 at 15:07, Aleksandr Rybalko wrote: >> Will test it with other zrouter guys, and then commit if you don't do >> that faster :) > > I'd rather you commit it as I don't know about the rest of the patch > myself. =A0I still think freeing the descriptor contents in arge_stop() > and doing the init stuff in init would be a better long-term fix, but > I can live with this for now :) That's exactly what I wanted to do and why I didn't want to commit ray's solution. :-) I just have been preoccupied with the wifi stuff. if someone wants to code up and test that particular solution I will review it and commit it to -HEAD. Adrian From owner-freebsd-mips@FreeBSD.ORG Sun Mar 11 02:13:19 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 227391065672 for ; Sun, 11 Mar 2012 02:13:19 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9DB368FC1F for ; Sun, 11 Mar 2012 02:13:18 +0000 (UTC) Received: by vcmm1 with SMTP id m1so3562113vcm.13 for ; Sat, 10 Mar 2012 18:13:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=GLbhFLquKMwXGh+doNXonK8pV505Mh450CNs4OcTXLM=; b=Q4uSW3rysh2NZvkbYPFk9onEWmJwAvj+Q5DqYhqFeWWV1/zuS85L6vgzF7xvTJlpOC qzxhW2up5TArV7ZTE3mVy6daZ5wWwr5bvp3qw5+hQPhKZqQe1MeePEMVVOSNjSEIqerX 2FlOK8fSuwknow5ACfZjNaPrj0cZK9tD/OpLyK6PkOWfiaJvutYKowcgY7ifVeflM+f0 i1VQwD2Ok6ctD40eoVtv8wXrjNUOn7bOYbvMbO1R3te9N3lQeeMJTo+h3TCwsxG8sBem lWzkhqHhMhcrKGEwzobqPO3TJEvr/2QuNAIr2v9wRV+fNmc0F7tUas0Dq/a248VeS17Z meXA== MIME-Version: 1.0 Received: by 10.52.30.98 with SMTP id r2mr11099305vdh.8.1331431997757; Sat, 10 Mar 2012 18:13:17 -0800 (PST) Sender: pkelsey@gmail.com Received: by 10.220.230.2 with HTTP; Sat, 10 Mar 2012 18:13:17 -0800 (PST) Date: Sat, 10 Mar 2012 21:13:17 -0500 X-Google-Sender-Auth: i3qZRFOPo-F7arVbSYvVjmfHVso Message-ID: From: Patrick Kelsey To: freebsd-mips@freebsd.org Content-Type: multipart/mixed; boundary=20cf3079b89e44da4204baee2b02 Subject: [PATCH] MMC/SD SPI-mode driver X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2012 02:13:19 -0000 --20cf3079b89e44da4204baee2b02 Content-Type: text/plain; charset=ISO-8859-1 There are two .diff files attached to this message. The first is an MMC/SD SPI-mode driver (mmcspi) that implements the existing mmc/sd bridge interface and talks to the spibus interface (the latter with a few modifications). The second is the changes to the ar71xx_spi driver that I made to support the mmcspi driver. I developed these patches using a MikroTik RB450G and tested it with 31 different microSD cards. Change details for mmcspi.diff: Existing mmc/sd stack: - Added concept of bus type (bus_type_sd vs. bus_type_spi) - Fixed some typos - Fixed some math errors in csd decode - Fixed bad lookup table - Fixed bad arg to mmc_send_app_op_cond() during probe - Added setting of block length on card - Added detection (and skipping) of password-locked cards - Avoid card select and bus timing commands when bus type is bus_type_spi - Added new command flag MMC_CMD_IS_APP to annotate ACMD_x commands Existing spibus interface: - Incorporated Luiz Otavio O Souza's acquire/release/write patch - Added configuration methods - Added flag to allow transactions with chip select high (needed for proper sd card init) Change details for ar71xx_spi.diff - Incorporated Luiz Otavio O Souza's patch implementing his changes to spibus_if - Added configuration methods and clock setting support -Patrick --20cf3079b89e44da4204baee2b02 Content-Type: application/octet-stream; name="mmcspi.diff" Content-Disposition: attachment; filename="mmcspi.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gznfuf5f0 SW5kZXg6IHN5cy9hcm0vYXQ5MS9hdDkxX21jaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9hcm0vYXQ5 MS9hdDkxX21jaS5jCShyZXZpc2lvbiAyMzE4OTQpCisrKyBzeXMvYXJtL2F0OTEvYXQ5MV9tY2ku Ywkod29ya2luZyBjb3B5KQpAQCAtNjU5LDYgKzY1OSw5IEBACiAJc3dpdGNoICh3aGljaCkgewog CWRlZmF1bHQ6CiAJCXJldHVybiAoRUlOVkFMKTsKKwljYXNlIE1NQ0JSX0lWQVJfQlVTX1RZUEU6 CisJCSooaW50ICopcmVzdWx0ID0gYnVzX3R5cGVfc2Q7CisJCWJyZWFrOwogCWNhc2UgTU1DQlJf SVZBUl9CVVNfTU9ERToKIAkJKihpbnQgKilyZXN1bHQgPSBzYy0+aG9zdC5pb3MuYnVzX21vZGU7 CiAJCWJyZWFrOwpAQCAtNzQyLDYgKzc0NSw3IEBACiAJCXNjLT5ob3N0Lmlvcy52ZGQgPSB2YWx1 ZTsKIAkJYnJlYWs7CiAJLyogVGhlc2UgYXJlIHJlYWQtb25seSAqLworCWNhc2UgTU1DQlJfSVZB Ul9CVVNfVFlQRToKIAljYXNlIE1NQ0JSX0lWQVJfQ0FQUzoKIAljYXNlIE1NQ0JSX0lWQVJfSE9T VF9PQ1I6CiAJY2FzZSBNTUNCUl9JVkFSX0ZfTUlOOgpJbmRleDogc3lzL2NvbmYvZmlsZXMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gc3lzL2NvbmYvZmlsZXMJKHJldmlzaW9uIDIzMTg5NCkKKysrIHN5cy9jb25m L2ZpbGVzCSh3b3JraW5nIGNvcHkpCkBAIC0xNDU5LDYgKzE0NTksNyBAQAogZGV2L21tYy9tbWNi cl9pZi5tCQlzdGFuZGFyZAogZGV2L21tYy9tbWNidXNfaWYubQkJc3RhbmRhcmQKIGRldi9tbWMv bW1jc2QuYwkJCW9wdGlvbmFsIG1tY3NkCitkZXYvbW1jL21tY3NwaS5jCQlvcHRpb25hbCBtbWNz cGkKIGRldi9tbi9pZl9tbi5jCQkJb3B0aW9uYWwgbW4gcGNpCiBkZXYvbXBzL21wcy5jCQkJb3B0 aW9uYWwgbXBzCiBkZXYvbXBzL21wc19jb25maWcuYwkJb3B0aW9uYWwgbXBzCkluZGV4OiBzeXMv bW9kdWxlcy9tbWNzcGkvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21vZHVsZXMvbW1jc3Bp L01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgc3lzL21vZHVsZXMvbW1jc3BpL01ha2VmaWxlCShy ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKKworLlBBVEg6ICR7LkNVUkRJUn0vLi4vLi4vZGV2 L21tYworCitLTU9EPQltbWNzcGkKK1NSQ1M9CW1tY3NwaS5jIG1tY2JyX2lmLmggc3BpYnVzX2lm LmggZGV2aWNlX2lmLmggYnVzX2lmLmgKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDog c3lzL2Rldi9tbWMvbW1jYnJ2YXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvZGV2L21tYy9tbWNicnZh ci5oCShyZXZpc2lvbiAyMzE4OTQpCisrKyBzeXMvZGV2L21tYy9tbWNicnZhci5oCSh3b3JraW5n IGNvcHkpCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAibW1jYnJfaWYuaCIKIAogZW51bSBt bWNicl9kZXZpY2VfaXZhcnMgeworICAgIE1NQ0JSX0lWQVJfQlVTX1RZUEUsCiAgICAgTU1DQlJf SVZBUl9CVVNfTU9ERSwKICAgICBNTUNCUl9JVkFSX0JVU19XSURUSCwKICAgICBNTUNCUl9JVkFS X0NISVBfU0VMRUNULApAQCAtODIsNiArODMsNyBAQAogI2RlZmluZSBNTUNCUl9BQ0NFU1NPUih2 YXIsIGl2YXIsIHR5cGUpCQkJCQlcCiAJX19CVVNfQUNDRVNTT1IobW1jYnIsIHZhciwgTU1DQlIs IGl2YXIsIHR5cGUpCiAKK01NQ0JSX0FDQ0VTU09SKGJ1c190eXBlLCBCVVNfVFlQRSwgaW50KQog TU1DQlJfQUNDRVNTT1IoYnVzX21vZGUsIEJVU19NT0RFLCBpbnQpCiBNTUNCUl9BQ0NFU1NPUihi dXNfd2lkdGgsIEJVU19XSURUSCwgaW50KQogTU1DQlJfQUNDRVNTT1IoY2hpcF9zZWxlY3QsIENI SVBfU0VMRUNULCBpbnQpCkluZGV4OiBzeXMvZGV2L21tYy9tbWNyZWcuaAo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBzeXMvZGV2L21tYy9tbWNyZWcuaAkocmV2aXNpb24gMjMxODk0KQorKysgc3lzL2Rldi9tbWMv bW1jcmVnLmgJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAKICNkZWZpbmUJTU1DX0NN RF9CQwkoMnVsIDw8IDUpCS8qIEJyb2FkY2FzdCBjb21tYW5kLCBubyByZXNwb25zZSAqLwogI2Rl ZmluZQlNTUNfQ01EX0JDUgkoM3VsIDw8IDUpCS8qIEJyb2FkY2FzdCBjb21tYW5kIHdpdGggcmVz cG9uc2UgKi8KICNkZWZpbmUJTU1DX0NNRF9NQVNLCSgzdWwgPDwgNSkKKyNkZWZpbmUJTU1DX0NN RF9JU19BUFAgICgxdWwgPDwgOCkJLyogQ29tbWFuZCBpcyBiZWluZyBzZW50IGFzIGFuIEFQUCBj b21tYW5kICovCiAKIC8qIFBvc3NpYmxlIHJlc3BvbnNlIHR5cGVzIGRlZmluZWQgaW4gdGhlIHN0 YW5kYXJkOiAqLwogI2RlZmluZQlNTUNfUlNQX05PTkUJKDApCkluZGV4OiBzeXMvZGV2L21tYy9i cmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvZGV2L21tYy9icmlkZ2UuaAkocmV2aXNpb24gMjMx ODk0KQorKysgc3lzL2Rldi9tbWMvYnJpZGdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsx MDAsMTAgQEAKIAljc19kb250Y2FyZSA9IDAsIGNzX2hpZ2gsIGNzX2xvdwogfTsKIAorZW51bSBt bWNfYnVzX3R5cGUgeworCWJ1c190eXBlX3NkID0gMCwgYnVzX3R5cGVfc3BpCit9OworCiBlbnVt IG1tY19idXNfd2lkdGggewogCWJ1c193aWR0aF8xID0gMCwgYnVzX3dpZHRoXzQgPSAyLCBidXNf d2lkdGhfOCA9IDMKIH07CkBAIC0xMTEsNiArMTE1LDcgQEAKIHN0cnVjdCBtbWNfaW9zIHsKIAl1 aW50MzJfdAljbG9jazsJLyogU3BlZWQgb2YgdGhlIGNsb2NrIGluIEh6IHRvIG1vdmUgZGF0YSAq LwogCWVudW0gbW1jX3ZkZAl2ZGQ7CS8qIFZvbHRhZ2UgdG8gYXBwbHkgdG8gdGhlIHBvd2VyIHBp bnMvICovCisJZW51bSBtbWNfYnVzX3R5cGUgYnVzX3R5cGU7CiAJZW51bSBtbWNfYnVzX21vZGUg YnVzX21vZGU7CiAJZW51bSBtbWNfY2hpcF9zZWxlY3QgY2hpcF9zZWxlY3Q7CiAJZW51bSBtbWNf YnVzX3dpZHRoIGJ1c193aWR0aDsKSW5kZXg6IHN5cy9kZXYvbW1jL21tY3NwaS5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHN5cy9kZXYvbW1jL21tY3NwaS5jCShyZXZpc2lvbiAwKQorKysgc3lzL2Rldi9tbWMv bW1jc3BpLmMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjU1OSBAQAorLyotCisgKiBDb3B5cmln aHQgKGMpIDIwMTIgUGF0cmljayBLZWxzZXkuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0 aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVVUSE9SIEFORCBDT05UUklC VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBVVRIT1IgT1IgQ09OVFJJ QlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xV RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT CisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO RVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9S IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg T0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKiBQb3J0aW9ucyBv ZiB0aGlzIHNvZnR3YXJlIG1heSBoYXZlIGJlZW4gZGV2ZWxvcGVkIHdpdGggcmVmZXJlbmNlIHRv CisgKiB0aGUgU0QgU2ltcGxpZmllZCBTcGVjaWZpY2F0aW9uLiAgVGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyIG1heSBhcHBseToKKyAqCisgKiBUaGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXBwbHkg dG8gdGhlIHJlbGVhc2Ugb2YgdGhlIHNpbXBsaWZpZWQKKyAqIHNwZWNpZmljYXRpb24gKCJTaW1w bGlmaWVkIFNwZWNpZmljYXRpb24iKSBieSB0aGUgU0QgQ2FyZCBBc3NvY2lhdGlvbiBhbmQKKyAq IHRoZSBTRCBHcm91cC4gVGhlIFNpbXBsaWZpZWQgU3BlY2lmaWNhdGlvbiBpcyBhIHN1YnNldCBv ZiB0aGUgY29tcGxldGUgU0QKKyAqIFNwZWNpZmljYXRpb24gd2hpY2ggaXMgb3duZWQgYnkgdGhl IFNEIENhcmQgQXNzb2NpYXRpb24gYW5kIHRoZSBTRAorICogR3JvdXAuIFRoaXMgU2ltcGxpZmll ZCBTcGVjaWZpY2F0aW9uIGlzIHByb3ZpZGVkIG9uIGEgbm9uLWNvbmZpZGVudGlhbAorICogYmFz aXMgc3ViamVjdCB0byB0aGUgZGlzY2xhaW1lcnMgYmVsb3cuIEFueSBpbXBsZW1lbnRhdGlvbiBv ZiB0aGUKKyAqIFNpbXBsaWZpZWQgU3BlY2lmaWNhdGlvbiBtYXkgcmVxdWlyZSBhIGxpY2Vuc2Ug ZnJvbSB0aGUgU0QgQ2FyZAorICogQXNzb2NpYXRpb24sIFNEIEdyb3VwLCBTRC0zQyBMTEMgb3Ig b3RoZXIgdGhpcmQgcGFydGllcy4KKyAqCisgKiBEaXNjbGFpbWVyczoKKyAqCisgKiBUaGUgaW5m b3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBTaW1wbGlmaWVkIFNwZWNpZmljYXRpb24gaXMgcHJl c2VudGVkIG9ubHkKKyAqIGFzIGEgc3RhbmRhcmQgc3BlY2lmaWNhdGlvbiBmb3IgU0QgQ2FyZHMg YW5kIFNEIEhvc3QvQW5jaWxsYXJ5IHByb2R1Y3RzIGFuZAorICogaXMgcHJvdmlkZWQgIkFTLUlT IiB3aXRob3V0IGFueSByZXByZXNlbnRhdGlvbnMgb3Igd2FycmFudGllcyBvZiBhbnkKKyAqIGtp bmQuIE5vIHJlc3BvbnNpYmlsaXR5IGlzIGFzc3VtZWQgYnkgdGhlIFNEIEdyb3VwLCBTRC0zQyBM TEMgb3IgdGhlIFNECisgKiBDYXJkIEFzc29jaWF0aW9uIGZvciBhbnkgZGFtYWdlcywgYW55IGlu ZnJpbmdlbWVudHMgb2YgcGF0ZW50cyBvciBvdGhlcgorICogcmlnaHQgb2YgdGhlIFNEIEdyb3Vw LCBTRC0zQyBMTEMsIHRoZSBTRCBDYXJkIEFzc29jaWF0aW9uIG9yIGFueSB0aGlyZAorICogcGFy dGllcywgd2hpY2ggbWF5IHJlc3VsdCBmcm9tIGl0cyB1c2UuIE5vIGxpY2Vuc2UgaXMgZ3JhbnRl ZCBieQorICogaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZSB1bmRlciBhbnkgcGF0 ZW50IG9yIG90aGVyIHJpZ2h0cyBvZiB0aGUKKyAqIFNEIEdyb3VwLCBTRC0zQyBMTEMsIHRoZSBT RCBDYXJkIEFzc29jaWF0aW9uIG9yIGFueSB0aGlyZCBwYXJ0eS4gTm90aGluZworICogaGVyZWlu IHNoYWxsIGJlIGNvbnN0cnVlZCBhcyBhbiBvYmxpZ2F0aW9uIGJ5IHRoZSBTRCBHcm91cCwgdGhl IFNELTNDIExMQworICogb3IgdGhlIFNEIENhcmQgQXNzb2NpYXRpb24gdG8gZGlzY2xvc2Ugb3Ig ZGlzdHJpYnV0ZSBhbnkgdGVjaG5pY2FsCisgKiBpbmZvcm1hdGlvbiwga25vdy1ob3cgb3Igb3Ro ZXIgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIHRvIGFueSB0aGlyZCBwYXJ0eS4KKyAqCisgKgor ICogQ1JDIHJvdXRpbmVzIGFkYXB0ZWQgZnJvbSBwdWJsaWMgZG9tYWluIGNvZGUgd3JpdHRlbiBi eSBMYW1tZXJ0IEJpZXMuCisgKgorICogCisgKiBUaGlzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9m IG1tY2JyIHRoYXQgY29tbXVuaWNhdGVzIHdpdGggU0QvTU1DIGNhcmRzIGluCisgKiBTUEkgbW9k ZSB2aWEgc3BpYnVzX2lmLiAgSW4gb3JkZXIgdG8gbWluaW1pemUgY2hhbmdlcyB0byB0aGUgZXhp c3RpbmcKKyAqIE1NQy9TRCBzdGFjayAoYW5kIGFsbG93IGZvciBtYXhpbWFsIHJldXNlIG9mIHRo ZSBzYW1lKSwgdGhlIGJlaGF2aW9yIG9mCisgKiB0aGUgU0QtYnVzIGNvbW1hbmQgc2V0IGlzIGVt dWxhdGVkIGFzIG11Y2ggYXMgcG9zc2libGUsIHdoZXJlIHJlcXVpcmVkLgorICoKKyAqIFRoZSBT UEkgYnVzIG93bmVyc2hpcCBiZWhhdmlvciBpcyB0byBhY3F1aXJlIHRoZSBTUEkgYnVzIGZvciB0 aGUgZW50aXJlCisgKiBkdXJhdGlvbiB0aGF0IHRoZSBNTUMgaG9zdCBpcyBhY3F1aXJlZC4KKyAq CisgKiBDUkMgY2hlY2tpbmcgaXMgZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGRpc2Fi bGVkIGF0IHJ1bnRpbWUKKyAqIHBlci1jYXJkIHZpYSBzeXNjdGwgKGUuZy4gc3lzY3RsIGRldi5t bWNzcGkuMC51c2VfY3JjPTApLgorICoKKyAqIENvbnNpZGVyZWQsIGJ1dCBub3QgaW1wbGVtZW50 ZWQ6CisgKiAgIC0gQ2FyZCBwcmVzZW5jZSBkZXRlY3Rpb24KKyAqICAgLSBDYXJkIHBvd2VyIGNv bnRyb2wKKyAqICAgLSBEZXRlY3Rpb24gb2YgbG9jayBzd2l0Y2ggc3RhdGUgb24gY2FyZHMgdGhh dCBoYXZlIHRoZW0KKyAqICAgLSBZaWVsZGluZyB0aGUgQ1BVIGR1cmluZyBsb25nIGNhcmQgYnVz eSBjeWNsZXMKKyAqCisgKiBPcmlnaW5hbGx5IGRldmVsb3BlZCBhbmQgdGVzdGVkIHVzaW5nIGEg TWljcm9UaWsgUm91dGVyQk9BUkQgUkI0NTBHIGFuZAorICogdGhlIDMxIG1pY3JvU0QgY2FyZHMg bGlzdGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBmaWxlLgorICovCisKKyNpbmNsdWRlIDxzeXMvY2Rl ZnMuaD4KK19fRkJTRElEKCIkRnJlZUJTRCQiKTsKKworCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+ CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisjaW5jbHVkZSA8c3lzL2J1cy5oPgorI2luY2x1ZGUg PHN5cy9jb25mLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9sb2Nr Lmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2lu Y2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKworI2luY2x1 ZGUgPGRldi9tbWMvYnJpZGdlLmg+CisjaW5jbHVkZSA8ZGV2L21tYy9tbWNyZWcuaD4KKyNpbmNs dWRlIDxkZXYvbW1jL21tY2JydmFyLmg+CisjaW5jbHVkZSA8ZGV2L3NwaWJ1cy9zcGkuaD4KKwor CisjaW5jbHVkZSAibW1jYnJfaWYuaCIKKyNpbmNsdWRlICJzcGlidXNfaWYuaCIKKworI2RlZmlu ZSBNTUNTUElfUkVUUklFUyAzIC8qIG51bWJlciBvZiByZXRyaWVzIGZvciBpbnRlcm5hbGx5IG9y aWdpbmF0ZWQgY29tbWFuZHMgKi8KKyNkZWZpbmUgTU1DU1BJX1RJTUVPVVRfU0VDIDMKKworI2Rl ZmluZSBNTUNTUElfTUFYX1JTUF9MRU4gNSAgLyogbWF4IGxlbmd0aCBvZiBhbiBSbiByZXNwb25z ZSAqLworI2RlZmluZSBNTUNTUElfT0NSX0xFTiAgICAgNAorCisjZGVmaW5lIE1NQ1NQSV9EQVRB X0JMT0NLX0xFTiA1MTIKKyNkZWZpbmUgTU1DU1BJX0RBVEFfQ1JDX0xFTiAgIDIKKworI2RlZmlu ZSBNTUNTUElfUE9MTF9MRU4gOCAgLyogYW1vdW50IHRvIHJlYWQgd2hlbiBzZWFyY2hpbmcgKi8K KworI2RlZmluZSBNTUNTUElfUjFfTUFTSyAgMHg4MCAgLyogbWFzayB1c2VkIHRvIHNlYXJjaCBm b3IgUjEgdG9rZW5zICovCisjZGVmaW5lIE1NQ1NQSV9SMV9WQUxVRSAweDAwICAvKiB2YWx1ZSB1 c2VkIHRvIHNlYXJjaCBmb3IgUjEgdG9rZW5zICovCisjZGVmaW5lIE1NQ1NQSV9EUl9NQVNLICAw eDExICAvKiBtYXNrIHVzZWQgdG8gc2VhcmNoIGZvciBkYXRhIHJlc3BvbnNlIHRva2VucyAqLwor I2RlZmluZSBNTUNTUElfRFJfVkFMVUUgMHgwMSAgLyogdmFsdWUgdXNlZCB0byBzZWFyY2ggZm9y IGRhdGEgcmVzcG9uc2UgdG9rZW5zICovCisKKyNkZWZpbmUgTU1DU1BJX0RSX0VSUl9NQVNLICAw eDBlCisjZGVmaW5lIE1NQ1NQSV9EUl9FUlJfTk9ORSAgMHgwNAorI2RlZmluZSBNTUNTUElfRFJf RVJSX0NSQyAgIDB4MGEKKyNkZWZpbmUgTU1DU1BJX0RSX0VSUl9XUklURSAweDBjCisKKyNkZWZp bmUgTU1DU1BJX1RPS0VOX1NCICAgICAgMHhmZSAgLyogc3RhcnQgYmxvY2sgdG9rZW4gZm9yIHJl YWQgc2luZ2xlLAorCQkJCSAgICAgIHJlYWQgbXVsdGksIGFuZCB3cml0ZSBzaW5nbGUgKi8KKyNk ZWZpbmUgTU1DU1BJX1RPS0VOX1NCX1dNICAgMHhmYyAgLyogc3RhcnQgYmxvY2sgdG9rZW4gZm9y IHdyaXRlIG11bHRpICovCisjZGVmaW5lIE1NQ1NQSV9UT0tFTl9TVCAgICAgIDB4ZmQgIC8qIHN0 b3AgdHJhbnNtaXNzaW9uIHRva2VuICovCisjZGVmaW5lIE1NQ1NQSV9JU19ERV9UT0tFTih4KSAo MCA9PSAoKHgpICYgMHhmMCkpICAvKiBkZXRlY3RvciBmb3IgZGF0YSBlcnJvciB0b2tlbiAqLwor CisKKyNkZWZpbmUgTU1DU1BJX1IxX0lETEUgICAgICAweDAxCisjZGVmaW5lIE1NQ1NQSV9SMV9F UkFTRV9SU1QgMHgwMgorI2RlZmluZSBNTUNTUElfUjFfSUxMX0NNRCAgIDB4MDQKKyNkZWZpbmUg TU1DU1BJX1IxX0NSQ19FUlIgICAweDA4CisjZGVmaW5lIE1NQ1NQSV9SMV9FUkFTRV9FUlIgMHgx MAorI2RlZmluZSBNTUNTUElfUjFfQUREUl9FUlIgIDB4MjAKKyNkZWZpbmUgTU1DU1BJX1IxX1BB UkFNX0VSUiAweDQwCisKKyNkZWZpbmUgTU1DU1BJX1IxX0VSUl9NQVNLIChNTUNTUElfUjFfUEFS QU1fRVJSIHwgTU1DU1BJX1IxX0FERFJfRVJSIHwJXAorCQkJICAgIE1NQ1NQSV9SMV9FUkFTRV9F UlIgfCBNTUNTUElfUjFfQ1JDX0VSUiB8CVwKKwkJCSAgICBNTUNTUElfUjFfSUxMX0NNRCkKKwor I2RlZmluZSBNTUNTUElfUjJfTE9DS0VEICAgICAgMHgwMQorI2RlZmluZSBNTUNTUElfUjJfV1Bf RVJfTENLICAgMHgwMgorI2RlZmluZSBNTUNTUElfUjJfRVJSICAgICAgICAgMHgwNAorI2RlZmlu ZSBNTUNTUElfUjJfQ0NfRVJSICAgICAgMHgwOAorI2RlZmluZSBNTUNTUElfUjJfRUNDX0ZBSUwg ICAgMHgxMAorI2RlZmluZSBNTUNTUElfUjJfV1BfVklPTEFURSAgMHgyMAorI2RlZmluZSBNTUNT UElfUjJfRVJBU0VfUEFSQU0gMHg0MAorI2RlZmluZSBNTUNTUElfUjJfT09SX0NTRF9PVyAgMHg4 MAorCisvKiBjb21tYW5kcyB0aGF0IG9ubHkgYXBwbHkgdG8gdGhlIFNQSSBpbnRlcmZhY2UgKi8K KyNkZWZpbmUgTU1DU1BJX1JFQURfT0NSICAgNTgKKyNkZWZpbmUgTU1DU1BJX0NSQ19PTl9PRkYg NTkKKworCitzdHJ1Y3QgbW1jc3BpX2NvbW1hbmQgeworCXN0cnVjdCBtbWNfY29tbWFuZAkqbW1j X2NtZDsJLyogY29tbWFuZCBwYXNzZWQgZnJvbSBtbWMgbGF5ZXIgKi8KKwl1aW50MzJfdAkJb3Bj b2RlOwkJLyogcG9zc2libHkgdHJhbnNsYXRlZCBvcGNvZGUgKi8KKwl1aW50MzJfdAkJYXJnOwkJ LyogcG9zc2libHkgdHJhbnNsYXRlZCBhcmcgKi8KKwl1aW50MzJfdAkJZmxhZ3M7CQkvKiBwb3Nz aWJseSB0cmFuc2xhdGVkIGZsYWdzICovCisJdWludDMyX3QJCXJldHJpZXM7CS8qIHBvc3NpYmx5 IHRyYW5zbGF0ZWQgcmV0cnkgY291bnQgKi8KKwlzdHJ1Y3QgbW1jX2RhdGEJCSpkYXRhOwkJLyog cG9zc2libHkgcmVkaXJlY3RlZCBkYXRhIHNlZ21lbnQgKi8KKwl1bnNpZ25lZCBpbnQJCWVycm9y X21hc2s7CS8qIG1hc2sgdG8gdXNlIHdoZW4gY2hlY2tpbmcgZm9yIFIxIGVycm9ycyAqLworCXVu c2lnbmVkIGNoYXIJCXVzZV9jcmM7CS8qIGRvIGNyYyBjaGVja2luZyBmb3IgdGhpcyBjb21tYW5k ICovCisJdW5zaWduZWQgY2hhcgkJcnNwX3R5cGU7CS8qIHR5cGUgb2YgcmVzcG9uc2UgdG8gdGhp cyBjb21tYW5kICovCisjZGVmaW5lIE1NQ1NQSV9SU1BfUjEgICAgMAorI2RlZmluZSBNTUNTUElf UlNQX1IxQiAgIDEKKyNkZWZpbmUgTU1DU1BJX1JTUF9SMiAgICAyCisjZGVmaW5lIE1NQ1NQSV9S U1BfUjMgICAgMworI2RlZmluZSBNTUNTUElfUlNQX1I3ICAgIDQKKwl1bnNpZ25lZCBjaGFyCQly c3BfbGVuOwkvKiBsZW5ndGggb2YgcmVzcG9uc2UgdG8gdGhpcyBjb21tYW5kICovCisJc3RydWN0 IG1tY19kYXRhCQlsZGF0YTsJCS8qIGxvY2FsIHJlYWQgZGF0YSAqLworfTsKKworc3RydWN0IG1t Y3NwaV9zbG90IHsKKwlzdHJ1Y3QgbW1jc3BpX3NvZnRjCSpzYzsJCS8qIGJhY2sgcG9pbnRlciB0 byBwYXJlbnQgYnJpZGdlICovCisJZGV2aWNlX3QJCWRldjsJCS8qIG1tYyBkZXZpY2UgZm9yIHNs b3QgKi8KKwlib29sZWFuX3QJCWJ1c19idXN5OyAgICAgICAvKiBpbmRpY2F0ZXMgd2hldGhlciBo b3N0IGhhcyBiZWVuIGFjcXVpcmVkICovCisJc3RydWN0IG1tY19ob3N0IAlob3N0OwkJLyogaG9z dCBwYXJhbWV0ZXJzICovCisJc3RydWN0IG10eAkJbXR4OwkJLyogc2xvdCBtdXRleCAqLworCXVp bnQ4X3QJCQlsYXN0X29jcltNTUNTUElfT0NSX0xFTl07IC8qIGxhc3Qgb2NyIHJldHJpZXZlZCBh ZnRlciBDTUQ4ICovCisJdWludDMyX3QJCWxhc3Rfb3Bjb2RlOwkvKiBsYXN0IG9wY29kZSByZXF1 ZXN0ZWQgYnkgbW1jIGxheWVyICovCisJdWludDMyX3QJCWxhc3RfZmxhZ3M7CS8qIGxhc3QgZmxh Z3MgcmVxdWVzdGVkIGJ5IG1tYyBsYXllciAqLworCXVuc2lnbmVkIGludAkJY3JjX2VuYWJsZWQ7 CS8qIHdoZXRoZXIgY3JjIGNoZWNraW5nIGlzIGVuYWJsZWQgb24gdGhlIGNhcmQgKi8KKwl1bnNp Z25lZCBpbnQJCWNyY19pbml0X2RvbmU7ICAvKiB3aGV0aGVyIHRoZSBpbml0aWFsIGNyYyBzZXR0 aW5nIGhhcworCQkJCQkJICAgYmVlbiBzZW50IHRvIHRoZSBjYXJkICovCisjZGVmaW5lIE1NQ1NQ SV9NQVhfTERBVEFfTEVOIDE2CisJdWludDhfdAkJCWxkYXRhX2J1ZltNTUNTUElfTUFYX0xEQVRB X0xFTl07Cit9OworCisKK3N0cnVjdCBtbWNzcGlfc29mdGMgeworCWRldmljZV90CQlkZXY7CQkv KiB0aGlzIG1tYyBicmlkZ2UgZGV2aWNlICovCisJZGV2aWNlX3QJCWJ1c2RldjsJCS8qIHNwaSBi dXMgZGV2aWNlIHRoaXMgYnJpZGdlIGlzIG9uICovCisJc3RydWN0IG1tY3NwaV9zbG90CXNsb3Q7 CQkvKiBzdGF0ZSBmb3IgdGhlIHNpbmdsZSBzdXBwb3J0ZWQgc2xvdCAqLworCXVuc2lnbmVkIGlu dAkJdXNlX2NyYzsJLyogd2hldGhlciB0byBlbmFibGUgY29tbWFuZCBDUkMgY2hlY2tpbmcgKi8K K307CisKKworLyogZGV2aWNlIGludGVyZmFjZSAqLworc3RhdGljIGludCBtbWNzcGlfcHJvYmUo ZGV2aWNlX3QgZGV2KTsKK3N0YXRpYyBpbnQgbW1jc3BpX2F0dGFjaChkZXZpY2VfdCBkZXYpOwor c3RhdGljIGludCBtbWNzcGlfZGV0YWNoKGRldmljZV90IGRldik7CitzdGF0aWMgaW50IG1tY3Nw aV9zdXNwZW5kKGRldmljZV90IGRldik7CitzdGF0aWMgaW50IG1tY3NwaV9yZXN1bWUoZGV2aWNl X3QgZGV2KTsKKworLyogYnVzIGludGVyZmFjZSAqLworc3RhdGljIGludCBtbWNzcGlfcmVhZF9p dmFyKGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB3aGljaCwKKwkJCSAgICB1aW50 cHRyX3QgKnJlc3VsdCk7CitzdGF0aWMgaW50IG1tY3NwaV93cml0ZV9pdmFyKGRldmljZV90IGJ1 cywgZGV2aWNlX3QgY2hpbGQsIGludCB3aGljaCwKKwkJCSAgICAgdWludHB0cl90IHZhbHVlKTsK KworLyogbW1jYnIgaW50ZXJmYWNlICovCitzdGF0aWMgaW50IG1tY3NwaV91cGRhdGVfaW9zKGRl dmljZV90IGJyZGV2LCBkZXZpY2VfdCByZXFkZXYpOworc3RhdGljIGludCBtbWNzcGlfcmVxdWVz dChkZXZpY2VfdCBicmRldiwgZGV2aWNlX3QgcmVxZGV2LAorCQkJICBzdHJ1Y3QgbW1jX3JlcXVl c3QgKnJlcSk7CitzdGF0aWMgaW50IG1tY3NwaV9nZXRfcm8oZGV2aWNlX3QgYnJkZXYsIGRldmlj ZV90IHJlcWRldik7CitzdGF0aWMgaW50IG1tY3NwaV9hY3F1aXJlX2hvc3QoZGV2aWNlX3QgYnJk ZXYsIGRldmljZV90IHJlcWRldik7CitzdGF0aWMgaW50IG1tY3NwaV9yZWxlYXNlX2hvc3QoZGV2 aWNlX3QgYnJkZXYsIGRldmljZV90IHJlcWRldik7CisKKy8qIHN1cHBvcnRpbmcgY2FzdCAqLwor c3RhdGljIHZvaWQgbW1jc3BpX3Nsb3RfaW5pdChkZXZpY2VfdCBicmRldiwgc3RydWN0IG1tY3Nw aV9zbG90ICpzbG90KTsKK3N0YXRpYyB2b2lkIG1tY3NwaV9zbG90X2ZpbmkoZGV2aWNlX3QgYnJk ZXYsIHN0cnVjdCBtbWNzcGlfc2xvdCAqc2xvdCk7CisKK3N0YXRpYyB2b2lkIG1tY3NwaV9jYXJk X2FkZChzdHJ1Y3QgbW1jc3BpX3Nsb3QgKnNsb3QpOworc3RhdGljIHZvaWQgbW1jc3BpX2NhcmRf ZGVsZXRlKHN0cnVjdCBtbWNzcGlfc2xvdCAqc2xvdCk7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQg bW1jc3BpX2RvX3NwaV9yZWFkKGRldmljZV90IGRldiwgdWludDhfdCAqZGF0YSwKKwkJCQkgICAg ICAgdW5zaWduZWQgaW50IGxlbik7CitzdGF0aWMgdW5zaWduZWQgaW50IG1tY3NwaV9kb19zcGlf d3JpdGUoZGV2aWNlX3QgZGV2LCB1aW50OF90ICpjbWQsCisJCQkJCXVuc2lnbmVkIGludCBjbWRs ZW4sIHVpbnQ4X3QgKmRhdGEsCisJCQkJCXVuc2lnbmVkIGludCBkYXRhbGVuKTsKKworc3RhdGlj IHVuc2lnbmVkIGludCBtbWNzcGlfd2FpdF9mb3Jfbm90X2J1c3koZGV2aWNlX3QgZGV2KTsKK3N0 YXRpYyB1bnNpZ25lZCBpbnQgbW1jc3BpX3NoaWZ0X2NvcHkodWludDhfdCAqZGVzdCwgdWludDhf dCAqc3JjLAorCQkJCSAgICAgIHVuc2lnbmVkIGludCBzcmNfbGVuLCB1bnNpZ25lZCBpbnQgc2hp ZnQpOworc3RhdGljIHVuc2lnbmVkIGludCBtbWNzcGlfZ2V0X3Jlc3BvbnNlX3Rva2VuKGRldmlj ZV90IGRldiwgdWludDhfdCBtYXNrLAorCQkJCQkgICAgICB1aW50OF90IHZhbHVlLCB1bnNpZ25l ZCBpbnQgbGVuLAorCQkJCQkgICAgICB1bnNpZ25lZCBpbnQgaGFzX2J1c3ksCisJCQkJCSAgICAg IHVpbnQ4X3QgKnJzcGJ1Zik7CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbW1jc3BpX3NldF91cF9j b21tYW5kKGRldmljZV90IGRldiwKKwkJCQkJICBzdHJ1Y3QgbW1jc3BpX2NvbW1hbmQgKm1tY3Nw aV9jbWQsCisJCQkJCSAgc3RydWN0IG1tY19jb21tYW5kICptbWNfY21kKTsKK3N0YXRpYyB1bnNp Z25lZCBpbnQgbW1jc3BpX3NlbmRfY21kKGRldmljZV90IGRldiwgc3RydWN0IG1tY3NwaV9jb21t YW5kICpjbWQsCisJCQkJICAgIHVpbnQ4X3QgKnJzcGJ1Zik7CisKK3N0YXRpYyB1bnNpZ25lZCBp bnQgbW1jc3BpX3JlYWRfYmxvY2soZGV2aWNlX3QgZGV2LCB1aW50OF90ICpkYXRhLAorCQkJCSAg ICAgIHVuc2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGludCBjaGVja19jcmMxNiwKKwkJCQkgICAg ICB1bnNpZ25lZCBpbnQgY2hlY2tfY3JjNyk7CitzdGF0aWMgdW5zaWduZWQgaW50IG1tY3NwaV9z ZW5kX3N0b3AoZGV2aWNlX3QgZGV2LCB1bnNpZ25lZCBpbnQgcmV0cmllcyk7CitzdGF0aWMgdW5z aWduZWQgaW50IG1tY3NwaV9yZWFkX3BoYXNlKGRldmljZV90IGRldiwgc3RydWN0IG1tY3NwaV9j b21tYW5kICpjbWQpOworc3RhdGljIHVuc2lnbmVkIGludCBtbWNzcGlfd3JpdGVfYmxvY2soZGV2 aWNlX3QgZGV2LCB1aW50OF90ICpkYXRhLAorCQkJCSAgICAgICB1bnNpZ25lZCBpbnQgaXNfbXVs dGksCisJCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgdXNlX2NyYywgdWludDhfdCAqc3RhdHVzKTsK K3N0YXRpYyB1bnNpZ25lZCBpbnQgbW1jc3BpX3dyaXRlX3BoYXNlKGRldmljZV90IGRldiwgc3Ry dWN0IG1tY3NwaV9jb21tYW5kICpjbWQpOworc3RhdGljIHVuc2lnbmVkIGludCBtbWNzcGlfdHJh bnNsYXRlX3Jlc3BvbnNlKGRldmljZV90IGRldiwKKwkJCQkJICAgICAgc3RydWN0IG1tY3NwaV9j b21tYW5kICpjbWQsCisJCQkJCSAgICAgIHVpbnQ4X3QgKnJzcGJ1Zik7CitzdGF0aWMgdW5zaWdu ZWQgaW50IG1tY3NwaV9nZXRfb2NyKGRldmljZV90IGRldiwgdWludDhfdCAqb2NyYnVmKTsKK3N0 YXRpYyB1bnNpZ25lZCBpbnQgbW1jc3BpX3NldF9jcmNfb25fb2ZmKGRldmljZV90IGRldiwgdW5z aWduZWQgaW50IGNyY19vbik7CitzdGF0aWMgdW5zaWduZWQgaW50IG1tY3NwaV91cGRhdGVfY3Jj X3NldHRpbmcoZGV2aWNlX3QgZGV2LCB1bnNpZ25lZCBpbnQgY3JjX29uKTsKKworc3RhdGljIHVp bnQ4X3QgdXBkYXRlX2NyYzcodWludDhfdCBjcmMsIHVpbnQ4X3QgKmJ1ZiwgdW5zaWduZWQgaW50 IGxlbik7CitzdGF0aWMgdWludDE2X3QgdXBkYXRlX2NyYzE2KHVpbnQxNl90IGNyYywgdWludDhf dCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKTsKK3N0YXRpYyB2b2lkIGluaXRfY3JjN3RhYih2b2lk KTsKK3N0YXRpYyB2b2lkIGluaXRfY3JjMTZ0YWIodm9pZCk7CisKK3N0YXRpYyBpbnQgbW1jc3Bp X21vZGV2ZW50X2hhbmRsZXIobW9kdWxlX3QgbW9kLCBpbnQgd2hhdCwgdm9pZCAqYXJnKTsKKwor I2lmIGRlZmluZWQoTU1DU1BJX0VOQUJMRV9ERUJVR19GVU5DUykKK3N0YXRpYyB2b2lkIG1tY3Nw aV9kdW1wX2RhdGEoZGV2aWNlX3QgZGV2LCBjb25zdCBjaGFyICpsYWJlbCwgdWludDhfdCAqZGF0 YSwKKwkJCSAgICAgdW5zaWduZWQgaW50IGxlbik7CitzdGF0aWMgdm9pZCBtbWNzcGlfZHVtcF9z cGlfYnVzKGRldmljZV90IGRldiwgdW5zaWduZWQgaW50IGxlbik7CisjZW5kaWYKKworCisjZGVm aW5lIE1NQ1NQSV9MT0NLX1NMT1QoX3Nsb3QpCQkJbXR4X2xvY2soJihfc2xvdCktPm10eCkKKyNk ZWZpbmUJTU1DU1BJX1VOTE9DS19TTE9UKF9zbG90KQkJbXR4X3VubG9jaygmKF9zbG90KS0+bXR4 KQorI2RlZmluZSBNTUNTUElfU0xPVF9MT0NLX0lOSVQoX3Nsb3QpCQlcCisgIG10eF9pbml0KCYo X3Nsb3QpLT5tdHgsICJTRCBzbG90IG10eCIsICJtbWNzcGkiLCBNVFhfREVGKQorI2RlZmluZSBN TUNTUElfU0xPVF9MT0NLX0RFU1RST1koX3Nsb3QpCQltdHhfZGVzdHJveSgmKF9zbG90KS0+bXR4 KTsKKyNkZWZpbmUgTU1DU1BJX0FTU0VSVF9TTE9UX0xPQ0tFRChfc2xvdCkJbXR4X2Fzc2VydCgm KF9zbG90KS0+bXR4LCBNQV9PV05FRCk7CisjZGVmaW5lIE1NQ1NQSV9BU1NFUlRfU0xPVF9VTkxP Q0tFRChfc2xvdCkJbXR4X2Fzc2VydCgmKF9zbG90KS0+bXR4LCBNQV9OT1RPV05FRCk7CisKKwor I2RlZmluZSBUUkFDRV9aT05FX0VOQUJMRUQoem9uZSkgKHRyYWNlX3pvbmVfbWFzayAmIFRSQUNF X1pPTkVfIyN6b25lKQorCisjZGVmaW5lIFRSQUNFX0VOVEVSKGRldikJCQkJCVwKKwlpZiAoVFJB Q0VfWk9ORV9FTkFCTEVEKEVOVEVSKSkgewkJCVwKKwkJZGV2aWNlX3ByaW50ZihkZXYsICIlczog ZW50ZXJcbiIsIF9fZnVuY19fKTsJXAorCX0KKworI2RlZmluZSBUUkFDRV9FWElUKGRldikJCQkJ CQlcCisJaWYgKFRSQUNFX1pPTkVfRU5BQkxFRChFWElUKSkgewkJCQlcCisJCWRldmljZV9wcmlu dGYoZGV2LCAiJXM6IGV4aXRcbiIsIF9fZnVuY19fKTsJXAorCX0KKworI2RlZmluZSBUUkFDRShk ZXYsIHpvbmUsIC4uLikJCQkJXAorCWlmIChUUkFDRV9aT05FX0VOQUJMRUQoem9uZSkpIHsJCQlc CisJCWRldmljZV9wcmludGYoZGV2LCBfX1ZBX0FSR1NfXyk7CVwKKwl9CisKKworI2RlZmluZSBU UkFDRV9aT05FX0VOVEVSICAgKDF1bCA8PCAwKSAgLyogZnVuY3Rpb24gZW50cmFuY2UgKi8KKyNk ZWZpbmUgVFJBQ0VfWk9ORV9FWElUICAgICgxdWwgPDwgMSkgIC8qIGZ1bmN0aW9uIGV4aXQgKi8K KyNkZWZpbmUgVFJBQ0VfWk9ORV9BQ1RJT04gICgxdWwgPDwgMikgIC8qIGZvciBuYXJyYXRpbmcg bWFqb3IgYWN0aW9ucyB0YWtlbiAqLworI2RlZmluZSBUUkFDRV9aT05FX1JFU1VMVCAgKDF1bCA8 PCAzKSAgLyogZm9yIG5hcnJhdGluZyByZXN1bHRzIG9mIGFjdGlvbnMgKi8KKyNkZWZpbmUgVFJB Q0VfWk9ORV9FUlJPUiAgICgxdWwgPDwgNCkgIC8qIGZvciByZXBvcnRpbmcgZXJyb3JzICovCisj ZGVmaW5lIFRSQUNFX1pPTkVfREFUQSAgICAoMXVsIDw8IDUpICAvKiBmb3IgZHVtcGluZyBidXMg ZGF0YSAqLworI2RlZmluZSBUUkFDRV9aT05FX0RFVEFJTFMgKDF1bCA8PCA2KSAgLyogZm9yIG5h cnJhdGluZyBtaW5vciBhY3Rpb25zIGFuZCByZXN1bHRzICovCisKKyNkZWZpbmUgVFJBQ0VfWk9O RV9OT05FICAgIDAKKyNkZWZpbmUgVFJBQ0VfWk9ORV9BTEwgICAgIDB4ZmZmZmZmZmYKKworCisj ZGVmaW5lIENSQzdfSU5JVElBTCAweDAwCisjZGVmaW5lIENSQzE2X0lOSVRJQUwgMHgwMDAwCisK KworU1lTQ1RMX05PREUoX2h3LCBPSURfQVVUTywgbW1jc3BpLCBDVExGTEFHX1JELCAwLCAibW1j c3BpIGRyaXZlciIpOworCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgdHJhY2Vfem9uZV9tYXNrID0g VFJBQ0VfWk9ORV9FUlJPUjsKKworc3RhdGljIHVpbnQ4X3QgY3JjN3RhYlsyNTZdOworc3RhdGlj IHVpbnQxNl90IGNyYzE2dGFiWzI1Nl07CitzdGF0aWMgdWludDhfdCBvbmVzYnVmW01NQ1NQSV9E QVRBX0JMT0NLX0xFTl07ICAvKiBmb3IgZHJpdmluZyB0aGUgdHggbGluZQorCQkJCQkJICAgd2hl biByZWNlaXZpbmcgKi8KK3N0YXRpYyB1aW50OF90IGp1bmtidWZbTU1DU1BJX0RBVEFfQkxPQ0tf TEVOXTsgIC8qIGZvciByZWNlaXZpbmcgZGF0YSB3aGVuCisJCQkJCQkgICB0cmFuc21pdHRpbmcg Ki8KKworc3RhdGljIGludAorbW1jc3BpX3Byb2JlKGRldmljZV90IGRldikKK3sKKwlUUkFDRV9F TlRFUihkZXYpOworCQorCWRldmljZV9zZXRfZGVzYyhkZXYsICJtbWMgc3BpLW1vZGUgYnJpZGdl Iik7CisKKwlUUkFDRV9FWElUKGRldik7CisJcmV0dXJuICgwKTsKK30KKworCitzdGF0aWMgdm9p ZAorbW1jc3BpX3Nsb3RfaW5pdChkZXZpY2VfdCBicmRldiwgc3RydWN0IG1tY3NwaV9zbG90ICpz bG90KQoreworCVRSQUNFX0VOVEVSKGJyZGV2KTsKKworCXN0cnVjdCBtbWNzcGlfc29mdGMgKnNj ID0gZGV2aWNlX2dldF9zb2Z0YyhicmRldik7CisJc3RydWN0IHNwaV9jb25maWcgY2ZnOworCisJ c2xvdC0+c2MgPSBzYzsKKwlzbG90LT5kZXYgPSBOVUxMOyAgLyogd2lsbCBnZXQgcmVhbCB2YWx1 ZSB3aGVuIGNhcmQgaXMgYWRkZWQgKi8KKwlzbG90LT5idXNfYnVzeSA9IGZhbHNlOworCXNsb3Qt Pmhvc3QuZl9taW4gPSAxMDAwMDA7IC8qIHRoaXMgc2hvdWxkIGJlIGFzIGxvdyBhcyB3ZSBuZWVk IHRvIGdvCisJCQkJICAgICAgZm9yIGFueSBjYXJkICovCisJc2xvdC0+aG9zdC5jYXBzID0gMDsK KworCVNQSUJVU19BQ1FVSVJFX0JVUyhzYy0+YnVzZGV2LCBzYy0+ZGV2KTsKKworCWNmZy5jbG9j a19oeiA9IDA7CisJU1BJQlVTX1NFVF9DT05GSUcoc2MtPmJ1c2RldiwgJmNmZyk7CisKKwlTUElC VVNfR0VUX0NPTkZJRyhzYy0+YnVzZGV2LCAmY2ZnKTsKKwlzbG90LT5ob3N0LmZfbWF4ID0gY2Zn LmNsb2NrX2h6OworCisJaWYgKHNsb3QtPmhvc3QuZl9tYXggPiAyNTAwMDAwMCkgeworCQlzbG90 LT5ob3N0LmNhcHMgfD0gTU1DX0NBUF9IU1BFRUQ7CisJfQorCisJU1BJQlVTX1JFTEVBU0VfQlVT KHNjLT5idXNkZXYsIHNjLT5kZXYpOworCisJLyogU1BJIG1vZGUgcmVxdWlyZXMgMy4zViBvcGVy YXRpb24gKi8KKwlzbG90LT5ob3N0Lmhvc3Rfb2NyID0gTU1DX09DUl8zMjBfMzMwIHwgTU1DX09D Ul8zMzBfMzQwOyAgCisKKwlNTUNTUElfU0xPVF9MT0NLX0lOSVQoc2xvdCk7CisKKwlUUkFDRV9F WElUKGJyZGV2KTsKK30KKworCitzdGF0aWMgdm9pZAorbW1jc3BpX3Nsb3RfZmluaShkZXZpY2Vf dCBicmRldiwgc3RydWN0IG1tY3NwaV9zbG90ICpzbG90KQoreworCVRSQUNFX0VOVEVSKGJyZGV2 KTsKKworCU1NQ1NQSV9TTE9UX0xPQ0tfREVTVFJPWShzbG90KTsKKworCVRSQUNFX0VYSVQoYnJk ZXYpOworfQorCisKK3N0YXRpYyB2b2lkCittbWNzcGlfY2FyZF9hZGQoc3RydWN0IG1tY3NwaV9z bG90ICpzbG90KQoreworCWRldmljZV90IGJyZGV2ID0gc2xvdC0+c2MtPmRldjsKKworCVRSQUNF X0VOVEVSKGJyZGV2KTsKKworCU1NQ1NQSV9MT0NLX1NMT1Qoc2xvdCk7CisJc2xvdC0+ZGV2ID0g ZGV2aWNlX2FkZF9jaGlsZChicmRldiwgIm1tYyIsIC0xKTsKKwlkZXZpY2Vfc2V0X2l2YXJzKHNs b3QtPmRldiwgc2xvdCk7CisJTU1DU1BJX1VOTE9DS19TTE9UKHNsb3QpOworCisJZGV2aWNlX3By b2JlX2FuZF9hdHRhY2goc2xvdC0+ZGV2KTsKKworCVRSQUNFX0VYSVQoYnJkZXYpOworfQorCisK K3N0YXRpYyB2b2lkCittbWNzcGlfY2FyZF9kZWxldGUoc3RydWN0IG1tY3NwaV9zbG90ICpzbG90 KQoreworCWRldmljZV90IGJyZGV2ID0gc2xvdC0+c2MtPmRldjsKKwlkZXZpY2VfdCBkZXY7CisK KwlUUkFDRV9FTlRFUihicmRldik7CisKKwlNTUNTUElfTE9DS19TTE9UKHNsb3QpOworCWRldiA9 IHNsb3QtPmRldjsKKwlzbG90LT5kZXYgPSBOVUxMOworCU1NQ1NQSV9VTkxPQ0tfU0xPVChzbG90 KTsKKwlkZXZpY2VfZGVsZXRlX2NoaWxkKGJyZGV2LCBkZXYpOworCisJVFJBQ0VfRVhJVChicmRl dik7Cit9CisKKworc3RhdGljIGludAorbW1jc3BpX2F0dGFjaChkZXZpY2VfdCBkZXYpCit7CisJ c3RydWN0IG1tY3NwaV9zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJc3RydWN0 IHN5c2N0bF9jdHhfbGlzdCAqY3R4ID0gZGV2aWNlX2dldF9zeXNjdGxfY3R4KGRldik7CisJc3Ry dWN0IHN5c2N0bF9vaWQgKnRyZWUgPSBkZXZpY2VfZ2V0X3N5c2N0bF90cmVlKGRldik7CisJc3Ry dWN0IHN5c2N0bF9vaWRfbGlzdCAqY2hpbGQgPSBTWVNDVExfQ0hJTERSRU4odHJlZSk7CisKKwlU UkFDRV9FTlRFUihkZXYpOworCisJc2MtPmRldiA9IGRldjsKKwlzYy0+YnVzZGV2ID0gZGV2aWNl X2dldF9wYXJlbnQoZGV2KTsKKwlzYy0+dXNlX2NyYyA9IDE7CisKKwlTWVNDVExfQUREX1VJTlQo Y3R4LCBjaGlsZCwgT0lEX0FVVE8sCisJCQkidXNlX2NyYyIsIENUTEZMQUdfUlcsICZzYy0+dXNl X2NyYywgc2l6ZW9mKHNjLT51c2VfY3JjKSwKKwkJCSJFbmFibGUvZGlzYWJsZSBjcmMgY2hlY2tp bmciKTsKKworCVNZU0NUTF9BRERfVUlOVChjdHgsIGNoaWxkLCBPSURfQVVUTywKKwkJCSJ0cmFj ZV9tYXNrIiwgQ1RMRkxBR19SVywgJnRyYWNlX3pvbmVfbWFzaywKKwkJCXNpemVvZih0cmFjZV96 b25lX21hc2spLAorCQkJIkJpdG1hc2sgZm9yIGFkanVzdGluZyB0cmFjZSBtZXNzYWdlcyIpOwor CisJbW1jc3BpX3Nsb3RfaW5pdChkZXYsICZzYy0+c2xvdCk7CisJCisJLyogWFhYIHRyaWdnZXIg dGhpcyBmcm9tIGNhcmQgaW5zZXJ0IGRldGVjdGlvbiAqLworCW1tY3NwaV9jYXJkX2FkZCgmc2Mt PnNsb3QpOworCQorCVRSQUNFX0VYSVQoZGV2KTsKKwlyZXR1cm4gKDApOworfQorCisKK3N0YXRp YyBpbnQKK21tY3NwaV9kZXRhY2goZGV2aWNlX3QgZGV2KQoreworCVRSQUNFX0VOVEVSKGRldik7 CisKKyAgCXN0cnVjdCBtbWNzcGlfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOwor CisJLyogWFhYIHRyaWdnZXIgdGhpcyBmcm9tIGNhcmQgcmVtb3ZhbCBkZXRlY3Rpb24gKi8KKwlt bWNzcGlfY2FyZF9kZWxldGUoJnNjLT5zbG90KTsKKworCW1tY3NwaV9zbG90X2ZpbmkoZGV2LCAm c2MtPnNsb3QpOworCisJVFJBQ0VfRVhJVChkZXYpOworCisJcmV0dXJuICgwKTsKK30KKworCitz dGF0aWMgaW50CittbWNzcGlfc3VzcGVuZChkZXZpY2VfdCBkZXYpCit7CisJaW50IGVycjsKKwlU UkFDRV9FTlRFUihkZXYpOworCisJZXJyID0gYnVzX2dlbmVyaWNfc3VzcGVuZChkZXYpOworCWlm IChlcnIpIHsKKwkJVFJBQ0VfRVhJVChkZXYpOworCQlyZXR1cm4gKGVycik7CisJfQorCisJVFJB Q0VfRVhJVChkZXYpOworCXJldHVybiAoMCk7Cit9CisKKworc3RhdGljIGludAorbW1jc3BpX3Jl c3VtZShkZXZpY2VfdCBkZXYpCit7CisJaW50IGVycjsKKwlUUkFDRV9FTlRFUihkZXYpOworCisJ ZXJyID0gYnVzX2dlbmVyaWNfcmVzdW1lKGRldik7CisJaWYgKGVycikgeworCQlUUkFDRV9FWElU KGRldik7CisJCXJldHVybiAoZXJyKTsKKwl9CisKKwlUUkFDRV9FWElUKGRldik7CisJcmV0dXJu ICgwKTsKK30KKworCitzdGF0aWMgaW50CittbWNzcGlfcmVhZF9pdmFyKGRldmljZV90IGJ1cywg ZGV2aWNlX3QgY2hpbGQsIGludCB3aGljaCwgdWludHB0cl90ICpyZXN1bHQpCit7CisJVFJBQ0Vf RU5URVIoYnVzKTsKKworCXN0cnVjdCBtbWNzcGlfc2xvdCAqc2xvdCA9IGRldmljZV9nZXRfaXZh cnMoY2hpbGQpOworCisJc3dpdGNoICh3aGljaCkgeworCWNhc2UgTU1DQlJfSVZBUl9CVVNfVFlQ RToKKwkJKnJlc3VsdCA9IGJ1c190eXBlX3NwaTsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFS X0JVU19NT0RFOgorCQkqcmVzdWx0ID0gc2xvdC0+aG9zdC5pb3MuYnVzX21vZGU7CisJCWJyZWFr OworCWNhc2UgTU1DQlJfSVZBUl9CVVNfV0lEVEg6CisJCSpyZXN1bHQgPSBzbG90LT5ob3N0Lmlv cy5idXNfd2lkdGg7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9DSElQX1NFTEVDVDoKKwkJ KnJlc3VsdCA9IHNsb3QtPmhvc3QuaW9zLmNoaXBfc2VsZWN0OworCQlicmVhazsKKwljYXNlIE1N Q0JSX0lWQVJfQ0xPQ0s6CisJCSpyZXN1bHQgPSBzbG90LT5ob3N0Lmlvcy5jbG9jazsKKwkJYnJl YWs7CisJY2FzZSBNTUNCUl9JVkFSX0ZfTUlOOgorCQkqcmVzdWx0ID0gc2xvdC0+aG9zdC5mX21p bjsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX0ZfTUFYOgorCQkqcmVzdWx0ID0gc2xvdC0+ aG9zdC5mX21heDsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX0hPU1RfT0NSOgorCQkqcmVz dWx0ID0gc2xvdC0+aG9zdC5ob3N0X29jcjsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX01P REU6CisJCSpyZXN1bHQgPSBzbG90LT5ob3N0Lm1vZGU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJf SVZBUl9PQ1I6CisJCSpyZXN1bHQgPSBzbG90LT5ob3N0Lm9jcjsKKwkJYnJlYWs7CisJY2FzZSBN TUNCUl9JVkFSX1BPV0VSX01PREU6CisJCSpyZXN1bHQgPSBzbG90LT5ob3N0Lmlvcy5wb3dlcl9t b2RlOworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfVkREOgorCQkqcmVzdWx0ID0gc2xvdC0+ aG9zdC5pb3MudmRkOworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfQ0FQUzoKKwkJKnJlc3Vs dCA9IHNsb3QtPmhvc3QuY2FwczsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX1RJTUlORzoK KwkJKnJlc3VsdCA9IHNsb3QtPmhvc3QuaW9zLnRpbWluZzsKKwkJYnJlYWs7CisJY2FzZSBNTUNC Ul9JVkFSX01BWF9EQVRBOgorCQkqcmVzdWx0ID0gNjQqMTAyNDsgIC8qIHNlZW1zIHJlYXNvbmFi bGUsIG5vdCBkaWN0YXRlZCBieSBhbnl0aGluZyAqLworCQlicmVhazsKKwlkZWZhdWx0OgorCQly ZXR1cm4gKEVJTlZBTCk7CisJfQorCisJVFJBQ0VfRVhJVChidXMpOworCisJcmV0dXJuICgwKTsK K30KKworCitzdGF0aWMgaW50CittbWNzcGlfd3JpdGVfaXZhcihkZXZpY2VfdCBidXMsIGRldmlj ZV90IGNoaWxkLCBpbnQgd2hpY2gsIHVpbnRwdHJfdCB2YWx1ZSkKK3sKKwlUUkFDRV9FTlRFUihi dXMpOworCisJc3RydWN0IG1tY3NwaV9zbG90ICpzbG90ID0gZGV2aWNlX2dldF9pdmFycyhjaGls ZCk7CisKKwlzd2l0Y2ggKHdoaWNoKSB7CisJZGVmYXVsdDoKKwkJcmV0dXJuIChFSU5WQUwpOwor CWNhc2UgTU1DQlJfSVZBUl9CVVNfTU9ERToKKwkJc2xvdC0+aG9zdC5pb3MuYnVzX21vZGUgPSB2 YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFSX0JVU19XSURUSDoKKwkJc2xvdC0+aG9z dC5pb3MuYnVzX3dpZHRoID0gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9DTE9D SzoKKwkJc2xvdC0+aG9zdC5pb3MuY2xvY2sgPSB2YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBNTUNC Ul9JVkFSX0NISVBfU0VMRUNUOgorCQlzbG90LT5ob3N0Lmlvcy5jaGlwX3NlbGVjdCA9IHZhbHVl OworCQlicmVhazsKKwljYXNlIE1NQ0JSX0lWQVJfTU9ERToKKwkJc2xvdC0+aG9zdC5tb2RlID0g dmFsdWU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9PQ1I6CisJCXNsb3QtPmhvc3Qub2Ny ID0gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZBUl9QT1dFUl9NT0RFOgorCQlzbG90 LT5ob3N0Lmlvcy5wb3dlcl9tb2RlID0gdmFsdWU7CisJCWJyZWFrOworCWNhc2UgTU1DQlJfSVZB Ul9WREQ6CisJCXNsb3QtPmhvc3QuaW9zLnZkZCA9IHZhbHVlOworCQlicmVhazsKKwljYXNlIE1N Q0JSX0lWQVJfVElNSU5HOgorCQlzbG90LT5ob3N0Lmlvcy50aW1pbmcgPSB2YWx1ZTsKKwkJYnJl YWs7CisJY2FzZSBNTUNCUl9JVkFSX0JVU19UWVBFOgorCWNhc2UgTU1DQlJfSVZBUl9DQVBTOgor CWNhc2UgTU1DQlJfSVZBUl9IT1NUX09DUjoKKwljYXNlIE1NQ0JSX0lWQVJfRl9NSU46CisJY2Fz ZSBNTUNCUl9JVkFSX0ZfTUFYOgorCWNhc2UgTU1DQlJfSVZBUl9NQVhfREFUQToKKwkJcmV0dXJu IChFSU5WQUwpOworCX0KKwlUUkFDRV9FWElUKGJ1cyk7CisKKwlyZXR1cm4gKDApOworfQorCisK K3N0YXRpYyBpbnQKK21tY3NwaV91cGRhdGVfaW9zKGRldmljZV90IGJyZGV2LCBkZXZpY2VfdCBy ZXFkZXYpCit7CisJVFJBQ0VfRU5URVIoYnJkZXYpOworCXN0cnVjdCBtbWNzcGlfc29mdGMgKnNj ID0gZGV2aWNlX2dldF9zb2Z0YyhicmRldik7CisJc3RydWN0IG1tY3NwaV9zbG90ICpzbG90ID0g ZGV2aWNlX2dldF9pdmFycyhyZXFkZXYpOworCXN0cnVjdCBzcGlfY29uZmlnIGNmZzsKKwlzdHJ1 Y3Qgc3BpX2NvbW1hbmQgc3BpX2NtZDsKKworCWlmIChwb3dlcl91cCA9PSBzbG90LT5ob3N0Lmlv cy5wb3dlcl9tb2RlKSB7CisJCS8qCisJCSAqIFRoaXMgc2VxdWVuY2UgcHJvdmlkZXMgdGhlIGlu aXRpYWxpemF0aW9uIHN0ZXBzIHJlcXVpcmVkCisJCSAqIGJ5IHRoZSBzcGVjIGFmdGVyIGNhcmQg cG93ZXIgaXMgYXBwbGllZCwgYnV0IGJlZm9yZSBhbnkKKwkJICogY29tbWFuZHMgYXJlIGlzc3Vl ZC4gIFRoZXNlIG9wZXJhdGlvbnMgYXJlIGhhcm1sZXNzIGlmCisJCSAqIGFwcGxpZWQgYXQgYW55 IG90aGVyIHRpbWUgKGFmdGVyIGEgd2FybSByZXNldCwgZm9yCisJCSAqIGV4YW1wbGUpLgorCQkg Ki8KKworCQkvKiAKKwkJICogWFhYIFBvd2VyLW9uIHBvcnRpb24gb2YgaW1wbGVtZW50YXRpb24g b2YgY2FyZCBwb3dlcgorCQkgKiBjb250cm9sIHNob3VsZCBnbyBoZXJlLiAgU2hvdWxkIHByb2Jh Ymx5IGluY2x1ZGUgYSBwb3dlcgorCQkgKiBvZmYgZmlyc3QgdG8gZW5zdXJlIGNhcmQgaXMgZnVs bHkgcmVzZXQgZnJvbSBhbnkgcHJldmlvdXMKKwkJICogc3RhdGUuCisJCSAqLworCisJCS8qIAor CQkgKiBNYWtlIHN1cmUgcG93ZXIgdG8gY2FyZCBoYXMgcmFtcGVkIHVwLiAgVGhlIHNwZWMgcmVx dWlyZXMKKwkJICogcG93ZXIgdG8gcmFtcCB1cCBpbiAzNW1zIG9yIGxlc3MuCisJCSAqLworCQlE RUxBWSgzNTAwMCk7CisKKwkJLyoKKwkJICogUHJvdmlkZSBhdCBsZWFzdCA3NCBjbG9ja3Mgd2l0 aCBDUyBhbmQgTU9TSSBoaWdoIHRoYXQgdGhlCisJCSAqIHNwZWMgcmVxdWlyZXMgYWZ0ZXIgY2Fy ZCBwb3dlciBzdGFiaWxpemVzLgorCQkgKi8KKworCQkvKiBVc2UgMTAwIGtIeiBmb3IgbWF4aW11 bSBjb21wYXRpYmlsaXR5LiAqLworCQljZmcuY2xvY2tfaHogPSAxMDAwMDA7CisJCVNQSUJVU19T RVRfQ09ORklHKHNjLT5idXNkZXYsICZjZmcpOworCQlTUElCVVNfR0VUX0NPTkZJRyhzYy0+YnVz ZGV2LCAmY2ZnKTsKKwkJc2xvdC0+aG9zdC5pb3MuY2xvY2sgPSBjZmcuY2xvY2tfaHo7CisKKwkJ c3BpX2NtZC50eF9jbWQgPSBvbmVzYnVmOworCQlzcGlfY21kLnJ4X2NtZCA9IGp1bmtidWY7CisJ CXNwaV9jbWQudHhfY21kX3N6ID0gc3BpX2NtZC5yeF9jbWRfc3ogPSAxMDsKKwkJc3BpX2NtZC50 eF9kYXRhID0gc3BpX2NtZC5yeF9kYXRhID0gTlVMTDsKKwkJc3BpX2NtZC50eF9kYXRhX3N6ID0g c3BpX2NtZC5yeF9kYXRhX3N6ID0gMDsKKwkJc3BpX2NtZC5mbGFncyA9IFNQSV9TS0lQX0NISVBf U0VMRUNUIHwgU1BJX0NISVBfU0VMRUNUX0hJR0g7CisKKwkJU1BJQlVTX1RSQU5TRkVSKHNjLT5i dXNkZXYsIHNjLT5kZXYsICZzcGlfY21kKTsKKworCQkvKiAKKwkJICogUGVyaGFwcyB0aGlzIHdh cyBhIHdhcm0gcmVzZXQgYW5kIHRoZSBjYXJkIGlzIGluIHRoZQorCQkgKiBtaWRkbGUgb2YgYSBs b25nIG9wZXJhdGlvbi4KKwkJICovCisJCW1tY3NwaV93YWl0X2Zvcl9ub3RfYnVzeShicmRldik7 CisKKwkJc2xvdC0+bGFzdF9vcGNvZGUgPSAweGZmZmZmZmZmOworCQlzbG90LT5sYXN0X2ZsYWdz ID0gMDsKKwkJbWVtc2V0KHNsb3QtPmxhc3Rfb2NyLCAwLCBNTUNTUElfT0NSX0xFTik7CisJCXNs b3QtPmNyY19lbmFibGVkID0gMDsKKwkJc2xvdC0+Y3JjX2luaXRfZG9uZSA9IDA7CisJfQorCQor CisJLyogCisJICogQSBjbG9jayB2YWx1ZSBvZiB6ZXJvIG1lYW5zIHNldCB0aGUgY2xvY2sgbGlu ZSBsb3csIHdoaWNoIGlzIHRoZQorCSAqIG5vcm1hbCBzcGkgaWRsZSBzdGF0ZS4KKwkgKi8KKwlp ZiAoc2xvdC0+aG9zdC5pb3MuY2xvY2sgPiAwKSB7CisJCWNmZy5jbG9ja19oeiA9IHNsb3QtPmhv c3QuaW9zLmNsb2NrOworCQlTUElCVVNfU0VUX0NPTkZJRyhzYy0+YnVzZGV2LCAmY2ZnKTsKKwkJ CQorCQkvKiByZXRyaWV2ZSB0aGUgcG9zc2libHkgYWRqdXN0ZWVkIGRvd253YXJkIHNldHRpbmcg Ki8KKwkJU1BJQlVTX0dFVF9DT05GSUcoc2MtPmJ1c2RldiwgJmNmZyk7CisJCXNsb3QtPmhvc3Qu aW9zLmNsb2NrID0gY2ZnLmNsb2NrX2h6OworCX0KKworCWlmIChwb3dlcl9vZmYgPT0gc2xvdC0+ aG9zdC5pb3MucG93ZXJfbW9kZSkgeworCQkvKgorCQkgKiBYWFggUG93ZXItb2ZmIHBvcnRpb24g b2YgaW1wbGVtZW50YXRpb24gb2YgY2FyZCBwb3dlcgorCQkgKiBjb250cm9sIHNob3VsZCBnbyBo ZXJlLgorCQkgKi8KKwl9CQorCisJVFJBQ0VfRVhJVChicmRldik7CisKKwlyZXR1cm4gKDApOwor fQorCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK21tY3NwaV9kb19zcGlfcmVhZChkZXZpY2VfdCBk ZXYsIHVpbnQ4X3QgKmRhdGEsIHVuc2lnbmVkIGludCBsZW4pCit7CisJVFJBQ0VfRU5URVIoZGV2 KTsKKwkKKwlzdHJ1Y3QgbW1jc3BpX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsK KwlzdHJ1Y3Qgc3BpX2NvbW1hbmQgc3BpX2NtZDsKKwlpbnQgZXJyOworCisJc3BpX2NtZC50eF9j bWQgPSBvbmVzYnVmOworCXNwaV9jbWQucnhfY21kID0gZGF0YTsKKwlzcGlfY21kLnR4X2NtZF9z eiA9IHNwaV9jbWQucnhfY21kX3N6ID0gbGVuOworCXNwaV9jbWQudHhfZGF0YSA9IE5VTEw7CisJ c3BpX2NtZC5yeF9kYXRhID0gTlVMTDsKKwlzcGlfY21kLnR4X2RhdGFfc3ogPSBzcGlfY21kLnJ4 X2RhdGFfc3ogPSAwOworCXNwaV9jbWQuZmxhZ3MgPSBTUElfU0tJUF9DSElQX1NFTEVDVDsKKwor CWVyciA9IFNQSUJVU19UUkFOU0ZFUihzYy0+YnVzZGV2LCBzYy0+ZGV2LCAmc3BpX2NtZCk7CisK KwlUUkFDRV9FWElUKGRldik7CisJcmV0dXJuIChlcnIgPyBNTUNfRVJSX0ZBSUxFRCA6IE1NQ19F UlJfTk9ORSk7Cit9CisKKworc3RhdGljIHVuc2lnbmVkIGludAorbW1jc3BpX2RvX3NwaV93cml0 ZShkZXZpY2VfdCBkZXYsIHVpbnQ4X3QgKmNtZCwgdW5zaWduZWQgaW50IGNtZGxlbiwKKwkJICAg IHVpbnQ4X3QgKmRhdGEsIHVuc2lnbmVkIGludCBkYXRhbGVuKQoreworCVRSQUNFX0VOVEVSKGRl dik7CisJCisJc3RydWN0IG1tY3NwaV9zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7 CisJc3RydWN0IHNwaV9jb21tYW5kIHNwaV9jbWQ7CisJaW50IGVycjsKKworCXNwaV9jbWQudHhf Y21kID0gY21kOworCXNwaV9jbWQucnhfY21kID0ganVua2J1ZjsKKwlzcGlfY21kLnR4X2NtZF9z eiA9IHNwaV9jbWQucnhfY21kX3N6ID0gY21kbGVuOworCXNwaV9jbWQudHhfZGF0YSA9IGRhdGE7 CisJc3BpX2NtZC5yeF9kYXRhID0ganVua2J1ZjsKKwlzcGlfY21kLnR4X2RhdGFfc3ogPSBzcGlf Y21kLnJ4X2RhdGFfc3ogPSBkYXRhbGVuOworCXNwaV9jbWQuZmxhZ3MgPSBTUElfU0tJUF9DSElQ X1NFTEVDVDsKKworCWVyciA9IFNQSUJVU19UUkFOU0ZFUihzYy0+YnVzZGV2LCBzYy0+ZGV2LCAm c3BpX2NtZCk7CisKKwlUUkFDRV9FWElUKGRldik7CisJcmV0dXJuIChlcnIgPyBNTUNfRVJSX0ZB SUxFRCA6IE1NQ19FUlJfTk9ORSk7Cit9CisKKworc3RhdGljIHVuc2lnbmVkIGludAorbW1jc3Bp X3dhaXRfZm9yX25vdF9idXN5KGRldmljZV90IGRldikKK3sKKwlUUkFDRV9FTlRFUihkZXYpOwor CQorCWludCBpOworCXVuc2lnbmVkIGludCBlcnI7CisJdW5zaWduZWQgaW50IGJ1c3lfbGVuZ3Ro ID0gMDsKKwl1aW50OF90IHBvbGxidWZbTU1DU1BJX1BPTExfTEVOXTsKKwlzdHJ1Y3QgYmludGlt ZSBzdGFydCwgZWxhcHNlZDsKKworCVRSQUNFKGRldiwgQUNUSU9OLCAid2FpdGluZyBmb3Igbm90 IGJ1c3lcbiIpOworCisJZ2V0YmludGltZSgmc3RhcnQpOworCWRvIHsKKwkJVFJBQ0UoZGV2LCBE RVRBSUxTLCAibG9va2luZyBmb3IgZW5kIG9mIGJ1c3lcbiIpOworCQllcnIgPSBtbWNzcGlfZG9f c3BpX3JlYWQoZGV2LCBwb2xsYnVmLCBNTUNTUElfUE9MTF9MRU4pOworCQlpZiAoTU1DX0VSUl9O T05FICE9IGVycikgeworCQkJVFJBQ0UoZGV2LCBFUlJPUiwgInNwaSByZWFkIGZhaWxlZFxuIik7 CisJCQlUUkFDRV9FWElUKGRldik7CisJCQlyZXR1cm4gKGVycik7CisJCX0KKworCQlmb3IgKGkg PSAwOyBpIDwgTU1DU1BJX1BPTExfTEVOOyBpKyspIHsKKwkJCWlmIChwb2xsYnVmW2ldICE9IDB4 MDApIHsKKwkJCQlUUkFDRShkZXYsIERFVEFJTFMsCisJCQkJICAgICAgImVuZCBvZiBidXN5IGZv dW5kIGF0ICVkXG4iLCBpKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWJ1c3lfbGVuZ3RoKys7CisJ CX0KKworCQlnZXRiaW50aW1lKCZlbGFwc2VkKTsKKwkJYmludGltZV9zdWIoJmVsYXBzZWQsICZz dGFydCk7CisKKwkJaWYgKGVsYXBzZWQuc2VjID4gTU1DU1BJX1RJTUVPVVRfU0VDKSB7CisJCQlU UkFDRShkZXYsIEVSUk9SLCAiY2FyZCBidXN5IGZvciBsb25nZXIgdGhhbiB0aW1lb3V0XG4iKTsK KwkJCXJldHVybiAoTU1DX0VSUl9USU1FT1VUKTsKKwkJfQorCX0gd2hpbGUgKE1NQ1NQSV9QT0xM X0xFTiA9PSBpKTsKKworCVRSQUNFKGRldiwgUkVTVUxULCAiYnVzeSBmb3IgJXUgYnl0ZSBzbG90 c1xuIiwgYnVzeV9sZW5ndGgpOworCisJVFJBQ0VfRVhJVChkZXYpOworCXJldHVybiAoTU1DX0VS Ul9OT05FKTsKK30KKworCitzdGF0aWMgdW5zaWduZWQgaW50CittbWNzcGlfc2hpZnRfY29weSh1 aW50OF90ICpkZXN0LCB1aW50OF90ICpzcmMsIHVuc2lnbmVkIGludCBkZXN0X2xlbiwKKwkJICB1 bnNpZ25lZCBpbnQgc2hpZnQpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlpZiAoMCA9PSBzaGlm dCkgeworCQltZW1jcHkoZGVzdCwgc3JjLCBkZXN0X2xlbik7CisJfSBlbHNlIHsKKwkJZm9yIChp ID0gMDsgaSA8IGRlc3RfbGVuOyBpKyspIHsKKwkJCWRlc3RbaV0gPQorCQkJICAgIChzcmNbaV0g PDwgc2hpZnQpIHwgCisJCQkgICAgKHNyY1tpICsgMV0gPj4gKDggLSBzaGlmdCkpOworCQl9CisJ fQorCisJcmV0dXJuIChkZXN0X2xlbik7Cit9CisKKworc3RhdGljIHVuc2lnbmVkIGludAorbW1j c3BpX2dldF9yZXNwb25zZV90b2tlbihkZXZpY2VfdCBkZXYsIHVpbnQ4X3QgbWFzaywgdWludDhf dCB2YWx1ZSwKKwkJCSAgdW5zaWduZWQgaW50IGxlbiwgdW5zaWduZWQgaW50IGhhc19idXN5LAor CQkJICB1aW50OF90ICpyc3BidWYpCit7CisJaW50IGk7CisJdW5zaWduZWQgaW50IGVycjsKKwl1 bnNpZ25lZCBpbnQgb2Zmc2V0OworCXVuc2lnbmVkIGludCBzaGlmdCA9IDA7CisJdW5zaWduZWQg aW50IHJlbWFpbmluZzsKKwlib29sZWFuX3QgZm91bmQ7CisJdWludDhfdCBwb2xsYnVmWzIgKiBN TUNTUElfTUFYX1JTUF9MRU5dOworCXN0cnVjdCBiaW50aW1lIHN0YXJ0LCBlbGFwc2VkOworCisJ VFJBQ0VfRU5URVIoZGV2KTsKKworCS8qCisJICogVGhpcyBsb29wIHNlYXJjaGVzIGRhdGEgY2xv Y2tlZCBvdXQgb2YgdGhlIGNhcmQgZm9yIGEgcmVzcG9uc2UKKwkgKiB0b2tlbiBtYXRjaGluZyB0 aGUgZ2l2ZW4gbWFzayBhbmQgdmFsdWUuICBJdCB3aWxsIGxvY2F0ZSB0b2tlbnMKKwkgKiB0aGF0 IGFyZSBub3QgYnl0ZS1hbGlnbmVkLCBhcyBzb21lIGNhcmRzIHNlbmQgbm9uLWJ5dGUtYWxpZ25l ZAorCSAqIHJlc3BvbnNlIHRva2VucyBpbiBzb21lIHNpdHVhdGlvbnMuICBGb3IgZXhhbXBsZSwg dGhlIGZvbGxvd2luZworCSAqIGNhcmQgY29uc2lzdGVudGx5IHNlbmRzIGFuIHVuYWxpZ25lZCBy ZXNwb25zZSB0b2tlbiB0byB0aGUgc3RvcAorCSAqIGNvbW1hbmQgdXNlZCB0byB0ZXJtaW5hdGUg bXVsdGktYmxvY2sgcmVhZHM6CisJICoKKwkgKiBUcmFuc2NlbmQgMkdCIFNEU0MgY2FyZCwgY2lk OgorCSAqIG1pZD0weDFiIG9pZD0weDUzNGQgcG5tPSIwMDAwMCIgcHJ2PTEuMCBtZHQ9MDAuMjAw MAorCSAqLworCisJb2Zmc2V0ID0gMDsKKwlmb3VuZCA9IGZhbHNlOworCWdldGJpbnRpbWUoJnN0 YXJ0KTsKKwlkbyB7CisJCVRSQUNFKGRldiwgREVUQUlMUywKKwkJICAgICAgImxvb2tpbmcgZm9y IHJlc3BvbnNlIHRva2VuIHdpdGggbWFzayAweCUwMngsIHZhbHVlIDB4JTAyeFxuIiwKKwkJICAg ICAgbWFzaywgdmFsdWUpOworCQllcnIgPSBtbWNzcGlfZG9fc3BpX3JlYWQoZGV2LCAmcG9sbGJ1 ZltvZmZzZXRdLCBsZW4pOworCQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJVFJBQ0Uo ZGV2LCBFUlJPUiwgInNwaSByZWFkIG9mIHJlc3BvbnNlIHRva2VuIGZhaWxlZFxuIik7CisJCQlU UkFDRV9FWElUKGRldik7CisJCQlyZXR1cm4gKGVycik7CisJCX0KKworCisJCWZvciAoaSA9IDA7 IGkgPCBsZW4gKyBvZmZzZXQ7IGkrKykgeworCQkJaWYgKChwb2xsYnVmW2ldICYgbWFzaykgPT0g dmFsdWUpIHsKKwkJCQlUUkFDRShkZXYsIERFVEFJTFMsCisJCQkJICAgICAgInJlc3BvbnNlIHRv a2VuIGZvdW5kIGF0ICVkICgweCUwMngpXG4iLAorCQkJCSAgICAgIGksIHBvbGxidWZbaV0pOwor CQkJCXNoaWZ0ID0gMDsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9IGVsc2Ug aWYgKGkgPCBsZW4gKyBvZmZzZXQgLSAxKSB7CisJCQkJLyogCisJCQkJICogTm90IHRoZSBsYXN0 IGJ5dGUgaW4gdGhlIGJ1ZmZlciwgc28gY2hlY2sKKwkJCQkgKiBmb3IgYSBub24tYWxpZ25lZCBy ZXNwb25zZS4KKwkJCQkgKi8KKwkJCQl1aW50MTZfdCBzZWFyY2hfc3BhY2UgPQorCQkJCSAgICAo KHVpbnQxNl90KXBvbGxidWZbaV0gPDwgOCkgfCBwb2xsYnVmW2kgKyAxXTsKKwkJCQl1aW50MTZf dCBzZWFyY2hfbWFzayA9ICh1aW50MTZfdCltYXNrIDw8IDg7CisJCQkJdWludDE2X3Qgc2VhcmNo X3ZhbHVlID0gKHVpbnQxNl90KXZhbHVlIDw8IDg7CisKKwkJCQlUUkFDRShkZXYsIERFVEFJTFMs CisJCQkJICAgICAgInNlYXJjaDogc3BhY2U9MHglMDR4IG1hc2s9MHglMDR4IHZhbD0weCUwNHhc biIsIAorCQkJCSAgICAgIHNlYXJjaF9zcGFjZSwgc2VhcmNoX21hc2ssIHNlYXJjaF92YWx1ZSk7 CisKKwkJCQlmb3IgKHNoaWZ0ID0gMTsgc2hpZnQgPCA4OyBzaGlmdCsrKSB7CisJCQkJCXNlYXJj aF9zcGFjZSA8PD0gMTsKKwkJCQkJaWYgKChzZWFyY2hfc3BhY2UgJiBzZWFyY2hfbWFzaykgPT0K KwkJCQkJICAgIHNlYXJjaF92YWx1ZSkgeworCQkJCQkJZm91bmQgPSB0cnVlOworCQkJCQkJVFJB Q0UoZGV2LCBERVRBSUxTLAorCQkJCQkJICAgICAgIkZvdW5kIG1hdGNoIGF0IHNoaWZ0ICV1XG4i LAorCQkJCQkJICAgICAgc2hpZnQpOworCQkJCQkJYnJlYWs7CisJCQkJCX0KKwkJCQl9CisKKwkJ CQlpZiAoc2hpZnQgPCA4KSB7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJ LyogCisJCQkJICogTW92ZSB0aGUgbGFzdCBieXRlIHRvIHRoZSBmaXJzdCBwb3NpdGlvbgorCQkJ CSAqIGFuZCBnbyAncm91bmQgYWdhaW4uCisJCQkJICovCisJCQkJcG9sbGJ1ZlswXSA9IHBvbGxi dWZbaV07CisJCQl9CisJCX0KKworCQlpZiAoIWZvdW5kKSB7CisJCQlvZmZzZXQgPSAxOworCisJ CQlnZXRiaW50aW1lKCZlbGFwc2VkKTsKKwkJCWJpbnRpbWVfc3ViKCZlbGFwc2VkLCAmc3RhcnQp OworCisJCQlpZiAoZWxhcHNlZC5zZWMgPiBNTUNTUElfVElNRU9VVF9TRUMpIHsKKwkJCQlUUkFD RShkZXYsIEVSUk9SLAorCQkJCSAgICAgICJ0aW1lb3V0IHdoaWxlIGxvb2tpbmcgZm9yIHJlcG9u c2UgdG9rZW5cbiIpOworCQkJCXJldHVybiAoTU1DX0VSUl9USU1FT1VUKTsKKwkJCX0KKwkJfQor CX0gd2hpbGUgKCFmb3VuZCk7CisKKwkvKiAKKwkgKiBOb3RlIHRoYXQgaWYgaSA9PSAwIGFuZCBv ZmZzZXQgPT0gMSwgc2hpZnQgaXMgYWx3YXlzIGdyZWF0ZXIgdGhhbgorCSAqIHplcm8uCisJICov CisJcmVtYWluaW5nID0gaSAtIG9mZnNldCArIChzaGlmdCA/IDEgOiAwKTsKKworCVRSQUNFKGRl diwgREVUQUlMUywgImxlbj0ldSBpPSV1IHJlbT0ldSBzaGlmdD0ldVxuIiwKKwkgICAgICBsZW4s IGksIHJlbWFpbmluZywgc2hpZnQpOworCisJaWYgKHJlbWFpbmluZykgeworCQllcnIgPSBtbWNz cGlfZG9fc3BpX3JlYWQoZGV2LCAmcG9sbGJ1ZltsZW4gKyBvZmZzZXRdLCByZW1haW5pbmcpOwor CQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJVFJBQ0UoZGV2LCBFUlJPUiwKKwkJCSAg ICAgICJzcGkgcmVhZCBvZiByZW1haW5kZXIgb2YgcmVzcG9uc2UgdG9rZW4gZmFpbGVkXG4iKTsK KwkJCVRSQUNFX0VYSVQoZGV2KTsKKwkJCXJldHVybiAoZXJyKTsKKwkJfQorCX0KKworCW1tY3Nw aV9zaGlmdF9jb3B5KHJzcGJ1ZiwgJnBvbGxidWZbaV0sIGxlbiwgc2hpZnQpOworCisJaWYgKFRS QUNFX1pPTkVfRU5BQkxFRChSRVNVTFQpKSB7CisJCVRSQUNFKGRldiwgUkVTVUxULCAicmVzcG9u c2UgPSIpOworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKwkJCXByaW50ZigiIDB4JTAy eCIsIHJzcGJ1ZltpXSk7CisJCX0KKwkJcHJpbnRmKCJcbiIpOworCX0KKworCWlmIChoYXNfYnVz eSkgeworCQllcnIgPSBtbWNzcGlfd2FpdF9mb3Jfbm90X2J1c3koZGV2KTsKKwkJaWYgKE1NQ19F UlJfTk9ORSAhPSBlcnIpIHsKKwkJCVRSQUNFX0VYSVQoZGV2KTsKKwkJCXJldHVybiAoZXJyKTsK KwkJfQorCX0KKwkKKwlUUkFDRV9FWElUKGRldik7CisKKwlyZXR1cm4gKE1NQ19FUlJfTk9ORSk7 Cit9CisKKworc3RhdGljIHVuc2lnbmVkIGludAorbW1jc3BpX3NldF91cF9jb21tYW5kKGRldmlj ZV90IGRldiwgc3RydWN0IG1tY3NwaV9jb21tYW5kICptbWNzcGlfY21kLAorCQkgICAgICBzdHJ1 Y3QgbW1jX2NvbW1hbmQgKm1tY19jbWQpCit7CisJc3RydWN0IG1tY3NwaV9zb2Z0YyAqc2MgPSBk ZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJc3RydWN0IG1tY3NwaV9zbG90ICpzbG90ID0gJnNjLT5z bG90OworCXVpbnQzMl90IG9wY29kZSA9IG1tY19jbWQtPm9wY29kZTsKKwl1aW50MzJfdCBhcmcg PSBtbWNfY21kLT5hcmc7CisJdWludDMyX3QgZmxhZ3MgPSBtbWNfY21kLT5mbGFnczsKKwl1aW50 MzJfdCByZXRyaWVzID0gbW1jX2NtZC0+cmV0cmllczsKKwl1bnNpZ25lZCBjaGFyIHJzcF90eXBl OworCXVuc2lnbmVkIGNoYXIgcnNwX2xlbjsKKwl1bnNpZ25lZCBpbnQgbGRhdGFfbGVuID0gMDsK Kwl1bnNpZ25lZCBpbnQgdXNlX2NyYyA9IHNsb3QtPmNyY19lbmFibGVkOworCisJaWYgKGZsYWdz ICYgTU1DX0NNRF9JU19BUFApIHsKKwkJc3dpdGNoIChvcGNvZGUpIHsKKwkJY2FzZSBBQ01EX1NE X1NUQVRVUzoKKwkJCXJzcF90eXBlID0gTU1DU1BJX1JTUF9SMjsKKwkJCWJyZWFrOworCQljYXNl IEFDTURfU0VORF9OVU1fV1JfQkxPQ0tTOgorCQljYXNlIEFDTURfU0VUX1dSX0JMS19FUkFTRV9D T1VOVDoKKwkJY2FzZSBBQ01EX1NFVF9DTFJfQ0FSRF9ERVRFQ1Q6CisJCWNhc2UgQUNNRF9TRU5E X1NDUjoKKwkJCXJzcF90eXBlID0gTU1DU1BJX1JTUF9SMTsKKwkJCWJyZWFrOworCQljYXNlIEFD TURfU0RfU0VORF9PUF9DT05EOgorCQkJLyogb25seSBIQ1MgYml0IGlzIHZhbGlkIGluIHNwaSBt b2RlICovCisJCQlhcmcgJj0gMHg0MDAwMDAwMDsKKwkJCXJzcF90eXBlID0gTU1DU1BJX1JTUF9S MTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJVFJBQ0UoZGV2LCBFUlJPUiwgIkludmFsaWQg YXBwIGNvbW1hbmQgb3Bjb2RlICV1XG4iLAorCQkJICAgICAgb3Bjb2RlKTsKKwkJCXJldHVybiAo TU1DX0VSUl9JTlZBTElEKTsKKwkJfQorCX0gZWxzZSB7CisJCXN3aXRjaCAob3Bjb2RlKSB7CisJ CWNhc2UgTU1DX0dPX0lETEVfU1RBVEU6CisJCQl1c2VfY3JjID0gMTsKKwkJCXJzcF90eXBlID0g TU1DU1BJX1JTUF9SMTsKKwkJCWJyZWFrOworCisJCWNhc2UgTU1DX1NFTkRfT1BfQ09ORDoKKwkJ Y2FzZSBNTUNfU1dJVENIX0ZVTkM6ICAvKiBhbHNvIFNEX1NXSVRDSF9GVU5DICovCisJCWNhc2Ug TU1DX1NFVF9CTE9DS0xFTjoKKwkJY2FzZSBNTUNfUkVBRF9TSU5HTEVfQkxPQ0s6CisJCWNhc2Ug TU1DX1JFQURfTVVMVElQTEVfQkxPQ0s6CisJCWNhc2UgTU1DX1dSSVRFX0JMT0NLOgorCQljYXNl IE1NQ19XUklURV9NVUxUSVBMRV9CTE9DSzoKKwkJY2FzZSBNTUNfUFJPR1JBTV9DU0Q6CisJCWNh c2UgTU1DX1NFTkRfV1JJVEVfUFJPVDoKKwkJY2FzZSBTRF9FUkFTRV9XUl9CTEtfU1RBUlQ6CisJ CWNhc2UgU0RfRVJBU0VfV1JfQkxLX0VORDoKKwkJY2FzZSBNTUNfTE9DS19VTkxPQ0s6CisJCWNh c2UgTU1DX0dFTl9DTUQ6CisJCWNhc2UgTU1DU1BJX0NSQ19PTl9PRkY6CisJCQlyc3BfdHlwZSA9 IE1NQ1NQSV9SU1BfUjE7CisJCQlicmVhazsKKworCQljYXNlIE1NQ19TRU5EX0NTRDoKKwkJY2Fz ZSBNTUNfU0VORF9DSUQ6CisJCQlhcmcgPSAwOyAvKiBubyByY2EgaW4gc3BpIG1vZGUgKi8KKwkJ CXJzcF90eXBlID0gTU1DU1BJX1JTUF9SMTsKKwkJCWxkYXRhX2xlbiA9IDE2OworCQkJYnJlYWs7 CisKKwkJY2FzZSBNTUNfQVBQX0NNRDoKKwkJCWFyZyA9IDA7IC8qIG5vIHJjYSBpbiBzcGkgbW9k ZSAqLworCQkJcnNwX3R5cGUgPSBNTUNTUElfUlNQX1IxOworCQkJYnJlYWs7CisKKwkJY2FzZSBN TUNfU1RPUF9UUkFOU01JU1NJT046CisJCWNhc2UgTU1DX1NFVF9XUklURV9QUk9UOgorCQljYXNl IE1NQ19DTFJfV1JJVEVfUFJPVDoKKwkJY2FzZSBNTUNfRVJBU0U6CisJCQlyc3BfdHlwZSA9IE1N Q1NQSV9SU1BfUjFCOworCQkJYnJlYWs7CisKKwkJY2FzZSBNTUNfQUxMX1NFTkRfQ0lEOgorCQkJ LyogaGFuZGxlIE1NQ19BTExfU0VORF9DSUQgYXMgTU1DX1NFTkRfQ0lEICovCisJCQlvcGNvZGUg PSBNTUNfU0VORF9DSUQ7CisJCQlyc3BfdHlwZSA9IE1NQ1NQSV9SU1BfUjE7CisJCQlsZGF0YV9s ZW4gPSAxNjsKKwkJCWJyZWFrOworCisJCWNhc2UgTU1DX1NFTkRfU1RBVFVTOgorCQkJYXJnID0g MDsgLyogbm8gcmNhIGluIHNwaSBtb2RlICovCisJCQlyc3BfdHlwZSA9IE1NQ1NQSV9SU1BfUjI7 CisJCQlicmVhazsKKworCisJCWNhc2UgTU1DU1BJX1JFQURfT0NSOgorCQkJcnNwX3R5cGUgPSBN TUNTUElfUlNQX1IzOworCQkJYnJlYWs7CisKKwkJY2FzZSBTRF9TRU5EX1JFTEFUSVZFX0FERFI6 CisJCQkvKiAKKwkJCSAqIEhhbmRsZSBTRF9TRU5EX1JFTEFUSVZFX0FERFIgYXMgTU1DX1NFTkRf U1RBVFVTIC0KKwkJCSAqIHRoZSByY2EgcmV0dXJuZWQgdG8gdGhlIGNhbGxlciB3aWxsIGFsd2F5 cyBiZSAwLgorCQkJICovCisJCQlvcGNvZGUgPSBNTUNfU0VORF9TVEFUVVM7CisJCQlyc3BfdHlw ZSA9IE1NQ1NQSV9SU1BfUjI7CisJCQlicmVhazsKKworCQljYXNlIFNEX1NFTkRfSUZfQ09ORDoK KwkJCXVzZV9jcmMgPSAxOworCQkJcnNwX3R5cGUgPSBNTUNTUElfUlNQX1I3OworCQkJYnJlYWs7 CisKKwkJZGVmYXVsdDoKKwkJCVRSQUNFKGRldiwgRVJST1IsICJJbnZhbGlkIGNvbW1hbmQgb3Bj b2RlICV1XG4iLCBvcGNvZGUpOworCQkJcmV0dXJuIChNTUNfRVJSX0lOVkFMSUQpOworCQl9CQkK Kwl9CisKKwlzd2l0Y2ggKHJzcF90eXBlKSB7CisJY2FzZSBNTUNTUElfUlNQX1IxOgorCWNhc2Ug TU1DU1BJX1JTUF9SMUI6IHJzcF9sZW4gPSAxOyBicmVhazsgCisKKwljYXNlIE1NQ1NQSV9SU1Bf UjI6ICByc3BfbGVuID0gMjsgYnJlYWs7IAorCisJY2FzZSBNTUNTUElfUlNQX1IzOgorCWNhc2Ug TU1DU1BJX1JTUF9SNzogIHJzcF9sZW4gPSA1OyBicmVhazsKKworCWRlZmF1bHQ6CisJCVRSQUNF KGRldiwgRVJST1IsICJVbmtub3duIHJlc3BvbnNlIHR5cGUgJXVcbiIsIHJzcF90eXBlKTsKKwkJ cmV0dXJuIChNTUNfRVJSX0lOVkFMSUQpOworCX0KKworCW1tY3NwaV9jbWQtPm1tY19jbWQgPSBt bWNfY21kOworCisJbW1jc3BpX2NtZC0+b3Bjb2RlID0gb3Bjb2RlOworCW1tY3NwaV9jbWQtPmFy ZyA9IGFyZzsKKwltbWNzcGlfY21kLT5mbGFncyA9IGZsYWdzOworCW1tY3NwaV9jbWQtPnJldHJp ZXMgPSByZXRyaWVzOworCW1tY3NwaV9jbWQtPnVzZV9jcmMgPSB1c2VfY3JjOworCW1tY3NwaV9j bWQtPmVycm9yX21hc2sgPSBNTUNTUElfUjFfRVJSX01BU0s7CisJaWYgKG1tY3NwaV9jbWQtPnVz ZV9jcmMpIHsKKwkJbW1jc3BpX2NtZC0+ZXJyb3JfbWFzayAmPSB+TU1DU1BJX1IxX0NSQ19FUlI7 CisJfQorCW1tY3NwaV9jbWQtPnJzcF90eXBlID0gcnNwX3R5cGU7CisJbW1jc3BpX2NtZC0+cnNw X2xlbiA9IHJzcF9sZW47CisKKwltZW1zZXQoJm1tY3NwaV9jbWQtPmxkYXRhLCAwLCBzaXplb2Yo c3RydWN0IG1tY19kYXRhKSk7CisJbW1jc3BpX2NtZC0+bGRhdGEubGVuID0gbGRhdGFfbGVuOwor CWlmIChsZGF0YV9sZW4pIHsKKwkJbW1jc3BpX2NtZC0+bGRhdGEuZGF0YSA9IHNjLT5zbG90Lmxk YXRhX2J1ZjsKKwkJbW1jc3BpX2NtZC0+bGRhdGEuZmxhZ3MgPSBNTUNfREFUQV9SRUFEOworCQkK KwkJbW1jc3BpX2NtZC0+ZGF0YSA9ICZtbWNzcGlfY21kLT5sZGF0YTsKKwl9IGVsc2UgeworCQlt bWNzcGlfY21kLT5kYXRhID0gbW1jX2NtZC0+ZGF0YTsKKwl9CisKKwlyZXR1cm4gKE1NQ19FUlJf Tk9ORSk7Cit9CisKKworc3RhdGljIHVuc2lnbmVkIGludAorbW1jc3BpX3NlbmRfY21kKGRldmlj ZV90IGRldiwgc3RydWN0IG1tY3NwaV9jb21tYW5kICpjbWQsIHVpbnQ4X3QgKnJzcGJ1ZikKK3sK KwlUUkFDRV9FTlRFUihkZXYpOworCisJdW5zaWduZWQgaW50IGVycjsKKwl1aW50MzJfdCBvcGNv ZGUgPSBjbWQtPm9wY29kZTsKKwl1aW50MzJfdCBhcmcgPSBjbWQtPmFyZzsKKwl1aW50OF90IHR4 YnVmWzhdOworCXVpbnQ4X3QgY3JjOworCisJVFJBQ0UoZGV2LCBBQ1RJT04sICJzZW5kaW5nICVz TUQldSgweCUwOHgpXG4iLAorCSAgICAgIGNtZC0+ZmxhZ3MgJiBNTUNfQ01EX0lTX0FQUCA/ICJB QyI6ICJDIiwgb3Bjb2RlLCBhcmcpOworCisJLyoKKwkgKiBTZW5kaW5nIHRoaXMgYnl0ZSBhaGVh ZCBvZiBlYWNoIGNvbW1hbmQgcHJldmVudHMgc29tZSBjYXJkcyBmcm9tCisJICogcmVzcG9uZGlu ZyB3aXRoIHVuYWxpZ25lZCBkYXRhLCBhbmQgZG9lc24ndCBib3RoZXIgdGhlIG90aGVycy4KKwkg KiBFeGFtcGxlczoKKwkgKgorCSAqIFNhbmRpc2sgMzJHQiBTREhDIGNhcmQsIGNpZDoKKwkgKiBt aWQ9MHgwMyBvaWQ9MHg1MzQ0IHBubT0iU1UzMkciIHBydj04LjAgbWR0PTAwLjIwMDAKKwkgKi8K Kwl0eGJ1ZlswXSA9IDB4ZmY7CisKKwl0eGJ1ZlsxXSA9IDB4NDAgfCAob3Bjb2RlICYgMHgzZik7 CisJdHhidWZbMl0gPSBhcmcgPj4gMjQ7CisJdHhidWZbM10gPSAoYXJnID4+IDE2KSAmIDB4ZmY7 CisJdHhidWZbNF0gPSAoYXJnID4+IDgpICYgMHhmZjsKKwl0eGJ1Zls1XSA9IGFyZyAmIDB4ZmY7 CisKKwlpZiAoY21kLT51c2VfY3JjKSB7CisJCWNyYyA9IHVwZGF0ZV9jcmM3KENSQzdfSU5JVElB TCwgJnR4YnVmWzFdLCA1KTsKKwl9IGVsc2UgeworCQljcmMgPSAwOworCX0KKwkKKwl0eGJ1Zls2 XSA9IChjcmMgPDwgMSkgfCAweDAxOworCisJIC8qCisJICAqIFNvbWUgY2FyZHMgaGF2ZSBnYXJi YWdlIG9uIHRoZSBidXMgaW4gdGhlIGZpcnN0IGJ5dGUgc2xvdCBhZnRlcgorCSAgKiB0aGUgbGFz dCBjb21tYW5kIGJ5dGUuICBUaGlzIHNlZW1zIHRvIGJlIGNvbW1vbiB3aXRoIHRoZSBzdG9wCisJ ICAqIGNvbW1hbmQuICBDbG9ja2luZyBvdXQgYW4gZXh0cmEgYnl0ZSB3aXRoIHRoZSBjb21tYW5k IHdpbGwKKwkgICogcmVzdWx0IGluIHRoYXQgZGF0YSBub3QgYmVpbmcgc2VhcmNoZWQgZm9yIHRo ZSByZXNwb25zZSB0b2tlbiwKKwkgICogd2hpY2ggaXMgb2ssIGJlY2F1c2Ugbm8gY2FyZHMgcmVz cG9uZCB0aGF0IGZhc3QuCisJICAqLworCXR4YnVmWzddID0gMHhmZjsKKworCWVyciA9IG1tY3Nw aV9kb19zcGlfd3JpdGUoZGV2LCB0eGJ1Ziwgc2l6ZW9mKHR4YnVmKSwgTlVMTCwgMCk7CisJaWYg KE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJVFJBQ0UoZGV2LCBFUlJPUiwgInNwaSB3cml0ZSBv ZiBjb21tYW5kIGZhaWxlZFxuIik7CisJCVRSQUNFX0VYSVQoZGV2KTsKKwkJcmV0dXJuIChlcnIp OworCX0KKworCVRSQUNFKGRldiwgREVUQUlMUywKKwkgICAgICAicnggY21kIGJ5dGVzIDB4JTAy eCAweCUwMnggMHglMDJ4IDB4JTAyeCAweCUwMnggMHglMDJ4XG4iLAorCSAgICAgIGp1bmtidWZb MF0sIGp1bmtidWZbMV0sIGp1bmtidWZbMl0sIGp1bmtidWZbM10sIGp1bmtidWZbNF0sCisJICAg ICAganVua2J1Zls1XSApOworCVRSQUNFKGRldiwgREVUQUlMUywgInNraXBwZWQgcmVzcG9uc2Ug Ynl0ZSBpcyAweCUwMnhcbiIsIGp1bmtidWZbNl0pOworCisJZXJyID0gbW1jc3BpX2dldF9yZXNw b25zZV90b2tlbihkZXYsIE1NQ1NQSV9SMV9NQVNLLCBNTUNTUElfUjFfVkFMVUUsCisJCQkJCWNt ZC0+cnNwX2xlbiwKKwkJCQkJTU1DU1BJX1JTUF9SMUIgPT0gY21kLT5yc3BfdHlwZSwgcnNwYnVm KTsKKworCWlmIChNTUNfRVJSX05PTkUgPT0gZXJyKSB7CisJCWlmIChyc3BidWZbMF0gJiBjbWQt PmVycm9yX21hc2sgJiBNTUNTUElfUjFfQ1JDX0VSUikgeworCQkJZXJyID0gTU1DX0VSUl9CQURD UkM7CisJCX0gZWxzZSBpZiAocnNwYnVmWzBdICYgY21kLT5lcnJvcl9tYXNrKSB7CisJCQllcnIg PSBNTUNfRVJSX0lOVkFMSUQ7CisJCX0KKwl9CisKKwlUUkFDRV9FWElUKGRldik7CisJcmV0dXJu IChlcnIpOworfQorCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK21tY3NwaV9yZWFkX2Jsb2NrKGRl dmljZV90IGRldiwgdWludDhfdCAqZGF0YSwgdW5zaWduZWQgaW50IGxlbiwKKwkJICB1bnNpZ25l ZCBpbnQgY2hlY2tfY3JjMTYsIHVuc2lnbmVkIGludCBjaGVja19jcmM3KQoreworCVRSQUNFX0VO VEVSKGRldik7CisJCisJaW50IGk7CisJdW5zaWduZWQgaW50IGVycjsKKwl1bnNpZ25lZCBpbnQg bm9uX3Rva2VuX2J5dGVzOworCXVuc2lnbmVkIGludCBkYXRhX2NhcHR1cmVkOworCXVuc2lnbmVk IGludCBjcmNfY2FwdHVyZWQ7CisJdW5zaWduZWQgaW50IHBvbGxidWZwb3M7CisJdW5zaWduZWQg aW50IGNyYzE2X21pc21hdGNoID0gMDsKKwl1aW50MTZfdCBjcmMxNiwgY29tcHV0ZWRfY3JjMTY7 CisJdWludDhfdCBjcmM3LCBjb21wdXRlZF9jcmM3OworCXVpbnQ4X3QgcG9sbGJ1ZltNTUNTUElf UE9MTF9MRU5dOworCXVpbnQ4X3QgY3JjYnVmW01NQ1NQSV9EQVRBX0NSQ19MRU5dOworCXN0cnVj dCBiaW50aW1lIHN0YXJ0OworCXN0cnVjdCBiaW50aW1lIGVsYXBzZWQ7CisKKwlUUkFDRShkZXYs IEFDVElPTiwgInJlYWQgYmxvY2soJXUpXG4iLCBsZW4pOworCisJLyogCisJICogV2l0aCB0aGlz IGFwcHJvYWNoLCB3ZSBjb3VsZCBwb2ludGxlc3NseSByZWFkIHVwIHRvCisJICogKE1NQ1NQSV9Q T0xMX0xFTiAtIDMgLSBsZW4pIGJ5dGVzIGZyb20gdGhlIHNwaSBidXMsIGJ1dCBvbmx5IGluCisJ ICogdGhlIG9kZCBzaXR1YXRpb24gd2hlcmUgTU1DU1BJX1BPTExfTEVOIGlzIGdyZWF0ZXIgdGhh biBsZW4gKyAzLgorCSAqLworCWdldGJpbnRpbWUoJnN0YXJ0KTsKKwlkbyB7CisJCVRSQUNFKGRl diwgREVUQUlMUywgImxvb2tpbmcgZm9yIHJlYWQgdG9rZW5cbiIpOworCQllcnIgPSBtbWNzcGlf ZG9fc3BpX3JlYWQoZGV2LCBwb2xsYnVmLCBNTUNTUElfUE9MTF9MRU4pOworCQlpZiAoTU1DX0VS Ul9OT05FICE9IGVycikgeworCQkJVFJBQ0UoZGV2LCBFUlJPUiwgInRva2VuIHJlYWQgb24gc3Bp IGZhaWxlZFxuIik7CisJCQlUUkFDRV9FWElUKGRldik7CisJCQlyZXR1cm4gKGVycik7CisJCX0K KwkgIAorCQlmb3IgKGkgPSAwOyBpIDwgTU1DU1BJX1BPTExfTEVOOyBpKyspIHsKKwkJCWlmIChN TUNTUElfVE9LRU5fU0IgPT0gcG9sbGJ1ZltpXSkgeworCQkJCVRSQUNFKGRldiwgUkVTVUxULAor CQkJCSAgICAgICJmb3VuZCBzdGFydCBibG9jayB0b2tlbiBhdCAlZFxuIiwgaSk7CisJCQkJYnJl YWs7CisJCQl9IGVsc2UgaWYgKE1NQ1NQSV9JU19ERV9UT0tFTihwb2xsYnVmW2ldKSkgeyAKKwkJ CQlUUkFDRShkZXYsIEVSUk9SLAorCQkJCSAgICAgICJmb3VuZCBkYXRhIGVycm9yIHRva2VuIGF0 ICVkXG4iLCBpKTsKKwkJCQlUUkFDRV9FWElUKGRldik7CisJCQkJcmV0dXJuIChNTUNfRVJSX0ZB SUxFRCk7CisJCQl9CisJCX0KKworCQlnZXRiaW50aW1lKCZlbGFwc2VkKTsKKwkJYmludGltZV9z dWIoJmVsYXBzZWQsICZzdGFydCk7CisKKwkJaWYgKGVsYXBzZWQuc2VjID4gTU1DU1BJX1RJTUVP VVRfU0VDKSB7CisJCQlUUkFDRShkZXYsIEVSUk9SLAorCQkJICAgICAgInRpbWVvdXQgd2hpbGUg bG9va2luZyBmb3IgcmVhZCB0b2tlblxuIik7CisJCQlyZXR1cm4gKE1NQ19FUlJfVElNRU9VVCk7 CisJCX0KKwl9IHdoaWxlIChNTUNTUElfUE9MTF9MRU4gPT0gaSk7CisJCisJLyogY29weSBhbnkg ZGF0YSBjYXB0dXJlZCBpbiB0YWlsIG9mIHBvbGwgYnVmIHRvIGRhdGEgYnVmICovCisJbm9uX3Rv a2VuX2J5dGVzID0gTU1DU1BJX1BPTExfTEVOIC0gaSAtIDE7CisJZGF0YV9jYXB0dXJlZCA9IG1p bihub25fdG9rZW5fYnl0ZXMsIGxlbik7CisJY3JjX2NhcHR1cmVkID0gbm9uX3Rva2VuX2J5dGVz IC0gZGF0YV9jYXB0dXJlZDsKKwlwb2xsYnVmcG9zID0gaSArIDE7CisKKwlUUkFDRShkZXYsIERF VEFJTFMsICJkYXRhIGJ5dGVzIGNhcHR1cmVkIGluIHBvbGxidWYgPSAldVxuIiwKKwkgICAgICBk YXRhX2NhcHR1cmVkKTsKKworCW1lbWNweShkYXRhLCAmcG9sbGJ1Zltwb2xsYnVmcG9zXSwgZGF0 YV9jYXB0dXJlZCk7CisJcG9sbGJ1ZnBvcyArPSBkYXRhX2NhcHR1cmVkOworCisJVFJBQ0UoZGV2 LCBERVRBSUxTLCAiZGF0YSBieXRlcyB0byByZWFkID0gJXUsIGNyY19jYXB0dXJlZCA9ICV1XG4i LAorCSAgICAgIGxlbiAtIGRhdGFfY2FwdHVyZWQsIGNyY19jYXB0dXJlZCk7CisKKwkvKiBnZXQg YW55IHJlbWFpbmluZyBkYXRhIGZyb20gdGhlIHNwaSBidXMgKi8KKwlpZiAoZGF0YV9jYXB0dXJl ZCA8IGxlbikgeworCQllcnIgPSBtbWNzcGlfZG9fc3BpX3JlYWQoZGV2LCAmZGF0YVtkYXRhX2Nh cHR1cmVkXSwKKwkJCQkJIGxlbiAtIGRhdGFfY2FwdHVyZWQpOworCQlpZiAoTU1DX0VSUl9OT05F ICE9IGVycikgeworCQkJVFJBQ0UoZGV2LCBFUlJPUiwKKwkJCSAgICAgICJzcGkgcmVhZCBvZiBy ZW1haW5kZXIgb2YgYmxvY2sgZmFpbGVkXG4iKTsKKwkJCVRSQUNFX0VYSVQoZGV2KTsKKwkJCXJl dHVybiAoZXJyKTsKKwkJfQorCisJfQorCisJLyogY29weSBhbnkgY3JjIGNhcHR1cmVkIGluIHRo ZSBwb2xsIGJ1ZiB0byB0aGUgY3JjIGJ1ZiAqLworCW1lbWNweShjcmNidWYsICZwb2xsYnVmW3Bv bGxidWZwb3NdLCBjcmNfY2FwdHVyZWQpOworCisJLyogZ2V0IGFueSByZW1haW5pbmcgY3JjICov CisJaWYgKGNyY19jYXB0dXJlZCA8IE1NQ1NQSV9EQVRBX0NSQ19MRU4pIHsKKwkJVFJBQ0UoZGV2 LCBERVRBSUxTLCAiY3JjIGJ5dGVzIHRvIHJlYWQgPSAldVxuIiwKKwkJICAgICAgTU1DU1BJX0RB VEFfQ1JDX0xFTiAtIGNyY19jYXB0dXJlZCk7CisKKwkJZXJyID0gbW1jc3BpX2RvX3NwaV9yZWFk KGRldiwgJmNyY2J1ZltjcmNfY2FwdHVyZWRdLAorCQkJCQkgTU1DU1BJX0RBVEFfQ1JDX0xFTiAt IGNyY19jYXB0dXJlZCk7CisJCWlmIChNTUNfRVJSX05PTkUgIT0gZXJyKSB7CisJCQlUUkFDRShk ZXYsIEVSUk9SLCAic3BpIHJlYWQgb2YgY3JjIGZhaWxlZFxuIik7CisJCQlUUkFDRV9FWElUKGRl dik7CisJCQlyZXR1cm4gKGVycik7CisJCX0KKwl9CisKKworCS8qIAorCSAqIFRoZSBmb2xsb3dp bmcgY3JjIGNoZWNraW5nIGNvZGUgaXMgZGVsaWJlcmF0ZWx5IHN0cnVjdHVyZWQgdG8KKwkgKiBi b3RoIHJlcXVpcmUgYSBwYXNzaW5nIGNyYy03IGNoZWNrIGFuZCBhbGxvdyBhIHBhc3NpbmcgY3Jj LTcKKwkgKiBjaGVjayB0byBvdmVycmlkZSBhIGZhaWxpbmcgY3JjLTE2IGNoZWNrIHdoZW4gY3Jj LTcgY2hlY2tpbmcgaXMKKwkgKiBlbmFibGVkLgorCSAqLworCWlmIChjaGVja19jcmMxNikgewor CQljcmMxNiA9ICgodWludDE2X3QpY3JjYnVmWzBdIDw8IDgpIHwgY3JjYnVmWzFdOworCQljb21w dXRlZF9jcmMxNiA9IHVwZGF0ZV9jcmMxNihDUkMxNl9JTklUSUFMLCBkYXRhLCBsZW4pOworCQlU UkFDRShkZXYsIFJFU1VMVCwgInNlbnRfY3JjMTY9MHglMDR4IGNvbXB1dGVkX2NyYzE2PTB4JTA0 eFxuIiwKKwkJICAgICAgY3JjMTYsIGNvbXB1dGVkX2NyYzE2KTsKKworCQlpZiAoY29tcHV0ZWRf Y3JjMTYgIT0gY3JjMTYpIHsKKwkJCWNyYzE2X21pc21hdGNoID0gMTsKKworCQkJVFJBQ0UoZGV2 LCBFUlJPUiwKKwkJCSAgICAgICJjcmMxNiBtaXNtYXRjaCwgc2hvdWxkIGJlIDB4JTA0eCwgaXMg MHglMDR4XG4iLAorCQkJICAgICAgY3JjMTYsIGNvbXB1dGVkX2NyYzE2KTsKKwkJCQorCQkJaWYg KCFjaGVja19jcmM3KSB7CisJCQkJVFJBQ0VfRVhJVChkZXYpOworCQkJCXJldHVybiAoTU1DX0VS Ul9CQURDUkMpOworCQkJfQorCQl9CisJfQorCisJaWYgKGNoZWNrX2NyYzcpIHsKKwkJaWYgKGNy YzE2X21pc21hdGNoKSB7CisJCQkvKgorCQkJICogTGV0IHRoZSB1c2VyIGtub3cgc29tZXRoaW5n IGVsc2UgaXMgYmVpbmcgY2hlY2tlZAorCQkJICogYWZ0ZXIgYW5ub3VuY2luZyBhbiBlcnJvciBh Ym92ZS4KKwkJCSAqLworCQkJVFJBQ0UoZGV2LCBFUlJPUiwgImNoZWNraW5nIGNyYzdcbiIpOwor CQl9CisKKwkJY3JjNyA9IGRhdGFbbGVuIC0gMV0gPj4gMTsKKwkJY29tcHV0ZWRfY3JjNyA9IHVw ZGF0ZV9jcmM3KENSQzdfSU5JVElBTCwgZGF0YSwgbGVuIC0gMSk7CisJCVRSQUNFKGRldiwgUkVT VUxULCAic2VudF9jcmM3PTB4JTAyeCBjb21wdXRlZF9jcmM3PTB4JTAyeFxuIiwKKwkJICAgICAg Y3JjNywgY29tcHV0ZWRfY3JjNyk7CisKKwkJaWYgKGNvbXB1dGVkX2NyYzcgIT0gY3JjNykgewor CQkJVFJBQ0UoZGV2LCBFUlJPUiwKKwkJCSAgICAgICJjcmM3IG1pc21hdGNoLCBzaG91bGQgYmUg MHglMDJ4LCBpcyAweCUwMnhcbiIsCisJCQkgICAgICBjcmM3LCBjb21wdXRlZF9jcmM3KTsKKwkJ CQorCQkJVFJBQ0VfRVhJVChkZXYpOworCQkJcmV0dXJuIChNTUNfRVJSX0JBRENSQyk7CisJCX0K Kwl9CisJCisJVFJBQ0VfRVhJVChkZXYpOworCisJcmV0dXJuIChNTUNfRVJSX05PTkUpOworfQor CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK21tY3NwaV9zZW5kX3N0b3AoZGV2aWNlX3QgZGV2LCB1 bnNpZ25lZCBpbnQgcmV0cmllcykKK3sKKwlUUkFDRV9FTlRFUihkZXYpOworCWludCBpOworCXVu c2lnbmVkIGludCBlcnI7CisJc3RydWN0IG1tY3NwaV9jb21tYW5kIHN0b3A7CisJc3RydWN0IG1t Y19jb21tYW5kIG1tY19zdG9wOworCXVpbnQ4X3Qgc3RvcF9yZXNwb25zZTsKKworCW1lbXNldCgm bW1jX3N0b3AsIDAsIHNpemVvZihtbWNfc3RvcCkpOworCW1tY19zdG9wLm9wY29kZSA9IE1NQ19T VE9QX1RSQU5TTUlTU0lPTjsKKwltbWNfc3RvcC5mbGFncyA9IE1NQ19SU1BfUjFCIHwgTU1DX0NN RF9BQzsKKworCWVyciA9IG1tY3NwaV9zZXRfdXBfY29tbWFuZChkZXYsICZzdG9wLCAmbW1jX3N0 b3ApOworCWlmIChNTUNfRVJSX05PTkUgIT0gZXJyKSB7CisJCVRSQUNFX0VYSVQoZGV2KTsKKwkJ cmV0dXJuIChlcnIpOworCX0KKworCS8qIAorCSAqIFJldHJ5IHN0b3AgY29tbWFuZHMgdGhhdCBm YWlsIGR1ZSB0byBiYWQgY3JjIGhlcmUgYmVjYXVzZSBoYXZpbmcKKwkgKiB0aGUgY2FsbGVyIHJl dHJ5IHRoZSBlbnRpcmUgcmVhZC93cml0ZSBjb21tYW5kIGR1ZSB0byBzdWNoIGEKKwkgKiBmYWls dXJlIGlzIHBvaW50bGVzc2x5IGV4cGVuc2l2ZS4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDw9IHJl dHJpZXM7IGkrKykgeworCQlUUkFDRShkZXYsIEFDVElPTiwgInNlbmRpbmcgc3RvcCBtZXNzYWdl XG4iKTsKKworCQllcnIgPSBtbWNzcGlfc2VuZF9jbWQoZGV2LCAmc3RvcCwgJnN0b3BfcmVzcG9u c2UpOworCQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJVFJBQ0VfRVhJVChkZXYpOwor CQkJcmV0dXJuIChlcnIpOworCQl9CisKKwkJVFJBQ0UoZGV2LCBSRVNVTFQsICJzdG9wIHJlc3Bv bnNlPTB4JTAyeFxuIiwgc3RvcF9yZXNwb25zZSk7CisKKwkJLyogcmV0cnkgb24gY3JjIGVycm9y ICovCisJCWlmIChzdG9wX3Jlc3BvbnNlICYgc3RvcC5lcnJvcl9tYXNrICYgTU1DU1BJX1IxX0NS Q19FUlIpIHsKKwkJCWNvbnRpbnVlOworCQl9CisJfQorCisJaWYgKHN0b3BfcmVzcG9uc2UgJiBz dG9wLmVycm9yX21hc2spIHsKKwkJVFJBQ0VfRVhJVChkZXYpOworCisJCS8qIAorCQkgKiBEb24n dCByZXR1cm4gTU1DX0VSUl9CQURDUkMgaGVyZSwgZXZlbiBpZgorCQkgKiBNTUNTUElfUjFfQ1JD X0VSUiBpcyBzZXQsIGJlY2F1c2UgdGhhdCB3b3VsZCB0cmlnZ2VyIHRoZQorCQkgKiBjYWxsZXIn cyByZXRyeS1vbi1jcmMtZXJyb3IgbWVjaGFuaXNtLCBlZmZlY3RpdmVseQorCQkgKiBzcXVhcmlu ZyB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmllcyBvZiB0aGUgc3RvcAorCQkgKiBjb21tYW5k LgorCQkgKi8KKwkJcmV0dXJuIChNTUNfRVJSX0ZBSUxFRCk7CisJfQorCVRSQUNFX0VYSVQoZGV2 KTsKKworCXJldHVybiAoTU1DX0VSUl9OT05FKTsKK30KKworCitzdGF0aWMgdW5zaWduZWQgaW50 CittbWNzcGlfcmVhZF9waGFzZShkZXZpY2VfdCBkZXYsIHN0cnVjdCBtbWNzcGlfY29tbWFuZCAq Y21kKQoreworCVRSQUNFX0VOVEVSKGRldik7CisKKwlzdHJ1Y3QgbW1jX2RhdGEgKmRhdGEgPSBj bWQtPmRhdGE7CisJdWludDhfdCAqZGF0YTg7CisJdW5zaWduZWQgaW50IGRhdGFfb2Zmc2V0Owor CXVuc2lnbmVkIGludCBudW1fYmxvY2tzOworCXVuc2lnbmVkIGludCBsZW47CisJdW5zaWduZWQg aW50IGVycjsKKwlpbnQgaTsKKworCWRhdGE4ID0gKHVpbnQ4X3QgKilkYXRhLT5kYXRhOworCWRh dGFfb2Zmc2V0ID0gMDsKKworCWlmIChkYXRhLT5sZW4gPCBNTUNTUElfREFUQV9CTE9DS19MRU4p IHsKKwkJbnVtX2Jsb2NrcyA9IDE7CisJCWxlbiA9IGRhdGEtPmxlbjsKKwl9IGVsc2UgeworCQlu dW1fYmxvY2tzID0gZGF0YS0+bGVuIC8gTU1DU1BJX0RBVEFfQkxPQ0tfTEVOOworCQlsZW4gPSBN TUNTUElfREFUQV9CTE9DS19MRU47CisJfQorCisJZm9yIChpID0gMDsgaSA8IG51bV9ibG9ja3M7 IGkrKykgeworCQkKKwkJLyoKKwkJICogVGhlIENJRCBhbmQgQ1NEIGRhdGEgYmxvY2tzIGNvbnRh aW4gYm90aCBhIHRyYWlsaW5nIGNyYy03CisJCSAqIGluc2lkZSB0aGUgZGF0YSBibG9jayBhbmQg dGhlIHN0YW5kYXJkIGNyYy0xNiBmb2xsb3dpbmcKKwkJICogdGhlIGRhdGEgYmxvY2ssIHNvIGJv dGggYXJlIGNoZWNrZWQgd2hlbiB1c2VfY3JjIGlzIHRydWUuCisJCSAqCisJCSAqIFdoZW4gY3Jj IGNoZWNraW5nIGhhcyBiZWVuIGVuYWJsZWQgdmlhIENNRDU5LCBzb21lIGNhcmRzCisJCSAqIHNl bmQgQ0lEIGFuZCBDU0QgZGF0YSBibG9ja3Mgd2l0aCBjb3JyZWN0IGNyYy03IHZhbHVlcworCQkg KiBidXQgaW5jb3JyZWN0IGNyYy0xNiB2YWx1ZXMuICByZWFkX2Jsb2NrIHdpbGwgYWNjZXB0CisJ CSAqIHRob3NlIHJlc3BvbnNlcyBhcyB2YWxpZCBhcyBsb25nIGFzIHRoZSBjcmMtNyBpcyBjb3Jy ZWN0LgorCQkgKgorCQkgKiBFeGFtcGxlczoKKwkJICoKKwkJICogU3VwZXIgVGFsZW50IDFHQiBT RFNDIGNhcmQsIGNpZDoKKwkJICogbWlkPTB4MWIgb2lkPTB4NTM0ZCBwbm09IjAwMDAwIiBwcnY9 MS4wIG1kdD0wMi4yMDEwCisJCSAqLworCQllcnIgPSBtbWNzcGlfcmVhZF9ibG9jayhkZXYsICZk YXRhOFtkYXRhX29mZnNldF0sIGxlbiwKKwkJCQkJY21kLT51c2VfY3JjLAorCQkJCQljbWQtPnVz ZV9jcmMgJiYKKwkJCQkJKChNTUNfU0VORF9DSUQgPT0gY21kLT5vcGNvZGUpIHx8CisJCQkJCSAo TU1DX1NFTkRfQ1NEID09IGNtZC0+b3Bjb2RlKSkpOworCisJCWlmIChNTUNfRVJSX05PTkUgIT0g ZXJyKSB7CisJCQlUUkFDRV9FWElUKGRldik7CisJCQlyZXR1cm4gKGVycik7CisJCX0KKwkJCQkJ CisJCWRhdGFfb2Zmc2V0ICs9IE1NQ1NQSV9EQVRBX0JMT0NLX0xFTjsKKwl9CisKKwkvKiBtdWx0 aS1ibG9jayByZWFkIGNvbW1hbmRzIHJlcXVpcmUgYSBzdG9wICovCisJaWYgKG51bV9ibG9ja3Mg PiAxKSB7CisJCWVyciA9IG1tY3NwaV9zZW5kX3N0b3AoZGV2LCBjbWQtPnJldHJpZXMpOworCQlp ZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJVFJBQ0VfRVhJVChkZXYpOworCQkJcmV0dXJu IChlcnIpOworCQl9CisJfQorCisJVFJBQ0VfRVhJVChkZXYpOworCisJcmV0dXJuIChNTUNfRVJS X05PTkUpOworfQorCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK21tY3NwaV93cml0ZV9ibG9jayhk ZXZpY2VfdCBkZXYsIHVpbnQ4X3QgKmRhdGEsIHVuc2lnbmVkIGludCBpc19tdWx0aSwKKwkJICAg dW5zaWduZWQgY2hhciB1c2VfY3JjLCB1aW50OF90ICpzdGF0dXMpCit7CisJVFJBQ0VfRU5URVIo ZGV2KTsKKwkKKwl1bnNpZ25lZCBpbnQgZXJyOworCXVpbnQxNl90IGNyYzsKKwl1aW50OF90IHJl c3BvbnNlX3Rva2VuOworCXVpbnQ4X3QgdHhidWZbbWF4KE1NQ1NQSV9QT0xMX0xFTiwgMildOwor CisJaWYgKHVzZV9jcmMpIHsKKwkJY3JjID0gdXBkYXRlX2NyYzE2KENSQzE2X0lOSVRJQUwsIGRh dGEsIE1NQ1NQSV9EQVRBX0JMT0NLX0xFTik7CisJfSBlbHNlIHsKKwkJY3JjID0gMDsKKwl9CisK KwlUUkFDRShkZXYsIEFDVElPTiwgIndyaXRlIGJsb2NrKDUxMikgY3JjPTB4JTA0eFxuIiwgY3Jj KTsKKworCXR4YnVmWzBdID0gaXNfbXVsdGkgPyBNTUNTUElfVE9LRU5fU0JfV00gOiBNTUNTUElf VE9LRU5fU0I7CisJZXJyID0gbW1jc3BpX2RvX3NwaV93cml0ZShkZXYsIHR4YnVmLCAxLCBkYXRh LCBNTUNTUElfREFUQV9CTE9DS19MRU4pOworCWlmIChNTUNfRVJSX05PTkUgIT0gZXJyKSB7CisJ CVRSQUNFX0VYSVQoZGV2KTsKKwkJcmV0dXJuIChlcnIpOworCX0KKworCXR4YnVmWzBdID0gY3Jj ID4+IDg7CisJdHhidWZbMV0gPSBjcmMgJiAweGZmOworCWVyciA9IG1tY3NwaV9kb19zcGlfd3Jp dGUoZGV2LCB0eGJ1ZiwgMiwgTlVMTCwgMCk7CisJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsK KwkJVFJBQ0VfRVhJVChkZXYpOworCQlyZXR1cm4gKGVycik7CisJfQorCisJZXJyID0gbW1jc3Bp X2dldF9yZXNwb25zZV90b2tlbihkZXYsIE1NQ1NQSV9EUl9NQVNLLCBNTUNTUElfRFJfVkFMVUUs IAorCQkJCQkxLCAxLCAmcmVzcG9uc2VfdG9rZW4pOworCWlmIChNTUNfRVJSX05PTkUgIT0gZXJy KSB7CisJCVRSQUNFX0VYSVQoZGV2KTsKKwkJcmV0dXJuIChlcnIpOworCX0KKworCSpzdGF0dXMg PSByZXNwb25zZV90b2tlbiAmIE1NQ1NQSV9EUl9FUlJfTUFTSzsKKworCVRSQUNFX0VYSVQoZGV2 KTsKKworCXJldHVybiAoTU1DX0VSUl9OT05FKTsKK30KKworCitzdGF0aWMgdW5zaWduZWQgaW50 CittbWNzcGlfd3JpdGVfcGhhc2UoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgbW1jc3BpX2NvbW1hbmQg KmNtZCkKK3sKKwlUUkFDRV9FTlRFUihkZXYpOworCisJc3RydWN0IG1tY19kYXRhICpkYXRhID0g Y21kLT5kYXRhOworCXVpbnQ4X3QgKmRhdGE4OworCXVuc2lnbmVkIGludCBkYXRhX29mZnNldDsK Kwl1bnNpZ25lZCBpbnQgbnVtX2Jsb2NrczsKKwl1bnNpZ25lZCBpbnQgZXJyOworCWludCBpOwor CXVpbnQ4X3QgdG9rZW5bMl07CisJdWludDhfdCBzdGF0dXM7CisKKwlkYXRhOCA9ICh1aW50OF90 ICopZGF0YS0+ZGF0YTsKKwlkYXRhX29mZnNldCA9IDA7CisJbnVtX2Jsb2NrcyA9IGRhdGEtPmxl biAvIE1NQ1NQSV9EQVRBX0JMT0NLX0xFTjsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2Jsb2Nrczsg aSsrKSB7CisJCWVyciA9IG1tY3NwaV93cml0ZV9ibG9jayhkZXYsICZkYXRhOFtkYXRhX29mZnNl dF0sCisJCQkJCSBudW1fYmxvY2tzID4gMSwgY21kLT51c2VfY3JjLCAmc3RhdHVzKTsKKworCQlp ZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJVFJBQ0VfRVhJVChkZXYpOworCQkJcmV0dXJu IChlcnIpOworCQl9CisKKwkJaWYgKE1NQ1NQSV9EUl9FUlJfTk9ORSAhPSBzdGF0dXMpIHsKKwkJ CWlmIChudW1fYmxvY2tzID4gMSkgeworCQkJCS8qCisJCQkJICogSWdub3JlIGFueSBmYWlsdXJl IHJlcG9ydGVkIGZvciB0aGUgc3RvcAorCQkJCSAqIGNvbW1hbmQsIGFzIHRoZSByZXR1cm4gc3Rh dHVzIGZvciB0aGUKKwkJCQkgKiB3cml0ZSBwaGFzZSB3aWxsIGJlIHdoYXRldmVyIGVycm9yIHdh cworCQkJCSAqIGluZGljYXRlZCBpbiB0aGUgZGF0YSByZXNwb25lIHRva2VuLgorCQkJCSAqLwor CQkJCW1tY3NwaV9zZW5kX3N0b3AoZGV2LCBjbWQtPnJldHJpZXMpOworCQkJfQorCisJCQkvKiAK KwkJCSAqIEEgQ1JDIGVycm9yIGNhbid0IGJlIGlnbm9yZWQgaGVyZSwgZXZlbiBpZiBjcmMKKwkJ CSAqIHVzZSBpcyBkaXNhYmxlZCwgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIHNpbXBseQorCQkJICog Y2Fycnkgb24gd2hlbiBhIGRhdGEgZXJyb3IgdG9rZW4gaGFzIGJlZW4gc2VudC4KKwkJCSAqLwor CQkJaWYgKE1NQ1NQSV9EUl9FUlJfQ1JDID09IHN0YXR1cykgeworCQkJCVRSQUNFX0VYSVQoZGV2 KTsKKwkJCQlyZXR1cm4gKE1NQ19FUlJfQkFEQ1JDKTsKKwkJCX0gZWxzZSB7CisJCQkJVFJBQ0Vf RVhJVChkZXYpOworCQkJCXJldHVybiAoTU1DX0VSUl9GQUlMRUQpOworCQkJfQorCQl9CisJCQkJ CQorCQlkYXRhX29mZnNldCArPSBNTUNTUElfREFUQV9CTE9DS19MRU47CisJfQorCisJLyogc3Vj Y2Vzc2Z1bCBtdWx0aS1ibG9jayB3cml0ZSBjb21tYW5kcyByZXF1aXJlIGEgc3RvcCB0b2tlbiAq LworCWlmIChudW1fYmxvY2tzID4gMSkgeworCQlUUkFDRShkZXYsIEFDVElPTiwgIlNlbmRpbmcg c3RvcCB0b2tlblxuIik7CisKKwkJLyogCisJCSAqIE1vc3QvYWxsIGNhcmRzIGFyZSBhIGJpdCBz bHVnZ2lzaCBpbiBhc3NzZXJ0aW5nIGJ1c3kKKwkJICogYWZ0ZXIgcmVjZWlwdCBvZiB0aGUgU1RP UF9UUkFOIHRva2VuLiBDbG9ja2luZyBvdXQgYW4KKwkJICogZXh0cmEgYnl0ZSBoZXJlIHByb3Zp ZGVzIGEgYnl0ZSBvZiBkZWFkIHRpbWUgYmVmb3JlCisJCSAqIGxvb2tpbmcgZm9yIG5vdCBidXN5 LCBhdm9pZGluZyBhIHByZW1hdHVyZSBub3QtYnVzeQorCQkgKiBkZXRlcm1pbmF0aW9uIHdpdGgg c3VjaCBjYXJkcy4KKwkJICovCisJCXRva2VuWzBdID0gTU1DU1BJX1RPS0VOX1NUOworCQl0b2tl blsxXSA9IDB4ZmY7CisKKwkJZXJyID0gbW1jc3BpX2RvX3NwaV93cml0ZShkZXYsIHRva2VuLCBz aXplb2YodG9rZW4pLCBOVUxMLCAwKTsKKwkJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJ CVRSQUNFX0VYSVQoZGV2KTsKKwkJCXJldHVybiAoZXJyKTsKKwkJfQorCisJCWVyciA9IG1tY3Nw aV93YWl0X2Zvcl9ub3RfYnVzeShkZXYpOworCQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgewor CQkJVFJBQ0VfRVhJVChkZXYpOworCQkJcmV0dXJuIChlcnIpOworCQl9CisJfQorCisJVFJBQ0Vf RVhJVChkZXYpOworCisJcmV0dXJuIChNTUNfRVJSX05PTkUpOworfQorCisKK3N0YXRpYyB1bnNp Z25lZCBpbnQKK21tY3NwaV90cmFuc2xhdGVfcmVzcG9uc2UoZGV2aWNlX3QgZGV2LCBzdHJ1Y3Qg bW1jc3BpX2NvbW1hbmQgKmNtZCwgCisJCQkgIHVpbnQ4X3QgKnJzcGJ1ZikKK3sKKwlUUkFDRV9F TlRFUihkZXYpOworCisJc3RydWN0IG1tY19jb21tYW5kICptbWNfY21kID0gY21kLT5tbWNfY21k OworCXVpbnQzMl90IG1tY19yc3BfdHlwZSA9IE1NQ19SU1AoY21kLT5mbGFncyk7CisJdWludDhf dCAqbGRhdGEgPSBjbWQtPmxkYXRhLmRhdGE7CisKKwlUUkFDRShkZXYsIEFDVElPTiwgInRyYW5z bGF0aW5nIFNQSSByc3AgJXUgdG8gU0QgcnNwICV1XG4iLAorCSAgICAgIGNtZC0+cnNwX3R5cGUs IG1tY19yc3BfdHlwZSk7CisKKwlpZiAoKE1NQ19SU1BfUjEgPT0gbW1jX3JzcF90eXBlKSB8fAor CSAgICAoTU1DX1JTUF9SMUIgPT0gbW1jX3JzcF90eXBlKSkgeworCisJCVRSQUNFKGRldiwgQUNU SU9OLCAidHJhbnNsYXRpbmcgU1BJLVIxLzIgdG8gU0QtUjFcbiIpOworCisJCWlmICgoTU1DU1BJ X1JTUF9SMSA9PSBjbWQtPnJzcF90eXBlKSB8fAorCQkgICAgKE1NQ1NQSV9SU1BfUjFCID09IGNt ZC0+cnNwX3R5cGUpIHx8CisJCSAgICAoTU1DU1BJX1JTUF9SMiA9PSBjbWQtPnJzcF90eXBlKSkg eworCQkJbW1jX2NtZC0+cmVzcFswXSA9IDA7CisKKwkJCWlmIChyc3BidWZbMF0gJiBNTUNTUElf UjFfUEFSQU1fRVJSKQorCQkJCW1tY19jbWQtPnJlc3BbMF0gfD0gUjFfT1VUX09GX1JBTkdFOwor CisJCQlpZiAocnNwYnVmWzBdICYgTU1DU1BJX1IxX0FERFJfRVJSKQorCQkJCW1tY19jbWQtPnJl c3BbMF0gfD0gUjFfQUREUkVTU19FUlJPUjsKKworCQkJaWYgKHJzcGJ1ZlswXSAmIE1NQ1NQSV9S MV9FUkFTRV9FUlIpCisJCQkJbW1jX2NtZC0+cmVzcFswXSB8PSBSMV9FUkFTRV9TRVFfRVJST1I7 CisKKwkJCWlmIChyc3BidWZbMF0gJiBNTUNTUElfUjFfQ1JDX0VSUikKKwkJCQltbWNfY21kLT5y ZXNwWzBdIHw9IFIxX0NPTV9DUkNfRVJST1I7CisKKwkJCWlmIChyc3BidWZbMF0gJiBNTUNTUElf UjFfSUxMX0NNRCkKKwkJCQltbWNfY21kLT5yZXNwWzBdIHw9IFIxX0lMTEVHQUxfQ09NTUFORDsK KworCQkJaWYgKHJzcGJ1ZlswXSAmIE1NQ1NQSV9SMV9FUkFTRV9SU1QpCisJCQkJbW1jX2NtZC0+ cmVzcFswXSB8PSBSMV9FUkFTRV9SRVNFVDsKKworCQkJaWYgKHJzcGJ1ZlswXSAmIE1NQ1NQSV9S MV9JRExFKSB7CisJCQkJbW1jX2NtZC0+cmVzcFswXSB8PSAodWludDMyX3QpUjFfU1RBVEVfSURM RSA8PCA5OworCQkJfSBlbHNlIHsKKwkJCQltbWNfY21kLT5yZXNwWzBdIHw9ICh1aW50MzJfdClS MV9TVEFURV9SRUFEWSA8PCA5OworCQkJfQorCisJCQkvKiBXaGVuIE1NQ19DTURfSVNfQVBQIGlz IHNlbnQsIGVtdWxhdGUgUjFfQVBQX0NNRAorCQkJICAgU0QtYnVzIHN0YXR1cyBiaXQuICovCisJ CQlpZiAoIShjbWQtPmZsYWdzICYgTU1DX0NNRF9JU19BUFApICYmCisJCQkgICAgKE1NQ19BUFBf Q01EID09IGNtZC0+b3Bjb2RlKSkgeworCQkJCW1tY19jbWQtPnJlc3BbMF0gfD0gUjFfQVBQX0NN RDsKKwkJCX0KKworCQkJaWYgKE1NQ1NQSV9SU1BfUjIgPT0gY21kLT5yc3BfdHlwZSkgeworCQkJ CWlmIChyc3BidWZbMV0gJiBNTUNTUElfUjJfT09SX0NTRF9PVykKKwkJCQkJbW1jX2NtZC0+cmVz cFswXSB8PQorCQkJCQkgICAgUjFfT1VUX09GX1JBTkdFIHwKKwkJCQkJICAgIFIxX0NTRF9PVkVS V1JJVEU7CisKKwkJCQlpZiAocnNwYnVmWzFdICYgTU1DU1BJX1IyX0VSQVNFX1BBUkFNKQorCQkJ CQltbWNfY21kLT5yZXNwWzBdIHw9IFIxX0VSQVNFX1BBUkFNOworCisJCQkJaWYgKHJzcGJ1Zlsx XSAmIE1NQ1NQSV9SMl9XUF9WSU9MQVRFKQorCQkJCQltbWNfY21kLT5yZXNwWzBdIHw9IFIxX1dQ X1ZJT0xBVElPTjsKKworCQkJCWlmIChyc3BidWZbMV0gJiBNTUNTUElfUjJfRUNDX0ZBSUwpCisJ CQkJCW1tY19jbWQtPnJlc3BbMF0gfD0gUjFfQ0FSRF9FQ0NfRkFJTEVEOworCisJCQkJaWYgKHJz cGJ1ZlsxXSAmIE1NQ1NQSV9SMl9DQ19FUlIpCisJCQkJCW1tY19jbWQtPnJlc3BbMF0gfD0gUjFf Q0NfRVJST1I7CisKKwkJCQlpZiAocnNwYnVmWzFdICYgTU1DU1BJX1IyX0VSUikKKwkJCQkJbW1j X2NtZC0+cmVzcFswXSB8PSBSMV9FUlJPUjsKKworCQkJCWlmIChyc3BidWZbMV0gJiBNTUNTUElf UjJfV1BfRVJfTENLKQorCQkJCQltbWNfY21kLT5yZXNwWzBdIHw9CisJCQkJCSAgICBSMV9MT0NL X1VOTE9DS19GQUlMRUQgfAorCQkJCQkgICAgUjFfV1BfRVJBU0VfU0tJUDsKKworCQkJCWlmIChy c3BidWZbMV0gJiBNTUNTUElfUjJfTE9DS0VEKQorCQkJCQltbWNfY21kLT5yZXNwWzBdIHw9IFIx X0NBUkRfSVNfTE9DS0VEOworCisJCQl9CisJCisJCX0gZWxzZSB7CisJCQlyZXR1cm4gKE1NQ19F UlJfSU5WQUxJRCk7CisJCX0KKworCX0gZWxzZSBpZiAoTU1DX1JTUF9SMiA9PSBtbWNfcnNwX3R5 cGUpIHsKKworCQlpZiAoMTYgPT0gY21kLT5sZGF0YS5sZW4pIHsKKworCQkJVFJBQ0UoZGV2LCBB Q1RJT04sICJ0cmFuc2xhdGluZyBTUEktUjEvbGRhdGEoMTYpIHRvIFNELVIyXG4iKTsKKworCQkJ LyogbGRhdGEgY29udGFpbnMgYml0cyAxMjc6MCBvZiB0aGUgc3BpIHJlc3BvbnNlICovCisKKwkJ CW1tY19jbWQtPnJlc3BbMF0gPQorCQkJICAgICh1aW50MzJfdClsZGF0YVswXSA8PCAyNCB8CisJ CQkgICAgKHVpbnQzMl90KWxkYXRhWzFdIDw8IDE2IHwKKwkJCSAgICAodWludDMyX3QpbGRhdGFb Ml0gPDwgOCAgfAorCQkJICAgICh1aW50MzJfdClsZGF0YVszXTsKKworCQkJbW1jX2NtZC0+cmVz cFsxXSA9CisJCQkgICAgKHVpbnQzMl90KWxkYXRhWzRdIDw8IDI0IHwKKwkJCSAgICAodWludDMy X3QpbGRhdGFbNV0gPDwgMTYgfAorCQkJICAgICh1aW50MzJfdClsZGF0YVs2XSA8PCA4ICB8CisJ CQkgICAgKHVpbnQzMl90KWxkYXRhWzddOworCisJCQltbWNfY21kLT5yZXNwWzJdID0KKwkJCSAg ICAodWludDMyX3QpbGRhdGFbOF0gPDwgMjQgfAorCQkJICAgICh1aW50MzJfdClsZGF0YVs5XSA8 PCAxNiB8CisJCQkgICAgKHVpbnQzMl90KWxkYXRhWzEwXSA8PCA4ICB8CisJCQkgICAgKHVpbnQz Ml90KWxkYXRhWzExXTsKKworCQkJbW1jX2NtZC0+cmVzcFszXSA9CisJCQkgICAgKHVpbnQzMl90 KWxkYXRhWzEyXSA8PCAyNCB8CisJCQkgICAgKHVpbnQzMl90KWxkYXRhWzEzXSA8PCAxNiB8CisJ CQkgICAgKHVpbnQzMl90KWxkYXRhWzE0XSA8PCAgODsKKworCQl9IGVsc2UgeworCQkJcmV0dXJu IChNTUNfRVJSX0lOVkFMSUQpOworCQl9CisKKwl9IGVsc2UgaWYgKE1NQ19SU1BfUjMgPT0gbW1j X3JzcF90eXBlKSB7CisKKwkJaWYgKE1NQ1NQSV9SU1BfUjMgPT0gY21kLT5yc3BfdHlwZSkgewor CisJCQlUUkFDRShkZXYsIEFDVElPTiwgInRyYW5zbGF0aW5nIFNQSS1SMyB0byBTRC1SM1xuIik7 CisJCQkKKwkJCS8qIHJzcGJ1ZiBjb250YWlucyBhIDQwLWJpdCBzcGktUjMgZnJvbSB0aGUKKwkJ CSAgIE1NQ1NQSV9SRUFEX09DUiByZXNwb25zZSwgb2Ygd2hpY2ggYml0cyAzMTowIGFyZQorCQkJ ICAgdGhlIE9DUiB2YWx1ZSAqLworCisJCQkvKiBzcGkgIHJlc3BvbnNlIGJpdHMgMzE6MCBtYXBw ZWQgdG8KKwkJCSAgIHNkaGMgcmVnaXN0ZXIgYml0cyAzMTowICovCisJCQltbWNfY21kLT5yZXNw WzBdID0KKwkJCSAgICAodWludDMyX3QpcnNwYnVmWzFdIDw8IDI0IHwKKwkJCSAgICAodWludDMy X3QpcnNwYnVmWzJdIDw8IDE2IHwKKwkJCSAgICAodWludDMyX3QpcnNwYnVmWzNdIDw8IDggIHwK KwkJCSAgICAodWludDMyX3QpcnNwYnVmWzRdOworCisJCQkvKiBDbGVhciBjYXJkIGJ1c3kgYml0 IChpbmRpY2F0aW5nIGJ1c3kpIGlmIHRoZQorCQkJICAgU1BJLVIxIGlkbGUgYml0IGlzIHNldC4g Ki8KKwkJCWlmIChyc3BidWZbMF0gJiBNTUNTUElfUjFfSURMRSkgeworCQkJCW1tY19jbWQtPnJl c3BbMF0gJj0gfk1NQ19PQ1JfQ0FSRF9CVVNZOworCQkJfSBlbHNlIHsKKwkJCQltbWNfY21kLT5y ZXNwWzBdIHw9IE1NQ19PQ1JfQ0FSRF9CVVNZOworCQkJfQorCisJCQlUUkFDRShkZXYsIERFVEFJ TFMsICJvY3I9MHglMDh4XG4iLCBtbWNfY21kLT5yZXNwWzBdKTsKKwkJfSBlbHNlIHsKKwkJCXJl dHVybiAoTU1DX0VSUl9JTlZBTElEKTsKKwkJfQorCisJfSBlbHNlIGlmIChNTUNfUlNQX1I3ID09 IG1tY19yc3BfdHlwZSkgeworCQkvKiBOb3RlIE1NQ19SU1BfUjYgYW5kIE1NQ19SU1BfUjcgYXJl IG51bWVyaWNhbGx5IGVxdWFsLCBzbworCQkgICB0aGlzIGhhbmRsZXMgYm90aCBjYXNlcy4gKi8K KworCQlpZiAoTU1DU1BJX1JTUF9SMiA9PSBjbWQtPnJzcF90eXBlKSB7CisKKwkJCVRSQUNFKGRl diwgQUNUSU9OLCAidHJhbnNsYXRpbmcgU1BJLVIyIHRvIFNELVI2XG4iKTsKKworCQkJLyogcmNh IHJldHVybmVkIHdpbGwgYWx3YXlzIGJlIHplcm8gKi8KKwkJCW1tY19jbWQtPnJlc3BbMF0gPSAw OworCisJCQlpZiAocnNwYnVmWzBdICYgTU1DU1BJX1IxX0NSQ19FUlIpCisJCQkJbW1jX2NtZC0+ cmVzcFswXSB8PSAweDgwMDA7CisKKwkJCWlmIChyc3BidWZbMF0gJiBNTUNTUElfUjFfSUxMX0NN RCkKKwkJCQltbWNfY21kLT5yZXNwWzBdIHw9IDB4NDAwMDsKKwkJCQorCQkJaWYgKHJzcGJ1Zlsx XSAmIE1NQ1NQSV9SMl9FUlIpCisJCQkJbW1jX2NtZC0+cmVzcFswXSB8PSAweDIwMDA7CisKKwkJ CWlmIChyc3BidWZbMF0gJiBNTUNTUElfUjFfSURMRSkgeworCQkJCW1tY19jbWQtPnJlc3BbMF0g fD0gKHVpbnQzMl90KVIxX1NUQVRFX0lETEUgPDwgOTsKKwkJCX0gZWxzZSB7CisJCQkJbW1jX2Nt ZC0+cmVzcFswXSB8PSAodWludDMyX3QpUjFfU1RBVEVfUkVBRFkgPDwgOTsKKwkJCX0KKworCQl9 IGVsc2UgaWYgKE1NQ1NQSV9SU1BfUjcgPT0gY21kLT5yc3BfdHlwZSkgeworCisJCQlUUkFDRShk ZXYsIEFDVElPTiwgInRyYW5zbGF0aW5nIFNQSS1SNyB0byBTRC1SN1xuIik7CisKKwkJCS8qIHJz cCBidWYgY29udGFpbnMgYSA0MC1iaXQgc3BpLVI3LCBvZiB3aGljaCBiaXRzCisJCQkgICAxMTow IG5lZWQgdG8gYmUgdHJhbnNmZXJyZWQgKi8KKwkJCQorCQkJLyogc3BpICByZXNwb25zZSBiaXRz IDExOjAgbWFwcGVkIHRvCisJCQkgICBzZGhjIHJlZ2lzdGVyIGJpdHMgMTE6MCAqLworCQkJbW1j X2NtZC0+cmVzcFswXSA9CisJCQkgICAgKHVpbnQzMl90KShyc3BidWZbM10gJiAweGYpIDw8IDgg fAorCQkJICAgICh1aW50MzJfdClyc3BidWZbNF07CisKKwkJfSBlbHNlIHsKKwkJCXJldHVybiAo TU1DX0VSUl9JTlZBTElEKTsKKwkJfQorCisJfSBlbHNlIGlmIChNTUNfUlNQX05PTkUgIT0gbW1j X3JzcF90eXBlKSB7CisJCXJldHVybiAoTU1DX0VSUl9JTlZBTElEKTsKKwl9CisKKwlUUkFDRV9F WElUKGRldik7CisKKwlyZXR1cm4gKE1NQ19FUlJfTk9ORSk7Cit9CisKKworc3RhdGljIHVuc2ln bmVkIGludAorbW1jc3BpX2dldF9vY3IoZGV2aWNlX3QgZGV2LCB1aW50OF90ICpvY3JidWYpCit7 CisJVFJBQ0VfRU5URVIoZGV2KTsKKworCXN0cnVjdCBtbWNfY29tbWFuZCBtbWNfY21kOworCXN0 cnVjdCBtbWNzcGlfY29tbWFuZCBjbWQ7CisJdW5zaWduZWQgaW50IGVycjsKKwl1aW50OF90IHIx X3N0YXR1czsKKwl1aW50OF90IHJzcGJ1ZltNTUNTUElfTUFYX1JTUF9MRU5dOworCisJbWVtc2V0 KCZtbWNfY21kLCAwLCBzaXplb2Yoc3RydWN0IG1tY19jb21tYW5kKSk7CisJbW1jX2NtZC5vcGNv ZGUgPSBNTUNTUElfUkVBRF9PQ1I7CisJbW1jX2NtZC5mbGFncyA9IE1NQ19SU1BfUjMgfCBNTUNf Q01EX0FDOworCisJZXJyID0gbW1jc3BpX3NldF91cF9jb21tYW5kKGRldiwgJmNtZCwgJm1tY19j bWQpOworCWlmIChNTUNfRVJSX05PTkUgIT0gZXJyKSB7CisJCVRSQUNFX0VYSVQoZGV2KTsKKwkJ cmV0dXJuIChlcnIpOworCX0KKwkJCQorCWVyciA9IG1tY3NwaV9zZW5kX2NtZChkZXYsICZjbWQs IHJzcGJ1Zik7CisJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJVFJBQ0VfRVhJVChkZXYp OworCQlyZXR1cm4gKGVycik7CisJfQorCQkKKwlyMV9zdGF0dXMgPSByc3BidWZbMF0gJiBjbWQu ZXJyb3JfbWFzazsKKwlpZiAocjFfc3RhdHVzKSB7CisJCWlmIChyMV9zdGF0dXMgJiBNTUNTUElf UjFfQ1JDX0VSUikgeworCQkJZXJyID0gTU1DX0VSUl9CQURDUkM7CisJCX0gZWxzZSB7CisJCQll cnIgPSBNTUNfRVJSX0lOVkFMSUQ7CisJCX0KKwkJCisJCVRSQUNFX0VYSVQoZGV2KTsKKwkJcmV0 dXJuIChlcnIpOworCX0KKworCW1lbWNweShvY3JidWYsICZyc3BidWZbMV0sIE1NQ1NQSV9PQ1Jf TEVOKTsKKworCVRSQUNFX0VYSVQoZGV2KTsKKworCXJldHVybiAoTU1DX0VSUl9OT05FKTsKK30K KworCitzdGF0aWMgdW5zaWduZWQgaW50CittbWNzcGlfc2V0X2NyY19vbl9vZmYoZGV2aWNlX3Qg ZGV2LCB1bnNpZ25lZCBpbnQgY3JjX29uKQoreworCXN0cnVjdCBtbWNfY29tbWFuZCBtbWNfY21k OworCXN0cnVjdCBtbWNzcGlfY29tbWFuZCBjbWQ7CisJdW5zaWduZWQgaW50IGVycjsKKwl1aW50 OF90IHIxX3N0YXR1czsKKwl1aW50OF90IHJzcGJ1ZltNTUNTUElfTUFYX1JTUF9MRU5dOworCisJ VFJBQ0VfRU5URVIoZGV2KTsKKworCW1lbXNldCgmbW1jX2NtZCwgMCwgc2l6ZW9mKHN0cnVjdCBt bWNfY29tbWFuZCkpOworCW1tY19jbWQub3Bjb2RlID0gTU1DU1BJX0NSQ19PTl9PRkY7CisJbW1j X2NtZC5hcmcgPSBjcmNfb24gPyAxIDogMDsKKwltbWNfY21kLmZsYWdzID0gTU1DX1JTUF9OT05F IHwgTU1DX0NNRF9BQzsKKworCWVyciA9IG1tY3NwaV9zZXRfdXBfY29tbWFuZChkZXYsICZjbWQs ICZtbWNfY21kKTsKKwlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQlUUkFDRV9FWElUKGRl dik7CisJCXJldHVybiAoZXJyKTsKKwl9CisJCQkKKwllcnIgPSBtbWNzcGlfc2VuZF9jbWQoZGV2 LCAmY21kLCByc3BidWYpOworCWlmIChNTUNfRVJSX05PTkUgIT0gZXJyKSB7CisJCVRSQUNFX0VY SVQoZGV2KTsKKwkJcmV0dXJuIChlcnIpOworCX0KKwkJCisJcjFfc3RhdHVzID0gcnNwYnVmWzBd ICYgY21kLmVycm9yX21hc2s7CisJaWYgKHIxX3N0YXR1cykgeworCQlpZiAocjFfc3RhdHVzICYg TU1DU1BJX1IxX0NSQ19FUlIpIHsKKwkJCWVyciA9IE1NQ19FUlJfQkFEQ1JDOworCQl9IGVsc2Ug eworCQkJZXJyID0gTU1DX0VSUl9JTlZBTElEOworCQl9CisJCQorCQlUUkFDRV9FWElUKGRldik7 CisJCXJldHVybiAoZXJyKTsKKwl9CisKKwlUUkFDRV9FWElUKGRldik7CisJcmV0dXJuIChNTUNf RVJSX05PTkUpOworfQorCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK21tY3NwaV91cGRhdGVfY3Jj X3NldHRpbmcoZGV2aWNlX3QgZGV2LCB1bnNpZ25lZCBpbnQgY3JjX29uKQoreworCVRSQUNFX0VO VEVSKGRldik7CisJc3RydWN0IG1tY3NwaV9zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRl dik7CisJc3RydWN0IG1tY3NwaV9zbG90ICpzbG90ID0gJnNjLT5zbG90OworCXVuc2lnbmVkIGlu dCBlcnI7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDw9IE1NQ1NQSV9SRVRSSUVTOyBpKysp IHsKKwkJZXJyID0gbW1jc3BpX3NldF9jcmNfb25fb2ZmKGRldiwgY3JjX29uKTsKKwkJaWYgKE1N Q19FUlJfQkFEQ1JDICE9IGVycikgeworCQkJYnJlYWs7CisJCX0KKwl9CisJCisJaWYgKE1NQ19F UlJfTk9ORSAhPSBlcnIpIHsKKwkJVFJBQ0VfRVhJVChkZXYpOworCQlyZXR1cm4gKGVycik7CisJ fQorCQorCWlmIChjcmNfb24pIHsKKwkJc2xvdC0+Y3JjX2VuYWJsZWQgPSAxOworCX0gZWxzZSB7 CisJCXNsb3QtPmNyY19lbmFibGVkID0gMDsKKwl9CisKKwlUUkFDRV9FWElUKGRldik7CisJcmV0 dXJuIChNTUNfRVJSX05PTkUpOworfQorCisKK3N0YXRpYyBpbnQKK21tY3NwaV9yZXF1ZXN0KGRl dmljZV90IGJyZGV2LCBkZXZpY2VfdCByZXFkZXYsIHN0cnVjdCBtbWNfcmVxdWVzdCAqcmVxKQor eworCVRSQUNFX0VOVEVSKGJyZGV2KTsKKworCXN0cnVjdCBtbWNzcGlfc29mdGMgKnNjID0gZGV2 aWNlX2dldF9zb2Z0YyhicmRldik7CisJc3RydWN0IG1tY3NwaV9zbG90ICpzbG90ID0gJnNjLT5z bG90OworCXN0cnVjdCBtbWNzcGlfY29tbWFuZCBjbWQ7CisJc3RydWN0IG1tY19jb21tYW5kICpt bWNfY21kID0gcmVxLT5jbWQ7CisJc3RydWN0IG1tY19kYXRhICpkYXRhOworCXVuc2lnbmVkIGlu dCBlcnI7CisJdW5zaWduZWQgaW50IHVzZV9jcmNfc2FtcGxlOworCWludCBpLCBqOworCXVpbnQz Ml90IG9wY29kZTsKKwl1aW50MzJfdCBmbGFnczsKKwl1aW50MzJfdCBsYXN0X29wY29kZTsKKwl1 aW50MzJfdCBsYXN0X2ZsYWdzOworCXVpbnQ4X3QgcnNwYnVmW01NQ1NQSV9NQVhfUlNQX0xFTl07 CisKKyNkZWZpbmUgSVNfQ01EKGNvZGUsIGNtZCwgZmxhZ3MpICghKChmbGFncykgJiBNTUNfQ01E X0lTX0FQUCkgJiYgKChjb2RlKSA9PSAoY21kKSkpCisjZGVmaW5lIElTX0FDTUQoY29kZSwgY21k LCBmbGFncykgKCgoZmxhZ3MpICYgTU1DX0NNRF9JU19BUFApICYmICgoY29kZSkgPT0gKGNtZCkp KQorCisJaWYgKHBvd2VyX29uICE9IHNsb3QtPmhvc3QuaW9zLnBvd2VyX21vZGUpIHsKKwkJcmV0 dXJuIChNTUNfRVJSX0lOVkFMSUQpOworCX0KKworCS8qIAorCSAqIFNhbXBsZSB1c2VfY3JjIHN5 c2N0bCBhbmQgYWRqdXN0IGNhcmQgc2V0dGluZyBpZiByZXF1aXJlZCBhbmQKKwkgKiBhcHByb3By aWF0ZS4KKwkgKi8KKwl1c2VfY3JjX3NhbXBsZSA9IHNjLT51c2VfY3JjOworCWlmIChzbG90LT5j cmNfaW5pdF9kb25lICYmCisJICAgICh1c2VfY3JjX3NhbXBsZSAhPSBzbG90LT5jcmNfZW5hYmxl ZCkpIHsKKwkJZXJyID0gbW1jc3BpX3VwZGF0ZV9jcmNfc2V0dGluZyhicmRldiwgdXNlX2NyY19z YW1wbGUpOworCQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJZ290byBvdXQ7CisJCX0K KwkJc2xvdC0+Y3JjX2luaXRfZG9uZSA9IDE7CisJfQorCisJZXJyID0gbW1jc3BpX3NldF91cF9j b21tYW5kKGJyZGV2LCAmY21kLCBtbWNfY21kKTsKKwlpZiAoTU1DX0VSUl9OT05FICE9IGVycikg eworCQlnb3RvIG91dDsKKwl9CisKKwlvcGNvZGUgPSBjbWQub3Bjb2RlOworCWZsYWdzID0gY21k LmZsYWdzOworCWRhdGEgPSBjbWQuZGF0YTsKKworCWxhc3Rfb3Bjb2RlID0gc2xvdC0+bGFzdF9v cGNvZGU7CisJbGFzdF9mbGFncyA9IHNsb3QtPmxhc3RfZmxhZ3M7CisKKwkvKiBlbmZvcmNlIHJl c3RyaWN0aW9ucyBvbiByZXF1ZXN0IHBhcmFtZXRlcnMgKi8KKwlpZiAoZGF0YSkgeworCisJCS8q IAorCQkgKiBBbGwgd3JpdGVzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aGUgYmxvY2sgbGVuZ3Ro LiBBbGwKKwkJICogcmVhZHMgZ3JlYXRlciB0aGFuIHRoZSBibG9jayBsZW5ndGggbXVzdCBiZSBh IG11bHRpcGxlIG9mCisJCSAqIHRoZSBibG9jayBsZW5ndGguCisJCSAqLworCQlpZiAoKGRhdGEt PmxlbiAlIE1NQ1NQSV9EQVRBX0JMT0NLX0xFTikgJiYKKwkJICAgICEoKGRhdGEtPmZsYWdzICYg TU1DX0RBVEFfUkVBRCkgJiYKKwkJICAgICAgKGRhdGEtPmxlbiA8IE1NQ1NQSV9EQVRBX0JMT0NL X0xFTikpKSB7CisJCQlUUkFDRShicmRldiwgRVJST1IsCisJCQkgICAgICAicmVxdWVzdGVkIGRh dGEgcGhhc2Ugbm90IGEgbXVsdGlwbGUgb2YgJXVcbiIsCisJCQkgICAgICBNTUNTUElfREFUQV9C TE9DS19MRU4pOworCQkJZXJyID0gTU1DX0VSUl9JTlZBTElEOworCQkJZ290byBvdXQ7CisJCX0K KworCQlpZiAoKChkYXRhLT5mbGFncyAmIE1NQ19EQVRBX1JFQUQpICYmCisJCSAgICAgKGRhdGEt PmZsYWdzICYgTU1DX0RBVEFfV1JJVEUpKSB8fAorCQkgICAgKGRhdGEtPmZsYWdzICYgTU1DX0RB VEFfU1RSRUFNKSkgeworCQkJVFJBQ0UoYnJkZXYsIEVSUk9SLCAiaWxsZWdhbCBkYXRhIHBoYXNl IGZsYWdzIDB4JTAyeFxuIiwKKwkJCSAgICAgIGRhdGEtPmZsYWdzKTsKKwkJCWVyciA9IE1NQ19F UlJfSU5WQUxJRDsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorCisJZm9yIChpID0gMDsgaSA8PSBj bWQucmV0cmllczsgaSsrKSB7CisJCS8qIAorCQkgKiBPbiB0aGUgbmV4dCBjb21tYW5kIGZvbGxv d2luZyBhIENNRDgsIGNvbGxlY3QgdGhlIE9DUiBhbmQKKwkJICogc2F2ZSBpdCBvZmYgZm9yIHVz ZSBpbiB0aGUgbmV4dCBBQ01ENDEuCisJCSAqLworCQlpZiAoSVNfQ01EKFNEX1NFTkRfSUZfQ09O RCwgbGFzdF9vcGNvZGUsIGxhc3RfZmxhZ3MpKSB7CisJCQllcnIgPSBtbWNzcGlfZ2V0X29jcihi cmRldiwgc2xvdC0+bGFzdF9vY3IpOworCQkJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJ CQlpZiAoTU1DX0VSUl9CQURDUkMgPT0gZXJyKSB7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJ CQlnb3RvIG91dDsKKwkJCX0KKwkJfQorCisJCWVyciA9IG1tY3NwaV9zZW5kX2NtZChicmRldiwg JmNtZCwgcnNwYnVmKTsKKwkJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJCWlmIChNTUNf RVJSX0JBRENSQyA9PSBlcnIpIHsKKwkJCQljb250aW51ZTsKKwkJCX0KKwkJCWdvdG8gb3V0Owor CQl9CisKKwkJaWYgKGRhdGEpIHsKKwkJCWlmIChkYXRhLT5mbGFncyAmIE1NQ19EQVRBX1JFQUQp IHsKKwkJCQllcnIgPSBtbWNzcGlfcmVhZF9waGFzZShicmRldiwgJmNtZCk7CisJCQl9IGVsc2Ug eyAgLyogTU1DX0RBVEFfV1JJVEUgKi8KKwkJCQllcnIgPSBtbWNzcGlfd3JpdGVfcGhhc2UoYnJk ZXYsICZjbWQpOworCQkJfQorCisJCQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJCWlm IChNTUNfRVJSX0JBRENSQyA9PSBlcnIpIHsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJCWdv dG8gb3V0OworCQkJfQorCQl9IAorCisJCWJyZWFrOworCX0KKworCWlmIChNTUNfRVJSX05PTkUg IT0gZXJyKSB7CisJCWdvdG8gb3V0OworCX0KKworCisJLyogCisJICogSWYgdGhpcyB3YXMgYW4g QUNNRF9TRF9TRU5EX09QX0NPTkQgb3IgTU1DX1NFTkRfT1BfQ09ORCwgd2UgbmVlZAorCSAqIHRv IHJldHVybiBhbiBPQ1IgdmFsdWUgaW4gdGhlIHJlc3VsdC4gIElmIHRoZSByZXNwb25zZSBmcm9t IHRoZQorCSAqIGNhcmQgaW5kaWNhdGVzIGl0IGlzIHN0aWxsIGluIHRoZSBJRExFIHN0YXRlLCBz dXBwbHkgdGhlIE9DUgorCSAqIHZhbHVlIG9idGFpbmVkIGFmdGVyIHRoZSBsYXN0IENNRDgsIG90 aGVyd2lzZSBpc3N1ZSBhbgorCSAqIE1NQ1NQSV9SRUFEX09DUiB0byBnZXQgdGhlIGN1cnJlbnQg dmFsdWUsIHdoaWNoIHdpbGwgaGF2ZSBhIHZhbGlkCisJICogQ0NTIGJpdC4KKwkgKgorCSAqIFRo aXMgZGFuY2UgaXMgcmVxdWlyZWQgdW5kZXIgdGhpcyBlbXVsYXRpb24gYXBwcm9hY2ggYmVjYXVz ZSB0aGUKKwkgKiBzcGVjIHN0aXB1bGF0ZXMgdGhhdCBubyBvdGhlciBjb21tYW5kcyBzaG91bGQg YmUgc2VudCB3aGlsZQorCSAqIEFDTURfU0RfU0VORF9PUF9DT05EIGlzIGJlaW5nIHVzZWQgdG8g cG9sbCBmb3IgdGhlIGVuZCBvZiB0aGUKKwkgKiBJRExFIHN0YXRlLCBhbmQgc29tZSBjYXJkcyBk byBlbmZvcmNlIHRoYXQgcmVxdWlyZW1lbnQuCisJICovCisJaWYgKElTX0FDTUQoQUNNRF9TRF9T RU5EX09QX0NPTkQsIG9wY29kZSwgZmxhZ3MpIHx8CisJICAgIElTX0NNRChNTUNfU0VORF9PUF9D T05ELCBvcGNvZGUsIGZsYWdzKSkgeworCisJCWlmIChyc3BidWZbMF0gJiBNTUNTUElfUjFfSURM RSkgeworCQkJbWVtY3B5KCZyc3BidWZbMV0sIHNsb3QtPmxhc3Rfb2NyLCBNTUNTUElfT0NSX0xF Tik7CisJCX0gZWxzZSB7CisKKwkJCS8qCisJCQkgKiBTb21lIGNhcmRzIHdvbid0IGFjY2VwdCB0 aGUgTU1DU1BJX0NSQ19PTl9PRkYKKwkJCSAqIGNvbW1hbmQgdW50aWwgaW5pdGlhbGl6YXRpb24g aXMgY29tcGxldGUuCisJCQkgKgorCQkJICogRXhhbXBsZXM6CisJCQkgKgorCQkJICogU3VwZXIg VGFsZW50IDFHQiBTRFNDIGNhcmQsIGNpZDoKKwkJCSAqIG1pZD0weDFiIG9pZD0weDUzNGQgcG5t PSIwMDAwMCIgcHJ2PTEuMCBtZHQ9MDIuMjAxMAorCQkJICovCisJCQlpZiAoIXNsb3QtPmNyY19p bml0X2RvbmUpIHsKKwkJCQllcnIgPSBtbWNzcGlfdXBkYXRlX2NyY19zZXR0aW5nKGJyZGV2LAor CQkJCQkJCQlzYy0+dXNlX2NyYyk7CisJCQkJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJ CQkJZ290byBvdXQ7CisJCQkJfQorCQkJCXNsb3QtPmNyY19pbml0X2RvbmUgPSAxOworCQkJfQor CisJCQlmb3IgKGogPSAwOyBqIDw9IGNtZC5yZXRyaWVzOyBqKyspIHsKKwkJCQkvKiAKKwkJCQkg KiBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlLCB3ZSBwYXNzIG9uIHRoZSBSMQorCQkJCSAqIGZyb20g UkVBRF9PQ1IuCisJCQkJICovCisJCQkJZXJyID0gbW1jc3BpX2dldF9vY3IoYnJkZXYsIHJzcGJ1 Zik7CisJCQkJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJCQkJaWYgKE1NQ19FUlJfQkFE Q1JDID09IGVycikgeworCQkJCQkJY29udGludWU7CisJCQkJCX0KKwkJCQkJCisJCQkJCWdvdG8g b3V0OworCQkJCX0KKworCQkJfQorCisJCQlpZiAoTU1DX0VSUl9OT05FICE9IGVycikgeworCQkJ CWdvdG8gb3V0OworCQkJfQorCisJCX0KKworCQkvKiBhZGp1c3QgdGhlIFNQSSByZXNwb25zZSB0 eXBlIHRvIGluY2x1ZGUgdGhlIE9DUiAqLworCQljbWQucnNwX3R5cGUgPSBNTUNTUElfUlNQX1Iz OworCX0KKworCWVyciA9IG1tY3NwaV90cmFuc2xhdGVfcmVzcG9uc2UoYnJkZXYsICZjbWQsIHJz cGJ1Zik7CisJaWYgKE1NQ19FUlJfTk9ORSAhPSBlcnIpIHsKKwkJZ290byBvdXQ7CisJfQorCisg b3V0OgorCXNsb3QtPmxhc3Rfb3Bjb2RlID0gbW1jX2NtZC0+b3Bjb2RlOworCXNsb3QtPmxhc3Rf ZmxhZ3MgPSBtbWNfY21kLT5mbGFnczsKKworCW1tY19jbWQtPmVycm9yID0gZXJyOworCisJaWYg KHJlcS0+ZG9uZSkgeworCQlyZXEtPmRvbmUocmVxKTsKKwl9CisJCisJVFJBQ0VfRVhJVChicmRl dik7CisKKwlyZXR1cm4gKGVycik7Cit9CisKKworc3RhdGljIGludAorbW1jc3BpX2dldF9ybyhk ZXZpY2VfdCBicmRldiwgZGV2aWNlX3QgcmVxZGV2KQoreworCVRSQUNFX0VOVEVSKGJyZGV2KTsK KwlUUkFDRV9FWElUKGJyZGV2KTsKKworCS8qIFhYWCBubyBzdXBwb3J0IGZvciB0aGlzIGN1cnJl bnRseSAqLworCXJldHVybiAoMCk7Cit9CisKKworc3RhdGljIGludAorbW1jc3BpX2FjcXVpcmVf aG9zdChkZXZpY2VfdCBicmRldiwgZGV2aWNlX3QgcmVxZGV2KQoreworCVRSQUNFX0VOVEVSKGJy ZGV2KTsKKworCXN0cnVjdCBtbWNzcGlfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhicmRl dik7CisJc3RydWN0IG1tY3NwaV9zbG90ICpzbG90ID0gZGV2aWNlX2dldF9pdmFycyhyZXFkZXYp OworCXN0cnVjdCBzcGlfY29uZmlnIGNmZzsKKwlpbnQgZXJyID0gMDsKKworCU1NQ1NQSV9MT0NL X1NMT1Qoc2xvdCk7CisJd2hpbGUgKHNsb3QtPmJ1c19idXN5KSB7CisJCW10eF9zbGVlcChzbG90 LCAmc2xvdC0+bXR4LCAwLCAibW1jc3BpYWgiLCAwKTsKKwl9CisJc2xvdC0+YnVzX2J1c3krKzsK KwlNTUNTUElfVU5MT0NLX1NMT1Qoc2xvdCk7CisKKwlTUElCVVNfQUNRVUlSRV9CVVMoc2MtPmJ1 c2Rldiwgc2MtPmRldik7CisKKwkvKiBSZXN0b3JlIHRoZSBjbG9jayB0byB0aGUgbGFzdCBzZXR0 aW5nLCBhcyBpdCBtYXkgaGF2ZSBiZWVuCisJICAgY2hhbmdlZCBieSBhbm90aGVyIHNwaWJ1cyBk ZXZpY2UuICovCisJY2ZnLmNsb2NrX2h6ID0gc2xvdC0+aG9zdC5pb3MuY2xvY2s7CisJU1BJQlVT X1NFVF9DT05GSUcoc2xvdC0+c2MtPmJ1c2RldiwgJmNmZyk7CisKKwlUUkFDRV9FWElUKGJyZGV2 KTsKKworCXJldHVybiAoZXJyKTsKK30KKworCitzdGF0aWMgaW50CittbWNzcGlfcmVsZWFzZV9o b3N0KGRldmljZV90IGJyZGV2LCBkZXZpY2VfdCByZXFkZXYpCit7CisJVFJBQ0VfRU5URVIoYnJk ZXYpOworCisJc3RydWN0IG1tY3NwaV9zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGJyZGV2 KTsKKwlzdHJ1Y3QgbW1jc3BpX3Nsb3QgKnNsb3QgPSBkZXZpY2VfZ2V0X2l2YXJzKHJlcWRldik7 CisKKwlTUElCVVNfUkVMRUFTRV9CVVMoc2MtPmJ1c2Rldiwgc2MtPmRldik7CisKKwlNTUNTUElf TE9DS19TTE9UKHNsb3QpOworCXNsb3QtPmJ1c19idXN5LS07CisJTU1DU1BJX1VOTE9DS19TTE9U KHNsb3QpOworCisJd2FrZXVwKHNsb3QpOworCisJVFJBQ0VfRVhJVChicmRldik7CisKKwlyZXR1 cm4gKDApOworfQorCisKK3N0YXRpYyB1aW50OF90Cit1cGRhdGVfY3JjNyh1aW50OF90IGNyYywg dWludDhfdCAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCWludCBpOworCXVpbnQ4X3QgdG1w OworCQorCWZvciAoaT0wOyBpPGxlbjsgaSsrKSB7CisJCXRtcCA9IChjcmMgPDwgMSkgXiBidWZb aV07CisJCWNyYyA9IGNyYzd0YWJbdG1wXTsKKwl9CisJCisJcmV0dXJuIGNyYzsKK30KKworCitz dGF0aWMgdWludDE2X3QKK3VwZGF0ZV9jcmMxNih1aW50MTZfdCBjcmMsIHVpbnQ4X3QgKmJ1Ziwg dW5zaWduZWQgaW50IGxlbikKK3sKKworCWludCBpOworCXVpbnQxNl90IHRtcCwgYzE2OworCisJ Zm9yIChpPTA7IGk8bGVuOyBpKyspIHsKKwkJYzE2ICA9IDB4MDBmZiAmICh1aW50MTZfdClidWZb aV07CisKKwkJdG1wID0gKGNyYyA+PiA4KSBeIGMxNjsKKwkJY3JjID0gKGNyYyA8PCA4KSBeIGNy YzE2dGFiW3RtcF07CisJfQorCisJcmV0dXJuIGNyYzsKK30KKworCitzdGF0aWMgdm9pZAoraW5p dF9jcmM3dGFiKHZvaWQpCit7CisjZGVmaW5lIFBfQ1JDNyAweDg5CisKKwlpbnQgaSwgajsKKwl1 aW50OF90IGNyYywgYzsKKyAgICAKKwlmb3IgKGk9MDsgaTwyNTY7IGkrKykgeworCSAgICAKKwkJ YyA9ICh1aW50OF90KWk7CisJCWNyYyA9IChjICYgMHg4MCkgPyBjIF4gUF9DUkM3IDogYzsKKwor CQlmb3IgKGo9MTsgajw4OyBqKyspIHsKKwkJCWNyYyA9IGNyYyA8PCAxOworCisJCQlpZiAoY3Jj ICYgMHg4MCkgeworCQkJCWNyYyA9IGNyYyBeIFBfQ1JDNzsKKwkJCX0KKwkJfQorCisJCWNyYzd0 YWJbaV0gPSBjcmM7CisJfQorfQorCisKK3N0YXRpYyB2b2lkCitpbml0X2NyYzE2dGFiKHZvaWQp Cit7CisjZGVmaW5lIFBfQ0NJVFQgMHgxMDIxCisKKwlpbnQgaSwgajsKKwl1aW50MTZfdCBjcmMs IGM7CisKKwlmb3IgKGk9MDsgaTwyNTY7IGkrKykgeworCisJCWNyYyA9IDA7CisJCWMgICA9ICgo dWludDE2X3QpIGkpIDw8IDg7CisKKwkJZm9yIChqPTA7IGo8ODsgaisrKSB7CisKKwkJCWlmICgo Y3JjIF4gYykgJiAweDgwMDApIGNyYyA9ICggY3JjIDw8IDEgKSBeIFBfQ0NJVFQ7CisJCQllbHNl ICAgICAgICAgICAgICAgICAgICBjcmMgPSAgIGNyYyA8PCAxOworCisJCQljID0gYyA8PCAxOwor CQl9CisKKwkJY3JjMTZ0YWJbaV0gPSBjcmM7CisJfQorfQorCisKK3N0YXRpYyBpbnQKK21tY3Nw aV9tb2RldmVudF9oYW5kbGVyKG1vZHVsZV90IG1vZCwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sK Kwlzd2l0Y2ggKHdoYXQpIHsKKwljYXNlIE1PRF9MT0FEOgorCQlpbml0X2NyYzd0YWIoKTsKKwkJ aW5pdF9jcmMxNnRhYigpOworCQltZW1zZXQob25lc2J1ZiwgMHhmZiwgc2l6ZW9mKG9uZXNidWYp KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIChFT1BOT1RTVVBQKTsKKwl9CisKKwly ZXR1cm4gKDApOworfQorCisgCisKK3N0YXRpYyBkZXZpY2VfbWV0aG9kX3QgbW1jc3BpX21ldGhv ZHNbXSA9IHsKKwkvKiBkZXZpY2VfaWYgKi8KKwlERVZNRVRIT0QoZGV2aWNlX3Byb2JlLCBtbWNz cGlfcHJvYmUpLAorCURFVk1FVEhPRChkZXZpY2VfYXR0YWNoLCBtbWNzcGlfYXR0YWNoKSwKKwlE RVZNRVRIT0QoZGV2aWNlX2RldGFjaCwgbW1jc3BpX2RldGFjaCksCisJREVWTUVUSE9EKGRldmlj ZV9zdXNwZW5kLCBtbWNzcGlfc3VzcGVuZCksCisJREVWTUVUSE9EKGRldmljZV9yZXN1bWUsIG1t Y3NwaV9yZXN1bWUpLAorCisJLyogQnVzIGludGVyZmFjZSAqLworCURFVk1FVEhPRChidXNfcmVh ZF9pdmFyLAltbWNzcGlfcmVhZF9pdmFyKSwKKwlERVZNRVRIT0QoYnVzX3dyaXRlX2l2YXIsCW1t Y3NwaV93cml0ZV9pdmFyKSwKKworCS8qIG1tY2JyX2lmICovCisJREVWTUVUSE9EKG1tY2JyX3Vw ZGF0ZV9pb3MsIG1tY3NwaV91cGRhdGVfaW9zKSwKKwlERVZNRVRIT0QobW1jYnJfcmVxdWVzdCwg bW1jc3BpX3JlcXVlc3QpLAorCURFVk1FVEhPRChtbWNicl9nZXRfcm8sIG1tY3NwaV9nZXRfcm8p LAorCURFVk1FVEhPRChtbWNicl9hY3F1aXJlX2hvc3QsIG1tY3NwaV9hY3F1aXJlX2hvc3QpLAor CURFVk1FVEhPRChtbWNicl9yZWxlYXNlX2hvc3QsIG1tY3NwaV9yZWxlYXNlX2hvc3QpLAorCisJ ezAsIDB9LAorfTsKKworCitzdGF0aWMgZHJpdmVyX3QgbW1jc3BpX2RyaXZlciA9IHsKKwkibW1j c3BpIiwKKwltbWNzcGlfbWV0aG9kcywKKwlzaXplb2Yoc3RydWN0IG1tY3NwaV9zb2Z0YyksCit9 Oworc3RhdGljIGRldmNsYXNzX3QgbW1jc3BpX2RldmNsYXNzOworCisKK0RSSVZFUl9NT0RVTEUo bW1jc3BpLCBzcGlidXMsIG1tY3NwaV9kcml2ZXIsIG1tY3NwaV9kZXZjbGFzcywgbW1jc3BpX21v ZGV2ZW50X2hhbmRsZXIsIDApOworCisKKworCisjaWYgZGVmaW5lZChNTUNTUElfRU5BQkxFX0RF QlVHX0ZVTkNTKQorc3RhdGljIHZvaWQKK21tY3NwaV9kdW1wX2RhdGEoZGV2aWNlX3QgZGV2LCBj b25zdCBjaGFyICpsYWJlbCwgdWludDhfdCAqZGF0YSwKKwkJIHVuc2lnbmVkIGludCBsZW4pCit7 CisJVFJBQ0VfRU5URVIoZGV2KTsKKworCXVuc2lnbmVkIGludCBpLCBqOworCXVuc2lnbmVkIGlu dCBudW1fbGluZXM7CisJdW5zaWduZWQgaW50IHJlc2lkdWFsOworCisJbnVtX2xpbmVzID0gbGVu IC8gMTY7CisJcmVzaWR1YWwgPSBsZW4gLSAxNiAqIG51bV9saW5lczsKKworCWZvcihpID0gMDsg aSA8IG51bV9saW5lczsgaSsrKSB7CisJCWRldmljZV9wcmludGYoZGV2LCAiJXM6IiwgbGFiZWwp OworCQlmb3IoaiA9IDA7IGogPCAxNjsgaisrKSB7CisJCQlwcmludGYoIiAlMDJ4IiwgZGF0YVtp ICogMTYgKyBqXSk7IAorCQl9CisJCXByaW50ZigiXG4iKTsKKwl9CisKKwlpZiAocmVzaWR1YWwp IHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICIlczoiLCBsYWJlbCk7CisJCWZvcihqID0gMDsgaiA8 IHJlc2lkdWFsOyBqKyspIHsKKwkJCXByaW50ZigiICUwMngiLCBkYXRhW251bV9saW5lcyAqIDE2 ICsgal0pOyAKKwkJfQorCQlwcmludGYoIlxuIik7CisJfQorCisJVFJBQ0VfRVhJVChkZXYpOwor fQorCisKK3N0YXRpYyB2b2lkCittbWNzcGlfZHVtcF9zcGlfYnVzKGRldmljZV90IGRldiwgdW5z aWduZWQgaW50IGxlbikKK3sKKwlUUkFDRV9FTlRFUihkZXYpOworCisJdW5zaWduZWQgaW50IG51 bV9ibG9ja3MgPSBsZW4gLyBNTUNTUElfREFUQV9CTE9DS19MRU47CisJdW5zaWduZWQgaW50IHJl c2lkdWFsID0gbGVuIC0gbnVtX2Jsb2NrcyAqIE1NQ1NQSV9EQVRBX0JMT0NLX0xFTjsKKwl1bnNp Z25lZCBpbnQgaTsKKworCWZvcihpID0gMDsgaSA8IG51bV9ibG9ja3M7IGkrKykgeworCQlpZiAo TU1DX0VSUl9OT05FICE9CisJCSAgICBtbWNzcGlfZG9fc3BpX3JlYWQoZGV2LCBqdW5rYnVmLCBN TUNTUElfREFUQV9CTE9DS19MRU4pKSB7CisJCQlkZXZpY2VfcHJpbnRmKGRldiwgInNwaSByZWFk IGZhaWxlZFxuIik7CisJCQlyZXR1cm47CisJCX0KKworCQltbWNzcGlfZHVtcF9kYXRhKGRldiwg ImJ1c19kYXRhIiwganVua2J1ZiwKKwkJCQkgTU1DU1BJX0RBVEFfQkxPQ0tfTEVOKTsKKwl9CisK KwlpZiAocmVzaWR1YWwpIHsKKwkJaWYgKE1NQ19FUlJfTk9ORSAhPQorCQkgICAgbW1jc3BpX2Rv X3NwaV9yZWFkKGRldiwganVua2J1ZiwgcmVzaWR1YWwpKSB7CisJCQlkZXZpY2VfcHJpbnRmKGRl diwgInNwaSByZWFkIGZhaWxlZFxuIik7CisJCQlyZXR1cm47CisJCX0KKworCQltbWNzcGlfZHVt cF9kYXRhKGRldiwgImJ1c19kYXRhIiwganVua2J1ZiwgcmVzaWR1YWwpOworCX0KKwkKKworCVRS QUNFX0VYSVQoZGV2KTsKK30KKyNlbmRpZgorCisKKy8qCisgKiBUaGVzZSBhcmUgdGhlIGNhcmRz IHRoaXMgY29kZSB3YXMgdGVzdGVkIHdpdGggKGluaXRpYWxpemF0aW9uLAorICogaWRlbnRpZmlj YXRpb24sIGFuZCBzaW5nbGUgYW5kIG11bHRpIGJsb2NrIHJlYWQgYW5kIHdyaXRlIHdpdGggY3Jj CisgKiBjaGVja2luZyBkaXNhYmxlZCBhbmQgZW5hYmxlZCksIHNvcnRlZCBieSBDSUQ6CisgKgor ICogRGVsa2luIERldmljZXMgICAgMkdCIG1pZD0weDAyIG9pZD0weDU0NGQgcG5tPSJTQTAyRyIg cHJ2PTAuNCBtZHQ9MDUuMjAxMAorICogY2lkPTAyNTQ0ZDUzNDEzMDMyNDcwNDljMTAwMTJlMDBh NTAwIGNzZD0wMDJlMDAzMjViNWFhM2E5ZmZmZmZmODAwYTgwMDAwMAorICoKKyAqIEtpbmdzdG9u ICAgICAgICAgIDRHQiBtaWQ9MHgwMiBvaWQ9MHg1NDRkIHBubT0iU0EwNEciIHBydj0wLjkgbWR0 PTEyLjIwMTEKKyAqIGNpZD0wMjU0NGQ1MzQxMzAzNDQ3MDkyN2ZlYzJlMDAwYmMwMCBjc2Q9NDAw ZTAwMzI1YjU5MDAwMDFkYTc3ZjgwMGE0MDAwMDAKKyAqCisgKiBQTlkgICAgICAgICAgICAgICA4 R0IgbWlkPTB4MDIgb2lkPTB4NTQ0ZCBwbm09IlNBMDhHIiBwcnY9MC42IG1kdD0wOC4yMDExCisg KiBjaWQ9MDI1NDRkNTM0MTMwMzg0NzA2MTVhNjNmZjUwMGI4MDAgY3NkPTQwMGUwMDMyNWI1OTAw MDAzYjRmN2Y4MDBhNDAwMDAwCisgKgorICogRHVyYWNlbGwgICAgICAgICAgMkdCIG1pZD0weDAz IG9pZD0weDUzNDQgcG5tPSJTVTAyRyIgcHJ2PTguMCBtZHQ9MDEuMjAxMQorICogY2lkPTAzNTM0 NDUzNTUzMDMyNDc4MDBjOGE2NzE4MDBiMTAwIGNzZD0wMDI2MDAzMjVmNWE4M2FlZmVmYmNmZmY5 MjgwNDAwMAorICoKKyAqIEFEQVRBICAgICAgICAgICAgIDRHQiBtaWQ9MHgwMyBvaWQ9MHg1MzQ0 IHBubT0iU1UwNEciIHBydj04LjAgbWR0PTA4LjIwMTEKKyAqIGNpZD0wMzUzNDQ1MzU1MzAzNDQ3 ODAwMmJjMWVhZTAwYjgwMCBjc2Q9NDAwZTAwMzI1YjU5MDAwMDFkOGE3ZjgwMGE0MDQwMDAKKyAq CisgKiBTYW5kaXNrICAgICAgICAgICA0R0IgbWlkPTB4MDMgb2lkPTB4NTM0NCBwbm09IlNVMDRH IiBwcnY9OC4wIG1kdD0xMC4yMDEwCisgKiBjaWQ9MDM1MzQ0NTM1NTMwMzQ0NzgwMGFjY2JhOWUw MGFhMDAgY3NkPTQwMGUwMDMyNWI1OTAwMDAxZDhhN2Y4MDBhNDA0MDAwCisgKgorICogUFFJICAg ICAgICAgICAgICAgNEdCIG1pZD0weDAzIG9pZD0weDUzNDQgcG5tPSJTVTA0RyIgcHJ2PTguMCBt ZHQ9MDEuMjAxMQorICogY2lkPTAzNTM0NDUzNTUzMDM0NDc4MDBjOTgxZjdmMDBiMTAwIGNzZD00 MDBlMDAzMjViNTkwMDAwMWQ4YTdmODAwYTQwNDAwMAorICoKKyAqIFNpbGljb24gUG93ZXIgICAg IDRHQiBtaWQ9MHgwMyBvaWQ9MHg1MzQ0IHBubT0iU1UwNEciIHBydj04LjAgbWR0PTExLjIwMTEK KyAqIGNpZD0wMzUzNDQ1MzU1MzAzNDQ3ODAxMzZmMzlhODAwYmIwMCBjc2Q9NDAwZTAwMzI1YjU5 MDAwMDFkOGE3ZjgwMGE0MDQwMDAKKyAqCisgKiBUZWFtIEdyb3VwICAgICAgICA0R0IgbWlkPTB4 MDMgb2lkPTB4NTM0NCBwbm09IlNVMDRHIiBwcnY9OC4wIG1kdD0xMi4yMDExCisgKiBjaWQ9MDM1 MzQ0NTM1NTMwMzQ0NzgwMTQ1ZDZlNDUwMGJjMDAgY3NkPTQwMGUwMDMyNWI1OTAwMDAxZDhhN2Y4 MDBhNDA0MDAwCisgKgorICogRnVqaWZpbG0gICAgICAgICAgNEdCIG1pZD0weDAzIG9pZD0weDUz NDQgcG5tPSJTVTA0RyIgcHJ2PTguMCBtZHQ9MDMuMjAxMQorICogY2lkPTAzNTM0NDUzNTUzMDM0 NDc4MDIxNGE3OTA1MDBiMzAwIGNzZD00MDBlMDAzMjViNTkwMDAwMWQ4YTdmODAwYTQwNDAwMAor ICoKKyAqIFBhdHJpb3QgTWVtb3J5ICAgIDRHQiBtaWQ9MHgwMyBvaWQ9MHg1MzQ0IHBubT0iU1Uw NEciIHBydj04LjAgbWR0PTA1LjIwMTEKKyAqIGNpZD0wMzUzNDQ1MzU1MzAzNDQ3ODA4MDg1Mzlj MDAwYjUwMCBjc2Q9NDAwZTAwMzI1YjU5MDAwMDFkOGE3ZjgwMGE0MDQwMDAKKyAqCisgKiBTYW5k aXNrICAgICAgICAgIDMyR0IgbWlkPTB4MDMgb2lkPTB4NTM0NCBwbm09IlNVMzJHIiBwcnY9OC4w IG1kdD0wMC4yMDAwCisgKiBjaWQ9MDM1MzQ0NTM1NTMzMzI0NzgwNjFiYmZkNjUwMGJiMDAgY3Nk PTQwMGUwMDMyNWI1OTAwMDBlZGM4N2Y4MDBhNDA0MDAwCisgKgorICogU2FuZGlzayAgICAgICAg ICA2NEdCIG1pZD0weDAzIG9pZD0weDUzNDQgcG5tPSJTVTY0RyIgcHJ2PTguMCBtZHQ9MTIuMjAx MQorICogY2lkPTAzNTM0NDUzNTUzNjM0NDc4MDcxOGZjMWE0MDBiYzAwIGNzZD00MDBlMDAzMjVi NTkwMDAxZGJkMzdmODAwYTQwNDAwMAorICoKKyAqIERhbmUtRWxlYyAgICAgICAgIDRHQiBtaWQ9 MHgxMiBvaWQ9MHgzNDU2IHBubT0iU01JICAiIHBydj0xLjAgbWR0PTEwLjIwMTEKKyAqIGNpZD0x MjM0NTY1MzRkNDkyMDIwMTA0MjAyMGFiZDAwYmEwMCBjc2Q9NDAwZTAwMzI1YjU5MDAwMDFkNmY3 ZjgwMGE0MDAwMDAKKyAqCisgKiBHLlNLSUxMICAgICAgICAgICA0R0IgbWlkPTB4MWIgb2lkPTB4 NTM0ZCBwbm09IjAwMDAwIiBwcnY9MS4wIG1kdD0wMC4yMDAwCisgKiBjaWQ9MWI1MzRkMzAzMDMw MzAzMDEwMDgxMDFmNDEwMGJjMDAgY3NkPTQwMGUwMDMyNWI1OTAwMDAxZDliN2Y4MDBhNDAwMDAw CisgKgorICogVHJhbnNjZW5kICAgICAgICAgMkdCIG1pZD0weDFiIG9pZD0weDUzNGQgcG5tPSIw MDAwMCIgcHJ2PTEuMCBtZHQ9MDAuMjAwMAorICogY2lkPTFiNTM0ZDMwMzAzMDMwMzAxMDA4ZDFm NjY5MDBiMzAwIGNzZD0wMDdmZmYzMjViNWE4M2JhZjZkYmRmZmYwZTgwMDAwMAorICoKKyAqIFNh bXN1bmcgICAgICAgICAgIDJHQiBtaWQ9MHgxYiBvaWQ9MHg1MzRkIHBubT0iMDAwMDAiIHBydj0x LjAgbWR0PTEwLjIwMTEKKyAqIGNpZD0xYjUzNGQzMDMwMzAzMDMwMTAxZjljYTk2NzAwYmEwMCBj c2Q9MDA3ZmZmMzI1YjVhODNiYWY2ZGJkZmZmMGU4MDAwMDAKKyAqCisgKiBUcmFuc2NlbmQgICAg ICAgICAyR0IgbWlkPTB4MWIgb2lkPTB4NTM0ZCBwbm09IjAwMDAwIiBwcnY9MS4wIG1kdD0wMC4y MDAwCisgKiBjaWQ9MWI1MzRkMzAzMDMwMzAzMDEwMjllZjFjMjEwMGIzMDAgY3NkPTAwN2ZmZjMy NWI1YTgzYmFmNmRiZGZmZjBlODAwMDAwCisgKgorICogU3VwZXIgVGFsZW50ICAgICAgMUdCIG1p ZD0weDFiIG9pZD0weDUzNGQgcG5tPSIwMDAwMCIgcHJ2PTEuMCBtZHQ9MDIuMjAxMAorICogY2lk PTFiNTM0ZDMwMzAzMDMwMzAxMGIxYzY4ZTIxMDBhMjAwIGNzZD0wMDdmZmYzMjVmNTk4M2NiNzZk YmRmZmY5NjQwMDAwMAorICoKKyAqIFRyaWJlY2EgICAgICAgICAgIDFHQiBtaWQ9MHgxYiBvaWQ9 MHg1MzRkIHBubT0iVUQgICAiIHBydj0xLjAgbWR0PTA5LjIwMDcKKyAqIGNpZD0xYjUzNGQ1NTQ0 MjAyMDIwMTBkMzkwNTcwNDAwNzkwMCBjc2Q9MDAyZjAwMzI1ZjU5ODNjYTZkYjdmZjlmOTY0MDAw MDAKKyAqCisgKiBWZXJiYXRpbSAgICAgICAgICAyR0IgbWlkPTB4Mjcgb2lkPTB4NTA0OCBwbm09 IlNEMDJHIiBwcnY9My4wIG1kdD0wOC4yMDExCisgKiBjaWQ9Mjc1MDQ4NTM0NDMwMzI0NzMwOWQw NzNhOGYwMGI4MDAgY3NkPTAwNWUwMDMyNWI1YWEzYTlmZmZmZmY4MDBhODAwMDAwCisgKgorICog TWF4ZWxsICAgICAgICAgICAgNEdCIG1pZD0weDI3IG9pZD0weDUwNDggcG5tPSJTRDA0RyIgcHJ2 PTMuMCBtZHQ9MTAuMjAxMQorICogY2lkPTI3NTA0ODUzNDQzMDM0NDczMDdjMTlhMmYxMDBiYTAw IGNzZD00MDBlMDAzMjViNTkwMDAwMWRhNzdmODAwYTQwMDAwMAorICoKKyAqIE11c2hraW4gICAg ICAgICAgIDRHQiBtaWQ9MHgyNyBvaWQ9MHg1MDQ4IHBubT0iU0QwNEciIHBydj0zLjAgbWR0PTA4 LjIwMTEKKyAqIGNpZD0yNzUwNDg1MzQ0MzAzNDQ3MzA3Y2RhNDBlODAwYjgwMCBjc2Q9NDAwZTAw MzI1YjU5MDAwMDFkNmY3ZjgwMGE0MDAwMDAKKyAqCisgKiBTb255ICAgICAgICAgICAgICA0R0Ig bWlkPTB4Mjcgb2lkPTB4NTA0OCBwbm09IlNEMDRHIiBwcnY9My4wIG1kdD0wOS4yMDExCisgKiBj aWQ9Mjc1MDQ4NTM0NDMwMzQ0NzMwN2NlYWRkNGMwMGI5MDAgY3NkPTQwMGUwMDMyNWI1OTAwMDAx ZDZmN2Y4MDBhNDAwMDAwCisgKgorICogV2ludGVjICAgICAgICAgICAxNkdCIG1pZD0weDI3IG9p ZD0weDUwNDggcG5tPSJTRDE2RyIgcHJ2PTMuMCBtZHQ9MTAuMjAxMQorICogY2lkPTI3NTA0ODUz NDQzMTM2NDczMDdjMmY4YzljMDBiYTAwIGNzZD00MDBlMDAzMjViNTkwMDAwNzczZjdmODAwYTQw MDAwMAorICoKKyAqIExleGFyICAgICAgICAgICAgIDRHQiBtaWQ9MHgyOCBvaWQ9MHg0MjQ1IHBu bT0iTEVYQVIiIHBydj0xLjAgbWR0PTEwLjIwMTEKKyAqIGNpZD0yODQyNDU0YzQ1NTg0MTUyMTBi ZTAzZDQ4MTAwYmEwMCBjc2Q9NDAwZTAwMzI1YjU5MDAwMDFkZGQ3ZjgwMGE0MDAwMDAKKyAqCisg KiBIUCAgICAgICAgICAgICAgICAyR0IgbWlkPTB4Mjggb2lkPTB4NDI0NSBwbm09IlNEVTJHIiBw cnY9MC4wIG1kdD0wNy4yMDExCisgKiBjaWQ9Mjg0MjQ1NTM0NDU1MzI0NzAwMDAwMDE0NGYwMGI3 MDAgY3NkPTAwMmYwMDMyNWI1YTgzODU2ZGI3ZmZiZjE2ODAwMDAwCisgKgorICogRVAgTWVtb3J5 ICAgICAgICAgNEdCIG1pZD0weDM2IG9pZD0weDQxNGYgcG5tPSJNU0QgICIgcHJ2PTEuMCBtZHQ9 MDcuMjAxMAorICogY2lkPTM2NDE0ZjRkNTM0NDIwMjAxMDAwMDA4NWI3MDBhNzAwIGNzZD00MDBl MDAzMjViNTkwMDAwMWRmZjdmODAwYTQwMDAwMAorICoKKyAqIFJpREFUQSAgICAgICAgICAgIDRH QiBtaWQ9MHg3MyBvaWQ9MHg0MjQ3IHBubT0iTkNhcmQiIHBydj0wLjAgbWR0PTEyLjIwMTEKKyAq IGNpZD03MzQyNDc0ZTQzNjE3MjY0MDAwMDAwMDM1MjAwYmMwMCBjc2Q9NDAwZTAwMzI1YjU5MDAw MDFkOTk3ZjgwMGE0MDAwMDAKKyAqCisgKiBQcmV0ZWMgICAgICAgICAgICA4R0IgbWlkPTB4NzMg b2lkPTB4NDI0NyBwbm09Ik5DYXJkIiBwcnY9MS4wIG1kdD0xMi4yMDExCisgKiBjaWQ9NzM0MjQ3 NGU0MzYxNzI2NDEwMjYwMDE0NjQwMGJjMDAgY3NkPTQwMGUwMDMyNWI1OTAwMDAzYmRkN2Y4MDBh NDAwMDAwCisgKgorICogVHJhbnNjZW5kICAgICAgICAgOEdCIG1pZD0weDc0IG9pZD0weDRhNDUg cG5tPSJVU0QgICIgcHJ2PTEuMCBtZHQ9MDAuMjAwMAorICogY2lkPTc0NGE0NTU1NTM0NDIwMjAx MDA1MTAwNGE5MDBiYjAwIGNzZD00MDBlMDAzMjViNTkwMDAwM2JiZDdmODAwYTQwMDAwMAorICoK KyAqLwpJbmRleDogc3lzL2Rldi9tbWMvbW1jLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2Rldi9tbWMv bW1jLmMJKHJldmlzaW9uIDIzMTg5NCkKKysrIHN5cy9kZXYvbW1jL21tYy5jCSh3b3JraW5nIGNv cHkpCkBAIC0yMjIsNyArMjIyLDcgQEAKIAlzYyA9IGRldmljZV9nZXRfc29mdGMoYnVzZGV2KTsK IAlNTUNfTE9DSyhzYyk7CiAJaWYgKHNjLT5vd25lcikKLQkJcGFuaWMoIm1tYzogaG9zdCBicmlk Z2UgZGlkbid0IHNlcmFsaXplIHVzLiIpOworCQlwYW5pYygibW1jOiBob3N0IGJyaWRnZSBkaWRu J3Qgc2VyaWFsaXplIHVzLiIpOwogCXNjLT5vd25lciA9IGRldjsKIAlNTUNfVU5MT0NLKHNjKTsK IApAQCAtMzY3LDYgKzM2Nyw4IEBACiAJc3RydWN0IG1tY19jb21tYW5kIGFwcGNtZDsKIAlpbnQg ZXJyID0gTU1DX0VSUl9OT05FLCBpOwogCisJY21kLT5mbGFncyB8PSBNTUNfQ01EX0lTX0FQUDsK KwogCWZvciAoaSA9IDA7IGkgPD0gcmV0cmllczsgaSsrKSB7CiAJCWFwcGNtZC5vcGNvZGUgPSBN TUNfQVBQX0NNRDsKIAkJYXBwY21kLmFyZyA9IHJjYSA8PCAxNjsKQEAgLTU0Nyw5ICs1NDksMTQg QEAKIHsKIAlpbnQgZmxhZ3M7CiAKLQlmbGFncyA9IChyY2EgPyBNTUNfUlNQX1IxQiA6IE1NQ19S U1BfTk9ORSkgfCBNTUNfQ01EX0FDOwotCXJldHVybiAobW1jX3dhaXRfZm9yX2NvbW1hbmQoc2Ms IE1NQ19TRUxFQ1RfQ0FSRCwgKHVpbnQzMl90KXJjYSA8PCAxNiwKLQkgICAgZmxhZ3MsIE5VTEws IENNRF9SRVRSSUVTKSk7CisJaWYgKGJ1c190eXBlX3NwaSA9PSBtbWNicl9nZXRfYnVzX3R5cGUo c2MtPmRldikpIHsKKwkJLyogY2FyZCBzZWxlY3Rpb24gaXNuJ3QgcmVxdWlyZWQgKi8KKwkJcmV0 dXJuIChNTUNfRVJSX05PTkUpOworCX0gZWxzZSB7CisJCWZsYWdzID0gKHJjYSA/IE1NQ19SU1Bf UjFCIDogTU1DX1JTUF9OT05FKSB8IE1NQ19DTURfQUM7CisJCXJldHVybiAobW1jX3dhaXRfZm9y X2NvbW1hbmQoc2MsIE1NQ19TRUxFQ1RfQ0FSRCwgKHVpbnQzMl90KXJjYSA8PCAxNiwKKwkJICAg IGZsYWdzLCBOVUxMLCBDTURfUkVUUklFUykpOworCX0KIH0KIAogc3RhdGljIGludApAQCAtNjQ2 LDYgKzY1MywxMSBAQAogCXVpbnQ4X3QJdmFsdWU7CiAJdV9jaGFyIHN3aXRjaF9yZXNbNjRdOwog CisJaWYgKGJ1c190eXBlX3NwaSA9PSBtbWNicl9nZXRfYnVzX3R5cGUoc2MtPmRldikpIHsKKwkJ LyogYnVzIHRpbWluZyBjYW4ndCBiZSBzZXQgb24gdGhlIGNhcmQgaW4gc3BpIG1vZGUgKi8KKwkJ cmV0dXJuIChNTUNfRVJSX05PTkUpOworCX0KKwogCXN3aXRjaCAodGltaW5nKSB7CiAJY2FzZSBi dXNfdGltaW5nX25vcm1hbDoKIAkJdmFsdWUgPSAwOwpAQCAtNzkyLDcgKzgwNCw3IEBACiAJMSwg MTAsIDEwMCwgMTAwMCwgMTAwMDAsIDEwMDAwMCwgMTAwMDAwMCwgMTAwMDAwMDAKIH07CiBzdGF0 aWMgY29uc3QgaW50IG1hbnRbMTZdID0gewotCTEwLCAxMiwgMTMsIDE1LCAyMCwgMjUsIDMwLCAz NSwgNDAsIDQ1LCA1MCwgNTUsIDYwLCA3MCwgODAKKwkwLCAxMCwgMTIsIDEzLCAxNSwgMjAsIDI1 LCAzMCwgMzUsIDQwLCA0NSwgNTAsIDU1LCA2MCwgNzAsIDgwCiB9Owogc3RhdGljIGNvbnN0IGlu dCBjdXJfbWluWzhdID0gewogCTUwMCwgMTAwMCwgNTAwMCwgMTAwMDAsIDI1MDAwLCAzNTAwMCwg NjAwMDAsIDEwMDAwMApAQCAtODEzLDcgKzgyNSw3IEBACiAJaWYgKHYgPT0gMCkgewogCQltID0g bW1jX2dldF9iaXRzKHJhd19jc2QsIDEyOCwgMTE1LCA0KTsKIAkJZSA9IG1tY19nZXRfYml0cyhy YXdfY3NkLCAxMjgsIDExMiwgMyk7Ci0JCWNzZC0+dGFjYyA9IGV4cFtlXSAqIG1hbnRbbV0gKyA5 IC8gMTA7CisJCWNzZC0+dGFjYyA9IChleHBbZV0gKiBtYW50W21dICsgOSkgLyAxMDsKIAkJY3Nk LT5uc2FjID0gbW1jX2dldF9iaXRzKHJhd19jc2QsIDEyOCwgMTA0LCA4KSAqIDEwMDsKIAkJbSA9 IG1tY19nZXRfYml0cyhyYXdfY3NkLCAxMjgsIDk5LCA0KTsKIAkJZSA9IG1tY19nZXRfYml0cyhy YXdfY3NkLCAxMjgsIDk2LCAzKTsKQEAgLTg0MSw3ICs4NTMsNyBAQAogCX0gZWxzZSBpZiAodiA9 PSAxKSB7CiAJCW0gPSBtbWNfZ2V0X2JpdHMocmF3X2NzZCwgMTI4LCAxMTUsIDQpOwogCQllID0g bW1jX2dldF9iaXRzKHJhd19jc2QsIDEyOCwgMTEyLCAzKTsKLQkJY3NkLT50YWNjID0gZXhwW2Vd ICogbWFudFttXSArIDkgLyAxMDsKKwkJY3NkLT50YWNjID0gKGV4cFtlXSAqIG1hbnRbbV0gKyA5 KSAvIDEwOwogCQljc2QtPm5zYWMgPSBtbWNfZ2V0X2JpdHMocmF3X2NzZCwgMTI4LCAxMDQsIDgp ICogMTAwOwogCQltID0gbW1jX2dldF9iaXRzKHJhd19jc2QsIDEyOCwgOTksIDQpOwogCQllID0g bW1jX2dldF9iaXRzKHJhd19jc2QsIDEyOCwgOTYsIDMpOwpAQCAtOTU2LDcgKzk2OCw3IEBACiB9 CiAKIHN0YXRpYyBpbnQKLW1tY19zZW5kX2NzZChzdHJ1Y3QgbW1jX3NvZnRjICpzYywgdWludDE2 X3QgcmNhLCB1aW50MzJfdCAqcmF3Y2lkKQorbW1jX3NlbmRfY3NkKHN0cnVjdCBtbWNfc29mdGMg KnNjLCB1aW50MTZfdCByY2EsIHVpbnQzMl90ICpyYXdjc2QpCiB7CiAJc3RydWN0IG1tY19jb21t YW5kIGNtZDsKIAlpbnQgZXJyOwpAQCAtOTY2LDcgKzk3OCw3IEBACiAJY21kLmZsYWdzID0gTU1D X1JTUF9SMiB8IE1NQ19DTURfQkNSOwogCWNtZC5kYXRhID0gTlVMTDsKIAllcnIgPSBtbWNfd2Fp dF9mb3JfY21kKHNjLCAmY21kLCAwKTsKLQltZW1jcHkocmF3Y2lkLCBjbWQucmVzcCwgNCAqIHNp emVvZih1aW50MzJfdCkpOworCW1lbWNweShyYXdjc2QsIGNtZC5yZXNwLCA0ICogc2l6ZW9mKHVp bnQzMl90KSk7CiAJcmV0dXJuIChlcnIpOwogfQogCkBAIC0xMDc1LDEyICsxMDg3LDQyIEBACiAJ cmV0dXJuIChlcnIpOwogfQogCitzdGF0aWMgaW50CittbWNfc2VuZF9zdGF0dXMoc3RydWN0IG1t Y19zb2Z0YyAqc2MsIHVpbnQxNl90IHJjYSwgdWludDMyX3QgKnN0YXR1cykKK3sKKwlzdHJ1Y3Qg bW1jX2NvbW1hbmQgY21kOworCWludCBlcnI7CisKKwljbWQub3Bjb2RlID0gTU1DX1NFTkRfU1RB VFVTOworCWNtZC5hcmcgPSByY2EgPDwgMTY7CisJY21kLmZsYWdzID0gTU1DX1JTUF9SMSB8IE1N Q19DTURfQUM7CisJY21kLmRhdGEgPSBOVUxMOworCWVyciA9IG1tY193YWl0X2Zvcl9jbWQoc2Ms ICZjbWQsIDApOworCSpzdGF0dXMgPSBjbWQucmVzcFswXTsKKwlyZXR1cm4gKGVycik7Cit9CisK K3N0YXRpYyBpbnQKK21tY19zZXRfYmxvY2tsZW4oc3RydWN0IG1tY19zb2Z0YyAqc2MsIHVpbnQz Ml90IGxlbikKK3sKKwlzdHJ1Y3QgbW1jX2NvbW1hbmQgY21kOworCWludCBlcnI7CisKKwljbWQu b3Bjb2RlID0gTU1DX1NFVF9CTE9DS0xFTjsKKwljbWQuYXJnID0gbGVuOworCWNtZC5mbGFncyA9 IE1NQ19SU1BfUjEgfCBNTUNfQ01EX0FDOworCWNtZC5kYXRhID0gTlVMTDsKKwllcnIgPSBtbWNf d2FpdF9mb3JfY21kKHNjLCAmY21kLCAwKTsKKwlyZXR1cm4gKGVycik7Cit9CisKKwogc3RhdGlj IHZvaWQKIG1tY19sb2dfY2FyZChkZXZpY2VfdCBkZXYsIHN0cnVjdCBtbWNfaXZhcnMgKml2YXIs IGludCBuZXdjYXJkKQogewogCWRldmljZV9wcmludGYoZGV2LCAiQ2FyZCBhdCByZWxhdGl2ZSBh ZGRyZXNzICVkJXM6XG4iLAogCSAgICBpdmFyLT5yY2EsIG5ld2NhcmQgPyAiIGFkZGVkIiA6ICIi KTsKLQlkZXZpY2VfcHJpbnRmKGRldiwgIiBjYXJkOiAlcyVzICgweCV4LzB4JXgvXCIlc1wiIHJl diAlZC4lZCAiCisJZGV2aWNlX3ByaW50ZihkZXYsICIgY2FyZDogJXMlcyAoMHglMDJ4LzB4JTA0 eC9cIiVzXCIgcmV2ICVkLiVkICIKIAkgICAgIm0vZCAlMDJkLiUwNGQgcy9uICUwOHgpXG4iLAog CSAgICBpdmFyLT5tb2RlID09IG1vZGVfc2QgPyAiU0QiIDogIk1NQyIsCiAJICAgIGl2YXItPmhp Z2hfY2FwID8gIiBIaWdoIENhcGFjaXR5IiA6ICIiLCAKQEAgLTExMDQsNiArMTE0Niw3IEBACiAJ c3RydWN0IG1tY19pdmFycyAqaXZhciA9IE5VTEw7CiAJZGV2aWNlX3QgKmRldmxpc3Q7CiAJaW50 IGVyciwgaSwgZGV2Y291bnQsIG5ld2NhcmQ7CisJdWludDMyX3Qgc3RhdHVzOwogCXVpbnQzMl90 IHJhd19jaWRbNF07CiAJdWludDMyX3QgcmVzcCwgc2VjX2NvdW50OwogCWRldmljZV90IGNoaWxk OwpAQCAtMTE1NCw2ICsxMTk3LDExIEBACiAJCQlpdmFyLT5yY2EgPSByZXNwID4+IDE2OwogCQkJ LyogR2V0IGNhcmQgQ1NELiAqLwogCQkJbW1jX3NlbmRfY3NkKHNjLCBpdmFyLT5yY2EsIGl2YXIt PnJhd19jc2QpOworCQkJaWYgKGJvb3R2ZXJib3NlIHx8IG1tY19kZWJ1ZykgeworCQkJCWRldmlj ZV9wcmludGYoc2MtPmRldiwgIiVzYXJkIGRldGVjdGVkIChDU0QgJTA4eCUwOHglMDh4JTA4eClc biIsCisJCQkJCSAgICAgIG5ld2NhcmQgPyAiTmV3IGMiIDogIkMiLAorCQkJCQkgICAgICBpdmFy LT5yYXdfY3NkWzBdLCBpdmFyLT5yYXdfY3NkWzFdLCBpdmFyLT5yYXdfY3NkWzJdLCBpdmFyLT5y YXdfY3NkWzNdKTsKKwkJCX0KIAkJCW1tY19kZWNvZGVfY3NkX3NkKGl2YXItPnJhd19jc2QsICZp dmFyLT5jc2QpOwogCQkJaXZhci0+c2VjX2NvdW50ID0gaXZhci0+Y3NkLmNhcGFjaXR5IC8gTU1D X1NFQ1RPUl9TSVpFOwogCQkJaWYgKGl2YXItPmNzZC5jc2Rfc3RydWN0dXJlID4gMCkKQEAgLTEx NjEsNiArMTIwOSwxNyBAQAogCQkJaXZhci0+dHJhbl9zcGVlZCA9IGl2YXItPmNzZC50cmFuX3Nw ZWVkOwogCQkJaXZhci0+ZXJhc2Vfc2VjdG9yID0gaXZhci0+Y3NkLmVyYXNlX3NlY3RvciAqIAog CQkJICAgIGl2YXItPmNzZC53cml0ZV9ibF9sZW4gLyBNTUNfU0VDVE9SX1NJWkU7CisJCQkKKwkJ CWVyciA9IG1tY19zZW5kX3N0YXR1cyhzYywgaXZhci0+cmNhLCAmc3RhdHVzKTsKKwkJCWlmIChl cnIgIT0gTU1DX0VSUl9OT05FKSB7CisJCQkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiRXJyb3Ig cmVhZGluZyBjYXJkIHN0YXR1cyAlZFxuIiwgZXJyKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlm IChzdGF0dXMgJiBSMV9DQVJEX0lTX0xPQ0tFRCkgeworCQkJCWRldmljZV9wcmludGYoc2MtPmRl diwgIkNhcmQgaXMgcGFzc3dvcmQgcHJvdGVjdGVkLCBza2lwcGluZy5cbiIpOworCQkJCWJyZWFr OworCQkJfQorCiAJCQkvKiBHZXQgY2FyZCBTQ1IuIENhcmQgbXVzdCBiZSBzZWxlY3RlZCB0byBm ZXRjaCBpdC4gKi8KIAkJCW1tY19zZWxlY3RfY2FyZChzYywgaXZhci0+cmNhKTsKIAkJCW1tY19h cHBfc2VuZF9zY3Ioc2MsIGl2YXItPnJjYSwgaXZhci0+cmF3X3Njcik7CkBAIC0xMTg4LDYgKzEy NDcsMjIgQEAKIAkJCWlmICgobW1jYnJfZ2V0X2NhcHMoc2MtPmRldikgJiBNTUNfQ0FQXzRfQklU X0RBVEEpICYmCiAJCQkgICAgKGl2YXItPnNjci5idXNfd2lkdGhzICYgU0RfU0NSX0JVU19XSURU SF80KSkKIAkJCQlpdmFyLT5idXNfd2lkdGggPSBidXNfd2lkdGhfNDsKKworCQkJLyogCisJCQkg KiBTb21lIGNhcmRzIHRoYXQgcmVwb3J0IG1heGltdW0gSS9PIGJsb2NrIHNpemVzCisJCQkgKiBn cmVhdGVyIHRoYW4gNTEyIHJlcXVpcmUgdGhlIGJsb2NrIGxlbmd0aCB0byBiZQorCQkJICogc2V0 IHRvIDUxMiwgZXZlbiB0aG91Z2ggdGhhdCBpcyBzdXBwb3NlZCB0byBiZQorCQkJICogdGhlIGRl ZmF1bHQuICBFeGFtcGxlczoKKwkJCSAqCisJCQkgKiBUcmFuc2NlbmQgMkdCIFNEU0MgY2FyZCwg Y2lkOgorCQkJICogbWlkPTB4MWIgb2lkPTB4NTM0ZCBwbm09IjAwMDAwIiBwcnY9MS4wIG1kdD0w MC4yMDAwCisJCQkgKi8KKwkJCWlmICgoTU1DX1NFQ1RPUl9TSVpFICE9IGl2YXItPmNzZC5yZWFk X2JsX2xlbikgfHwKKwkJCSAgICAoTU1DX1NFQ1RPUl9TSVpFICE9IGl2YXItPmNzZC53cml0ZV9i bF9sZW4pKSB7CisJCQkJbW1jX3NldF9ibG9ja2xlbihzYywgTU1DX1NFQ1RPUl9TSVpFKTsgCisJ CQl9CisKKwogCQkJaWYgKGJvb3R2ZXJib3NlIHx8IG1tY19kZWJ1ZykKIAkJCQltbWNfbG9nX2Nh cmQoc2MtPmRldiwgaXZhciwgbmV3Y2FyZCk7CiAJCQlpZiAobmV3Y2FyZCkgewpAQCAtMTIwMiwx MSArMTI3NywyOCBAQAogCQltbWNfc2V0X3JlbGF0aXZlX2FkZHIoc2MsIGl2YXItPnJjYSk7CiAJ CS8qIEdldCBjYXJkIENTRC4gKi8KIAkJbW1jX3NlbmRfY3NkKHNjLCBpdmFyLT5yY2EsIGl2YXIt PnJhd19jc2QpOworCQlpZiAoYm9vdHZlcmJvc2UgfHwgbW1jX2RlYnVnKSB7CisJCQlkZXZpY2Vf cHJpbnRmKHNjLT5kZXYsICIlc2FyZCBkZXRlY3RlZCAoQ1NEICUwOHglMDh4JTA4eCUwOHgpXG4i LAorCQkJICAgIG5ld2NhcmQgPyAiTmV3IGMiIDogIkMiLAorCQkJICAgIGl2YXItPnJhd19jc2Rb MF0sIGl2YXItPnJhd19jc2RbMV0sIGl2YXItPnJhd19jc2RbMl0sIGl2YXItPnJhd19jc2RbM10p OworCQl9CisKIAkJbW1jX2RlY29kZV9jc2RfbW1jKGl2YXItPnJhd19jc2QsICZpdmFyLT5jc2Qp OwogCQlpdmFyLT5zZWNfY291bnQgPSBpdmFyLT5jc2QuY2FwYWNpdHkgLyBNTUNfU0VDVE9SX1NJ WkU7CiAJCWl2YXItPnRyYW5fc3BlZWQgPSBpdmFyLT5jc2QudHJhbl9zcGVlZDsKIAkJaXZhci0+ ZXJhc2Vfc2VjdG9yID0gaXZhci0+Y3NkLmVyYXNlX3NlY3RvciAqIAogCQkgICAgaXZhci0+Y3Nk LndyaXRlX2JsX2xlbiAvIE1NQ19TRUNUT1JfU0laRTsKKworCQllcnIgPSBtbWNfc2VuZF9zdGF0 dXMoc2MsIGl2YXItPnJjYSwgJnN0YXR1cyk7CisJCWlmIChlcnIgIT0gTU1DX0VSUl9OT05FKSB7 CisJCQlkZXZpY2VfcHJpbnRmKHNjLT5kZXYsICJFcnJvciByZWFkaW5nIGNhcmQgc3RhdHVzICVk XG4iLCBlcnIpOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKHN0YXR1cyAmIFIxX0NBUkRfSVNfTE9D S0VEKSB7CisJCQlkZXZpY2VfcHJpbnRmKHNjLT5kZXYsICJDYXJkIGlzIHBhc3N3b3JkIHByb3Rl Y3RlZCwgc2tpcHBpbmcuXG4iKTsKKwkJCWJyZWFrOworCQl9CisKIAkJLyogT25seSBNTUMgPj0g NC54IGNhcmRzIHN1cHBvcnQgRVhUX0NTRC4gKi8KIAkJaWYgKGl2YXItPmNzZC5zcGVjX3ZlcnMg Pj0gNCkgewogCQkJLyogQ2FyZCBtdXN0IGJlIHNlbGVjdGVkIHRvIGZldGNoIEVYVF9DU0QuICov CkBAIC0xMjQ1LDYgKzEzMzcsMjEgQEAKIAkJCWl2YXItPmJ1c193aWR0aCA9IGJ1c193aWR0aF8x OwogCQkJaXZhci0+dGltaW5nID0gYnVzX3RpbWluZ19ub3JtYWw7CiAJCX0KKworCQkvKgorCQkg KiBTb21lIGNhcmRzIHRoYXQgcmVwb3J0IG1heGltdW0gSS9PIGJsb2NrIHNpemVzIGdyZWF0ZXIK KwkJICogdGhhbiA1MTIgcmVxdWlyZSB0aGUgYmxvY2sgbGVuZ3RoIHRvIGJlIHNldCB0byA1MTIs IGV2ZW4KKwkJICogdGhvdWdoIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgdGhlIGRlZmF1bHQuICBF eGFtcGxlczoKKwkJICoKKwkJICogVHJhbnNjZW5kIDJHQiBTRFNDIGNhcmQsIGNpZDoKKwkJICog bWlkPTB4MWIgb2lkPTB4NTM0ZCBwbm09IjAwMDAwIiBwcnY9MS4wIG1kdD0wMC4yMDAwCisJCSAq LworCQlpZiAoKE1NQ19TRUNUT1JfU0laRSAhPSBpdmFyLT5jc2QucmVhZF9ibF9sZW4pIHx8CisJ CSAgICAoTU1DX1NFQ1RPUl9TSVpFICE9IGl2YXItPmNzZC53cml0ZV9ibF9sZW4pKSB7CisJCQlt bWNfc2V0X2Jsb2NrbGVuKHNjLCBNTUNfU0VDVE9SX1NJWkUpOyAKKwkJfQorCisKIAkJaWYgKGJv b3R2ZXJib3NlIHx8IG1tY19kZWJ1ZykKIAkJCW1tY19sb2dfY2FyZChzYy0+ZGV2LCBpdmFyLCBu ZXdjYXJkKTsKIAkJaWYgKG5ld2NhcmQpIHsKQEAgLTEzMjAsNyArMTQyNyw3IEBACiAJCWVyciA9 IG1tY19zZW5kX2lmX2NvbmQoc2MsIDEpOwogCQlpZiAoKGJvb3R2ZXJib3NlIHx8IG1tY19kZWJ1 ZykgJiYgZXJyID09IDApCiAJCQlkZXZpY2VfcHJpbnRmKHNjLT5kZXYsICJTRCAyLjAgaW50ZXJm YWNlIGNvbmRpdGlvbnM6IE9LXG4iKTsKLQkJaWYgKG1tY19zZW5kX2FwcF9vcF9jb25kKHNjLCBl cnIgPyAwIDogTU1DX09DUl9DQ1MsICZvY3IpICE9CisJCWlmIChtbWNfc2VuZF9hcHBfb3BfY29u ZChzYywgMCwgJm9jcikgIT0KIAkJICAgIE1NQ19FUlJfTk9ORSkgewogCQkJaWYgKGJvb3R2ZXJi b3NlIHx8IG1tY19kZWJ1ZykKIAkJCQlkZXZpY2VfcHJpbnRmKHNjLT5kZXYsICJTRCBwcm9iZTog ZmFpbGVkXG4iKTsKQEAgLTE1NDAsMyArMTY0Nyw0IEBACiAKIERSSVZFUl9NT0RVTEUobW1jLCBh dDkxX21jaSwgbW1jX2RyaXZlciwgbW1jX2RldmNsYXNzLCBOVUxMLCBOVUxMKTsKIERSSVZFUl9N T0RVTEUobW1jLCBzZGhjaSwgbW1jX2RyaXZlciwgbW1jX2RldmNsYXNzLCBOVUxMLCBOVUxMKTsK K0RSSVZFUl9NT0RVTEUobW1jLCBtbWNzcGksIG1tY19kcml2ZXIsIG1tY19kZXZjbGFzcywgTlVM TCwgTlVMTCk7CkluZGV4OiBzeXMvZGV2L3NkaGNpL3NkaGNpLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lz L2Rldi9zZGhjaS9zZGhjaS5jCShyZXZpc2lvbiAyMzE4OTQpCisrKyBzeXMvZGV2L3NkaGNpL3Nk aGNpLmMJKHdvcmtpbmcgY29weSkKQEAgLTE0NDIsNiArMTQ0Miw5IEBACiAJc3dpdGNoICh3aGlj aCkgewogCWRlZmF1bHQ6CiAJCXJldHVybiAoRUlOVkFMKTsKKwljYXNlIE1NQ0JSX0lWQVJfQlVT X1RZUEU6CisJCSpyZXN1bHQgPSBidXNfdHlwZV9zZDsKKwkJYnJlYWs7CiAJY2FzZSBNTUNCUl9J VkFSX0JVU19NT0RFOgogCQkqcmVzdWx0ID0gc2xvdC0+aG9zdC5pb3MuYnVzX21vZGU7CiAJCWJy ZWFrOwpAQCAtMTUzNCw2ICsxNTM3LDcgQEAKIAljYXNlIE1NQ0JSX0lWQVJfVElNSU5HOgogCQlz bG90LT5ob3N0Lmlvcy50aW1pbmcgPSB2YWx1ZTsKIAkJYnJlYWs7CisJY2FzZSBNTUNCUl9JVkFS X0JVU19UWVBFOgogCWNhc2UgTU1DQlJfSVZBUl9DQVBTOgogCWNhc2UgTU1DQlJfSVZBUl9IT1NU X09DUjoKIAljYXNlIE1NQ0JSX0lWQVJfRl9NSU46CkluZGV4OiBzeXMvZGV2L3NwaWJ1cy9zcGku aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBzeXMvZGV2L3NwaWJ1cy9zcGkuaAkocmV2aXNpb24gMjMxODk0KQor Kysgc3lzL2Rldi9zcGlidXMvc3BpLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw5IEBACiAv KiAkRnJlZUJTRCQgKi8KIAorI2RlZmluZQlTUElfU0tJUF9DSElQX1NFTEVDVAkJMHgwMDAxIC8q IGJ1cyBpcyBhbHJlYWR5IGFjcXVpcmVkICovCisjZGVmaW5lCVNQSV9DSElQX1NFTEVDVF9ISUdI CQkweDAwMDIgLyogc2V0IGNoaXAgc2VsZWN0IGhpZ2ggZm9yCisJCQkJCQkgIGR1cmF0aW9uIG9m IHRyYW5zZmVyICovCisKIHN0cnVjdCBzcGlfY29tbWFuZCB7CiAJdm9pZAkqdHhfY21kOwogCXVp bnQzMl90IHR4X2NtZF9zejsKQEAgLTksNCArMTMsMTEgQEAKIAl1aW50MzJfdCB0eF9kYXRhX3N6 OwogCXZvaWQJKnJ4X2RhdGE7CiAJdWludDMyX3QgcnhfZGF0YV9zejsKKwl1aW50MTZfdCBmbGFn czsKIH07CisKK3N0cnVjdCBzcGlfY29uZmlnIHsKKwl1bnNpZ25lZCBpbnQgY2xvY2tfaHo7ICAv KiBzZW5kaW5nIGEgMCB0byBzcGlidXNfc2V0X2NvbmZpZworCQkJCSAgIHJlcXVlc3RzIHRoZSBt YXhpbXVtIHBvc3NpYmxlCisJCQkJICAgZnJlcXVlbmN5ICovCit9OwpJbmRleDogc3lzL2Rldi9z cGlidXMvc3BpYnVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL2Rldi9zcGlidXMvc3BpYnVzLmMJKHJl dmlzaW9uIDIzMTg5NCkKKysrIHN5cy9kZXYvc3BpYnVzL3NwaWJ1cy5jCSh3b3JraW5nIGNvcHkp CkBAIC0yMiw2ICsyMiw3IEBACiBzdGF0aWMgaW50CiBzcGlidXNfcHJvYmUoZGV2aWNlX3QgZGV2 KQogeworCiAJZGV2aWNlX3NldF9kZXNjKGRldiwgInNwaWJ1cyBidXMiKTsKIAlyZXR1cm4gKDAp OwogfQpAQCAtNjAsNiArNjEsNyBAQAogc3RhdGljIGludAogc3BpYnVzX3N1c3BlbmQoZGV2aWNl X3QgZGV2KQogeworCiAJcmV0dXJuIChidXNfZ2VuZXJpY19zdXNwZW5kKGRldikpOwogfQogCkBA IC02Nyw2ICs2OSw3IEBACiBpbnQKIHNwaWJ1c19yZXN1bWUoZGV2aWNlX3QgZGV2KQogeworCiAJ cmV0dXJuIChidXNfZ2VuZXJpY19yZXN1bWUoZGV2KSk7CiB9CiAKQEAgLTEwNyw2ICsxMTAsNyBA QAogc3BpYnVzX2NoaWxkX3BucGluZm9fc3RyKGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQs IGNoYXIgKmJ1ZiwKICAgICBzaXplX3QgYnVmbGVuKQogeworCiAJKmJ1ZiA9ICdcMCc7CiAJcmV0 dXJuICgwKTsKIH0KQEAgLTE1NSwxMiArMTU5LDQ4IEBACiAJcmVzb3VyY2VfaW50X3ZhbHVlKGRu YW1lLCBkdW5pdCwgImNzIiwgJmRldmktPmNzKTsKIH0KIAorc3RhdGljIHZvaWQKK3NwaWJ1c19h Y3F1aXJlX2J1c19pbXBsKGRldmljZV90IGRldiwgZGV2aWNlX3QgY2hpbGQpCit7CisKKwlTUElC VVNfQUNRVUlSRV9CVVMoZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgY2hpbGQpOworfQorCitzdGF0 aWMgdm9pZAorc3BpYnVzX3JlbGVhc2VfYnVzX2ltcGwoZGV2aWNlX3QgZGV2LCBkZXZpY2VfdCBj aGlsZCkKK3sKKworCVNQSUJVU19SRUxFQVNFX0JVUyhkZXZpY2VfZ2V0X3BhcmVudChkZXYpLCBj aGlsZCk7Cit9CisKIHN0YXRpYyBpbnQKIHNwaWJ1c190cmFuc2Zlcl9pbXBsKGRldmljZV90IGRl diwgZGV2aWNlX3QgY2hpbGQsIHN0cnVjdCBzcGlfY29tbWFuZCAqY21kKQogeworCiAJcmV0dXJu IChTUElCVVNfVFJBTlNGRVIoZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgY2hpbGQsIGNtZCkpOwog fQogCitzdGF0aWMgaW50CitzcGlidXNfd3JpdGVfaW1wbChkZXZpY2VfdCBkZXYsIHVpbnQzMl90 IHJlZywgdWludDMyX3QgZGF0YSkKK3sKKworCXJldHVybiAoU1BJQlVTX1dSSVRFKGRldmljZV9n ZXRfcGFyZW50KGRldiksIHJlZywgZGF0YSkpOworfQorCitzdGF0aWMgaW50CitzcGlidXNfZ2V0 X2NvbmZpZ19pbXBsKGRldmljZV90IGRldiwgc3RydWN0IHNwaV9jb25maWcgKmNmZykKK3sKKwor CXJldHVybiAoU1BJQlVTX0dFVF9DT05GSUcoZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgY2ZnKSk7 Cit9CisKK3N0YXRpYyBpbnQKK3NwaWJ1c19zZXRfY29uZmlnX2ltcGwoZGV2aWNlX3QgZGV2LCBz dHJ1Y3Qgc3BpX2NvbmZpZyAqY2ZnKQoreworCisJcmV0dXJuIChTUElCVVNfU0VUX0NPTkZJRyhk ZXZpY2VfZ2V0X3BhcmVudChkZXYpLCBjZmcpKTsKK30KKwogc3RhdGljIGRldmljZV9tZXRob2Rf dCBzcGlidXNfbWV0aG9kc1tdID0gewogCS8qIERldmljZSBpbnRlcmZhY2UgKi8KIAlERVZNRVRI T0QoZGV2aWNlX3Byb2JlLAkJc3BpYnVzX3Byb2JlKSwKQEAgLTE4MCw3ICsyMjAsMTIgQEAKIAlE RVZNRVRIT0QoYnVzX2hpbnRlZF9jaGlsZCwJc3BpYnVzX2hpbnRlZF9jaGlsZCksCiAKIAkvKiBz cGlidXMgaW50ZXJmYWNlICovCisJREVWTUVUSE9EKHNwaWJ1c19hY3F1aXJlX2J1cywJc3BpYnVz X2FjcXVpcmVfYnVzX2ltcGwpLAorCURFVk1FVEhPRChzcGlidXNfcmVsZWFzZV9idXMsCXNwaWJ1 c19yZWxlYXNlX2J1c19pbXBsKSwKIAlERVZNRVRIT0Qoc3BpYnVzX3RyYW5zZmVyLAlzcGlidXNf dHJhbnNmZXJfaW1wbCksCisJREVWTUVUSE9EKHNwaWJ1c193cml0ZSwJCXNwaWJ1c193cml0ZV9p bXBsKSwKKwlERVZNRVRIT0Qoc3BpYnVzX2dldF9jb25maWcsCXNwaWJ1c19nZXRfY29uZmlnX2lt cGwpLAorCURFVk1FVEhPRChzcGlidXNfc2V0X2NvbmZpZywJc3BpYnVzX3NldF9jb25maWdfaW1w bCksCiAKIAlERVZNRVRIT0RfRU5ECiB9OwpJbmRleDogc3lzL2Rldi9zcGlidXMvc3BpYnVzX2lm Lm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gc3lzL2Rldi9zcGlidXMvc3BpYnVzX2lmLm0JKHJldmlzaW9uIDIz MTg5NCkKKysrIHN5cy9kZXYvc3BpYnVzL3NwaWJ1c19pZi5tCSh3b3JraW5nIGNvcHkpCkBAIC0z Miw2ICszMiwyMiBAQAogSU5URVJGQUNFIHNwaWJ1czsKIAogIworIyBBY3F1aXJlIGJ1cyBhbmQg c2VsZWN0IHRoZSBkZXZpY2UKKyMKK01FVEhPRCB2b2lkIGFjcXVpcmVfYnVzIHsKKwlkZXZpY2Vf dCBkZXY7CisJZGV2aWNlX3QgY2hpbGQ7Cit9OworCisjCisjIFJlbGVhc2UgYnVzIGFuZCBkZXNl bGVjdCB0aGUgZGV2aWNlCisjCitNRVRIT0Qgdm9pZCByZWxlYXNlX2J1cyB7CisJZGV2aWNlX3Qg ZGV2OworCWRldmljZV90IGNoaWxkOworfTsKKworIwogIyBEbyBhIHNwaSBjb21tYW5kCiAjCiBN RVRIT0QgaW50IHRyYW5zZmVyIHsKQEAgLTM5LDMgKzU1LDI4IEBACiAJZGV2aWNlX3QgY2hpbGQ7 CiAJc3RydWN0IHNwaV9jb21tYW5kICpjbWQ7CiB9OworCisjCisjIFdyaXRlIGEgY29tbWFuZCB0 byBzcGlidXMKKyMKK01FVEhPRCBpbnQgd3JpdGUgeworCWRldmljZV90IGRldjsKKwl1aW50MzJf dCByZWc7CisJdWludDMyX3QgZGF0YTsKK307CisKKyMKKyMgR2V0IHNwaWJ1cyBjb25maWd1cmF0 aW9uCisjCitNRVRIT0QgaW50IGdldF9jb25maWcgeworCWRldmljZV90IGRldjsKKwlzdHJ1Y3Qg c3BpX2NvbmZpZyAqY2ZnOworfTsKKworIworIyBTZXQgc3BpYnVzIGNvbmZpZ3VyYXRpb24KKyMK K01FVEhPRCBpbnQgc2V0X2NvbmZpZyB7CisJZGV2aWNlX3QgZGV2OworCXN0cnVjdCBzcGlfY29u ZmlnICpjZmc7Cit9Owo= --20cf3079b89e44da4204baee2b02 Content-Type: application/octet-stream; name="ar71xx_spi.diff" Content-Disposition: attachment; filename="ar71xx_spi.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gznfulkr1 SW5kZXg6IHN5cy9taXBzL2F0aGVyb3MvYXI3MXh4X3NwaS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9t aXBzL2F0aGVyb3MvYXI3MXh4X3NwaS5jCShyZXZpc2lvbiAyMzE4OTQpCisrKyBzeXMvbWlwcy9h dGhlcm9zL2FyNzF4eF9zcGkuYwkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsOSBAQAogI2lu Y2x1ZGUgPHN5cy9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxzeXMvbWFsbG9jLmg+CiAjaW5jbHVk ZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9sb2NrLmg+CiAjaW5jbHVkZSA8c3lzL21v ZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgogI2luY2x1ZGUgPHN5cy9ybWFuLmg+CiAK ICNpbmNsdWRlIDx2bS92bS5oPgpAQCAtNTEsNiArNTMsNyBAQAogI2luY2x1ZGUgInNwaWJ1c19p Zi5oIgogCiAjaW5jbHVkZSA8bWlwcy9hdGhlcm9zL2FyNzF4eHJlZy5oPgorI2luY2x1ZGUgPG1p cHMvYXRoZXJvcy9hcjcxeHhfY3B1ZGVmLmg+CiAKICN1bmRlZiBBUjcxWFhfU1BJX0RFQlVHCiAj aWZkZWYgQVI3MVhYX1NQSV9ERUJVRwpAQCAtNTksNiArNjIsNyBAQAogI2RlZmluZSBkcHJpbnRm KHgsIGFyZy4uLikKICNlbmRpZgogCisKIC8qCiAgKiByZWdpc3RlciBzcGFjZSBhY2Nlc3MgbWFj cm9zCiAgKi8KQEAgLTc2LDE4ICs4MCwxMjUgQEAKIAogc3RydWN0IGFyNzF4eF9zcGlfc29mdGMg ewogCWRldmljZV90CQlzY19kZXY7CisJZGV2aWNlX3QJCXNjX293bmVyOworCXN0cnVjdCBtdHgJ CXNjX210eDsKIAlzdHJ1Y3QgcmVzb3VyY2UJCSpzY19tZW1fcmVzOwogCXVpbnQzMl90CQlzY19y ZWdfY3RybDsKKwlzdHJ1Y3Qgc3BpX2NvbmZpZwlzY19jb25maWc7CisJaW50CQkJc2NfcHJlX2Rl bGF5OworCWludAkJCXNjX3Bvc3RfZGVsYXk7CiB9OwogCisjZGVmaW5lCUFSNzFYWF9TUElfTE9D Syhfc2MpIG10eF9sb2NrKCYoX3NjKS0+c2NfbXR4KQorI2RlZmluZQlBUjcxWFhfU1BJX1VOTE9D Syhfc2MpIG10eF91bmxvY2soJihfc2MpLT5zY19tdHgpCisjZGVmaW5lCUFSNzFYWF9TUElfTE9D S19JTklUKF9zYykgXAorCW10eF9pbml0KCZfc2MtPnNjX210eCwgZGV2aWNlX2dldF9uYW1ldW5p dChfc2MtPnNjX2RldiksIFwKKwkgICAgImFyNzF4eF9zcGkiLCBNVFhfREVGKQorI2RlZmluZQlB UjcxWFhfU1BJX0xPQ0tfREVTVFJPWShfc2MpIG10eF9kZXN0cm95KCZfc2MtPnNjX210eCk7Cisj ZGVmaW5lCUFSNzFYWF9TUElfQVNTRVJUX0xPQ0tFRChfc2MpIG10eF9hc3NlcnQoJl9zYy0+c2Nf bXR4LCBNQV9PV05FRCk7CisjZGVmaW5lCUFSNzFYWF9TUElfQVNTRVJUX1VOTE9DS0VEKF9zYykg bXR4X2Fzc2VydCgmX3NjLT5zY19tdHgsIE1BX05PVE9XTkVEKTsKKwogc3RhdGljIGludAogYXI3 MXh4X3NwaV9wcm9iZShkZXZpY2VfdCBkZXYpCiB7CisKIAlkZXZpY2Vfc2V0X2Rlc2MoZGV2LCAi QVI3MVhYIFNQSSIpOwogCXJldHVybiAoMCk7CiB9CiAKKworLyogCisgKiBDb25maWd1cmUgdGhl IGhhcmR3YXJlIGNsb2NrIHRvIGFjaGlldmUgdGhlIHJlcXVlc3RlZCBmcmVxdWVuY3kgd2l0aG91 dAorICogZ29pbmcgb3Zlci4gIElmIHRoZSByZXF1ZXN0ZWQgZnJlcXVlbmN5IGlzIGxlc3MgdGhh biB0aGUgbWluaW11bSBwb3NzaWJsZQorICogaGFyZHdhcmUgZnJlcXVlbmN5LCBzb2Z0d2FyZSBk ZWxheXMgd2lsbCBiZSB1c2VkIHRvIG1lZXQgdGhlIHRhcmdldC4KKyAqLwogc3RhdGljIGludAor YXI3MXh4X3NwaV9zZXRfY2xvY2soc3RydWN0IGFyNzF4eF9zcGlfc29mdGMgKnNjLCB1bnNpZ25l ZCBpbnQgaHopCit7CisJdW5zaWduZWQgaW50IGRpdjsKKwl1bnNpZ25lZCBpbnQgYWN0dWFsX2Rp dmlzb3I7CisJdW5zaWduZWQgaW50IGFjdHVhbF9oejsKKwl1bnNpZ25lZCBpbnQgYWRkbF9wZXJp b2RfdXM7CisJdWludDY0X3QgdGVtcDY0OworCisJaWYgKDAgPT0gaHopIHsKKwkJLyogbWF4aW11 bSBmcmVxdWVuY3kgcG9zc2libGUgKi8KKwkJZGl2ID0gMDsKKwl9IGVsc2UgeworCQkvKiAKKwkJ ICogRmlndXJlIHRoZSBkaXZpZGVyIHZhbHVlIHRoYXQgd291bGQgYWNoaWV2ZSB0aGUgY2xvc2Vz dAorCQkgKiBmcmVxdWVuY3kgdG8gdGhhdCByZXF1ZXN0ZWQgd2l0aG91dCBnb2luZyBvdmVyLgor CQkgKi8KKwkJZGl2ID0gKGFyNzF4eF9haGJfZnJlcSgpIC0gMSkgLyAoMiAqIGh6KTsKKwl9CisK KwkKKwkvKiBBdm9pZCBjaGlwIGJ1ZyBhdCAwID09IGRpdiAqLworCWlmICgwID09IGRpdikgewor CQlkaXYgPSAxOworCX0KKworCWlmIChkaXYgPiBTUElfQ1RSTF9DTE9DS19ESVZJREVSX01BWCkg eworCQlkaXYgPSBTUElfQ1RSTF9DTE9DS19ESVZJREVSX01BWDsKKwl9CisKKwlhY3R1YWxfZGl2 aXNvciA9IDIgKiAoZGl2ICsgMSk7CisKKwkvKiBXaGF0IHRoZSBoYXJkd2FyZSB3aWxsIGdlbmVy YXRlLCByb3VuZGVkIHVwLiAqLworCWFjdHVhbF9oeiA9IChhcjcxeHhfYWhiX2ZyZXEoKSArIGFj dHVhbF9kaXZpc29yIC0gMSkgLyBhY3R1YWxfZGl2aXNvcjsKKwkKKwlpZiAoMCA9PSBoeikgewor CQloeiA9IGFjdHVhbF9oejsKKwl9CisKKwkvKiAKKwkgKiBBdCByZXF1ZXN0ZWQgY2xvY2sgcmF0 ZXMgYmVsb3cgdGhlIGhhcmR3YXJlIG1pbmltdW0sIGZpZ3VyZSBvdXQKKwkgKiB3aGF0IGRlbGF5 cyBuZWVkIHRvIGJlIGluc2VydGVkIHdoZW4gZmVlZGluZyBiaXRzIHRvIHRoZSBoYXJkd2FyZQor CSAqIGluIG9yZGVyIHRvIHN0YXkgdW5kZXIgdGhlIHRhcmdldC4KKwkgKi8KKwlpZiAoYWN0dWFs X2h6ID4gaHopIHsKKworCQkvKiAKKwkJICogQ29tcHV0ZSB0aGUgYWRkaXRpb25hbCBudW1iZXIg b2YgbWljcm9zZWNvbmRzIHdlIG5lZWQgaW4KKwkJICogdGhlIGNsb2NrIHBlcmlvZC4gIEluIHRo ZSBzcGlyaXQgb2Ygbm90IGV4Y2VlZGluZyB0aGUKKwkJICogdGFyZ2V0IGZyZXF1ZW5jeSwgcm91 bmQgd2hhdCB3ZSBuZWVkIHVwLCByb3VuZCB3aGF0IHRoZQorCQkgKiBoYXJkd2FyZSBnaXZlcyB1 cyBkb3duLgorCQkgKi8KKwkJYWRkbF9wZXJpb2RfdXMgPSAoMTAwMDAwMCArIGh6IC0gMSkgLyBo eiArIDEwMDAwMDAgLyBhY3R1YWxfaHo7CisKKwkJc2MtPnNjX3ByZV9kZWxheSA9IGFkZGxfcGVy aW9kX3VzIC8gMjsKKwkJc2MtPnNjX3Bvc3RfZGVsYXkgPSBhZGRsX3BlcmlvZF91cyAtIHNjLT5z Y19wcmVfZGVsYXk7CisKKwkJLyogCisJCSAqIEEgaGlnaCByZXNvbHV0aW9uLCByb3VuZGVkIHVw IGludmVyc2lvbiBvZiBzdW0gb2YKKwkJICogaGFyZHdhcmUgYW5kIHNvZnR3YXJlIHBlcmlvZCBj b21wb25lbnRzLCBzbyBvbmUgY2FuIGJlCisJCSAqIGNvbmZpZGVudCBhIHJlcXVlc3RlZCBoYXJk d2FyZSBtYXhpbXVtIGNsb2NrIHJhdGUgaXMgbm90CisJCSAqIGJlaW5nIGV4Y2VlZGVkLgorCQkg Ki8KKwkJdGVtcDY0ID0gMTAwMDAwMHVsbCAqIGFjdHVhbF9kaXZpc29yICArIAorCQkgICAgKHVp bnQ2NF90KWFkZGxfcGVyaW9kX3VzICogKHVpbnQ2NF90KWFyNzF4eF9haGJfZnJlcSgpOworCisJ CXNjLT5zY19jb25maWcuY2xvY2tfaHogPSAKKwkJICAgICgxMDAwMDAwdWxsICogKHVpbnQ2NF90 KWFyNzF4eF9haGJfZnJlcSgpICsgdGVtcDY0IC0gMSkgLworCQkgICAgdGVtcDY0OworCX0gZWxz ZSB7CisJCXNjLT5zY19wcmVfZGVsYXkgPSAwOworCQlzYy0+c2NfcG9zdF9kZWxheSA9IDA7CisJ CXNjLT5zY19jb25maWcuY2xvY2tfaHogPSBhcjcxeHhfYWhiX2ZyZXEoKSAvIGFjdHVhbF9kaXZp c29yOworCX0KKworI2lmIDAKKwlkZXZpY2VfcHJpbnRmKHNjLT5zY19kZXYsICJSZXF1ZXN0ZWQg aHo9JXUgcmVnPTB4JTAyeCBwcmU9JXUgcG9zdD0ldVxuIiwKKwkJICAgICAgaHosIGRpdiwKKwkJ ICAgICAgc2MtPnNjX3ByZV9kZWxheSwgc2MtPnNjX3Bvc3RfZGVsYXkpOworI2VuZGlmCisKKwlT UElfV1JJVEUoc2MsIEFSNzFYWF9TUElfQ1RSTCwgU1BJX0NUUkxfUkVNQVBfRElTQUJMRSB8IGRp dik7CQorCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludAogYXI3MXh4X3NwaV9hdHRhY2go ZGV2aWNlX3QgZGV2KQogewogCXN0cnVjdCBhcjcxeHhfc3BpX3NvZnRjICpzYyA9IGRldmljZV9n ZXRfc29mdGMoZGV2KTsKQEAgLTEwMiwxMiArMjEzLDIwIEBACiAJCXJldHVybiAoRU5YSU8pOwog CX0KIAorCUFSNzFYWF9TUElfTE9DS19JTklUKHNjKTsKIAogCVNQSV9XUklURShzYywgQVI3MVhY X1NQSV9GUywgMSk7Ci0Jc2MtPnNjX3JlZ19jdHJsICA9IFNQSV9SRUFEKHNjLCBBUjcxWFhfU1BJ X0NUUkwpOwotCVNQSV9XUklURShzYywgQVI3MVhYX1NQSV9DVFJMLCAweDQzKTsKLQlTUElfV1JJ VEUoc2MsIEFSNzFYWF9TUElfSU9fQ1RSTCwgU1BJX0lPX0NUUkxfQ1NNQVNLKTsKKwlzYy0+c2Nf cmVnX2N0cmwgPSBTUElfUkVBRChzYywgQVI3MVhYX1NQSV9DVFJMKTsKKwkKKwkvKgorCSAqIFRo ZSBmb2xsb3dpbmcgaXMgZXF1aXZhbGVudCB0byBBUjcxWFhfU1BJX0NUUkwgPSAweDQzLCB3aGlj aCBoYXMKKwkgKiBiZWVuIHRoZSBoaXN0b3JpY2FsIGRlZmF1bHQuCisJICovCisJYXI3MXh4X3Nw aV9zZXRfY2xvY2soc2MsIChhcjcxeHhfYWhiX2ZyZXEoKSAtIDEpIC8gNik7CiAKKwlTUElfV1JJ VEUoc2MsIEFSNzFYWF9TUElfSU9fQ1RSTCwgU1BJX0lPX0NUUkxfQ1MoMCkpOworCisJZGV2aWNl X3ByaW50ZihkZXYsICJhdHRhY2hpbmcgYXQgc3BpYnVzMFxuIik7CiAJZGV2aWNlX2FkZF9jaGls ZChkZXYsICJzcGlidXMiLCAwKTsKIAlyZXR1cm4gKGJ1c19nZW5lcmljX2F0dGFjaChkZXYpKTsK IH0KQEAgLTExNSw0OSArMjM0LDk3IEBACiBzdGF0aWMgdm9pZAogYXI3MXh4X3NwaV9jaGlwX2Fj dGl2YXRlKHN0cnVjdCBhcjcxeHhfc3BpX3NvZnRjICpzYywgaW50IGNzKQogewotCXVpbnQzMl90 IGlvY3RybCA9IFNQSV9JT19DVFJMX0NTTUFTSzsKKwogCS8qCi0JICogUHV0IHJlc3BlY3RpdmUg Q1N4IHRvIGxvdworCSAqIEFjdGl2YXRlIHRoZSByZXNwZWN0aXZlIGRldmljZSAod2UgaGF2ZSB0 aHJlZSBDUyBwaW5zIGFsbG93aW5nCisJICogNyBtdXhlZCBkZXZpY2VzIG9uIGJ1cykuCisJICog QXQgYW55IGdpdmVuIG1vbWVudCBvbmx5IG9uZSBkZXZpY2Ugc2hvdWxkIGJlIHNlbGVjdGVkIG9u IGJ1cy4gCisJICogaWYgY3MgaXMgc2V0IHRvIDAgaXQgd2lsbCBiZSB0aGUgc2FtZSBhcyBTUElf SU9fQ1RSTF9DU01BU0sKKwkgKiAoMHg3IC0gYWxsIHBpbnMgaGlnaCAtIG5vIGRldmljZSBzZWxl Y3RlZCkuCiAJICovCi0JaW9jdHJsICY9IH4oU1BJX0lPX0NUUkxfQ1MwIDw8IGNzKTsKLQotCVNQ SV9XUklURShzYywgQVI3MVhYX1NQSV9JT19DVFJMLCBpb2N0cmwpOworCVNQSV9XUklURShzYywg QVI3MVhYX1NQSV9JT19DVFJMLCBTUElfSU9fQ1RSTF9DUyhjcykpOwogfQogCiBzdGF0aWMgdm9p ZAogYXI3MXh4X3NwaV9jaGlwX2RlYWN0aXZhdGUoc3RydWN0IGFyNzF4eF9zcGlfc29mdGMgKnNj LCBpbnQgY3MpCiB7CisKIAkvKgotCSAqIFB1dCBhbGwgQ1N4IHRvIGhpZ2gKKwkgKiBEZWFjdGl2 YXRlIGFsbCBkZXZpY2VzLCBwdXQgYWxsIENTeCB0byBoaWdoCiAJICovCi0JU1BJX1dSSVRFKHNj LCBBUjcxWFhfU1BJX0lPX0NUUkwsIFNQSV9JT19DVFJMX0NTTUFTSyk7CisJU1BJX1dSSVRFKHNj LCBBUjcxWFhfU1BJX0lPX0NUUkwsIFNQSV9JT19DVFJMX0NTKDApKTsKIH0KIAorc3RhdGljIHZv aWQKK2FyNzF4eF9zcGlfYWNxdWlyZV9idXMoZGV2aWNlX3QgZGV2LCBkZXZpY2VfdCBjaGlsZCkK K3sKKwlzdHJ1Y3Qgc3BpYnVzX2l2YXIgKmRldmkgPSBTUElCVVNfSVZBUihjaGlsZCk7CisJc3Ry dWN0IGFyNzF4eF9zcGlfc29mdGMgKnNjOworCisJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7 CisJQVI3MVhYX1NQSV9BU1NFUlRfVU5MT0NLRUQoc2MpOworCisJQVI3MVhYX1NQSV9MT0NLKHNj KTsKKwlpZiAoc2MtPnNjX293bmVyKQorCQlwYW5pYygiYXI3MXh4X3NwaTogY2Fubm90IHNlcmlh bGl6ZSB0aGUgYWNjZXNzIHRvIGRldmljZS4iKTsKKworCXNjLT5zY19vd25lciA9IGNoaWxkOwor CWFyNzF4eF9zcGlfY2hpcF9hY3RpdmF0ZShzYywgZGV2aS0+Y3MpOworfQorCitzdGF0aWMgdm9p ZAorYXI3MXh4X3NwaV9yZWxlYXNlX2J1cyhkZXZpY2VfdCBkZXYsIGRldmljZV90IGNoaWxkKQor eworCXN0cnVjdCBzcGlidXNfaXZhciAqZGV2aSA9IFNQSUJVU19JVkFSKGNoaWxkKTsKKwlzdHJ1 Y3QgYXI3MXh4X3NwaV9zb2Z0YyAqc2M7CisKKwlzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsK KwlBUjcxWFhfU1BJX0FTU0VSVF9MT0NLRUQoc2MpOworCisJaWYgKCFzYy0+c2Nfb3duZXIpCisJ CXBhbmljKCJhcjcxeHhfc3BpOiByZWxlYXNpbmcgdW5vd25lZCBidXMuIik7CisJaWYgKHNjLT5z Y19vd25lciAhPSBjaGlsZCkKKwkJcGFuaWMoImFyNzF4eF9zcGk6IHlvdSBkb24ndCBvd24gdGhl IGJ1cy4gZ2FtZSBvdmVyLiIpOworCisJYXI3MXh4X3NwaV9jaGlwX2RlYWN0aXZhdGUoc2MsIGRl dmktPmNzKTsKKwlzYy0+c2Nfb3duZXIgPSBOVUxMOworCUFSNzFYWF9TUElfVU5MT0NLKHNjKTsK K30KKwogc3RhdGljIHVpbnQ4X3QKIGFyNzF4eF9zcGlfdHhyeChzdHJ1Y3QgYXI3MXh4X3NwaV9z b2Z0YyAqc2MsIGludCBjcywgdWludDhfdCBkYXRhKQogewogCWludCBiaXQ7Ci0JLyogQ1MwICov Ci0JdWludDMyX3QgaW9jdHJsID0gU1BJX0lPX0NUUkxfQ1NNQVNLOworCXVpbnQzMl90IGlvY3Ry bDsKKworCUFSNzFYWF9TUElfQVNTRVJUX0xPQ0tFRChzYyk7CisKIAkvKgotCSAqIGxvdy1sZXZl bCBmb3Igc2VsZWN0ZWQgQ1MKKwkgKiBhY3RpdmF0ZSB0aGUgc2VsZWN0ZWQgQ1MKIAkgKi8KLQlp b2N0cmwgJj0gfihTUElfSU9fQ1RSTF9DUzAgPDwgY3MpOworCWlvY3RybCA9IFNQSV9JT19DVFJM X0NTKGNzKTsKIAotCXVpbnQzMl90IGlvZCwgcmRzOworCXVpbnQzMl90IGlvZCA9IDAsIHJkczsK IAlmb3IgKGJpdCA9IDc7IGJpdCA+PTA7IGJpdC0tKSB7CiAJCWlmIChkYXRhICYgKDEgPDwgYml0 KSkKIAkJCWlvZCA9IGlvY3RybCB8IFNQSV9JT19DVFJMX0RPOwogCQllbHNlCiAJCQlpb2QgPSBp b2N0cmwgJiB+U1BJX0lPX0NUUkxfRE87CisKIAkJU1BJX1dSSVRFKHNjLCBBUjcxWFhfU1BJX0lP X0NUUkwsIGlvZCk7CisJCWlmIChzYy0+c2NfcHJlX2RlbGF5KSB7CisJCQlERUxBWShzYy0+c2Nf cHJlX2RlbGF5KTsKKwkJfQogCQlTUElfV1JJVEUoc2MsIEFSNzFYWF9TUElfSU9fQ1RSTCwgaW9k IHwgU1BJX0lPX0NUUkxfQ0xLKTsKKwkJaWYgKHNjLT5zY19wb3N0X2RlbGF5KSB7CisJCQlERUxB WShzYy0+c2NfcG9zdF9kZWxheSk7CisJCX0KIAl9CiAKIAkvKgogCSAqIFByb3ZpZGUgZmFsbGlu ZyBlZGdlIGZvciBjb25uZWN0ZWQgZGV2aWNlIGJ5IGNsZWFyIGNsb2NrIGJpdC4KIAkgKi8KLQlT UElfV1JJVEUoc2MsIEFSNzFYWF9TUElfSU9fQ1RSTCwgaW9kKTsKKwlTUElfV1JJVEUoc2MsIEFS NzFYWF9TUElfSU9fQ1RSTCwgaW9kKTsJCiAJcmRzID0gU1BJX1JFQUQoc2MsIEFSNzFYWF9TUElf UkRTKTsKIAogCXJldHVybiAocmRzICYgMHhmZik7CkBAIC0xNjksMTIgKzMzNiwxOSBAQAogCXN0 cnVjdCBhcjcxeHhfc3BpX3NvZnRjICpzYzsKIAl1aW50OF90ICpidWZfaW4sICpidWZfb3V0Owog CXN0cnVjdCBzcGlidXNfaXZhciAqZGV2aSA9IFNQSUJVU19JVkFSKGNoaWxkKTsKKwlpbnQgY3Mg PSBkZXZpLT5jczsKIAlpbnQgaTsKIAogCXNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOwogCi0J YXI3MXh4X3NwaV9jaGlwX2FjdGl2YXRlKHNjLCBkZXZpLT5jcyk7CisJaWYgKChjbWQtPmZsYWdz ICYgU1BJX1NLSVBfQ0hJUF9TRUxFQ1QpID09IDApCisJCWFyNzF4eF9zcGlfYWNxdWlyZV9idXMo ZGV2LCBjaGlsZCk7CiAKKwlpZiAoY21kLT5mbGFncyAmIFNQSV9DSElQX1NFTEVDVF9ISUdIKSB7 CisJCWFyNzF4eF9zcGlfY2hpcF9kZWFjdGl2YXRlKHNjLCBkZXZpLT5jcyk7CisJCWNzID0gMDsK Kwl9CisKIAlLQVNTRVJUKGNtZC0+dHhfY21kX3N6ID09IGNtZC0+cnhfY21kX3N6LCAKIAkgICAg KCJUWC9SWCBjb21tYW5kIHNpemVzIHNob3VsZCBiZSBlcXVhbCIpKTsKIAlLQVNTRVJUKGNtZC0+ dHhfZGF0YV9zeiA9PSBjbWQtPnJ4X2RhdGFfc3osIApAQCAtMTg2LDcgKzM2MCw3IEBACiAJYnVm X291dCA9ICh1aW50OF90ICopY21kLT50eF9jbWQ7CiAJYnVmX2luID0gKHVpbnQ4X3QgKiljbWQt PnJ4X2NtZDsKIAlmb3IgKGkgPSAwOyBpIDwgY21kLT50eF9jbWRfc3o7IGkrKykKLQkJYnVmX2lu W2ldID0gYXI3MXh4X3NwaV90eHJ4KHNjLCBkZXZpLT5jcywgYnVmX291dFtpXSk7CisJCWJ1Zl9p bltpXSA9IGFyNzF4eF9zcGlfdHhyeChzYywgY3MsIGJ1Zl9vdXRbaV0pOwogCiAJLyoKIAkgKiBS ZWNlaXZlL3RyYW5zbWl0IGRhdGEgKGRlcGVuZHMgb24gIGNvbW1hbmQpCkBAIC0xOTQsMTQgKzM2 OCw1MyBAQAogCWJ1Zl9vdXQgPSAodWludDhfdCAqKWNtZC0+dHhfZGF0YTsKIAlidWZfaW4gPSAo dWludDhfdCAqKWNtZC0+cnhfZGF0YTsKIAlmb3IgKGkgPSAwOyBpIDwgY21kLT50eF9kYXRhX3N6 OyBpKyspCi0JCWJ1Zl9pbltpXSA9IGFyNzF4eF9zcGlfdHhyeChzYywgZGV2aS0+Y3MsIGJ1Zl9v dXRbaV0pOworCQlidWZfaW5baV0gPSBhcjcxeHhfc3BpX3R4cngoc2MsIGNzLCBidWZfb3V0W2ld KTsKIAotCWFyNzF4eF9zcGlfY2hpcF9kZWFjdGl2YXRlKHNjLCBkZXZpLT5jcyk7CisJaWYgKChj bWQtPmZsYWdzICYgU1BJX1NLSVBfQ0hJUF9TRUxFQ1QpID09IDApIHsKKwkJYXI3MXh4X3NwaV9y ZWxlYXNlX2J1cyhkZXYsIGNoaWxkKTsKKwl9IGVsc2UgaWYgKGNtZC0+ZmxhZ3MgJiBTUElfQ0hJ UF9TRUxFQ1RfSElHSCkgeworCQlhcjcxeHhfc3BpX2NoaXBfYWN0aXZhdGUoc2MsIGRldmktPmNz KTsKKwl9CiAKIAlyZXR1cm4gKDApOwogfQogCiBzdGF0aWMgaW50CithcjcxeHhfc3BpX3dyaXRl KGRldmljZV90IGRldiwgdWludDMyX3QgcmVnLCB1aW50MzJfdCBkYXRhKQoreworCXN0cnVjdCBh cjcxeHhfc3BpX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKworCUFSNzFYWF9T UElfQVNTRVJUX0xPQ0tFRChzYyk7CisJU1BJX1dSSVRFKHNjLCByZWcsIGRhdGEpOworCXJldHVy biAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2FyNzF4eF9zcGlfc2V0X2NvbmZpZyhkZXZpY2VfdCBk ZXYsIHN0cnVjdCBzcGlfY29uZmlnICpjZmcpCit7CisJc3RydWN0IGFyNzF4eF9zcGlfc29mdGMg KnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCisJQVI3MVhYX1NQSV9BU1NFUlRfTE9DS0VE KHNjKTsKKwlpZiAoYXI3MXh4X3NwaV9zZXRfY2xvY2soc2MsIGNmZy0+Y2xvY2tfaHopKSB7CisJ CXJldHVybiAoRU5YSU8pOworCX0KKworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2Fy NzF4eF9zcGlfZ2V0X2NvbmZpZyhkZXZpY2VfdCBkZXYsIHN0cnVjdCBzcGlfY29uZmlnICpjZmcp Cit7CisJc3RydWN0IGFyNzF4eF9zcGlfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYp OworCisJQVI3MVhYX1NQSV9BU1NFUlRfTE9DS0VEKHNjKTsKKworCSpjZmcgPSBzYy0+c2NfY29u ZmlnOworCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIGludAogYXI3MXh4X3NwaV9kZXRhY2go ZGV2aWNlX3QgZGV2KQogewogCXN0cnVjdCBhcjcxeHhfc3BpX3NvZnRjICpzYyA9IGRldmljZV9n ZXRfc29mdGMoZGV2KTsKQEAgLTIwOSw2ICs0MjIsOCBAQAogCVNQSV9XUklURShzYywgQVI3MVhY X1NQSV9DVFJMLCBzYy0+c2NfcmVnX2N0cmwpOwogCVNQSV9XUklURShzYywgQVI3MVhYX1NQSV9G UywgMCk7CiAKKwlBUjcxWFhfU1BJX0xPQ0tfREVTVFJPWShzYyk7CisKIAlpZiAoc2MtPnNjX21l bV9yZXMpCiAJCWJ1c19yZWxlYXNlX3Jlc291cmNlKGRldiwgU1lTX1JFU19NRU1PUlksIDAsIHNj LT5zY19tZW1fcmVzKTsKIApAQCAtMjIxLDcgKzQzNiwxMiBAQAogCURFVk1FVEhPRChkZXZpY2Vf YXR0YWNoLAlhcjcxeHhfc3BpX2F0dGFjaCksCiAJREVWTUVUSE9EKGRldmljZV9kZXRhY2gsCWFy NzF4eF9zcGlfZGV0YWNoKSwKIAorCURFVk1FVEhPRChzcGlidXNfYWNxdWlyZV9idXMsCWFyNzF4 eF9zcGlfYWNxdWlyZV9idXMpLAorCURFVk1FVEhPRChzcGlidXNfcmVsZWFzZV9idXMsCWFyNzF4 eF9zcGlfcmVsZWFzZV9idXMpLAogCURFVk1FVEhPRChzcGlidXNfdHJhbnNmZXIsCWFyNzF4eF9z cGlfdHJhbnNmZXIpLAorCURFVk1FVEhPRChzcGlidXNfd3JpdGUsCQlhcjcxeHhfc3BpX3dyaXRl KSwKKwlERVZNRVRIT0Qoc3BpYnVzX2dldF9jb25maWcsCWFyNzF4eF9zcGlfZ2V0X2NvbmZpZyks CisJREVWTUVUSE9EKHNwaWJ1c19zZXRfY29uZmlnLAlhcjcxeHhfc3BpX3NldF9jb25maWcpLAog CiAJezAsIDB9CiB9OwpJbmRleDogc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaAo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBzeXMvbWlwcy9hdGhlcm9zL2FyNzF4eHJlZy5oCShyZXZpc2lvbiAyMzE4OTQpCisr KyBzeXMvbWlwcy9hdGhlcm9zL2FyNzF4eHJlZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NzYsMTEg KzQ4MywxMiBAQAogI2RlZmluZQkJQVI3MVhYX1NQSV9DVFJMCQkweDA0CiAjZGVmaW5lCQkJU1BJ X0NUUkxfUkVNQVBfRElTQUJMRQkJKDEgPDwgNikKICNkZWZpbmUJCQlTUElfQ1RSTF9DTE9DS19E SVZJREVSX01BU0sJKCgxIDw8IDYpIC0gMSkKKyNkZWZpbmUgIAkJU1BJX0NUUkxfQ0xPQ0tfRElW SURFUl9NQVgJU1BJX0NUUkxfQ0xPQ0tfRElWSURFUl9NQVNLCiAjZGVmaW5lCQlBUjcxWFhfU1BJ X0lPX0NUUkwJMHgwOAogI2RlZmluZQkJCVNQSV9JT19DVFJMX0NTMgkJCSgxIDw8IDE4KQogI2Rl ZmluZQkJCVNQSV9JT19DVFJMX0NTMQkJCSgxIDw8IDE3KQogI2RlZmluZQkJCVNQSV9JT19DVFJM X0NTMAkJCSgxIDw8IDE2KQotI2RlZmluZQkJCVNQSV9JT19DVFJMX0NTTUFTSwkJKDcgPDwgMTYp CisjZGVmaW5lCQkJU1BJX0lPX0NUUkxfQ1MoY3MpCQkoKDcgLSBjcykgPDwgMTYpCiAjZGVmaW5l CQkJU1BJX0lPX0NUUkxfQ0xLCQkJKDEgPDwgOCkKICNkZWZpbmUJCQlTUElfSU9fQ1RSTF9ETwkJ CTEKICNkZWZpbmUJCUFSNzFYWF9TUElfUkRTCQkweDBDCg== --20cf3079b89e44da4204baee2b02-- From owner-freebsd-mips@FreeBSD.ORG Sun Mar 11 02:26:05 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E722E106566B for ; Sun, 11 Mar 2012 02:26:05 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9D1B78FC0A for ; Sun, 11 Mar 2012 02:26:05 +0000 (UTC) Received: by vcmm1 with SMTP id m1so3569130vcm.13 for ; Sat, 10 Mar 2012 18:26:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=uJnzQy65cRerA92NyoXq+XiZ4Aif/8nlldhgEjGj37w=; b=vbO0+4FjzN9KgN7j2zFk+VzKX74sJUAi+zlzIgZIkw3JJgKLGaPfobuF9ItlOrCHXV 2Bq+Q2GzKpc+JtuIQylte844K7pg28p5QagZQj7Vo05UxQeIYKqAyckJiMtna7iTFwCu 0gEnLQqIyI+n+lbSqcxLk6WkpnsM3eOogHZoOVAMCOBI9qnfBGacfANZMvNi3i/ApGxM VdEllbAS9C2dXA9o7mX4KvsKAdB2nwzDL6UCtRcg5aXyFPa+9z4x1WlhURQL5GprcHQf awwvXCktR/KnPIPdgFUAWE2D+FfT8rXal0YlAeFr3cxWpLTiPB/bAet1LQlsLC4IVBFf C3vQ== MIME-Version: 1.0 Received: by 10.52.93.74 with SMTP id cs10mr11078675vdb.42.1331432764940; Sat, 10 Mar 2012 18:26:04 -0800 (PST) Sender: pkelsey@gmail.com Received: by 10.220.230.2 with HTTP; Sat, 10 Mar 2012 18:26:04 -0800 (PST) Date: Sat, 10 Mar 2012 21:26:04 -0500 X-Google-Sender-Auth: 0V4tg2qqVAygN3jyMEaI5hL28B0 Message-ID: From: Patrick Kelsey To: freebsd-mips@freebsd.org Content-Type: multipart/mixed; boundary=bcaec5016739ff212904baee5863 Subject: [PATCH] MikroTik RB450G support X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2012 02:26:06 -0000 --bcaec5016739ff212904baee5863 Content-Type: text/plain; charset=ISO-8859-1 Since I seem to be spending a lot of quality time with a MikroTik RB450G lately, I thought it would be nice if someone could add support for it to the tree :) Should any able and sympathetic souls be reading this list, a ready .diff file covering what I have been using is attached. This diff is mainly the work of Luiz Otavio O Souza, massaged a bit for the current state of -HEAD. Note that the RB450.hints file assumes the presence of the mmcspi driver in the tree. -Patrick --bcaec5016739ff212904baee5863 Content-Type: application/octet-stream; name="rb450_support.diff" Content-Disposition: attachment; filename="rb450_support.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzngkzaw0 SW5kZXg6IHN5cy9taXBzL2NvbmYvUkI0WFgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvY29uZi9S QjRYWAkocmV2aXNpb24gMCkKKysrIHN5cy9taXBzL2NvbmYvUkI0WFgJKHJldmlzaW9uIDApCkBA IC0wLDAgKzEsMTMyIEBACisjCisjICRGcmVlQlNEJAorIworCitpZGVudAkJUkI0WFgKK21ha2Vv cHRpb25zCVRBUkdFVF9CSUdfRU5ESUFOCittYWtlb3B0aW9ucwlLRVJOTE9BREFERFI9MHg4MDA1 MDAwMAorb3B0aW9ucwkJSFo9MTAwMAorb3B0aW9ucwkJSFdQTUNfSE9PS1MKKworaGludHMJCSJS QjQ1MC5oaW50cyIKKworaW5jbHVkZQkJIi4uL2F0aGVyb3Mvc3RkLmFyNzF4eCIKKworI21ha2Vv cHRpb25zCURFQlVHPS1nCQkjQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRlYnVnIHN5bWJvbHMK K21ha2VvcHRpb25zCU1PRFVMRVNfT1ZFUlJJREU9IiIKKworI29wdGlvbnMJCUREQgorI29wdGlv bnMJCUtEQgorCitvcHRpb25zCQlTQ0hFRF80QlNECQkjNEJTRCBzY2hlZHVsZXIKK29wdGlvbnMJ CUlORVQJCQkjSW50ZXJORVR3b3JraW5nCitvcHRpb25zCQlORlNDTAkJCSNOZXR3b3JrIEZpbGVz eXN0ZW0gQ2xpZW50CitvcHRpb25zCQlORlNDTElFTlQJCSNOZXR3b3JrIEZpbGVzeXN0ZW0gQ2xp ZW50CitvcHRpb25zCQlORlNfUk9PVAkJI05GUyB1c2FibGUgYXMgLywgcmVxdWlyZXMgTkZTQ0xJ RU5UCitvcHRpb25zCQlQU0VVRE9GUwkJI1BzZXVkby1maWxlc3lzdGVtIGZyYW1ld29yaworb3B0 aW9ucwkJX0tQT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HICNQb3NpeCBQMTAwM18xQiByZWFsLXRp bWUgZXh0ZW5zaW9ucworCisjIG9wdGlvbnMJCU5GU19MRUdBQ1lSUEMKKyMgRGVidWdnaW5nIGZv ciB1c2UgaW4gLWN1cnJlbnQKKyMgb3B0aW9ucwkJSU5WQVJJQU5UUworIyBvcHRpb25zCQlJTlZB UklBTlRfU1VQUE9SVAorIyBvcHRpb25zCQlXSVRORVNTCisjIG9wdGlvbnMJCVdJVE5FU1NfU0tJ UFNQSU4KKyMgb3B0aW9ucwkJREVCVUdfUkVEWk9ORQorIyBvcHRpb25zCQlERUJVR19NRU1HVUFS RAorb3B0aW9ucyAgICAgICAgIEZGUyAgICAgICAgICAgICAgICAgICAgICNCZXJrZWxleSBGYXN0 IEZpbGVzeXN0ZW0KK29wdGlvbnMgICAgICAgICBTT0ZUVVBEQVRFUyAgICAgICAgICAgICAjRW5h YmxlIEZGUyBzb2Z0IHVwZGF0ZXMgc3VwcG9ydAorb3B0aW9ucyAgICAgICAgIFVGU19BQ0wgICAg ICAgICAgICAgICAgICNTdXBwb3J0IGZvciBhY2Nlc3MgY29udHJvbCBsaXN0cworb3B0aW9ucyAg ICAgICAgIFVGU19ESVJIQVNIICAgICAgICAgICAgICNJbXByb3ZlIHBlcmZvcm1hbmNlIG9uIGJp ZyBkaXJlY3RvcmllcworCitvcHRpb25zCQlNU0RPU0ZTCisKK29wdGlvbnMJCUJPT1RQCitvcHRp b25zCQlCT09UUF9ORlNST09UCitvcHRpb25zCQlCT09UUF9ORlNWMworb3B0aW9ucwkJQk9PVFBf V0lSRURfVE89YXJnZTEKK29wdGlvbnMJCUJPT1RQX0NPTVBBVAorb3B0aW9ucwkJUk9PVERFVk5B TUU9XCJuZnM6ZnJlZWJzZDgyZGV2NjQ6L25mc3Jvb3QvcmI0eHhcIgorCitkZXZpY2UJCXBjaQor ZGV2aWNlCQlhcjcxeHhfcGNpCisKKyMgODAyLjExIGZyYW1ld29yaworIyBvcHRpb25zCQlJRUVF ODAyMTFfREVCVUcKKyMgb3B0aW9ucwkJSUVFRTgwMjExX0FMUQorIyBvcHRpb25zCQlJRUVFODAy MTFfU1VQUE9SVF9NRVNICisjIFRoaXMgb3B0aW9uIGlzIGN1cnJlbnRseSBicm9rZW4gZm9yIGlm X2F0aF90eC4KKyMgb3B0aW9ucwkJSUVFRTgwMjExX1NVUFBPUlRfVERNQQorIyBvcHRpb25zCQlJ RUVFODAyMTFfQU1QRFVfQUdFCisjIGRldmljZQkJd2xhbiAgICAgICAgICAgICMgODAyLjExIHN1 cHBvcnQKKyMgZGV2aWNlCQl3bGFuX3dlcCAgICAgICAgIyA4MDIuMTEgV0VQIHN1cHBvcnQKKyMg ZGV2aWNlCQl3bGFuX2NjbXAgICAgICAgIyA4MDIuMTEgQ0NNUCBzdXBwb3J0CisjIGRldmljZQkJ d2xhbl90a2lwICAgICAgICMgODAyLjExIFRLSVAgc3VwcG9ydAorIyBkZXZpY2UJCXdsYW5feGF1 dGgJIyA4MDIuMTEgaG9zdGFwIHN1cHBvcnQKKworIyBBdGhlcm9zIHdpcmVsZXNzIE5JQ3MKKyMg ZGV2aWNlCQlhdGggICAgICAgICAgICAgIyBBdGhlcm9zIGludGVyZmFjZSBzdXBwb3J0CisjIGRl dmljZQkJYXRoX3BjaQkJIyBBdGhlcm9zIFBDSS9DYXJkYnVzIGJ1cworIyBvcHRpb25zIAlBVEhf REVCVUcKKyMgb3B0aW9ucwkJQVRIX0RJQUdBUEkKKyMgb3B0aW9ucwkJQVRIX0VOQUJMRV8xMU4K KyMgb3B0aW9ucwkJQUhfREVCVUcKKyMgb3B0aW9ucwkJQUhfREVCVUdfQUxRCisjIG9wdGlvbnMJ CUFMUQorIyBkZXZpY2UJCWF0aF9oYWwKKyMgb3B0aW9uCQlBSF9TVVBQT1JUX0FSNTQxNgorIyBk ZXZpY2UJCWF0aF9yYXRlX3NhbXBsZQorIyBvcHRpb24JCUFIX1JYQ0ZHX1NETUFNV180QllURVMK KyMgb3B0aW9uCQlBSF9BUjU0MTZfSU5URVJSVVBUX01JVElHQVRJT04KKyMgVGhlcmUncyBubyBE RlMgcmFkYXIgZGV0ZWN0aW9uIHN1cHBvcnQgeWV0IHNvIHRoaXMgd29uJ3QgYWN0dWFsbHkKKyMg ZGV0ZWN0IHJhZGFycy4gIEl0IGhvd2V2ZXIgZG9lcyBlbmFibGUgdGhlIHJlc3Qgb2YgdGhlIGNo YW5uZWwgY2hhbmdlCisjIG1hY2hpbmVyeSBzbyBERlMgY2FuIGJlIGRlYnVnZ2VkLgorIyBvcHRp b24JCUFUSF9FTkFCTEVfREZTCisKK2RldmljZQkJbWlpCitkZXZpY2UJCWFyZ2UKKworIyBkZXZp Y2UJCXVzYgorIyBvcHRpb25zCQlVU0JfRUhDSV9CSUdfRU5ESUFOX0RFU0MgICAgICAgICMgaGFu ZGxlIGJpZy1lbmRpYW4gYnl0ZSBvcmRlcgorIyBvcHRpb25zCQlVU0JfREVCVUcKKyMgZGV2aWNl CQllaGNpCisKKyMgZGV2aWNlCQlzY2J1cworIyBkZXZpY2UJCXVtYXNzCisjIGRldmljZQkJZGEK KworZGV2aWNlCQlzcGlidXMKK2RldmljZQkJYXI3MXh4X3NwaQorZGV2aWNlICAgICAgICAgIG1t YworZGV2aWNlICAgICAgICAgIG1tY3NkCitkZXZpY2UgICAgICAgICAgbW1jc3BpCitkZXZpY2UJ CWFyNzF4eF93ZG9nCisKK2RldmljZQkJdWFydAorCitkZXZpY2UJCWxvb3AKK2RldmljZQkJZXRo ZXIKK2RldmljZQkJbWQKK2RldmljZQkJYnBmCitkZXZpY2UJCXJhbmRvbQorZGV2aWNlCQlpZl9i cmlkZ2UKKyMgZGV2aWNlCQlnaWYJCSMgaXBbNDZdIGluIGlwWzQ2XSB0dW5uZWxpbmcgcHJvdG9j b2wKKyMgZGV2aWNlCQlncmUJCSMgZ2VuZXJpYyBlbmNhcHN1bGF0aW9uIC0gb25seSBmb3IgSVB2 NCBpbiBJUHY0IHRob3VnaCBhdG0KKworIyBvcHRpb25zCQlBUkdFX0RFQlVHCSMgRW5hYmxlIGlm X2FyZ2UgZGVidWdnaW5nIGZvciBub3cKKworZGV2aWNlCQlncGlvCitkZXZpY2UJCWdwaW9sZWQK KworI29wdGlvbnMJCVJCX0dQSU9fUElOUworI29wdGlvbnMJCUZJWF9SQl9NQUNfQUREUkVTUwor CitvcHRpb25zCQlEVU1NWU5FVAorb3B0aW9ucwkJTElCQUxJQVMKK29wdGlvbnMJCUlQRElWRVJU CitvcHRpb25zCQlJUFNURUFMVEgKK29wdGlvbnMJCUlQRklSRVdBTEwKK29wdGlvbnMJCUlQRklS RVdBTExfTkFUCitvcHRpb25zCQlJUEZJUkVXQUxMX0ZPUldBUkQKK29wdGlvbnMJCUlQRklSRVdB TExfVkVSQk9TRQorb3B0aW9ucwkJSVBGSVJFV0FMTF9ERUZBVUxUX1RPX0FDQ0VQVApJbmRleDog c3lzL21pcHMvY29uZi9SQjQ1MC5oaW50cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9jb25mL1JC NDUwLmhpbnRzCShyZXZpc2lvbiAwKQorKysgc3lzL21pcHMvY29uZi9SQjQ1MC5oaW50cwkocmV2 aXNpb24gMCkKQEAgLTAsMCArMSw3MCBAQAorIworIyAkRnJlZUJTRCQKKyMKK2hpbnQuYXBiLjAu YXQ9Im5leHVzMCIKK2hpbnQuYXBiLjAuaXJxPTQKKworIyB1YXJ0MAoraGludC51YXJ0LjAuYXQ9 ImFwYjAiCisjIHNlZSBhdGhlcm9zL3VhcnRfY3B1X2FyNzF4eC5jIHdoeSArMworaGludC51YXJ0 LjAubWFkZHI9MHgxODAyMDAwMworaGludC51YXJ0LjAubXNpemU9MHgxOAoraGludC51YXJ0LjAu aXJxPTMKKworI29oY2kKKyNoaW50Lm9oY2kuMC5hdD0iYXBiMCIKKyNoaW50Lm9oY2kuMC5tYWRk cj0weDFjMDAwMDAwCisjaGludC5vaGNpLjAubXNpemU9MHgwMTAwMDAwMAorI2hpbnQub2hjaS4w LmlycT02CisKKyNlaGNpCisjaGludC5laGNpLjAuYXQ9Im5leHVzMCIKKyNoaW50LmVoY2kuMC5t YWRkcj0weDFiMDAwMDAwCisjaGludC5laGNpLjAubXNpemU9MHgwMTAwMDAwMAorI2hpbnQuZWhj aS4wLmlycT0xCisKKyMgcGNpCisjaGludC5wY2liLjAuYXQ9Im5leHVzMCIKKyNoaW50LnBjaWIu MC5pcnE9MAorCitoaW50LmFyZ2UuMC5hdD0ibmV4dXMwIgoraGludC5hcmdlLjAubWFkZHI9MHgx OTAwMDAwMAoraGludC5hcmdlLjAubXNpemU9MHgxMDAwCitoaW50LmFyZ2UuMC5pcnE9MgorIyBQ SFkwLCBQSFkxLCBQSFkyLCBQSFkzCitoaW50LmFyZ2UuMC5waHltYXNrPTB4MGYKKworaGludC5h cmdlLjEuYXQ9Im5leHVzMCIKK2hpbnQuYXJnZS4xLm1hZGRyPTB4MUEwMDAwMDAKK2hpbnQuYXJn ZS4xLm1zaXplPTB4MTAwMAoraGludC5hcmdlLjEuaXJxPTMKKyMgUEhZNAoraGludC5hcmdlLjEu cGh5bWFzaz0weDEwCisKKyMgU1BJIGNvbnRyb2xsZXIKK2hpbnQuc3BpLjAuYXQ9Im5leHVzMCIK K2hpbnQuc3BpLjAubWFkZHI9MHgxZjAwMDAwMAoraGludC5zcGkuMC5tc2l6ZT0weDEwCisKKyMg U1BJIG1pY3JvU0Qgc2xvdAoraGludC5tbWNzcGkuMC5hdD0ic3BpYnVzMCIKK2hpbnQubW1jc3Bp LjAuY3M9MgorCisjIFdhdGNoZG9nCitoaW50LmFyNzF4eF93ZG9nLjAuYXQ9Im5leHVzMCIKKwor IyBHUElPCitoaW50LmdwaW8uMC5hdD0iYXBiMCIKK2hpbnQuZ3Bpby4wLm1hZGRyPTB4MTgwNDAw MDAKK2hpbnQuZ3Bpby4wLm1zaXplPTB4MTAwMAoraGludC5ncGlvLjAuaXJxPTIKKworIyBVc2Vy IGxlZAoraGludC5ncGlvbGVkLjAuYXQ9ImdwaW9idXMwIgoraGludC5ncGlvbGVkLjAubmFtZT0i dXNlciIKKyMgcGluIDQKK2hpbnQuZ3Bpb2xlZC4wLnBpbnM9MHgwMDEwCisKKyMgaHdwbWMgZGV2 aWNlCitoaW50LmFyNzF4eF9wbWMuMC5hdD0iYXBiMCIKK2hpbnQuYXI3MXh4X3BtYy4wLmlycT01 CkluZGV4OiBzeXMvbWlwcy9hdGhlcm9zL2FyNzF4eF9tYWNoZGVwLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g c3lzL21pcHMvYXRoZXJvcy9hcjcxeHhfbWFjaGRlcC5jCShyZXZpc2lvbiAyMzE4OTQpCisrKyBz eXMvbWlwcy9hdGhlcm9zL2FyNzF4eF9tYWNoZGVwLmMJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYg KzY0LDcgQEAKIC8qIDRLQiBzdGF0aWMgZGF0YSBhcmVhZCB0byBrZWVwIGEgY29weSBvZiB0aGUg Ym9vdGxvYWQgZW52IHVudGlsCiAgICB0aGUgZHluYW1pYyBrZW52IGlzIHNldHVwICovCiBjaGFy IGJvb3QxX2Vudls0MDk2XTsKK2NoYXIgYm9hcmRfbW9kZWxbNjRdOwogCiAvKgogICogV2UgZ2V0 IGEgc3RyaW5nIGluIGZyb20gUmVkYm9vdCB3aXRoIHRoZSBhbGwgdGhlIGFyZ3VtZW50cyB0b2dl dGhlciwKQEAgLTE2OCw3ICsxNjksNyBAQAogICAgIF9fcmVnaXN0ZXJfdCBhMiBfX3VudXNlZCwg X19yZWdpc3Rlcl90IGEzIF9fdW51c2VkKQogewogCXVpbnQ2NF90IHBsYXRmb3JtX2NvdW50ZXJf ZnJlcTsKLQlpbnQgYXJnYyA9IDAsIGk7CisJaW50IGFyZ2MgPSAwLCBpLCBib2FyZF9tZW0sIGNv dW50ID0gMDsKIAljaGFyICoqYXJndiA9IE5VTEwsICoqZW52cCA9IE5VTEw7CiAJdm1fb2Zmc2V0 X3Qga2VybmVuZDsKIApAQCAtMTk3LDYgKzE5OCwyNyBAQAogCQl9CiAJfQogCisJLyogUGFyc2Ug Y21kIGFyZ3VtZW50cyAqLworCWlmIChNSVBTX0lTX1ZBTElEX1BUUihhcmd2KSkgeworCQlmb3Ig KGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CisJCQlpZiAoc3RybmNtcChhcmd2W2ldLCAia21hYz0i LCA1KSA9PSAwKSB7CisJCQkJY291bnQgPSBzc2NhbmYoYXJndltpXSArIDUsICIleDoleDoleDol eDoleDoleCIsCisJCQkJICAgICZhcjcxMV9iYXNlX21hY1swXSwgJmFyNzExX2Jhc2VfbWFjWzFd LAorCQkJCSAgICAmYXI3MTFfYmFzZV9tYWNbMl0sICZhcjcxMV9iYXNlX21hY1szXSwKKwkJCQkg ICAgJmFyNzExX2Jhc2VfbWFjWzRdLCAmYXI3MTFfYmFzZV9tYWNbNV0pOworCQkJCWlmIChjb3Vu dCA8IDYpCisJCQkJCW1lbXNldChhcjcxMV9iYXNlX21hYywgMCwKKwkJCQkJICAgIHNpemVvZihh cjcxMV9iYXNlX21hYykpOworCQkJfSBlbHNlIGlmIChzdHJuY21wKGFyZ3ZbaV0sICJtZW09Iiwg NCkgPT0gMCkgeworCQkJCWlmIChzc2NhbmYoYXJndltpXSArIDQsICIlZE0iLCAmYm9hcmRfbWVt KSA9PSAxKQorCQkJCQlyZWFsbWVtID0gYnRvYyhib2FyZF9tZW0gKiAxMDI0ICogMTAyNCk7CisJ CQl9IGVsc2UgaWYgKHN0cm5jbXAoYXJndltpXSwgImJvYXJkPSIsIDYpID09IDApIHsKKwkJCQlz dHJsY3B5KGJvYXJkX21vZGVsLCBhcmd2W2ldICsgNiwKKwkJCQkgICAgIHNpemVvZihib2FyZF9t b2RlbCkpOworCQkJfQorCQl9CisJfQorCiAJLyoKIAkgKiBKdXN0IHdpbGQgZ3Vlc3MuIFJlZEJv b3QgbGV0IHVzIGRvd24gYW5kIGRpZG4ndCByZXBvcnRlZCAKIAkgKiBtZW1vcnkgc2l6ZQpJbmRl eDogc3lzL21pcHMvYXRoZXJvcy9pZl9hcmdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvYXRo ZXJvcy9pZl9hcmdlLmMJKHJldmlzaW9uIDIzMTg5NCkKKysrIHN5cy9taXBzL2F0aGVyb3MvaWZf YXJnZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xODAsNiArMTgwLDggQEAKICAqLwogZXh0ZXJuIHVp bnQzMl90IGFyNzExX2Jhc2VfbWFjW0VUSEVSX0FERFJfTEVOXTsKIAorZXh0ZXJuIGNoYXIgYm9h cmRfbW9kZWxbNjRdOworCiBzdGF0aWMgc3RydWN0IG10eCBtaWlidXNfbXR4OwogCiBNVFhfU1lT SU5JVChtaWlidXNfbXR4LCAmbWlpYnVzX210eCwgImFyZ2UgbWlpIGxvY2siLCBNVFhfREVGKTsK QEAgLTM5NSw4ICszOTcsMTUgQEAKIAkJZWFkZHJbNV0gPSAocm5kID4+IDgpICYgMHhmZjsKIAl9 CiAKLQlpZiAoc2MtPmFyZ2VfbWFjX3VuaXQgIT0gMCkKLQkJZWFkZHJbNV0gKz0gIHNjLT5hcmdl X21hY191bml0OworCWlmIChzdHJuY21wKGJvYXJkX21vZGVsLCAiNDUwIiwgMykgPT0gMCB8fAor CSAgICBzdHJuY21wKGJvYXJkX21vZGVsLCAiNDMzIiwgMykgPT0gMCB8fAorCSAgICBzdHJuY21w KGJvYXJkX21vZGVsLCAiNDkzIiwgMykgPT0gMCkgeworCQlpZiAoc2MtPmFyZ2VfbWFjX3VuaXQg PT0gMCkKKwkJCWVhZGRyWzVdICs9IDE7CisJfSBlbHNlIHsKKwkJaWYgKHNjLT5hcmdlX21hY191 bml0ICE9IDApCisJCQllYWRkcls1XSArPSBzYy0+YXJnZV9tYWNfdW5pdDsKKwl9CiAKIAlpZiAo YXJnZV9kbWFfYWxsb2Moc2MpICE9IDApIHsKIAkJZXJyb3IgPSBFTlhJTzsKSW5kZXg6IHN5cy9t aXBzL2F0aGVyb3MvYXI3MXh4X2NoaXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9hdGhlcm9z L2FyNzF4eF9jaGlwLmMgIChyZXZpc2lvbiAyMzI3MjUpCisrKyBzeXMvbWlwcy9hdGhlcm9zL2Fy NzF4eF9jaGlwLmMgICh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMjEgKzEzNiwzNSBAQAogICAgICAg IHJldHVybiAoKHJlZyAmIG1hc2spID09IG1hc2spOwogfQogCitzdGF0aWMgX19pbmxpbmUgdm9p ZAorYXI3MXh4X2NoaXBfc2V0X21paV9zcGVlZCh1aW50MzJfdCByZWcsIHVpbnQzMl90IGN0cmwp Cit7CisgICAgICAgdWludDMyX3QgdmFsOworCisgICAgICAgdmFsID0gQVRIX1JFQURfUkVHKHJl Zyk7CisgICAgICAgdmFsICY9IH4oTUlJX0NUUkxfU1BFRURfTUFTSyA8PCBNSUlfQ1RSTF9TUEVF RF9TSElGVCk7CisgICAgICAgdmFsIHw9IChjdHJsICYgTUlJX0NUUkxfU1BFRURfTUFTSykgPDwg TUlJX0NUUkxfU1BFRURfU0hJRlQ7CisgICAgICAgQVRIX1dSSVRFX1JFRyhyZWcsIHZhbCk7Cit9 CisKIC8qIFNwZWVkIGlzIGVpdGhlciAxMCwgMTAwIG9yIDEwMDAgKi8KIHN0YXRpYyB2b2lkCiBh cjcxeHhfY2hpcF9zZXRfcGxsX2dlKGludCB1bml0LCBpbnQgc3BlZWQpCiB7Ci0gICAgICAgdWlu dDMyX3QgcGxsOworICAgICAgIHVpbnQzMl90IGN0cmwsIHBsbDsKIAogICAgICAgIHN3aXRjaCAo c3BlZWQpIHsKICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgcGxsID0gUExMX0VUSF9J TlRfQ0xLXzEwOworICAgICAgICAgICAgICAgY3RybCA9IE1JSV9DVFJMX1NQRUVEXzEwOwogICAg ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxMDA6CiAgICAgICAgICAgICAgICBwbGwg PSBQTExfRVRIX0lOVF9DTEtfMTAwOworICAgICAgICAgICAgICAgY3RybCA9IE1JSV9DVFJMX1NQ RUVEXzEwMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMTAwMDoKICAgICAg ICAgICAgICAgIHBsbCA9IFBMTF9FVEhfSU5UX0NMS18xMDAwOworICAgICAgICAgICAgICAgY3Ry bCA9IE1JSV9DVFJMX1NQRUVEXzEwMDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBk ZWZhdWx0OgogICAgICAgICAgICAgICAgcHJpbnRmKCIlcyVkOiBpbnZhbGlkIHNwZWVkICVkXG4i LApAQCAtMTYyLDExICsxNzYsMTMgQEAKICAgICAgICAgICAgICAgIGFyNzF4eF93cml0ZV9wbGwo QVI3MVhYX1BMTF9TRUNfQ09ORklHLAogICAgICAgICAgICAgICAgICAgIEFSNzFYWF9QTExfRVRI X0lOVDBfQ0xLLCBwbGwsCiAgICAgICAgICAgICAgICAgICAgQVI3MVhYX1BMTF9FVEgwX1NISUZU KTsKKyAgICAgICAgICAgICAgIGFyNzF4eF9jaGlwX3NldF9taWlfc3BlZWQoQVI3MVhYX01JSTBf Q1RSTCwgY3RybCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE6CiAgICAg ICAgICAgICAgICBhcjcxeHhfd3JpdGVfcGxsKEFSNzFYWF9QTExfU0VDX0NPTkZJRywKICAgICAg ICAgICAgICAgICAgICBBUjcxWFhfUExMX0VUSF9JTlQxX0NMSywgcGxsLAogICAgICAgICAgICAg ICAgICAgIEFSNzFYWF9QTExfRVRIMV9TSElGVCk7CisgICAgICAgICAgICAgICBhcjcxeHhfY2hp cF9zZXRfbWlpX3NwZWVkKEFSNzFYWF9NSUkxX0NUUkwsIGN0cmwpOwogICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHByaW50ZigiJXM6IGludmFs aWQgUExMIHNldCBmb3IgYXJnZSB1bml0OiAlZFxuIiwKSW5kZXg6IHN5cy9taXBzL2F0aGVyb3Mv YXI3MXh4cmVnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaAko cmV2aXNpb24gMjMxODk0KQorKysgc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaAkod29ya2lu ZyBjb3B5KQpAQCAtMjcwLDYgKzI3MCwxMyBAQAogLyoKICAqIEdpZ0UgYWRhcHRlcnMgcmVnaW9u CiAgKi8KKyNkZWZpbmUgQVI3MVhYX01JSTBfQ1RSTAkweDE4MDcwMDAwCisjZGVmaW5lIEFSNzFY WF9NSUkxX0NUUkwJMHgxODA3MDAwNAorI2RlZmluZQkJTUlJX0NUUkxfU1BFRURfU0hJRlQJNAor I2RlZmluZQkJTUlJX0NUUkxfU1BFRURfTUFTSwkzCisjZGVmaW5lCQlNSUlfQ1RSTF9TUEVFRF8x MAkwCisjZGVmaW5lCQlNSUlfQ1RSTF9TUEVFRF8xMDAJMQorI2RlZmluZQkJTUlJX0NUUkxfU1BF RURfMTAwMAkyCiAjZGVmaW5lIEFSNzFYWF9NQUMwX0JBU0UJMHgxOTAwMDAwMAogI2RlZmluZSBB UjcxWFhfTUFDMV9CQVNFCTB4MUEwMDAwMDAKIC8qCg== --bcaec5016739ff212904baee5863-- From owner-freebsd-mips@FreeBSD.ORG Sun Mar 11 03:44:12 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 299FF1065670 for ; Sun, 11 Mar 2012 03:44:12 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 004AF8FC08 for ; Sun, 11 Mar 2012 03:44:11 +0000 (UTC) Received: by dald2 with SMTP id d2so3765308dal.13 for ; Sat, 10 Mar 2012 19:44:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=cVfNUOwcYyRAg9FvZ2txq7s2FeA+vzTtCO1dCnWn/Qg=; b=UaVcT0hVLXUXa5gyfrN+F91FARwVNITBRgy2kUH9KsJkhQyKAQtqeDKweVP0NmCxIW sqPmmquGUJEpUq99IrU3H268omj2dGBDVE6Jg+vH/RJ5xblRE6K0f/ZT0N00wYBzYA4W nurhKF+919KZjNzN0YATidbasBxI95nw+1rMdkyAc+IG7U5iCfBmBiEWUUWpG09O93ks NLXNfkYcGixQ0ojaKq5jyvd4iH+SXSSU64CK/gRFI0SJfPBBXOdxZVkeFW9t9ymtNCUM owN5/8kntd3JKfo9CAk1ug4HlkJZ5c5o1USLFlHMroS4/JHmvaqctDYE799d3My2C/kI k+Kw== MIME-Version: 1.0 Received: by 10.68.225.104 with SMTP id rj8mr12502974pbc.135.1331437451559; Sat, 10 Mar 2012 19:44:11 -0800 (PST) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Sat, 10 Mar 2012 19:44:11 -0800 (PST) In-Reply-To: References: Date: Sat, 10 Mar 2012 19:44:11 -0800 X-Google-Sender-Auth: 8CrsOht-yC2qJpBFIe6mcb8SqOE Message-ID: From: Adrian Chadd To: Patrick Kelsey Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-mips@freebsd.org Subject: Re: [PATCH] MikroTik RB450G support X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2012 03:44:12 -0000 Hi! Thanks for this! The arge patch for board info should be something chip specific, rather than always compiled in. The board model thing should be an environment variable, rather than hard-coded in the driver. What's it needed for, anyway? Are the MAC addresses reversed? The MII speed thing is good, I've been wondering about adding more MII config stuff to the ar71xx code. But we'll have to ensure it's set correctly for the AR91xx and AR724x code. Adrian From owner-freebsd-mips@FreeBSD.ORG Sun Mar 11 15:19:05 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3029D1065672; Sun, 11 Mar 2012 15:19:05 +0000 (UTC) (envelope-from pkelsey@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id C218C8FC12; Sun, 11 Mar 2012 15:19:04 +0000 (UTC) Received: by vcmm1 with SMTP id m1so4003515vcm.13 for ; Sun, 11 Mar 2012 08:19:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=/CCFRY/yB40pEPjrtZ6C7Wg4WdKEMaaE7o9RiXiD3R8=; b=iYy75a2C3AZHVptfS+Ca+QrQ9Amrtsyls0ql812NBLb/hu017raPBFYESChq1AJIWP 5lujAfkGe3CJw56NvzTQsjtPqr0iqRuAYyLu9K68ckSupjS76Be2O+a5VI7nVr7feJtU bNZ5jSkSibuj7IJYHZfRy8z4dFf/a+nJoQfD8YxIzDKVbNuaZiGAmo4Y3b/vl5Fh8+43 EQ8DJYcLi5waXB71ajsMAv1APk35g5PNf0sXeUO4qagzDkTuAi8M7KnZ4q/vJpq2svNB VmVrpua2U6fOyYzGb+n1/Zf2P9DVLiNmWdPSI2WW/EWCpqYM9mRfUroO3O/AoDIQ3e/w ezFA== MIME-Version: 1.0 Received: by 10.52.36.111 with SMTP id p15mr12206844vdj.93.1331479143985; Sun, 11 Mar 2012 08:19:03 -0700 (PDT) Sender: pkelsey@gmail.com Received: by 10.220.230.2 with HTTP; Sun, 11 Mar 2012 08:19:03 -0700 (PDT) In-Reply-To: References: Date: Sun, 11 Mar 2012 11:19:03 -0400 X-Google-Sender-Auth: 7a--N1pWnkFyZDBIJTHV1nLLWDY Message-ID: From: Patrick Kelsey To: Adrian Chadd Content-Type: multipart/mixed; boundary=20cf307d01d867342204baf9259d Cc: freebsd-mips@freebsd.org Subject: Re: [PATCH] MikroTik RB450G support X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Mar 2012 15:19:05 -0000 --20cf307d01d867342204baf9259d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Sat, Mar 10, 2012 at 10:44 PM, Adrian Chadd wrote: > Thanks for this! Thanks for taking a look! > The arge patch for board info should be something chip specific, > rather than always compiled in. > > The board model thing should be an environment variable, rather than > hard-coded in the driver. =A0What's it needed for, anyway? Are the MAC > addresses reversed? On the RB450G, the typical config seems to be to have arge1 connected to the lowest numbered front panel port, with the base MAC address assigned. In the updated patch (attached), I did away with the board model logic and replaced it with a mac_offset hint, which is a generic solution that is also more concise and flexible. I also cleaned up the patch to ar71xx_machdep.c, which was needlessly putting the board_model in a global when it was already available in the environment via the existing HEAD code. The only change remaining then for the RB450 is to extract the mem size from argv. > The MII speed thing is good, I've been wondering about adding more MII > config stuff to the ar71xx code. But we'll have to ensure it's set > correctly for the AR91xx and AR724x code. I currently have no knowledge of the AR91xx and AR724x requirements. As far as I can tell, and I'm not authoritative on this by any means, setting the MII speed on AR71xx is only relevant when operating in MII/RMII mode. The RB450G runs in RGMII mode, and empirically doesn't seem to be affected by setting the MII speed to any value, so I'd have no objection if this part of the patch is put off until questions can be resolved. Perhaps this should be broken out into a separate patch. -Patrick --20cf307d01d867342204baf9259d Content-Type: application/octet-stream; name="rb450_support_pass2.diff" Content-Disposition: attachment; filename="rb450_support_pass2.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzo7kxz50 SW5kZXg6IHN5cy9taXBzL2NvbmYvUkI0NTAuaGludHMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMv Y29uZi9SQjQ1MC5oaW50cwkocmV2aXNpb24gMCkKKysrIHN5cy9taXBzL2NvbmYvUkI0NTAuaGlu dHMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKyMKKyMgJEZyZWVCU0QkCisjCitoaW50 LmFwYi4wLmF0PSJuZXh1czAiCitoaW50LmFwYi4wLmlycT00CisKKyMgdWFydDAKK2hpbnQudWFy dC4wLmF0PSJhcGIwIgorIyBzZWUgYXRoZXJvcy91YXJ0X2NwdV9hcjcxeHguYyB3aHkgKzMKK2hp bnQudWFydC4wLm1hZGRyPTB4MTgwMjAwMDMKK2hpbnQudWFydC4wLm1zaXplPTB4MTgKK2hpbnQu dWFydC4wLmlycT0zCisKKyNvaGNpCisjaGludC5vaGNpLjAuYXQ9ImFwYjAiCisjaGludC5vaGNp LjAubWFkZHI9MHgxYzAwMDAwMAorI2hpbnQub2hjaS4wLm1zaXplPTB4MDEwMDAwMDAKKyNoaW50 Lm9oY2kuMC5pcnE9NgorCisjZWhjaQorI2hpbnQuZWhjaS4wLmF0PSJuZXh1czAiCisjaGludC5l aGNpLjAubWFkZHI9MHgxYjAwMDAwMAorI2hpbnQuZWhjaS4wLm1zaXplPTB4MDEwMDAwMDAKKyNo aW50LmVoY2kuMC5pcnE9MQorCisjIHBjaQorI2hpbnQucGNpYi4wLmF0PSJuZXh1czAiCisjaGlu dC5wY2liLjAuaXJxPTAKKworaGludC5hcmdlLjAuYXQ9Im5leHVzMCIKK2hpbnQuYXJnZS4wLm1h ZGRyPTB4MTkwMDAwMDAKK2hpbnQuYXJnZS4wLm1zaXplPTB4MTAwMAoraGludC5hcmdlLjAuaXJx PTIKKyMgUEhZMCwgUEhZMSwgUEhZMiwgUEhZMworaGludC5hcmdlLjAucGh5bWFzaz0weDBmCito aW50LmFyZ2UuMC5tYWNfb2Zmc2V0PTEKKworaGludC5hcmdlLjEuYXQ9Im5leHVzMCIKK2hpbnQu YXJnZS4xLm1hZGRyPTB4MUEwMDAwMDAKK2hpbnQuYXJnZS4xLm1zaXplPTB4MTAwMAoraGludC5h cmdlLjEuaXJxPTMKKyMgUEhZNAoraGludC5hcmdlLjEucGh5bWFzaz0weDEwCitoaW50LmFyZ2Uu MS5tYWNfb2Zmc2V0PTAKKworIyBTUEkgY29udHJvbGxlcgoraGludC5zcGkuMC5hdD0ibmV4dXMw IgoraGludC5zcGkuMC5tYWRkcj0weDFmMDAwMDAwCitoaW50LnNwaS4wLm1zaXplPTB4MTAKKwor IyBTUEkgbWljcm9TRCBzbG90CitoaW50Lm1tY3NwaS4wLmF0PSJzcGlidXMwIgoraGludC5tbWNz cGkuMC5jcz0yCisKKyMgV2F0Y2hkb2cKK2hpbnQuYXI3MXh4X3dkb2cuMC5hdD0ibmV4dXMwIgor CisjIEdQSU8KK2hpbnQuZ3Bpby4wLmF0PSJhcGIwIgoraGludC5ncGlvLjAubWFkZHI9MHgxODA0 MDAwMAoraGludC5ncGlvLjAubXNpemU9MHgxMDAwCitoaW50LmdwaW8uMC5pcnE9MgorCisjIFVz ZXIgbGVkCitoaW50LmdwaW9sZWQuMC5hdD0iZ3Bpb2J1czAiCitoaW50LmdwaW9sZWQuMC5uYW1l PSJ1c2VyIgorIyBwaW4gNAoraGludC5ncGlvbGVkLjAucGlucz0weDAwMTAKKworIyBod3BtYyBk ZXZpY2UKK2hpbnQuYXI3MXh4X3BtYy4wLmF0PSJhcGIwIgoraGludC5hcjcxeHhfcG1jLjAuaXJx PTUKSW5kZXg6IHN5cy9taXBzL2NvbmYvUkI0WFgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvY29u Zi9SQjRYWAkocmV2aXNpb24gMCkKKysrIHN5cy9taXBzL2NvbmYvUkI0WFgJKHJldmlzaW9uIDAp CkBAIC0wLDAgKzEsMTMyIEBACisjCisjICRGcmVlQlNEJAorIworCitpZGVudAkJUkI0WFgKK21h a2VvcHRpb25zCVRBUkdFVF9CSUdfRU5ESUFOCittYWtlb3B0aW9ucwlLRVJOTE9BREFERFI9MHg4 MDA1MDAwMAorb3B0aW9ucwkJSFo9MTAwMAorb3B0aW9ucwkJSFdQTUNfSE9PS1MKKworaGludHMJ CSJSQjQ1MC5oaW50cyIKKworaW5jbHVkZQkJIi4uL2F0aGVyb3Mvc3RkLmFyNzF4eCIKKworI21h a2VvcHRpb25zCURFQlVHPS1nCQkjQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRlYnVnIHN5bWJv bHMKK21ha2VvcHRpb25zCU1PRFVMRVNfT1ZFUlJJREU9IiIKKworI29wdGlvbnMJCUREQgorI29w dGlvbnMJCUtEQgorCitvcHRpb25zCQlTQ0hFRF80QlNECQkjNEJTRCBzY2hlZHVsZXIKK29wdGlv bnMJCUlORVQJCQkjSW50ZXJORVR3b3JraW5nCitvcHRpb25zCQlORlNDTAkJCSNOZXR3b3JrIEZp bGVzeXN0ZW0gQ2xpZW50CitvcHRpb25zCQlORlNDTElFTlQJCSNOZXR3b3JrIEZpbGVzeXN0ZW0g Q2xpZW50CitvcHRpb25zCQlORlNfUk9PVAkJI05GUyB1c2FibGUgYXMgLywgcmVxdWlyZXMgTkZT Q0xJRU5UCitvcHRpb25zCQlQU0VVRE9GUwkJI1BzZXVkby1maWxlc3lzdGVtIGZyYW1ld29yawor b3B0aW9ucwkJX0tQT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HICNQb3NpeCBQMTAwM18xQiByZWFs LXRpbWUgZXh0ZW5zaW9ucworCisjIG9wdGlvbnMJCU5GU19MRUdBQ1lSUEMKKyMgRGVidWdnaW5n IGZvciB1c2UgaW4gLWN1cnJlbnQKKyMgb3B0aW9ucwkJSU5WQVJJQU5UUworIyBvcHRpb25zCQlJ TlZBUklBTlRfU1VQUE9SVAorIyBvcHRpb25zCQlXSVRORVNTCisjIG9wdGlvbnMJCVdJVE5FU1Nf U0tJUFNQSU4KKyMgb3B0aW9ucwkJREVCVUdfUkVEWk9ORQorIyBvcHRpb25zCQlERUJVR19NRU1H VUFSRAorb3B0aW9ucyAgICAgICAgIEZGUyAgICAgICAgICAgICAgICAgICAgICNCZXJrZWxleSBG YXN0IEZpbGVzeXN0ZW0KK29wdGlvbnMgICAgICAgICBTT0ZUVVBEQVRFUyAgICAgICAgICAgICAj RW5hYmxlIEZGUyBzb2Z0IHVwZGF0ZXMgc3VwcG9ydAorb3B0aW9ucyAgICAgICAgIFVGU19BQ0wg ICAgICAgICAgICAgICAgICNTdXBwb3J0IGZvciBhY2Nlc3MgY29udHJvbCBsaXN0cworb3B0aW9u cyAgICAgICAgIFVGU19ESVJIQVNIICAgICAgICAgICAgICNJbXByb3ZlIHBlcmZvcm1hbmNlIG9u IGJpZyBkaXJlY3RvcmllcworCitvcHRpb25zCQlNU0RPU0ZTCisKK29wdGlvbnMJCUJPT1RQCitv cHRpb25zCQlCT09UUF9ORlNST09UCitvcHRpb25zCQlCT09UUF9ORlNWMworb3B0aW9ucwkJQk9P VFBfV0lSRURfVE89YXJnZTEKK29wdGlvbnMJCUJPT1RQX0NPTVBBVAorb3B0aW9ucwkJUk9PVERF Vk5BTUU9XCJuZnM6ZnJlZWJzZDgyZGV2NjQ6L25mc3Jvb3QvcmI0eHhcIgorCitkZXZpY2UJCXBj aQorZGV2aWNlCQlhcjcxeHhfcGNpCisKKyMgODAyLjExIGZyYW1ld29yaworIyBvcHRpb25zCQlJ RUVFODAyMTFfREVCVUcKKyMgb3B0aW9ucwkJSUVFRTgwMjExX0FMUQorIyBvcHRpb25zCQlJRUVF ODAyMTFfU1VQUE9SVF9NRVNICisjIFRoaXMgb3B0aW9uIGlzIGN1cnJlbnRseSBicm9rZW4gZm9y IGlmX2F0aF90eC4KKyMgb3B0aW9ucwkJSUVFRTgwMjExX1NVUFBPUlRfVERNQQorIyBvcHRpb25z CQlJRUVFODAyMTFfQU1QRFVfQUdFCisjIGRldmljZQkJd2xhbiAgICAgICAgICAgICMgODAyLjEx IHN1cHBvcnQKKyMgZGV2aWNlCQl3bGFuX3dlcCAgICAgICAgIyA4MDIuMTEgV0VQIHN1cHBvcnQK KyMgZGV2aWNlCQl3bGFuX2NjbXAgICAgICAgIyA4MDIuMTEgQ0NNUCBzdXBwb3J0CisjIGRldmlj ZQkJd2xhbl90a2lwICAgICAgICMgODAyLjExIFRLSVAgc3VwcG9ydAorIyBkZXZpY2UJCXdsYW5f eGF1dGgJIyA4MDIuMTEgaG9zdGFwIHN1cHBvcnQKKworIyBBdGhlcm9zIHdpcmVsZXNzIE5JQ3MK KyMgZGV2aWNlCQlhdGggICAgICAgICAgICAgIyBBdGhlcm9zIGludGVyZmFjZSBzdXBwb3J0Cisj IGRldmljZQkJYXRoX3BjaQkJIyBBdGhlcm9zIFBDSS9DYXJkYnVzIGJ1cworIyBvcHRpb25zIAlB VEhfREVCVUcKKyMgb3B0aW9ucwkJQVRIX0RJQUdBUEkKKyMgb3B0aW9ucwkJQVRIX0VOQUJMRV8x MU4KKyMgb3B0aW9ucwkJQUhfREVCVUcKKyMgb3B0aW9ucwkJQUhfREVCVUdfQUxRCisjIG9wdGlv bnMJCUFMUQorIyBkZXZpY2UJCWF0aF9oYWwKKyMgb3B0aW9uCQlBSF9TVVBQT1JUX0FSNTQxNgor IyBkZXZpY2UJCWF0aF9yYXRlX3NhbXBsZQorIyBvcHRpb24JCUFIX1JYQ0ZHX1NETUFNV180QllU RVMKKyMgb3B0aW9uCQlBSF9BUjU0MTZfSU5URVJSVVBUX01JVElHQVRJT04KKyMgVGhlcmUncyBu byBERlMgcmFkYXIgZGV0ZWN0aW9uIHN1cHBvcnQgeWV0IHNvIHRoaXMgd29uJ3QgYWN0dWFsbHkK KyMgZGV0ZWN0IHJhZGFycy4gIEl0IGhvd2V2ZXIgZG9lcyBlbmFibGUgdGhlIHJlc3Qgb2YgdGhl IGNoYW5uZWwgY2hhbmdlCisjIG1hY2hpbmVyeSBzbyBERlMgY2FuIGJlIGRlYnVnZ2VkLgorIyBv cHRpb24JCUFUSF9FTkFCTEVfREZTCisKK2RldmljZQkJbWlpCitkZXZpY2UJCWFyZ2UKKworIyBk ZXZpY2UJCXVzYgorIyBvcHRpb25zCQlVU0JfRUhDSV9CSUdfRU5ESUFOX0RFU0MgICAgICAgICMg aGFuZGxlIGJpZy1lbmRpYW4gYnl0ZSBvcmRlcgorIyBvcHRpb25zCQlVU0JfREVCVUcKKyMgZGV2 aWNlCQllaGNpCisKKyMgZGV2aWNlCQlzY2J1cworIyBkZXZpY2UJCXVtYXNzCisjIGRldmljZQkJ ZGEKKworZGV2aWNlCQlzcGlidXMKK2RldmljZQkJYXI3MXh4X3NwaQorZGV2aWNlICAgICAgICAg IG1tYworZGV2aWNlICAgICAgICAgIG1tY3NkCitkZXZpY2UgICAgICAgICAgbW1jc3BpCitkZXZp Y2UJCWFyNzF4eF93ZG9nCisKK2RldmljZQkJdWFydAorCitkZXZpY2UJCWxvb3AKK2RldmljZQkJ ZXRoZXIKK2RldmljZQkJbWQKK2RldmljZQkJYnBmCitkZXZpY2UJCXJhbmRvbQorZGV2aWNlCQlp Zl9icmlkZ2UKKyMgZGV2aWNlCQlnaWYJCSMgaXBbNDZdIGluIGlwWzQ2XSB0dW5uZWxpbmcgcHJv dG9jb2wKKyMgZGV2aWNlCQlncmUJCSMgZ2VuZXJpYyBlbmNhcHN1bGF0aW9uIC0gb25seSBmb3Ig SVB2NCBpbiBJUHY0IHRob3VnaCBhdG0KKworIyBvcHRpb25zCQlBUkdFX0RFQlVHCSMgRW5hYmxl IGlmX2FyZ2UgZGVidWdnaW5nIGZvciBub3cKKworZGV2aWNlCQlncGlvCitkZXZpY2UJCWdwaW9s ZWQKKworI29wdGlvbnMJCVJCX0dQSU9fUElOUworI29wdGlvbnMJCUZJWF9SQl9NQUNfQUREUkVT UworCitvcHRpb25zCQlEVU1NWU5FVAorb3B0aW9ucwkJTElCQUxJQVMKK29wdGlvbnMJCUlQRElW RVJUCitvcHRpb25zCQlJUFNURUFMVEgKK29wdGlvbnMJCUlQRklSRVdBTEwKK29wdGlvbnMJCUlQ RklSRVdBTExfTkFUCitvcHRpb25zCQlJUEZJUkVXQUxMX0ZPUldBUkQKK29wdGlvbnMJCUlQRklS RVdBTExfVkVSQk9TRQorb3B0aW9ucwkJSVBGSVJFV0FMTF9ERUZBVUxUX1RPX0FDQ0VQVApJbmRl eDogc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhfbWFjaGRlcC5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9t aXBzL2F0aGVyb3MvYXI3MXh4X21hY2hkZXAuYwkocmV2aXNpb24gMjMyNzI1KQorKysgc3lzL21p cHMvYXRoZXJvcy9hcjcxeHhfbWFjaGRlcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNyArMTY5 LDcgQEAKICAgICBfX3JlZ2lzdGVyX3QgYTIgX191bnVzZWQsIF9fcmVnaXN0ZXJfdCBhMyBfX3Vu dXNlZCkKIHsKIAl1aW50NjRfdCBwbGF0Zm9ybV9jb3VudGVyX2ZyZXE7Ci0JaW50IGFyZ2MgPSAw LCBpOworCWludCBhcmdjID0gMCwgaSwgYm9hcmRfbWVtOwogCWNoYXIgKiphcmd2ID0gTlVMTCwg KiplbnZwID0gTlVMTDsKIAl2bV9vZmZzZXRfdCBrZXJuZW5kOwogCkBAIC0yMDcsNiArMjA3LDE2 IEBACiAJCX0KIAl9CiAKKwkvKiBSb3V0ZXJCT09UIHBhc3NlcyB0aGUgbWVtIHNpemUgaW4gYXJn diAqLworCWlmICgoMCA9PSByZWFsbWVtKSAmJiBNSVBTX0lTX1ZBTElEX1BUUihhcmd2KSkgewor CQlmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7CisJCQlpZiAoc3RybmNtcChhcmd2W2ldLCAi bWVtPSIsIDQpID09IDApIHsKKwkJCQlpZiAoc3NjYW5mKGFyZ3ZbaV0gKyA0LCAiJWRNIiwgJmJv YXJkX21lbSkgPT0gMSkKKwkJCQkJcmVhbG1lbSA9IGJ0b2MoYm9hcmRfbWVtICogMTAyNCAqIDEw MjQpOworCQkJfQorCQl9CisJfQorCiAJLyoKIAkgKiBKdXN0IHdpbGQgZ3Vlc3MuIFJlZEJvb3Qg bGV0IHVzIGRvd24gYW5kIGRpZG4ndCByZXBvcnRlZCAKIAkgKiBtZW1vcnkgc2l6ZQpJbmRleDog c3lzL21pcHMvYXRoZXJvcy9pZl9hcmdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvYXRoZXJv cy9pZl9hcmdlLmMJKHJldmlzaW9uIDIzMjcyNSkKKysrIHN5cy9taXBzL2F0aGVyb3MvaWZfYXJn ZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNyArMjQzLDcgQEAKIAlpbnQJCQllcnJvciA9IDAs IHJpZCwgcGh5bWFzazsKIAl1aW50MzJfdAkJcmVnLCBybmQ7CiAJaW50CQkJaXNfYmFzZV9tYWNf ZW1wdHksIGksIHBoeXNfdG90YWw7Ci0JdWludDMyX3QJCWhpbnQ7CisJdWludDMyX3QJCWhpbnQs IG1hY19vZmZzZXQ7CiAJbG9uZwkJCWVlcHJvbV9tYWNfYWRkciA9IDA7CiAKIAlzYyA9IGRldmlj ZV9nZXRfc29mdGMoZGV2KTsKQEAgLTM5NCw4ICszOTUsMTIgQEAKIAkJZWFkZHJbNV0gPSAocm5k ID4+IDgpICYgMHhmZjsKIAl9CiAKLQlpZiAoc2MtPmFyZ2VfbWFjX3VuaXQgIT0gMCkKLQkJZWFk ZHJbNV0gKz0gIHNjLT5hcmdlX21hY191bml0OworCWlmIChyZXNvdXJjZV9pbnRfdmFsdWUoZGV2 aWNlX2dldF9uYW1lKGRldiksIGRldmljZV9nZXRfdW5pdChkZXYpLAorCSAgICAibWFjX29mZnNl dCIsICZtYWNfb2Zmc2V0KSAhPSAwKSB7CisJCWVhZGRyWzVdICs9IG1hY19vZmZzZXQ7CisJfSBl bHNlIHsKKwkJZWFkZHJbNV0gKz0gc2MtPmFyZ2VfbWFjX3VuaXQ7CisJfQogCiAJaWYgKGFyZ2Vf ZG1hX2FsbG9jKHNjKSAhPSAwKSB7CiAJCWVycm9yID0gRU5YSU87CkluZGV4OiBzeXMvbWlwcy9h dGhlcm9zL2FyNzF4eF9jaGlwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvYXRoZXJvcy9hcjcx eHhfY2hpcC5jCShyZXZpc2lvbiAyMzI3MjUpCisrKyBzeXMvbWlwcy9hdGhlcm9zL2FyNzF4eF9j aGlwLmMJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwyMSArMTM2LDM1IEBACiAJcmV0dXJuICgocmVn ICYgbWFzaykgPT0gbWFzayk7CiB9CiAKK3N0YXRpYyBfX2lubGluZSB2b2lkCithcjcxeHhfY2hp cF9zZXRfbWlpX3NwZWVkKHVpbnQzMl90IHJlZywgdWludDMyX3QgY3RybCkKK3sKKwl1aW50MzJf dCB2YWw7CisKKwl2YWwgPSBBVEhfUkVBRF9SRUcocmVnKTsKKwl2YWwgJj0gfihNSUlfQ1RSTF9T UEVFRF9NQVNLIDw8IE1JSV9DVFJMX1NQRUVEX1NISUZUKTsKKwl2YWwgfD0gKGN0cmwgJiBNSUlf Q1RSTF9TUEVFRF9NQVNLKSA8PCBNSUlfQ1RSTF9TUEVFRF9TSElGVDsKKwlBVEhfV1JJVEVfUkVH KHJlZywgdmFsKTsKK30KKwogLyogU3BlZWQgaXMgZWl0aGVyIDEwLCAxMDAgb3IgMTAwMCAqLwog c3RhdGljIHZvaWQKIGFyNzF4eF9jaGlwX3NldF9wbGxfZ2UoaW50IHVuaXQsIGludCBzcGVlZCkK IHsKLQl1aW50MzJfdCBwbGw7CisJdWludDMyX3QgY3RybCwgcGxsOwogCiAJc3dpdGNoIChzcGVl ZCkgewogCWNhc2UgMTA6CiAJCXBsbCA9IFBMTF9FVEhfSU5UX0NMS18xMDsKKwkJY3RybCA9IE1J SV9DVFJMX1NQRUVEXzEwOwogCQlicmVhazsKIAljYXNlIDEwMDoKIAkJcGxsID0gUExMX0VUSF9J TlRfQ0xLXzEwMDsKKwkJY3RybCA9IE1JSV9DVFJMX1NQRUVEXzEwMDsKIAkJYnJlYWs7CiAJY2Fz ZSAxMDAwOgogCQlwbGwgPSBQTExfRVRIX0lOVF9DTEtfMTAwMDsKKwkJY3RybCA9IE1JSV9DVFJM X1NQRUVEXzEwMDA7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXByaW50ZigiJXMlZDogaW52YWxp ZCBzcGVlZCAlZFxuIiwKQEAgLTE2MiwxMSArMTc2LDEzIEBACiAJCWFyNzF4eF93cml0ZV9wbGwo QVI3MVhYX1BMTF9TRUNfQ09ORklHLAogCQkgICAgQVI3MVhYX1BMTF9FVEhfSU5UMF9DTEssIHBs bCwKIAkJICAgIEFSNzFYWF9QTExfRVRIMF9TSElGVCk7CisJCWFyNzF4eF9jaGlwX3NldF9taWlf c3BlZWQoQVI3MVhYX01JSTBfQ1RSTCwgY3RybCk7CiAJCWJyZWFrOwogCWNhc2UgMToKIAkJYXI3 MXh4X3dyaXRlX3BsbChBUjcxWFhfUExMX1NFQ19DT05GSUcsCiAJCSAgICBBUjcxWFhfUExMX0VU SF9JTlQxX0NMSywgcGxsLAogCQkgICAgQVI3MVhYX1BMTF9FVEgxX1NISUZUKTsKKwkJYXI3MXh4 X2NoaXBfc2V0X21paV9zcGVlZChBUjcxWFhfTUlJMV9DVFJMLCBjdHJsKTsKIAkJYnJlYWs7CiAJ ZGVmYXVsdDoKIAkJcHJpbnRmKCIlczogaW52YWxpZCBQTEwgc2V0IGZvciBhcmdlIHVuaXQ6ICVk XG4iLApJbmRleDogc3lzL21pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBz eXMvbWlwcy9hdGhlcm9zL2FyNzF4eHJlZy5oCShyZXZpc2lvbiAyMzI3MjUpCisrKyBzeXMvbWlw cy9hdGhlcm9zL2FyNzF4eHJlZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsNiArMjcwLDEzIEBA CiAvKgogICogR2lnRSBhZGFwdGVycyByZWdpb24KICAqLworI2RlZmluZSBBUjcxWFhfTUlJMF9D VFJMCTB4MTgwNzAwMDAKKyNkZWZpbmUgQVI3MVhYX01JSTFfQ1RSTAkweDE4MDcwMDA0CisjZGVm aW5lCQlNSUlfQ1RSTF9TUEVFRF9TSElGVAk0CisjZGVmaW5lCQlNSUlfQ1RSTF9TUEVFRF9NQVNL CTMKKyNkZWZpbmUJCU1JSV9DVFJMX1NQRUVEXzEwCTAKKyNkZWZpbmUJCU1JSV9DVFJMX1NQRUVE XzEwMAkxCisjZGVmaW5lCQlNSUlfQ1RSTF9TUEVFRF8xMDAwCTIKICNkZWZpbmUgQVI3MVhYX01B QzBfQkFTRQkweDE5MDAwMDAwCiAjZGVmaW5lIEFSNzFYWF9NQUMxX0JBU0UJMHgxQTAwMDAwMAog LyoK --20cf307d01d867342204baf9259d-- From owner-freebsd-mips@FreeBSD.ORG Mon Mar 12 00:39:42 2012 Return-Path: Delivered-To: freebsd-mips@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 93517106564A; Mon, 12 Mar 2012 00:39:42 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 672D38FC0C; Mon, 12 Mar 2012 00:39:42 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q2C0dguR056730; Mon, 12 Mar 2012 00:39:42 GMT (envelope-from adrian@freefall.freebsd.org) Received: (from adrian@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q2C0dgC2056726; Mon, 12 Mar 2012 00:39:42 GMT (envelope-from adrian) Date: Mon, 12 Mar 2012 00:39:42 GMT Message-Id: <201203120039.q2C0dgC2056726@freefall.freebsd.org> To: adrian@FreeBSD.org, freebsd-bugs@FreeBSD.org, freebsd-mips@FreeBSD.org From: adrian@FreeBSD.org Cc: Subject: Re: kern/165951: [ar913x] [ath] DDR flush isn't being done for the WMAC X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Mar 2012 00:39:42 -0000 Old Synopsis: [ath] [ar913x] DDR flush isn't being done for the WMAC New Synopsis: [ar913x] [ath] DDR flush isn't being done for the WMAC Responsible-Changed-From-To: freebsd-bugs->freebsd-mips Responsible-Changed-By: adrian Responsible-Changed-When: Mon Mar 12 00:39:21 UTC 2012 Responsible-Changed-Why: This is (mostly) an ar71xx MIPS platform issue. http://www.freebsd.org/cgi/query-pr.cgi?pr=165951 From owner-freebsd-mips@FreeBSD.ORG Mon Mar 12 11:07:16 2012 Return-Path: Delivered-To: freebsd-mips@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 84744106572E for ; Mon, 12 Mar 2012 11:07:16 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 5984E8FC16 for ; Mon, 12 Mar 2012 11:07:16 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q2CB7GQ1072394 for ; Mon, 12 Mar 2012 11:07:16 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q2CB7FOR072392 for freebsd-mips@FreeBSD.org; Mon, 12 Mar 2012 11:07:15 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 12 Mar 2012 11:07:15 GMT Message-Id: <201203121107.q2CB7FOR072392@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-mips@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-mips@FreeBSD.org X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Mar 2012 11:07:16 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/165951 mips [ar913x] [ath] DDR flush isn't being done for the WMAC o kern/163670 mips [mips][arge] arge can't allocate ring buffer on multip 2 problems total. From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 06:21:03 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 71B86106564A; Tue, 13 Mar 2012 06:21:03 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com [209.85.213.182]) by mx1.freebsd.org (Postfix) with ESMTP id EEB338FC0A; Tue, 13 Mar 2012 06:21:02 +0000 (UTC) Received: by yenl9 with SMTP id l9so226135yen.13 for ; Mon, 12 Mar 2012 23:21:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=gs2TBbDz+byFCytU7eniKMXE/d16aEIGBFKfV9yn68I=; b=mN7txJkbb9iUgllqZfSNM/kVI1FxTRguh1IO1PaAHIfNDmG5b4a44ghqxvGXBI6wQ4 N5v7dJ6+w5l+liMZJb2t5xHSKhg/0NjByGaHw8Pm21hly3B8e8YEDb54WBxd9D+3W0l7 LXiXgIQZz80/Lt9P4LKe7VbplwNeISqXQHk6XE0MljaYGADK+waYtfvfDPNXQBsPHITV Zm92Z+39eOgppjcvEjqfoVIL/LhEJcWDXVH7nhlM9u6igrJ/wOtaPvbvtFHKkjrnYVvu RYUoSKlHuC2261+Vnx0m2YDItKyO3eqTPcONQe5MilhdSzkb3w/v8dDYNxZ6GgpKNL+f FPAA== MIME-Version: 1.0 Received: by 10.68.232.2 with SMTP id tk2mr4973631pbc.68.1331619662199; Mon, 12 Mar 2012 23:21:02 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Mon, 12 Mar 2012 23:21:01 -0700 (PDT) In-Reply-To: References: <20120310151128.647d4a18.ray@ddteam.net> <20120311002908.58ea1513.ray@ddteam.net> <20120311010755.ca51d8d0.ray@ddteam.net> Date: Mon, 12 Mar 2012 23:21:02 -0700 X-Google-Sender-Auth: JUVzQbh71xDeNm355WIVXX3e4aM Message-ID: From: Adrian Chadd To: Juli Mallett Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Aleksandr Rybalko , freebsd-mips@freebsd.org Subject: Re: [PATCH] Fix for using NFS root with if_arge X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 06:21:03 -0000 On 10 March 2012 18:11, Adrian Chadd wrote: >> I'd rather you commit it as I don't know about the rest of the patch >> myself. =A0I still think freeing the descriptor contents in arge_stop() >> and doing the init stuff in init would be a better long-term fix, but >> I can live with this for now :) > > That's exactly what I wanted to do and why I didn't want to commit > ray's solution. :-) > > I just have been preoccupied with the wifi stuff. > > if someone wants to code up and test that particular solution I will > review it and commit it to -HEAD. Too late. r2329132. adrian From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 06:29:19 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4388E106564A for ; Tue, 13 Mar 2012 06:29:19 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 096368FC08 for ; Tue, 13 Mar 2012 06:29:18 +0000 (UTC) Received: by iahk25 with SMTP id k25so443785iah.13 for ; Mon, 12 Mar 2012 23:29:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=3+GeHVoX/LgkO8CQ0m8BoHfJrxQruxrzRnfZvZ8EK0Y=; b=HXRakP7YY4UBrO8h6ogz/JZDoKOSbOiX6Fj8BiX+M4HvaICZ6zop3SIb8mzvbpuKVi MNuEsUu2k0pXvAuyLh23C4Ko1f8yNPPZB0Vcle8cFG8eWfD02J75tVWb4OABIvuLXCLm E5iCWVxfaq8nFMzlxMbD/QJ0Gj85sZBd7IFFvyGWSK/gFETBmpFP4ecerOhOPxMins3U 5k4MA5xCyfMfaIw55EEE1lo1Etayawa7IqFSK2Z2WXrlWHV4guWBPSxdO/crMQ22WMkE WN8BPdcMRW+sOmD0XJGSNZAkdNR/AmZ4pAW1ranADD6sEohVDv9eyWOXmkw2QTpQsx7L P5SA== MIME-Version: 1.0 Received: by 10.68.191.168 with SMTP id gz8mr4905256pbc.37.1331620158087; Mon, 12 Mar 2012 23:29:18 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Mon, 12 Mar 2012 23:29:18 -0700 (PDT) In-Reply-To: References: Date: Mon, 12 Mar 2012 23:29:18 -0700 X-Google-Sender-Auth: DQojSbxoNgfN64ODUPLxnwM5wd0 Message-ID: From: Adrian Chadd To: Patrick Kelsey Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-mips@freebsd.org Subject: Re: [PATCH] Fix for using NFS root with if_arge X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 06:29:19 -0000 On 9 March 2012 18:53, Patrick Kelsey wrote: > This patch fixes an issue I encountered using an NFS root with an > ar71xx-based MikroTik RouterBoard 450G on -current where the kernel fails > to contact a DHCP/BOOTP server via if_arge when it otherwise should be ab= le > to. =A0This may be the same issue that Monthadar Al Jaberi reported again= st > an RSPRO on 6 March, as the signature is the same: Committed in r232914. Thanks! Adrian From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 06:35:54 2012 Return-Path: Delivered-To: freebsd-mips@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E223F1065672; Tue, 13 Mar 2012 06:35:54 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B54308FC0C; Tue, 13 Mar 2012 06:35:54 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q2D6Zs5N074557; Tue, 13 Mar 2012 06:35:54 GMT (envelope-from adrian@freefall.freebsd.org) Received: (from adrian@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q2D6ZsLk074552; Tue, 13 Mar 2012 06:35:54 GMT (envelope-from adrian) Date: Tue, 13 Mar 2012 06:35:54 GMT Message-Id: <201203130635.q2D6ZsLk074552@freefall.freebsd.org> To: ray@ddteam.net, adrian@FreeBSD.org, freebsd-mips@FreeBSD.org From: adrian@FreeBSD.org Cc: Subject: Re: kern/163670: [mips][arge] arge can't allocate ring buffer on multiple up/down X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 06:35:55 -0000 Synopsis: [mips][arge] arge can't allocate ring buffer on multiple up/down State-Changed-From-To: open->patched State-Changed-By: adrian State-Changed-When: Tue Mar 13 06:35:06 UTC 2012 State-Changed-Why: Fixed in HEAD in r232912. If people would like it backported, go for it. http://www.freebsd.org/cgi/query-pr.cgi?pr=163670 From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 06:42:35 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8FA791065670 for ; Tue, 13 Mar 2012 06:42:35 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 24FFD8FC21 for ; Tue, 13 Mar 2012 06:42:34 +0000 (UTC) Received: by wern13 with SMTP id n13so217965wer.13 for ; Mon, 12 Mar 2012 23:42:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type :x-gm-message-state; bh=0u3/EZ05XugB2QDQJo4BZtAYZQZ+03YROzb8rvvk0GI=; b=TGcrfgvjLenRm3wRd84HVJegEyaz1grSNuSgroGVUanU/1hXW2dAewBA9nnopE/VPo hkuAo4MCfOgF6oQzsdzRr5FJb+mivw/detZhtyloG2vjXTLuSdVoxq2cUoVhBHoYWi8M krtRoGDlxe7jgvR5PaLOru+e/7/EswSLk9m8jGPTB1RyG/zMGKKecDdg5TItgTPa0idi KCbQFb1XWOAeA0shnk7wVGvzWVoYHVDF7Seq+sUAYFiD0EtGJx21D2wTLFEsVqOzc+xr 4ev9ti2JOmjr/Wq+K0M64ScylBPkfT+Otk7KP2YurZb1I3Mz8gmXqP6CI4wklYjcY2KI mb8Q== Received: by 10.180.103.35 with SMTP id ft3mr4490466wib.0.1331620954188; Mon, 12 Mar 2012 23:42:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.96.231 with HTTP; Mon, 12 Mar 2012 23:42:14 -0700 (PDT) From: Juli Mallett Date: Mon, 12 Mar 2012 23:42:14 -0700 Message-ID: To: "freebsd-mips@FreeBSD.org" Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQky5xI0OzwBkIZBdmo0GWwRw9FC4VyJk+wZrgbQvD4iLLzsvKwCoSqScXOOdVOz1YM38PKL Subject: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 06:42:35 -0000 Greetings, people of mips@, I think that at least with 64-bit kernels, MipsFPTrap should kill the running program. Does anyone object to this? The FP code is not even remotely 64-bit safe. I don't care/dare to correct it. Does anyone? Thanks, Juli. From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 13:42:16 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07684106566B for ; Tue, 13 Mar 2012 13:42:16 +0000 (UTC) (envelope-from aduane@juniper.net) Received: from exprod7og103.obsmtp.com (exprod7og103.obsmtp.com [64.18.2.159]) by mx1.freebsd.org (Postfix) with ESMTP id 90B2A8FC12 for ; Tue, 13 Mar 2012 13:42:15 +0000 (UTC) Received: from P-EMHUB03-HQ.jnpr.net ([66.129.224.36]) (using TLSv1) by exprod7ob103.postini.com ([64.18.6.12]) with SMTP ID DSNKT19OtnSN5iKpspjyNcySRuiyKRba5UDw@postini.com; Tue, 13 Mar 2012 06:42:15 PDT Received: from P-CLDFE01-HQ.jnpr.net (172.24.192.59) by P-EMHUB03-HQ.jnpr.net (172.24.192.37) with Microsoft SMTP Server (TLS) id 8.3.213.0; Tue, 13 Mar 2012 06:35:36 -0700 Received: from p-emfe02-wf.jnpr.net (172.28.145.25) by p-cldfe01-hq.jnpr.net (172.24.192.59) with Microsoft SMTP Server (TLS) id 14.1.355.2; Tue, 13 Mar 2012 06:35:36 -0700 Received: from EMBX01-WF.jnpr.net ([fe80::1914:3299:33d9:e43b]) by p-emfe02-wf.jnpr.net ([fe80::c126:c633:d2dc:8090%11]) with mapi; Tue, 13 Mar 2012 09:35:36 -0400 From: Andrew Duane To: Juli Mallett , "freebsd-mips@FreeBSD.org" Date: Tue, 13 Mar 2012 09:35:37 -0400 Thread-Topic: Enforcing soft-float. Thread-Index: Ac0A5NdnW9eo20oSSdaWgVG9L5eGvAAOQosg Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e4081efb-6d29-443c-8708-750833aec629 Cc: Subject: RE: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 13:42:16 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBvd25lci1mcmVlYnNkLW1pcHNA ZnJlZWJzZC5vcmcgW21haWx0bzpvd25lci1mcmVlYnNkLQ0KPiBtaXBzQGZyZWVic2Qub3JnXSBP biBCZWhhbGYgT2YgSnVsaSBNYWxsZXR0DQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDEzLCAyMDEy IDI6NDIgQU0NCj4gVG86IGZyZWVic2QtbWlwc0BGcmVlQlNELm9yZw0KPiBTdWJqZWN0OiBFbmZv cmNpbmcgc29mdC1mbG9hdC4NCj4gDQo+IEdyZWV0aW5ncywgcGVvcGxlIG9mIG1pcHNALA0KPiAN Cj4gSSB0aGluayB0aGF0IGF0IGxlYXN0IHdpdGggNjQtYml0IGtlcm5lbHMsIE1pcHNGUFRyYXAg c2hvdWxkIGtpbGwgdGhlDQo+IHJ1bm5pbmcgcHJvZ3JhbS4gIERvZXMgYW55b25lIG9iamVjdCB0 byB0aGlzPyAgVGhlIEZQIGNvZGUgaXMgbm90IGV2ZW4NCj4gcmVtb3RlbHkgNjQtYml0IHNhZmUu ICBJIGRvbid0IGNhcmUvZGFyZSB0byBjb3JyZWN0IGl0LiAgRG9lcyBhbnlvbmU/DQo+IA0KPiBU aGFua3MsDQo+IEp1bGkuDQoNCklmIGl0IGNhbid0IGJlIGRvbmUgc2FmZWx5L2NvcnJlY3RseSwg aXQgY2FuJ3QgYmUgZG9uZS4gSSB3b3VsZCB0aGluaw0Ka2lsbGluZyB0aGUgcHJvZ3JhbSB3b3Vs ZCBiZSBhcHByb3ByaWF0ZS4NCg0KR2V0dGluZyBhIHdyb25nIGFuc3dlciBpcyBjYXRhc3Ryb3Bo aWMuDQoNCsKgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4NCkFuZHJldyBEdWFu ZQ0KSnVuaXBlciBOZXR3b3Jrcw0KKzEgOTc4LTU4OS0wNTUxIChvKQ0KKzEgNjAzLTc3MC03MDg4 IChtKQ0KYWR1YW5lQGp1bmlwZXIubmV0DQoNCsKgDQoNCg0KDQo= From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 14:41:07 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9D6C11065673 for ; Tue, 13 Mar 2012 14:41:07 +0000 (UTC) (envelope-from c.jayachandran@gmail.com) Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by mx1.freebsd.org (Postfix) with ESMTP id 2F7E08FC19 for ; Tue, 13 Mar 2012 14:41:06 +0000 (UTC) Received: by wibhr17 with SMTP id hr17so4783173wib.1 for ; Tue, 13 Mar 2012 07:41:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=QKQ+eqJs3tmeAFtMlc0L5a1ZecnvGXP2dV+Z8BG/AJE=; b=y/O2uTRtbcj53BLb/usiDTETEMl6X1hVkYvXRLAnQKwg2YX6p2h8lW4KEhEvsy65aJ 7ZNxoTJFYQTuORKJL2NNve2h6jdCWTOn7B/dHhJ05FvPdXVacC3M/CVLvi74XBoNidQZ Icm4ey9xqxI4NnWj9ls839mTpVcJeNXT8e5on+x0Q9xeqqYRNLOfuDS7pOKiqCSceIPu nWCMJzPqnSP4G90px+oSl/L8huEUJmKGOGHYwpErl4W7KUfPFIoEyTWk4Q7LDd3K/Irq 5S+/4/BnOMdwv8jko3SKPXL6nukkCf5p0EMIUcNJF88QVYTvNIHN0HUR5awu5T+K6QBb cCoQ== MIME-Version: 1.0 Received: by 10.180.88.199 with SMTP id bi7mr8094100wib.12.1331649665729; Tue, 13 Mar 2012 07:41:05 -0700 (PDT) Received: by 10.216.122.85 with HTTP; Tue, 13 Mar 2012 07:41:05 -0700 (PDT) In-Reply-To: References: Date: Tue, 13 Mar 2012 20:11:05 +0530 Message-ID: From: "Jayachandran C." To: Juli Mallett Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 14:41:07 -0000 On Tue, Mar 13, 2012 at 12:12 PM, Juli Mallett wr= ote: > Greetings, people of mips@, > > I think that at least with 64-bit kernels, MipsFPTrap should kill the > running program. =A0Does anyone object to this? =A0The FP code is not eve= n > remotely 64-bit safe. =A0I don't care/dare to correct it. =A0Does anyone? Looks like we share this code with NetBSD. I have not looked in detail, but the NetBSD code seems to have the ifdefs for n64. Any idea if we can just import it? JC. From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 14:48:22 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F19E4106566B for ; Tue, 13 Mar 2012 14:48:22 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by mx1.freebsd.org (Postfix) with ESMTP id 8698C8FC0A for ; Tue, 13 Mar 2012 14:48:22 +0000 (UTC) Received: by wibhq7 with SMTP id hq7so747782wib.13 for ; Tue, 13 Mar 2012 07:48:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:x-gm-message-state; bh=EFI9Y5YVRYilO2wQBgTuw0R4hEUBXYRVwix5WzgerUQ=; b=mjE/w34fwj5hk7l4Hxs7E+XFl9G63xhYJ1HX4DmQkxCTOoDC+nynluwcia24+ihCbT 658wUWDPi+9YbItQ2sEuRU6J1MLXWUcGTO9KjmM5IjOLldp6bMjPyrdsrAuv+GItMPCk zsh7EToZSTzpdGCsM37WTfjo+E3IH1ut95BEFkGNl7753EiUFP4evNXGNcJPjouqIgL+ f/SnhW5skHEyW24C1ZiolDDIqDH5MK0iIa4zNEao1v9pjeRCcE0EuJyCKNuwEKC+pQx6 ikRkDypvROSPmp0VO8Y2bnKWe+Pqk/ulIRmDAWbocGt39iGDQ3j5kG/5bQduY8clNKvr QXRw== Received: by 10.180.88.67 with SMTP id be3mr8048283wib.20.1331650101241; Tue, 13 Mar 2012 07:48:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.96.231 with HTTP; Tue, 13 Mar 2012 07:48:00 -0700 (PDT) In-Reply-To: References: From: Juli Mallett Date: Tue, 13 Mar 2012 07:48:00 -0700 Message-ID: To: Andrew Duane Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQlP4iVMx1x7uTTgX6vDD6wSoXuiS5gwZR5yttivZ9uyw352KQxrapQ8wiqpPd0gZF+2hn/9 Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 14:48:23 -0000 On Tue, Mar 13, 2012 at 06:35, Andrew Duane wrote: > If it can't be done safely/correctly, it can't be done. I would think > killing the program would be appropriate. > > Getting a wrong answer is catastrophic. My greatest concern is that any user program can use floating point instructions to panic the kernel by getting it to truncate its own pointers. Heck, an even slightly well-crafted program could probably predict likely values of the kernel stack pointer and set up many malicious userspace stacks that could match the truncated address, and get its own code running in kernel mode. From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 14:50:53 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4678E106564A for ; Tue, 13 Mar 2012 14:50:53 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by mx1.freebsd.org (Postfix) with ESMTP id CA28C8FC12 for ; Tue, 13 Mar 2012 14:50:52 +0000 (UTC) Received: by wibhq7 with SMTP id hq7so751291wib.13 for ; Tue, 13 Mar 2012 07:50:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=Pfd0Ph76uknJjSvdtoUf00c5m7rI1/7cC0ZYkvMsmuA=; b=E/pB5G9+Am+t1DH8Y7u/AsN1QugZal8HC3Ip1Z0alPeUxhbNB+b17AQrT9YVeaX3B2 TOvGHpUJRKWaEvv1fEKJeSdRQIoh1J3skJ4Aisumvp5Nm7ugnuIoil8dUS8bp+ngjj1n FRv+X5txj3c6mHZZ922Bode6Ljd/CySFFTC6r0geIy11DIbEoOY089KqP/BluYkrd640 NvPtlWi/rH5iRLebJvGDh99NBeNzbRBZ8so6DQugnkkF4gcSC2a7D+tV98vHHXcCpgis enqyz9a/GcS+r3iT/7v2VLiZDe+33dL2hQ9/W356g8KUrH9WTLne/9U6Tfad1bdRdQ25 F/cw== Received: by 10.180.104.137 with SMTP id ge9mr8052686wib.20.1331650251792; Tue, 13 Mar 2012 07:50:51 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.96.231 with HTTP; Tue, 13 Mar 2012 07:50:31 -0700 (PDT) In-Reply-To: References: From: Juli Mallett Date: Tue, 13 Mar 2012 07:50:31 -0700 Message-ID: To: "Jayachandran C." Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQl3tWd1RRDZzB6nlOt8FIv/nKWMqwWNqkbRYn8ZiVNthLCRzxXYfrzgyEjsX2Cfnh2D6ZWk Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 14:50:53 -0000 On Tue, Mar 13, 2012 at 07:41, Jayachandran C. w= rote: > On Tue, Mar 13, 2012 at 12:12 PM, Juli Mallett = wrote: >> Greetings, people of mips@, >> >> I think that at least with 64-bit kernels, MipsFPTrap should kill the >> running program. =C2=A0Does anyone object to this? =C2=A0The FP code is = not even >> remotely 64-bit safe. =C2=A0I don't care/dare to correct it. =C2=A0Does = anyone? > > Looks like we share this code with NetBSD. I have not looked in > detail, but the NetBSD code seems to have the ifdefs for n64. Any idea > if we can just import it? We could, and we could update MipsFPTrap and friends from NetBSD (or even do it by hand), but that's not something I want to do since I don't need to run binaries compiled to use hardware floating point. From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 15:06:34 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 547D9106566B for ; Tue, 13 Mar 2012 15:06:34 +0000 (UTC) (envelope-from c.jayachandran@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id D83078FC08 for ; Tue, 13 Mar 2012 15:06:33 +0000 (UTC) Received: by wern13 with SMTP id n13so822768wer.13 for ; Tue, 13 Mar 2012 08:06:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=yTfOX9kpfhKkw++S0gI4za+wXiBGRa1ojTv9SVmE/a4=; b=YYuK/L+DZoUyN1UmOduI5NEZH7o8B+qkAcP2XoalCAFPsonZPCS1I6mxklK7xx89gm wWeghVVjjYck9zqCcuFP1ekzn8yVTOQoKqJyDRGbV6IQT/PgmMjROLoT1o9op4t7WZ6f dY5efuUznZO1brqTTytMTuuA/4vVCiq+4rpJVb0oiz/BqID2+Pi2AnfKag5e/+PsI2Bl D323dbBqQZZsQuy4c8kj16jtzxEDO5eTtRO5DyyGo2wD6qCIpYV3U8NjKlGIjBudTKhA o50TZ94qrs/BREp240wdIphn4bs4yxT0aYIip5sizwFIsgYSuMIL/p1M9t2+ZfeQLkNO RYyw== MIME-Version: 1.0 Received: by 10.180.82.132 with SMTP id i4mr8305414wiy.12.1331651192841; Tue, 13 Mar 2012 08:06:32 -0700 (PDT) Received: by 10.216.122.85 with HTTP; Tue, 13 Mar 2012 08:06:32 -0700 (PDT) In-Reply-To: References: Date: Tue, 13 Mar 2012 20:36:32 +0530 Message-ID: From: "Jayachandran C." To: Juli Mallett Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 15:06:34 -0000 On Tue, Mar 13, 2012 at 8:20 PM, Juli Mallett wro= te: > On Tue, Mar 13, 2012 at 07:41, Jayachandran C. = wrote: >> On Tue, Mar 13, 2012 at 12:12 PM, Juli Mallett = wrote: >>> Greetings, people of mips@, >>> >>> I think that at least with 64-bit kernels, MipsFPTrap should kill the >>> running program. =A0Does anyone object to this? =A0The FP code is not e= ven >>> remotely 64-bit safe. =A0I don't care/dare to correct it. =A0Does anyon= e? >> >> Looks like we share this code with NetBSD. I have not looked in >> detail, but the NetBSD code seems to have the ifdefs for n64. Any idea >> if we can just import it? > > We could, and we could update MipsFPTrap and friends from NetBSD (or > even do it by hand), but that's not something I want to do since I > don't need to run binaries compiled to use hardware floating point. I think we will need to support building hard-float and soft-float user-space. I was looking at this for XLP before I got pulled into other things. FP emulation can be useful in that environment. But now, you could just take out the whole thing. JC. From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 15:27:32 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5541C106566B; Tue, 13 Mar 2012 15:27:32 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id F3DB18FC0A; Tue, 13 Mar 2012 15:27:31 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q2DFRVQj013157; Tue, 13 Mar 2012 11:27:31 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q2DFRVnK013150; Tue, 13 Mar 2012 15:27:31 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 13 Mar 2012 15:27:31 GMT Message-Id: <201203131527.q2DFRVnK013150@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 15:27:32 -0000 TB --- 2012-03-13 15:10:51 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-03-13 15:10:51 - starting HEAD tinderbox run for mips/mips TB --- 2012-03-13 15:10:51 - cleaning the object tree TB --- 2012-03-13 15:10:51 - cvsupping the source tree TB --- 2012-03-13 15:10:51 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-03-13 15:11:03 - building world TB --- 2012-03-13 15:11:03 - CROSS_BUILD_TESTING=YES TB --- 2012-03-13 15:11:03 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-13 15:11:03 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-13 15:11:03 - SRCCONF=/dev/null TB --- 2012-03-13 15:11:03 - TARGET=mips TB --- 2012-03-13 15:11:03 - TARGET_ARCH=mips TB --- 2012-03-13 15:11:03 - TZ=UTC TB --- 2012-03-13 15:11:03 - __MAKE_CONF=/dev/null TB --- 2012-03-13 15:11:03 - cd /src TB --- 2012-03-13 15:11:03 - /usr/bin/make -B buildworld >>> World build started on Tue Mar 13 15:11:03 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] mkdep -f .depend -a -I/src/lib/libbz2/../../contrib/bzip2 -std=gnu99 /src/lib/libbz2/../../contrib/bzip2/bzlib.c /src/lib/libbz2/../../contrib/bzip2/blocksort.c /src/lib/libbz2/../../contrib/bzip2/compress.c /src/lib/libbz2/../../contrib/bzip2/crctable.c /src/lib/libbz2/../../contrib/bzip2/decompress.c /src/lib/libbz2/../../contrib/bzip2/huffman.c /src/lib/libbz2/../../contrib/bzip2/randtable.c cc -O -pipe -G0 -I/src/lib/libbz2/../../contrib/bzip2 -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c /src/lib/libbz2/../../contrib/bzip2/bzlib.c -o bzlib.o cc1: warnings being treated as errors In file included from /obj/mips.mipsel/src/tmp/usr/include/ctype.h:83, from /src/lib/libbz2/../../contrib/bzip2/bzlib_private.h:29, from /src/lib/libbz2/../../contrib/bzip2/bzlib.c:34: /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:93: warning: no previous prototype for '__sbmaskrune_l' /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:102: warning: no previous prototype for '__sbistype_l' *** Error code 1 Stop in /src/lib/libbz2. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-13 15:27:31 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-13 15:27:31 - ERROR: failed to build world TB --- 2012-03-13 15:27:31 - 737.71 user 162.41 system 1000.23 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 16:29:36 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2403C106568A; Tue, 13 Mar 2012 16:29:36 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id EED928FC15; Tue, 13 Mar 2012 16:29:34 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q2DGTY7E087012; Tue, 13 Mar 2012 12:29:34 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q2DGTY5j086996; Tue, 13 Mar 2012 16:29:34 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 13 Mar 2012 16:29:34 GMT Message-Id: <201203131629.q2DGTY5j086996@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 16:29:36 -0000 TB --- 2012-03-13 16:11:45 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-03-13 16:11:45 - starting HEAD tinderbox run for mips/mips TB --- 2012-03-13 16:11:45 - cleaning the object tree TB --- 2012-03-13 16:11:47 - cvsupping the source tree TB --- 2012-03-13 16:11:47 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-03-13 16:11:59 - building world TB --- 2012-03-13 16:11:59 - CROSS_BUILD_TESTING=YES TB --- 2012-03-13 16:11:59 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-13 16:11:59 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-13 16:11:59 - SRCCONF=/dev/null TB --- 2012-03-13 16:11:59 - TARGET=mips TB --- 2012-03-13 16:11:59 - TARGET_ARCH=mips TB --- 2012-03-13 16:11:59 - TZ=UTC TB --- 2012-03-13 16:11:59 - __MAKE_CONF=/dev/null TB --- 2012-03-13 16:11:59 - cd /src TB --- 2012-03-13 16:11:59 - /usr/bin/make -B buildworld >>> World build started on Tue Mar 13 16:11:59 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] cc -O -pipe -G0 -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC -I. -I/obj/mips.mipsel/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncurses -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses -Wall -DNDEBUG -DHAVE_CONFIG_H -DFREEBSD_NATIVE -DTERMIOS -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c lib_keyname.c -o lib_keyname.o cc -O -pipe -G0 -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC -I. -I/obj/mips.mipsel/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncurses -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses -Wall -DNDEBUG -DHAVE_CONFIG_H -DFREEBSD_NATIVE -DTERMIOS -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c names.c -o names.o cc -O -pipe -G0 -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC -I. -I/obj/mips.mipsel/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncurses -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses -Wall -DNDEBUG -DHAVE_CONFIG_H -DFREEBSD_NATIVE -DTERMIOS -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c unctrl.c -o unctrl.o cc1: warnings being treated as errors In file included from /obj/mips.mipsel/src/tmp/usr/include/wctype.h:93, from unctrl.c:8: /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:73: warning: no previous prototype for '__maskrune_l' /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:82: warning: no previous prototype for '__istype_l' *** Error code 1 Stop in /src/lib/ncurses/ncursesw. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-13 16:29:34 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-13 16:29:34 - ERROR: failed to build world TB --- 2012-03-13 16:29:34 - 789.66 user 176.91 system 1068.80 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 17:29:54 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D759B106566B; Tue, 13 Mar 2012 17:29:54 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id A65DC8FC15; Tue, 13 Mar 2012 17:29:54 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q2DHTst6080126; Tue, 13 Mar 2012 13:29:54 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q2DHTrv9080107; Tue, 13 Mar 2012 17:29:53 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 13 Mar 2012 17:29:53 GMT Message-Id: <201203131729.q2DHTrv9080107@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 17:29:55 -0000 TB --- 2012-03-13 17:12:13 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-03-13 17:12:13 - starting HEAD tinderbox run for mips/mips TB --- 2012-03-13 17:12:13 - cleaning the object tree TB --- 2012-03-13 17:12:15 - cvsupping the source tree TB --- 2012-03-13 17:12:15 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-03-13 17:12:27 - building world TB --- 2012-03-13 17:12:27 - CROSS_BUILD_TESTING=YES TB --- 2012-03-13 17:12:27 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-13 17:12:27 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-13 17:12:27 - SRCCONF=/dev/null TB --- 2012-03-13 17:12:27 - TARGET=mips TB --- 2012-03-13 17:12:27 - TARGET_ARCH=mips TB --- 2012-03-13 17:12:27 - TZ=UTC TB --- 2012-03-13 17:12:27 - __MAKE_CONF=/dev/null TB --- 2012-03-13 17:12:27 - cd /src TB --- 2012-03-13 17:12:27 - /usr/bin/make -B buildworld >>> World build started on Tue Mar 13 17:12:28 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] cc -O -pipe -G0 -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC -I. -I/obj/mips.mipsel/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncurses -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses -Wall -DNDEBUG -DHAVE_CONFIG_H -DFREEBSD_NATIVE -DTERMIOS -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c lib_keyname.c -o lib_keyname.o cc -O -pipe -G0 -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC -I. -I/obj/mips.mipsel/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncurses -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses -Wall -DNDEBUG -DHAVE_CONFIG_H -DFREEBSD_NATIVE -DTERMIOS -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c names.c -o names.o cc -O -pipe -G0 -D_XOPEN_SOURCE_EXTENDED -DENABLE_WIDEC -I. -I/obj/mips.mipsel/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncursesw -I/src/lib/ncurses/ncursesw/../ncurses -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/include -I/src/lib/ncurses/ncursesw/../../../contrib/ncurses/ncurses -Wall -DNDEBUG -DHAVE_CONFIG_H -DFREEBSD_NATIVE -DTERMIOS -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c unctrl.c -o unctrl.o cc1: warnings being treated as errors In file included from /obj/mips.mipsel/src/tmp/usr/include/wctype.h:93, from unctrl.c:8: /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:73: warning: no previous prototype for '__maskrune_l' /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:82: warning: no previous prototype for '__istype_l' *** Error code 1 Stop in /src/lib/ncurses/ncursesw. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-13 17:29:53 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-13 17:29:53 - ERROR: failed to build world TB --- 2012-03-13 17:29:53 - 788.11 user 179.30 system 1060.05 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 18:35:34 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DF80106564A for ; Tue, 13 Mar 2012 18:35:34 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id C21978FC2C for ; Tue, 13 Mar 2012 18:35:33 +0000 (UTC) Received: from [10.30.101.53] ([209.117.142.2]) (authenticated bits=0) by harmony.bsdimp.com (8.14.4/8.14.3) with ESMTP id q2DIUnTX031293 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES128-SHA bits=128 verify=NO); Tue, 13 Mar 2012 12:30:53 -0600 (MDT) (envelope-from imp@bsdimp.com) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Warner Losh In-Reply-To: Date: Tue, 13 Mar 2012 12:30:44 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <7272B5EC-FDDA-4C1D-9137-6819F0906FEE@bsdimp.com> References: To: Juli Mallett X-Mailer: Apple Mail (2.1084) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (harmony.bsdimp.com [10.0.0.6]); Tue, 13 Mar 2012 12:30:53 -0600 (MDT) Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Enforcing soft-float. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 18:35:34 -0000 On Mar 13, 2012, at 12:42 AM, Juli Mallett wrote: > Greetings, people of mips@, >=20 > I think that at least with 64-bit kernels, MipsFPTrap should kill the > running program. Does anyone object to this? The FP code is not even > remotely 64-bit safe. I don't care/dare to correct it. Does anyone? We should kill the offending process if we get a MipsFP trap. I have = some interesting in making hard float emulation work, but I'm enotimeish = at the moment... So kill them now, and we'll not kill them in the = future if=20 Warner From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 18:38:35 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 08727106564A; Tue, 13 Mar 2012 18:38:35 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id 9EE3F8FC16; Tue, 13 Mar 2012 18:38:34 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q2DIcYHY045836; Tue, 13 Mar 2012 14:38:34 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q2DIcXn1045819; Tue, 13 Mar 2012 18:38:33 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 13 Mar 2012 18:38:33 GMT Message-Id: <201203131838.q2DIcXn1045819@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 18:38:35 -0000 TB --- 2012-03-13 18:16:59 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-03-13 18:16:59 - starting HEAD tinderbox run for mips/mips TB --- 2012-03-13 18:16:59 - cleaning the object tree TB --- 2012-03-13 18:17:02 - cvsupping the source tree TB --- 2012-03-13 18:17:02 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-03-13 18:17:12 - building world TB --- 2012-03-13 18:17:12 - CROSS_BUILD_TESTING=YES TB --- 2012-03-13 18:17:12 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-13 18:17:12 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-13 18:17:12 - SRCCONF=/dev/null TB --- 2012-03-13 18:17:12 - TARGET=mips TB --- 2012-03-13 18:17:12 - TARGET_ARCH=mips TB --- 2012-03-13 18:17:12 - TZ=UTC TB --- 2012-03-13 18:17:12 - __MAKE_CONF=/dev/null TB --- 2012-03-13 18:17:12 - cd /src TB --- 2012-03-13 18:17:12 - /usr/bin/make -B buildworld >>> World build started on Tue Mar 13 18:17:13 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] c++ -O -pipe -G0 -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/src/gnu/lib/libstdc++ -I/src/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/src/gnu/lib/libstdc++/../../../contrib/gcc -I/src/gnu/lib/libstdc++/../../../contrib/libstdc++/include -I/src/gnu/lib/libstdc++/../../../contrib/gcclibs/include -I/src/gnu/lib/libstdc++/../../../contrib/libstdc++/include -I. -frandom-seed=RepeatabilityConsideredGood -fno-implicit-templates -ffunction-sections -fdata-sections -Wno-deprecated -c /src/gnu/lib/libstdc++/../../../contrib/libstdc++/src/codecvt.cc -o codecvt.o In file included from /obj/mips.mipsel/src/tmp/usr/include/wctype.h:93, from /obj/mips.mipsel/src/tmp/usr/include/c++/4.2/cwctype:53, from /src/gnu/lib/libstdc++/../../../contrib/libstdc++/include/bits/locale_facets.h:46, from /obj/mips.mipsel/src/tmp/usr/include/c++/4.2/locale:45, from /src/gnu/lib/libstdc++/../../../contrib/libstdc++/src/codecvt.cc:30: /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:73: error: duplicate 'inline' /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:85: error: duplicate 'inline' *** Error code 1 Stop in /src/gnu/lib/libstdc++. *** Error code 1 Stop in /src/gnu/lib. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-13 18:38:33 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-13 18:38:33 - ERROR: failed to build world TB --- 2012-03-13 18:38:33 - 959.45 user 223.18 system 1294.09 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Tue Mar 13 19:48:37 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C993106567B; Tue, 13 Mar 2012 19:48:37 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-current.sentex.ca (freebsd-current.sentex.ca [64.7.128.98]) by mx1.freebsd.org (Postfix) with ESMTP id A1FF58FC1D; Tue, 13 Mar 2012 19:48:36 +0000 (UTC) Received: from freebsd-current.sentex.ca (localhost [127.0.0.1]) by freebsd-current.sentex.ca (8.14.5/8.14.5) with ESMTP id q2DJmae9025104; Tue, 13 Mar 2012 15:48:36 -0400 (EDT) (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-current.sentex.ca (8.14.5/8.14.5/Submit) id q2DJmZLv025093; Tue, 13 Mar 2012 19:48:35 GMT (envelope-from tinderbox@freebsd.org) Date: Tue, 13 Mar 2012 19:48:35 GMT Message-Id: <201203131948.q2DJmZLv025093@freebsd-current.sentex.ca> X-Authentication-Warning: freebsd-current.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [head tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2012 19:48:37 -0000 TB --- 2012-03-13 19:26:52 - tinderbox 2.9 running on freebsd-current.sentex.ca TB --- 2012-03-13 19:26:52 - starting HEAD tinderbox run for mips/mips TB --- 2012-03-13 19:26:52 - cleaning the object tree TB --- 2012-03-13 19:26:54 - cvsupping the source tree TB --- 2012-03-13 19:26:54 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/HEAD/mips/mips/supfile TB --- 2012-03-13 19:27:05 - building world TB --- 2012-03-13 19:27:05 - CROSS_BUILD_TESTING=YES TB --- 2012-03-13 19:27:05 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-13 19:27:05 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-13 19:27:05 - SRCCONF=/dev/null TB --- 2012-03-13 19:27:05 - TARGET=mips TB --- 2012-03-13 19:27:05 - TARGET_ARCH=mips TB --- 2012-03-13 19:27:05 - TZ=UTC TB --- 2012-03-13 19:27:05 - __MAKE_CONF=/dev/null TB --- 2012-03-13 19:27:05 - cd /src TB --- 2012-03-13 19:27:05 - /usr/bin/make -B buildworld >>> World build started on Tue Mar 13 19:27:06 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries [...] c++ -O -pipe -G0 -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H -I/src/gnu/lib/libstdc++ -I/src/gnu/lib/libstdc++/../../../contrib/libstdc++/libsupc++ -I/src/gnu/lib/libstdc++/../../../contrib/gcc -I/src/gnu/lib/libstdc++/../../../contrib/libstdc++/include -I/src/gnu/lib/libstdc++/../../../contrib/gcclibs/include -I/src/gnu/lib/libstdc++/../../../contrib/libstdc++/include -I. -frandom-seed=RepeatabilityConsideredGood -fno-implicit-templates -ffunction-sections -fdata-sections -Wno-deprecated -c /src/gnu/lib/libstdc++/../../../contrib/libstdc++/src/codecvt.cc -o codecvt.o In file included from /obj/mips.mipsel/src/tmp/usr/include/wctype.h:93, from /obj/mips.mipsel/src/tmp/usr/include/c++/4.2/cwctype:53, from /src/gnu/lib/libstdc++/../../../contrib/libstdc++/include/bits/locale_facets.h:46, from /obj/mips.mipsel/src/tmp/usr/include/c++/4.2/locale:45, from /src/gnu/lib/libstdc++/../../../contrib/libstdc++/src/codecvt.cc:30: /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:73: error: duplicate 'inline' /obj/mips.mipsel/src/tmp/usr/include/xlocale/_ctype.h:85: error: duplicate 'inline' *** Error code 1 Stop in /src/gnu/lib/libstdc++. *** Error code 1 Stop in /src/gnu/lib. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-13 19:48:35 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-13 19:48:35 - ERROR: failed to build world TB --- 2012-03-13 19:48:35 - 959.44 user 222.47 system 1303.56 real http://tinderbox.freebsd.org/tinderbox-head-HEAD-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Wed Mar 14 02:31:38 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AEF89106564A; Wed, 14 Mar 2012 02:31:38 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-legacy2.sentex.ca (freebsd-legacy2.sentex.ca [IPv6:2607:f3e0:0:3::6502:9c]) by mx1.freebsd.org (Postfix) with ESMTP id 6AA818FC08; Wed, 14 Mar 2012 02:31:38 +0000 (UTC) Received: from freebsd-legacy2.sentex.ca (localhost [127.0.0.1]) by freebsd-legacy2.sentex.ca (8.14.5/8.14.5) with ESMTP id q2E2VbDv027857; Wed, 14 Mar 2012 02:31:37 GMT (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-legacy2.sentex.ca (8.14.5/8.14.5/Submit) id q2E2VbPJ027856; Wed, 14 Mar 2012 02:31:37 GMT (envelope-from tinderbox@freebsd.org) Date: Wed, 14 Mar 2012 02:31:37 GMT Message-Id: <201203140231.q2E2VbPJ027856@freebsd-legacy2.sentex.ca> X-Authentication-Warning: freebsd-legacy2.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [releng_8 tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2012 02:31:38 -0000 TB --- 2012-03-14 01:50:54 - tinderbox 2.9 running on freebsd-legacy2.sentex.ca TB --- 2012-03-14 01:50:54 - starting RELENG_8 tinderbox run for mips/mips TB --- 2012-03-14 01:50:54 - cleaning the object tree TB --- 2012-03-14 01:50:54 - cvsupping the source tree TB --- 2012-03-14 01:50:54 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/RELENG_8/mips/mips/supfile TB --- 2012-03-14 01:51:05 - building world TB --- 2012-03-14 01:51:05 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 01:51:05 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 01:51:05 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 01:51:05 - SRCCONF=/dev/null TB --- 2012-03-14 01:51:05 - TARGET=mips TB --- 2012-03-14 01:51:05 - TARGET_ARCH=mips TB --- 2012-03-14 01:51:05 - TZ=UTC TB --- 2012-03-14 01:51:05 - __MAKE_CONF=/dev/null TB --- 2012-03-14 01:51:05 - cd /src TB --- 2012-03-14 01:51:05 - /usr/bin/make -B buildworld >>> World build started on Wed Mar 14 01:51:05 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Wed Mar 14 02:26:30 UTC 2012 TB --- 2012-03-14 02:26:30 - cd /src/sys/mips/conf TB --- 2012-03-14 02:26:30 - /usr/sbin/config -m ADM5120 TB --- 2012-03-14 02:26:30 - building ADM5120 kernel TB --- 2012-03-14 02:26:30 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 02:26:30 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 02:26:30 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 02:26:30 - SRCCONF=/dev/null TB --- 2012-03-14 02:26:30 - TARGET=mips TB --- 2012-03-14 02:26:30 - TARGET_ARCH=mips TB --- 2012-03-14 02:26:30 - TZ=UTC TB --- 2012-03-14 02:26:30 - __MAKE_CONF=/dev/null TB --- 2012-03-14 02:26:30 - cd /src TB --- 2012-03-14 02:26:30 - /usr/bin/make -B buildkernel KERNCONF=ADM5120 >>> Kernel build for ADM5120 started on Wed Mar 14 02:26:30 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for ADM5120 completed on Wed Mar 14 02:27:35 UTC 2012 TB --- 2012-03-14 02:27:35 - cd /src/sys/mips/conf TB --- 2012-03-14 02:27:35 - /usr/sbin/config -m ALCHEMY TB --- 2012-03-14 02:27:35 - building ALCHEMY kernel TB --- 2012-03-14 02:27:35 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 02:27:35 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 02:27:35 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 02:27:35 - SRCCONF=/dev/null TB --- 2012-03-14 02:27:35 - TARGET=mips TB --- 2012-03-14 02:27:35 - TARGET_ARCH=mips TB --- 2012-03-14 02:27:35 - TZ=UTC TB --- 2012-03-14 02:27:35 - __MAKE_CONF=/dev/null TB --- 2012-03-14 02:27:35 - cd /src TB --- 2012-03-14 02:27:35 - /usr/bin/make -B buildkernel KERNCONF=ALCHEMY >>> Kernel build for ALCHEMY started on Wed Mar 14 02:27:35 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for ALCHEMY completed on Wed Mar 14 02:28:38 UTC 2012 TB --- 2012-03-14 02:28:38 - cd /src/sys/mips/conf TB --- 2012-03-14 02:28:38 - /usr/sbin/config -m AR71XX TB --- 2012-03-14 02:28:38 - building AR71XX kernel TB --- 2012-03-14 02:28:38 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 02:28:38 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 02:28:38 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 02:28:38 - SRCCONF=/dev/null TB --- 2012-03-14 02:28:38 - TARGET=mips TB --- 2012-03-14 02:28:38 - TARGET_ARCH=mips TB --- 2012-03-14 02:28:38 - TZ=UTC TB --- 2012-03-14 02:28:38 - __MAKE_CONF=/dev/null TB --- 2012-03-14 02:28:38 - cd /src TB --- 2012-03-14 02:28:38 - /usr/bin/make -B buildkernel KERNCONF=AR71XX >>> Kernel build for AR71XX started on Wed Mar 14 02:28:38 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -O -pipe -EL -msoft-float -G0 -mno-dsp -mabicalls -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/mips/src/sys/AR71XX/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -G0 -fno-pic -mno-abicalls -mlong-calls -I/obj/mips/src/sys/AR71XX -msoft-float -mno-dsp -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /src/sys/modules/cam/../../cam/scsi/scsi_ch.c cc -O -pipe -EL -msoft-float -G0 -mno-dsp -mabicalls -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/mips/src/sys/AR71XX/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -G0 -fno-pic -mno-abicalls -mlong-calls -I/obj/mips/src/sys/AR71XX -msoft-float -mno-dsp -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /src/sys/modules/cam/../../cam/scsi/scsi_da.c cc1: warnings being treated as errors /src/sys/modules/cam/../../cam/scsi/scsi_da.c: In function 'dadone': /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1930: warning: 'error_code' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1930: warning: 'sense_key' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1929: warning: 'ascq' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1929: warning: 'asc' may be used uninitialized in this function *** Error code 1 Stop in /src/sys/modules/cam. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/mips/src/sys/AR71XX. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-14 02:31:37 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-14 02:31:37 - ERROR: failed to build AR71XX kernel TB --- 2012-03-14 02:31:37 - 1911.01 user 399.80 system 2443.69 real http://tinderbox.freebsd.org/tinderbox-releng_8-RELENG_8-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Wed Mar 14 07:37:25 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2C7291065674; Wed, 14 Mar 2012 07:37:25 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-legacy2.sentex.ca (freebsd-legacy2.sentex.ca [IPv6:2607:f3e0:0:3::6502:9c]) by mx1.freebsd.org (Postfix) with ESMTP id DA4108FC08; Wed, 14 Mar 2012 07:37:24 +0000 (UTC) Received: from freebsd-legacy2.sentex.ca (localhost [127.0.0.1]) by freebsd-legacy2.sentex.ca (8.14.5/8.14.5) with ESMTP id q2E7bOLK036127; Wed, 14 Mar 2012 07:37:24 GMT (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-legacy2.sentex.ca (8.14.5/8.14.5/Submit) id q2E7bOFl036123; Wed, 14 Mar 2012 07:37:24 GMT (envelope-from tinderbox@freebsd.org) Date: Wed, 14 Mar 2012 07:37:24 GMT Message-Id: <201203140737.q2E7bOFl036123@freebsd-legacy2.sentex.ca> X-Authentication-Warning: freebsd-legacy2.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [releng_8 tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2012 07:37:25 -0000 TB --- 2012-03-14 06:55:40 - tinderbox 2.9 running on freebsd-legacy2.sentex.ca TB --- 2012-03-14 06:55:40 - starting RELENG_8 tinderbox run for mips/mips TB --- 2012-03-14 06:55:40 - cleaning the object tree TB --- 2012-03-14 06:55:57 - cvsupping the source tree TB --- 2012-03-14 06:55:57 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/RELENG_8/mips/mips/supfile TB --- 2012-03-14 06:56:08 - building world TB --- 2012-03-14 06:56:08 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 06:56:08 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 06:56:08 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 06:56:08 - SRCCONF=/dev/null TB --- 2012-03-14 06:56:08 - TARGET=mips TB --- 2012-03-14 06:56:08 - TARGET_ARCH=mips TB --- 2012-03-14 06:56:08 - TZ=UTC TB --- 2012-03-14 06:56:08 - __MAKE_CONF=/dev/null TB --- 2012-03-14 06:56:08 - cd /src TB --- 2012-03-14 06:56:08 - /usr/bin/make -B buildworld >>> World build started on Wed Mar 14 06:56:08 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Wed Mar 14 07:32:05 UTC 2012 TB --- 2012-03-14 07:32:05 - cd /src/sys/mips/conf TB --- 2012-03-14 07:32:05 - /usr/sbin/config -m ADM5120 TB --- 2012-03-14 07:32:05 - building ADM5120 kernel TB --- 2012-03-14 07:32:05 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 07:32:05 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 07:32:05 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 07:32:05 - SRCCONF=/dev/null TB --- 2012-03-14 07:32:05 - TARGET=mips TB --- 2012-03-14 07:32:05 - TARGET_ARCH=mips TB --- 2012-03-14 07:32:05 - TZ=UTC TB --- 2012-03-14 07:32:05 - __MAKE_CONF=/dev/null TB --- 2012-03-14 07:32:05 - cd /src TB --- 2012-03-14 07:32:05 - /usr/bin/make -B buildkernel KERNCONF=ADM5120 >>> Kernel build for ADM5120 started on Wed Mar 14 07:32:05 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for ADM5120 completed on Wed Mar 14 07:33:13 UTC 2012 TB --- 2012-03-14 07:33:13 - cd /src/sys/mips/conf TB --- 2012-03-14 07:33:13 - /usr/sbin/config -m ALCHEMY TB --- 2012-03-14 07:33:13 - building ALCHEMY kernel TB --- 2012-03-14 07:33:13 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 07:33:13 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 07:33:13 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 07:33:13 - SRCCONF=/dev/null TB --- 2012-03-14 07:33:13 - TARGET=mips TB --- 2012-03-14 07:33:13 - TARGET_ARCH=mips TB --- 2012-03-14 07:33:13 - TZ=UTC TB --- 2012-03-14 07:33:13 - __MAKE_CONF=/dev/null TB --- 2012-03-14 07:33:13 - cd /src TB --- 2012-03-14 07:33:13 - /usr/bin/make -B buildkernel KERNCONF=ALCHEMY >>> Kernel build for ALCHEMY started on Wed Mar 14 07:33:13 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for ALCHEMY completed on Wed Mar 14 07:34:19 UTC 2012 TB --- 2012-03-14 07:34:19 - cd /src/sys/mips/conf TB --- 2012-03-14 07:34:19 - /usr/sbin/config -m AR71XX TB --- 2012-03-14 07:34:19 - building AR71XX kernel TB --- 2012-03-14 07:34:19 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 07:34:19 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 07:34:19 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 07:34:19 - SRCCONF=/dev/null TB --- 2012-03-14 07:34:19 - TARGET=mips TB --- 2012-03-14 07:34:19 - TARGET_ARCH=mips TB --- 2012-03-14 07:34:19 - TZ=UTC TB --- 2012-03-14 07:34:19 - __MAKE_CONF=/dev/null TB --- 2012-03-14 07:34:19 - cd /src TB --- 2012-03-14 07:34:19 - /usr/bin/make -B buildkernel KERNCONF=AR71XX >>> Kernel build for AR71XX started on Wed Mar 14 07:34:19 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -O -pipe -EL -msoft-float -G0 -mno-dsp -mabicalls -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/mips/src/sys/AR71XX/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -G0 -fno-pic -mno-abicalls -mlong-calls -I/obj/mips/src/sys/AR71XX -msoft-float -mno-dsp -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /src/sys/modules/cam/../../cam/scsi/scsi_ch.c cc -O -pipe -EL -msoft-float -G0 -mno-dsp -mabicalls -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/mips/src/sys/AR71XX/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -G0 -fno-pic -mno-abicalls -mlong-calls -I/obj/mips/src/sys/AR71XX -msoft-float -mno-dsp -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /src/sys/modules/cam/../../cam/scsi/scsi_da.c cc1: warnings being treated as errors /src/sys/modules/cam/../../cam/scsi/scsi_da.c: In function 'dadone': /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1930: warning: 'error_code' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1930: warning: 'sense_key' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1929: warning: 'ascq' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1929: warning: 'asc' may be used uninitialized in this function *** Error code 1 Stop in /src/sys/modules/cam. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/mips/src/sys/AR71XX. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-14 07:37:24 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-14 07:37:24 - ERROR: failed to build AR71XX kernel TB --- 2012-03-14 07:37:24 - 1937.85 user 413.62 system 2504.17 real http://tinderbox.freebsd.org/tinderbox-releng_8-RELENG_8-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Wed Mar 14 12:39:30 2012 Return-Path: Delivered-To: mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B2661065673; Wed, 14 Mar 2012 12:39:30 +0000 (UTC) (envelope-from tinderbox@freebsd.org) Received: from freebsd-legacy2.sentex.ca (freebsd-legacy2.sentex.ca [IPv6:2607:f3e0:0:3::6502:9c]) by mx1.freebsd.org (Postfix) with ESMTP id 3AC468FC0A; Wed, 14 Mar 2012 12:39:30 +0000 (UTC) Received: from freebsd-legacy2.sentex.ca (localhost [127.0.0.1]) by freebsd-legacy2.sentex.ca (8.14.5/8.14.5) with ESMTP id q2ECdTmP060527; Wed, 14 Mar 2012 12:39:29 GMT (envelope-from tinderbox@freebsd.org) Received: (from tinderbox@localhost) by freebsd-legacy2.sentex.ca (8.14.5/8.14.5/Submit) id q2ECdTcP060526; Wed, 14 Mar 2012 12:39:29 GMT (envelope-from tinderbox@freebsd.org) Date: Wed, 14 Mar 2012 12:39:29 GMT Message-Id: <201203141239.q2ECdTcP060526@freebsd-legacy2.sentex.ca> X-Authentication-Warning: freebsd-legacy2.sentex.ca: tinderbox set sender to FreeBSD Tinderbox using -f Sender: FreeBSD Tinderbox From: FreeBSD Tinderbox To: FreeBSD Tinderbox , , Precedence: bulk Cc: Subject: [releng_8 tinderbox] failure on mips/mips X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2012 12:39:30 -0000 TB --- 2012-03-14 11:58:22 - tinderbox 2.9 running on freebsd-legacy2.sentex.ca TB --- 2012-03-14 11:58:22 - starting RELENG_8 tinderbox run for mips/mips TB --- 2012-03-14 11:58:22 - cleaning the object tree TB --- 2012-03-14 11:58:44 - cvsupping the source tree TB --- 2012-03-14 11:58:44 - /usr/bin/csup -z -r 3 -g -L 1 -h cvsup.sentex.ca /tinderbox/RELENG_8/mips/mips/supfile TB --- 2012-03-14 11:59:01 - building world TB --- 2012-03-14 11:59:01 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 11:59:01 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 11:59:01 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 11:59:01 - SRCCONF=/dev/null TB --- 2012-03-14 11:59:01 - TARGET=mips TB --- 2012-03-14 11:59:01 - TARGET_ARCH=mips TB --- 2012-03-14 11:59:01 - TZ=UTC TB --- 2012-03-14 11:59:01 - __MAKE_CONF=/dev/null TB --- 2012-03-14 11:59:01 - cd /src TB --- 2012-03-14 11:59:01 - /usr/bin/make -B buildworld >>> World build started on Wed Mar 14 11:59:01 UTC 2012 >>> Rebuilding the temporary build tree >>> stage 1.1: legacy release compatibility shims >>> stage 1.2: bootstrap tools >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3: cross tools >>> stage 4.1: building includes >>> stage 4.2: building libraries >>> stage 4.3: make dependencies >>> stage 4.4: building everything >>> World build completed on Wed Mar 14 12:34:15 UTC 2012 TB --- 2012-03-14 12:34:15 - cd /src/sys/mips/conf TB --- 2012-03-14 12:34:15 - /usr/sbin/config -m ADM5120 TB --- 2012-03-14 12:34:15 - building ADM5120 kernel TB --- 2012-03-14 12:34:15 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 12:34:15 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 12:34:15 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 12:34:15 - SRCCONF=/dev/null TB --- 2012-03-14 12:34:15 - TARGET=mips TB --- 2012-03-14 12:34:15 - TARGET_ARCH=mips TB --- 2012-03-14 12:34:15 - TZ=UTC TB --- 2012-03-14 12:34:15 - __MAKE_CONF=/dev/null TB --- 2012-03-14 12:34:15 - cd /src TB --- 2012-03-14 12:34:15 - /usr/bin/make -B buildkernel KERNCONF=ADM5120 >>> Kernel build for ADM5120 started on Wed Mar 14 12:34:15 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for ADM5120 completed on Wed Mar 14 12:35:22 UTC 2012 TB --- 2012-03-14 12:35:22 - cd /src/sys/mips/conf TB --- 2012-03-14 12:35:22 - /usr/sbin/config -m ALCHEMY TB --- 2012-03-14 12:35:22 - building ALCHEMY kernel TB --- 2012-03-14 12:35:22 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 12:35:22 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 12:35:22 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 12:35:22 - SRCCONF=/dev/null TB --- 2012-03-14 12:35:22 - TARGET=mips TB --- 2012-03-14 12:35:22 - TARGET_ARCH=mips TB --- 2012-03-14 12:35:22 - TZ=UTC TB --- 2012-03-14 12:35:22 - __MAKE_CONF=/dev/null TB --- 2012-03-14 12:35:22 - cd /src TB --- 2012-03-14 12:35:22 - /usr/bin/make -B buildkernel KERNCONF=ALCHEMY >>> Kernel build for ALCHEMY started on Wed Mar 14 12:35:22 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything >>> Kernel build for ALCHEMY completed on Wed Mar 14 12:36:26 UTC 2012 TB --- 2012-03-14 12:36:26 - cd /src/sys/mips/conf TB --- 2012-03-14 12:36:26 - /usr/sbin/config -m AR71XX TB --- 2012-03-14 12:36:26 - building AR71XX kernel TB --- 2012-03-14 12:36:26 - CROSS_BUILD_TESTING=YES TB --- 2012-03-14 12:36:26 - MAKEOBJDIRPREFIX=/obj TB --- 2012-03-14 12:36:26 - PATH=/usr/bin:/usr/sbin:/bin:/sbin TB --- 2012-03-14 12:36:26 - SRCCONF=/dev/null TB --- 2012-03-14 12:36:26 - TARGET=mips TB --- 2012-03-14 12:36:26 - TARGET_ARCH=mips TB --- 2012-03-14 12:36:26 - TZ=UTC TB --- 2012-03-14 12:36:26 - __MAKE_CONF=/dev/null TB --- 2012-03-14 12:36:26 - cd /src TB --- 2012-03-14 12:36:26 - /usr/bin/make -B buildkernel KERNCONF=AR71XX >>> Kernel build for AR71XX started on Wed Mar 14 12:36:26 UTC 2012 >>> stage 1: configuring the kernel >>> stage 2.1: cleaning up the object tree >>> stage 2.2: rebuilding the object tree >>> stage 2.3: build tools >>> stage 3.1: making dependencies >>> stage 3.2: building everything [...] cc -O -pipe -EL -msoft-float -G0 -mno-dsp -mabicalls -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/mips/src/sys/AR71XX/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -G0 -fno-pic -mno-abicalls -mlong-calls -I/obj/mips/src/sys/AR71XX -msoft-float -mno-dsp -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /src/sys/modules/cam/../../cam/scsi/scsi_ch.c cc -O -pipe -EL -msoft-float -G0 -mno-dsp -mabicalls -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /obj/mips/src/sys/AR71XX/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=8000 --param inline-unit-growth=100 --param large-function-growth=1000 -fno-common -g -G0 -fno-pic -mno-abicalls -mlong-calls -I/obj/mips/src/sys/AR71XX -msoft-float -mno-dsp -ffreestanding -std=iso9899:1999 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /src/sys/modules/cam/../../cam/scsi/scsi_da.c cc1: warnings being treated as errors /src/sys/modules/cam/../../cam/scsi/scsi_da.c: In function 'dadone': /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1930: warning: 'error_code' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1930: warning: 'sense_key' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1929: warning: 'ascq' may be used uninitialized in this function /src/sys/modules/cam/../../cam/scsi/scsi_da.c:1929: warning: 'asc' may be used uninitialized in this function *** Error code 1 Stop in /src/sys/modules/cam. *** Error code 1 Stop in /src/sys/modules. *** Error code 1 Stop in /obj/mips/src/sys/AR71XX. *** Error code 1 Stop in /src. *** Error code 1 Stop in /src. TB --- 2012-03-14 12:39:29 - WARNING: /usr/bin/make returned exit code 1 TB --- 2012-03-14 12:39:29 - ERROR: failed to build AR71XX kernel TB --- 2012-03-14 12:39:29 - 1918.24 user 405.23 system 2467.50 real http://tinderbox.freebsd.org/tinderbox-releng_8-RELENG_8-mips-mips.full From owner-freebsd-mips@FreeBSD.ORG Wed Mar 14 23:11:17 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 510D9106564A for ; Wed, 14 Mar 2012 23:11:17 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f45.google.com (mail-pz0-f45.google.com [209.85.210.45]) by mx1.freebsd.org (Postfix) with ESMTP id 2540F8FC14 for ; Wed, 14 Mar 2012 23:11:16 +0000 (UTC) Received: by dadp14 with SMTP id p14so9950132dad.18 for ; Wed, 14 Mar 2012 16:11:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=rbZBKGSGAKSIBAavOFo5aOC9jhMGO+2QEPp2h/bzESM=; b=tp2DSaowIa70++6tF5XBvVGwypn0f55P4tKMbLfxvpvdGTx82LlJ4QSwUWxTF8F4oO M/WroH69QZ9TnDYKe/tCWi/NjgxGVVZoPuyReeO46SgVoaLg/5J3wwfkl2Kv2kPk2S2H hB9pYM6MQCjXW4Apr62HIwCkO+L5NRJUXDe5wPuky4lMFgqjSlQQcI8jatzhp8j7wO1p RfE1KHXf6j3LFoJEkbV53GvGE0jwO/7iY5ug2Jgn0Ol2iuM/nV9zGOdzagqrynnX+3m3 YVzYu91U0/rncKlzoinU+qQMLoxSPXV4zbzYY6vY1rCrtwE3Vn2UdKffAk01JXD1nrSG z9/A== MIME-Version: 1.0 Received: by 10.68.130.6 with SMTP id oa6mr5436504pbb.96.1331766676686; Wed, 14 Mar 2012 16:11:16 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Wed, 14 Mar 2012 16:11:16 -0700 (PDT) In-Reply-To: References: Date: Wed, 14 Mar 2012 16:11:16 -0700 X-Google-Sender-Auth: 6mEZ6GwkO1BpjJrwyfi6-LVpj7Q Message-ID: From: Adrian Chadd To: Patrick Kelsey Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-mips@freebsd.org Subject: Re: [PATCH] MikroTik RB450G support X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Mar 2012 23:11:17 -0000 Hiya, I'll dig out the ar724x/ar913x MII clock register settings and write some chip operations for that. I'll just leave them in the _chip.c files though. You can then add the ar71xx override that you need for the routerboard. What I guess we _should_ do is have the driver do this. So I propose: * a hint that says "force the mii speed to X"; * a hint that says "always set the mii speed to match the port speed"; * the default being "leave the mii speed untouched from boot, only change the port speed". How's that sound moving forward? adrian From owner-freebsd-mips@FreeBSD.ORG Thu Mar 15 07:47:08 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 143BC1065670 for ; Thu, 15 Mar 2012 07:47:08 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9ACAD8FC0C for ; Thu, 15 Mar 2012 07:47:07 +0000 (UTC) Received: by wern13 with SMTP id n13so3275580wer.13 for ; Thu, 15 Mar 2012 00:47:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type :x-gm-message-state; bh=FP74kWaidxnB3j9t8cEgzubDkCuCi+s5leDoYqlrIUU=; b=jkCIxlSfSw7kQbVeJIm9S5dSB/Dt6iCisc5RY0kCfy5qtCZAkDD0GxQdZCvaiQpv3D wiJKd/2PtRcCVamGSAtaBOVsglQQ455pNRbZ/NfwtMfHk/246FTJirMdxUZdZxJUiiTz 2YfBKrgg+Ip4yLhraPXVkKcH3/hrkWrMpNR88jNih8Fv51BtvdrD26vjctMDpvNrULsY 5IH6EJHUHox0C+KQ9ZrHntq+6imx/qlaPxrIo5Cd1ZadiTSMZ7Wpfp9m8jLU4K3II46K bEKrYPEAOfHLxkoWTR+aWqRMzgJzSzHexB0l85rJHBtrAXz+pdlWcE9UtGJ/EfbDlld+ Gh5A== Received: by 10.180.103.35 with SMTP id ft3mr13119406wib.0.1331797626579; Thu, 15 Mar 2012 00:47:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.96.231 with HTTP; Thu, 15 Mar 2012 00:46:46 -0700 (PDT) From: Juli Mallett Date: Thu, 15 Mar 2012 00:46:46 -0700 Message-ID: To: "freebsd-mips@FreeBSD.org" Content-Type: text/plain; charset=UTF-8 X-Gm-Message-State: ALoCoQkAUInb69HyIhNSOoQf7VjjT3kpXhrha505Bd1ECvofuL8nfmyU3fnSgO2GoQcqm5SDZQo+ Subject: Unbreaking ports with n64 MIPS. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Mar 2012 07:47:08 -0000 All, Does anyone object to changing the target name of mips64eb to be rendered as mips64? It's difficult to build ports because although the redundant "mipseb" as widely-recognized as synonymous as "mips", our quirky use of "mips64eb" instead of "mips64" just plain breaks stuff. "mips64el" is, of course, recognized, but it's generally assumed that MIPS is big-endian by default. I understand this assumption wasn't made in FreeBSD because the port that was committed focused early on a number of little-endian MIPS systems, but it seems worthwhile to switch. I'm happy to make the relevant changes. Thanks, Juli. PS: This may only need to be changed in how we name things in our GCC and binutils to fix ports, but I'd rather change everything else to match for the sake of consistency. PPS: What to do for n32? I think mips64{,el} is right for GCC and binutils, with something like "n32" in the OS name, but I haven't booted IRIX in almost a decade, so I can't remember what the convention is. I don't even know if there's software in ports that would care. From owner-freebsd-mips@FreeBSD.ORG Thu Mar 15 12:08:41 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3DA6F1065670 for ; Thu, 15 Mar 2012 12:08:41 +0000 (UTC) (envelope-from aduane@juniper.net) Received: from exprod7og116.obsmtp.com (exprod7og116.obsmtp.com [64.18.2.219]) by mx1.freebsd.org (Postfix) with ESMTP id 64C288FC08 for ; Thu, 15 Mar 2012 12:08:26 +0000 (UTC) Received: from P-EMHUB01-HQ.jnpr.net ([66.129.224.36]) (using TLSv1) by exprod7ob116.postini.com ([64.18.6.12]) with SMTP ID DSNKT2HbupUfLodmxtG8xbXSY+Z4lQNDiLk9@postini.com; Thu, 15 Mar 2012 05:08:28 PDT Received: from p-emfe01-wf.jnpr.net (172.28.145.24) by P-EMHUB01-HQ.jnpr.net (172.24.192.35) with Microsoft SMTP Server (TLS) id 8.3.213.0; Thu, 15 Mar 2012 05:07:50 -0700 Received: from EMBX01-WF.jnpr.net ([fe80::1914:3299:33d9:e43b]) by p-emfe01-wf.jnpr.net ([fe80::d0d1:653d:5b91:a123%11]) with mapi; Thu, 15 Mar 2012 08:07:49 -0400 From: Andrew Duane To: Juli Mallett , "freebsd-mips@FreeBSD.org" Date: Thu, 15 Mar 2012 08:07:54 -0400 Thread-Topic: Unbreaking ports with n64 MIPS. Thread-Index: Ac0Cf9t99wDHKcRHQB6x6dUVYHqDHAAJEkgg Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e4081efb-6d29-443c-8708-750833aec629 Cc: Subject: RE: Unbreaking ports with n64 MIPS. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Mar 2012 12:08:41 -0000 SSdkIGJlIGZpbmUgd2l0aCB0aGlzLiBUaGVyZSBzaG91bGQgYmUgYSBzaW1wbGUgZGVmYXVsdCBm b3IgbWlwczY0LCBhbmQgYmlnIGVuZGlhbiBkb2VzIHNlZW0gdG8gYmUgdGhlIGRlZmF1bHQgYXNz dW1wdGlvbi4NCg0KSSd2ZSBuZXZlciB1c2VkIHRoZSBuMzIgcG9ydCB0aG91Z2guDQoNCsKgLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4NCkFuZHJldyBEdWFuZQ0KSnVuaXBlciBO ZXR3b3Jrcw0KKzEgOTc4LTU4OS0wNTUxIChvKQ0KKzEgNjAzLTc3MC03MDg4IChtKQ0KYWR1YW5l QGp1bmlwZXIubmV0DQoNCsKgDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBvd25lci1mcmVlYnNkLW1pcHNAZnJlZWJzZC5vcmcgW21haWx0bzpvd25lci1mcmVlYnNk LQ0KPiBtaXBzQGZyZWVic2Qub3JnXSBPbiBCZWhhbGYgT2YgSnVsaSBNYWxsZXR0DQo+IFNlbnQ6 IFRodXJzZGF5LCBNYXJjaCAxNSwgMjAxMiAzOjQ3IEFNDQo+IFRvOiBmcmVlYnNkLW1pcHNARnJl ZUJTRC5vcmcNCj4gU3ViamVjdDogVW5icmVha2luZyBwb3J0cyB3aXRoIG42NCBNSVBTLg0KPiAN Cj4gQWxsLA0KPiANCj4gRG9lcyBhbnlvbmUgb2JqZWN0IHRvIGNoYW5naW5nIHRoZSB0YXJnZXQg bmFtZSBvZiBtaXBzNjRlYiB0byBiZQ0KPiByZW5kZXJlZCBhcyBtaXBzNjQ/ICBJdCdzIGRpZmZp Y3VsdCB0byBidWlsZCBwb3J0cyBiZWNhdXNlIGFsdGhvdWdoDQo+IHRoZSByZWR1bmRhbnQgIm1p cHNlYiIgYXMgd2lkZWx5LXJlY29nbml6ZWQgYXMgc3lub255bW91cyBhcyAibWlwcyIsDQo+IG91 ciBxdWlya3kgdXNlIG9mICJtaXBzNjRlYiIgaW5zdGVhZCBvZiAibWlwczY0IiBqdXN0IHBsYWlu IGJyZWFrcw0KPiBzdHVmZi4gICJtaXBzNjRlbCIgaXMsIG9mIGNvdXJzZSwgcmVjb2duaXplZCwg YnV0IGl0J3MgZ2VuZXJhbGx5DQo+IGFzc3VtZWQgdGhhdCBNSVBTIGlzIGJpZy1lbmRpYW4gYnkg ZGVmYXVsdC4gIEkgdW5kZXJzdGFuZCB0aGlzDQo+IGFzc3VtcHRpb24gd2Fzbid0IG1hZGUgaW4g RnJlZUJTRCBiZWNhdXNlIHRoZSBwb3J0IHRoYXQgd2FzIGNvbW1pdHRlZA0KPiBmb2N1c2VkIGVh cmx5IG9uIGEgbnVtYmVyIG9mIGxpdHRsZS1lbmRpYW4gTUlQUyBzeXN0ZW1zLCBidXQgaXQgc2Vl bXMNCj4gd29ydGh3aGlsZSB0byBzd2l0Y2guICBJJ20gaGFwcHkgdG8gbWFrZSB0aGUgcmVsZXZh bnQgY2hhbmdlcy4NCj4gDQo+IFRoYW5rcywNCj4gSnVsaS4NCj4gDQo+IFBTOiBUaGlzIG1heSBv bmx5IG5lZWQgdG8gYmUgY2hhbmdlZCBpbiBob3cgd2UgbmFtZSB0aGluZ3MgaW4gb3VyIEdDQw0K PiBhbmQgYmludXRpbHMgdG8gZml4IHBvcnRzLCBidXQgSSdkIHJhdGhlciBjaGFuZ2UgZXZlcnl0 aGluZyBlbHNlIHRvDQo+IG1hdGNoIGZvciB0aGUgc2FrZSBvZiBjb25zaXN0ZW5jeS4NCj4gDQo+ IFBQUzogV2hhdCB0byBkbyBmb3IgbjMyPyAgSSB0aGluayBtaXBzNjR7LGVsfSBpcyByaWdodCBm b3IgR0NDIGFuZA0KPiBiaW51dGlscywgd2l0aCBzb21ldGhpbmcgbGlrZSAibjMyIiBpbiB0aGUg T1MgbmFtZSwgYnV0IEkgaGF2ZW4ndA0KPiBib290ZWQgSVJJWCBpbiBhbG1vc3QgYSBkZWNhZGUs IHNvIEkgY2FuJ3QgcmVtZW1iZXIgd2hhdCB0aGUNCj4gY29udmVudGlvbiBpcy4gIEkgZG9uJ3Qg ZXZlbiBrbm93IGlmIHRoZXJlJ3Mgc29mdHdhcmUgaW4gcG9ydHMgdGhhdA0KPiB3b3VsZCBjYXJl Lg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBm cmVlYnNkLW1pcHNAZnJlZWJzZC5vcmcgbWFpbGluZyBsaXN0DQo+IGh0dHA6Ly9saXN0cy5mcmVl YnNkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVic2QtbWlwcw0KPiBUbyB1bnN1YnNjcmliZSwg c2VuZCBhbnkgbWFpbCB0byAiZnJlZWJzZC1taXBzLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg0K From owner-freebsd-mips@FreeBSD.ORG Thu Mar 15 16:22:15 2012 Return-Path: Delivered-To: freebsd-mips@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D1849106566C for ; Thu, 15 Mar 2012 16:22:15 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 6E37D8FC15 for ; Thu, 15 Mar 2012 16:22:15 +0000 (UTC) Received: from [10.30.101.53] ([209.117.142.2]) (authenticated bits=0) by harmony.bsdimp.com (8.14.4/8.14.3) with ESMTP id q2FGI0Fv060611 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES128-SHA bits=128 verify=NO); Thu, 15 Mar 2012 10:18:02 -0600 (MDT) (envelope-from imp@bsdimp.com) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Warner Losh In-Reply-To: Date: Thu, 15 Mar 2012 10:17:55 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: References: To: Juli Mallett X-Mailer: Apple Mail (2.1084) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (harmony.bsdimp.com [10.0.0.6]); Thu, 15 Mar 2012 10:18:02 -0600 (MDT) Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Unbreaking ports with n64 MIPS. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Mar 2012 16:22:15 -0000 Hi Juli, I'd be fine with mips64 and mips64eb being the same, and moving from the = former to the latter as the uname reported value. I almost did it when I = was doing the stuff, but the pedants were against me and I didn't have = any good amo to push back at them. This would be a good reason. The = code was a little simpler when I always specified the eb on the end for = all mips ports, so there's some tricks in the tree to keep expressions = from getting too gross you'll have to watch out for. As for IRIX, n32 binaries were run on it, but there never was a n32 = kernel that I recall. It was just a funky ABI that you could compile = your programs to if they had problems with the n64 ABI. So the OS = didn't report anything special there. Our notion of an n32 kernel is = historically a bit funkadelic. Warner On Mar 15, 2012, at 1:46 AM, Juli Mallett wrote: > All, >=20 > Does anyone object to changing the target name of mips64eb to be > rendered as mips64? It's difficult to build ports because although > the redundant "mipseb" as widely-recognized as synonymous as "mips", > our quirky use of "mips64eb" instead of "mips64" just plain breaks > stuff. "mips64el" is, of course, recognized, but it's generally > assumed that MIPS is big-endian by default. I understand this > assumption wasn't made in FreeBSD because the port that was committed > focused early on a number of little-endian MIPS systems, but it seems > worthwhile to switch. I'm happy to make the relevant changes. >=20 > Thanks, > Juli. >=20 > PS: This may only need to be changed in how we name things in our GCC > and binutils to fix ports, but I'd rather change everything else to > match for the sake of consistency. >=20 > PPS: What to do for n32? I think mips64{,el} is right for GCC and > binutils, with something like "n32" in the OS name, but I haven't > booted IRIX in almost a decade, so I can't remember what the > convention is. I don't even know if there's software in ports that > would care. > _______________________________________________ > freebsd-mips@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-mips > To unsubscribe, send any mail to = "freebsd-mips-unsubscribe@freebsd.org" >=20 >=20 From owner-freebsd-mips@FreeBSD.ORG Sat Mar 17 03:44:49 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id ED5E31065673 for ; Sat, 17 Mar 2012 03:44:49 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 790808FC0C for ; Sat, 17 Mar 2012 03:44:49 +0000 (UTC) Received: by wern13 with SMTP id n13so5877549wer.13 for ; Fri, 16 Mar 2012 20:44:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=/dmWsnzA3i4W6QfHB/7pympQRukm+DQecegTpLpKlek=; b=QYfiXtDVluWfe27IogL0RzBMC1/WspPhSFFsU/zxbIoaDC4USUSTwtWXLNCSgLn6cz qZJQM4sFqGmcjvkjcjq4cAh6NICUkQh6sXXeQyuM6Vur6/G91Nmo4uOystzQi65g5xWq cHuP7p7WmKMCDflrfTzJzemN9wFBvp227T+KoRzpbW+Jz4xT4GzTT7XoYEPSilHE6aWQ TFmBhFM3FHSuv9WdUK60QoAl9S7oVsYBdPsbO8wawDUqASZMESoXFYSi+O6g+2KWJmLV 2pj2wi4IXmhXB6Vpm/jPgLqXjXGqB9MU66TyT59xCjtNLYa0PnegjEL4uc/FLnsY5/QL VrNg== Received: by 10.180.104.137 with SMTP id ge9mr3465400wib.20.1331955888293; Fri, 16 Mar 2012 20:44:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.96.231 with HTTP; Fri, 16 Mar 2012 20:44:27 -0700 (PDT) In-Reply-To: References: From: Juli Mallett Date: Fri, 16 Mar 2012 20:44:27 -0700 Message-ID: To: Warner Losh Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQmn7LcE9ZDb1Qc21XsdB4nQDBhZcAnVZWYRU0szSkNIgC3y8zuEltTZC9SLXSBGbNQJCzdM Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Unbreaking ports with n64 MIPS. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Mar 2012 03:44:50 -0000 Hey Warner & others, Here's the patch I intend to commit in the near future, and then I'll add an UPDATING entry and send out an E-Mail blast to the list: http://people.freebsd.org/~jmallett/noeb.diff I've decided not to make mips64eb (and mipseb and mipsn32eb) aliases, but I'm willing to be convinced to do so. It's a simple matter then to have a single regex in the few things that report the TARGET_ARCH or MACHINE_ARCH (e.g. GCC) that converts those aliases to the canonical values, and to otherwise just expand the regexes in this patch a little bit. We wouldn't report things with eb in them anywhere, and self-hosted builds would work, but it seems like we have a small enough community of MIPS users that this actually won't be a big deal. I'm willing to do the work on aliases, but only if there's strong requests. Two other things have come up on this thread: 1) n32 is an ABI not a sensible TARGET_ARCH. We need TARGET_ABI. We need GCC to report something like mips64-freebsdelf or freebsdelfn32 or freebsdn32 or whichever. We need things to be able to detect that. Anyone who cares about n32 should really work on making it easy to use n32 worlds on n64 kernels. I'm happy to help with this as I have a pretty good idea where the pitfalls are, but it's non-trivial work, and involves putting conditionals all through the 32-bit compat code. For worlds, n32 should not be a TARGET_ARCH. Kernels should not be n32. And so on. 2) Soft- vs. hard-float. How should a user select? We used to have some way, I know, for x86 systems which needed soft float, so they didn't use the slower fp emulation in the kernel. Another conversation I want to have is about pmap, and since I don't want to write out enough to start a whole thread about it, and I hope everyone's reading this, and I've already covered some far afield stuff, here: We need to be thinking about superpages. This is non-trivial even though MIPS is just about ideal for superpages. For one thing, it'd be really nice if we did not split TLB entries as we currently do, so the default PAGE_SIZE would be 8K, and then we wouldn't have to deal with TLB behavior where superpages are involved. Does the TLB always use the nearest match? How does it impact performance to have two TLB entries covering the same range of addresses? It depends on how the hardware implements TLB lookups, yes? Wouldn't it be nice to not have to split the TLB? Wouldn't it? I know I bring this up a lot, but it seems like it really would make superpages just slightly less ugly. I mean, you do tlbp and you find that your VA is covered by the TLB, but the entry it's in is split, and your VA isn't covered by a superpage, but the one in the TLB is, so you have to add a more specific entry, and suddenly all of your functions using the TLB have gotten non-trivially complex. Have I missed a trick? Thanks, Juli. On Thu, Mar 15, 2012 at 09:17, Warner Losh wrote: > Hi Juli, > > I'd be fine with mips64 and mips64eb being the same, and moving from the = former to the latter as the uname reported value. I almost did it when I wa= s doing the stuff, but the pedants were against me and I didn't have any go= od amo to push back at them. =C2=A0This would be a good reason. =C2=A0The c= ode was a little simpler when I always specified the eb on the end for all = mips ports, so there's some tricks in the tree to keep expressions from get= ting too gross you'll have to watch out for. > > As for IRIX, n32 binaries were run on it, but there never was a n32 kerne= l that I recall. =C2=A0It was just a funky ABI that you could compile your = programs to if they had problems with the n64 ABI. =C2=A0So the OS didn't r= eport anything special there. =C2=A0Our notion of an n32 kernel is historic= ally a bit funkadelic. > > Warner > > > On Mar 15, 2012, at 1:46 AM, Juli Mallett wrote: > >> All, >> >> Does anyone object to changing the target name of mips64eb to be >> rendered as mips64? =C2=A0It's difficult to build ports because although >> the redundant "mipseb" as widely-recognized as synonymous as "mips", >> our quirky use of "mips64eb" instead of "mips64" just plain breaks >> stuff. =C2=A0"mips64el" is, of course, recognized, but it's generally >> assumed that MIPS is big-endian by default. =C2=A0I understand this >> assumption wasn't made in FreeBSD because the port that was committed >> focused early on a number of little-endian MIPS systems, but it seems >> worthwhile to switch. =C2=A0I'm happy to make the relevant changes. >> >> Thanks, >> Juli. >> >> PS: This may only need to be changed in how we name things in our GCC >> and binutils to fix ports, but I'd rather change everything else to >> match for the sake of consistency. >> >> PPS: What to do for n32? =C2=A0I think mips64{,el} is right for GCC and >> binutils, with something like "n32" in the OS name, but I haven't >> booted IRIX in almost a decade, so I can't remember what the >> convention is. =C2=A0I don't even know if there's software in ports that >> would care. >> _______________________________________________ >> freebsd-mips@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-mips >> To unsubscribe, send any mail to "freebsd-mips-unsubscribe@freebsd.org" >> >> > From owner-freebsd-mips@FreeBSD.ORG Sat Mar 17 06:05:34 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8BB9106566B for ; Sat, 17 Mar 2012 06:05:34 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 5AEE78FC08 for ; Sat, 17 Mar 2012 06:05:34 +0000 (UTC) Received: from 63.imp.bsdimp.com (63.imp.bsdimp.com [10.0.0.63]) (authenticated bits=0) by harmony.bsdimp.com (8.14.4/8.14.3) with ESMTP id q2H65IZ4077515 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES128-SHA bits=128 verify=NO); Sat, 17 Mar 2012 00:05:18 -0600 (MDT) (envelope-from imp@bsdimp.com) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Warner Losh In-Reply-To: Date: Sat, 17 Mar 2012 00:05:08 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <980330D2-1890-48DC-8D7C-5D831F18E42D@bsdimp.com> References: To: Juli Mallett X-Mailer: Apple Mail (2.1084) X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (harmony.bsdimp.com [10.0.0.6]); Sat, 17 Mar 2012 00:05:19 -0600 (MDT) Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Unbreaking ports with n64 MIPS. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Mar 2012 06:05:34 -0000 On Mar 16, 2012, at 9:44 PM, Juli Mallett wrote: > Hey Warner & others, >=20 > Here's the patch I intend to commit in the near future, and then I'll > add an UPDATING entry and send out an E-Mail blast to the list: >=20 > http://people.freebsd.org/~jmallett/noeb.diff >=20 > I've decided not to make mips64eb (and mipseb and mipsn32eb) aliases, > but I'm willing to be convinced to do so. I went with mipseb and mips64eb for two reasons. The former because = NetBSD did it this way, and the latter for symmetry (NetBSD used mips64 = but allowed mips64eb as an alias). The n32eb ABI stuff I didn't do, and = agree with you: they aren't the architecture, since n32 binaries can = easily co-exist with n64. > It's a simple matter then > to have a single regex in the few things that report the TARGET_ARCH > or MACHINE_ARCH (e.g. GCC) that converts those aliases to the > canonical values, and to otherwise just expand the regexes in this > patch a little bit. We wouldn't report things with eb in them > anywhere, and self-hosted builds would work, but it seems like we have > a small enough community of MIPS users that this actually won't be a > big deal. I'm willing to do the work on aliases, but only if there's > strong requests. The argument for adding the alaises is transition from older release. > Two other things have come up on this thread: >=20 > 1) n32 is an ABI not a sensible TARGET_ARCH. We need TARGET_ABI. We > need GCC to report something like mips64-freebsdelf or freebsdelfn32 > or freebsdn32 or whichever. We need things to be able to detect that. > Anyone who cares about n32 should really work on making it easy to > use n32 worlds on n64 kernels. I'm happy to help with this as I have > a pretty good idea where the pitfalls are, but it's non-trivial work, > and involves putting conditionals all through the 32-bit compat code. > For worlds, n32 should not be a TARGET_ARCH. Kernels should not be > n32. And so on. This is a bigger discussion. Several issues: (1) Multilib. If we had multilib, then we can build one or more of = {o32, n32, n64}. Then the ABI decision would be what to build for the = entire system. SGI used n64 for everything. Other systems have a = default ABI that we build. (2) What's the default ABI that tools produce? Is this tied to = MACHINE_ARCH? We spent a lot of time making sure that we have the right = default tools so we build everything correctly. (3) Do we support building other ABIs as part of the build system. We = had that before, but TARGET_BIG_ENDIAN removal killed that. There's = pros and cons of adding support here. Multiple ABIs does junk up a lot = of places in very machine specific ways. Lots of places need tweaking = if we go back to this. MACHINE_ABI is what we need. But do we really need it? If we want to = support building different ABIs for the same MACHINE_ARCH, then we'll = need some way to persist this so we can be self-hosting. Right now the = 'make this the default ABI' method for gcc/binutils persists this = information and makes things work nicely. sysctl likely is the way to = go here. mips*n32* has always been a hack of convenience. I'm pretty sure we're = the only ones that do it. > 2) Soft- vs. hard-float. How should a user select? We used to have > some way, I know, for x86 systems which needed soft float, so they > didn't use the slower fp emulation in the kernel. I'm sure that this has decayed into dust. I tried to get gcc to = generate -msoft-float on x86, and it just didn't work. Today, I think = we burn this into the default settings of the toolchain we use to = bootstrap the system. We can have a knob for it, but it is purely a = userland concept: there's no floating point in the kernel to speak of. = MACHINE_FLOAT=3D{hard,soft} might not be a bad idea, with the value = exported via sysctl. Not sure if make needs to grow support for this = and MACHINE_ABI, or if it would suffice for the necessary Makefiles = and/or .mk files to query the sysctl value. > Another conversation I want to have is about pmap, and since I don't > want to write out enough to start a whole thread about it, and I hope > everyone's reading this, and I've already covered some far afield > stuff, here: >=20 > We need to be thinking about superpages. This is non-trivial even > though MIPS is just about ideal for superpages. For one thing, it'd > be really nice if we did not split TLB entries as we currently do, so > the default PAGE_SIZE would be 8K, and then we wouldn't have to deal > with TLB behavior where superpages are involved. Does the TLB always > use the nearest match? How does it impact performance to have two TLB > entries covering the same range of addresses? It depends on how the > hardware implements TLB lookups, yes? Wouldn't it be nice to not have > to split the TLB? Wouldn't it? I know I bring this up a lot, but it > seems like it really would make superpages just slightly less ugly. I > mean, you do tlbp and you find that your VA is covered by the TLB, but > the entry it's in is split, and your VA isn't covered by a superpage, > but the one in the TLB is, so you have to add a more specific entry, > and suddenly all of your functions using the TLB have gotten > non-trivially complex. >=20 > Have I missed a trick? Doesn't cache aliasing occur when you have multiple TLBs pointing to the = same physical page, which is a MIPSy no-no? I haven't thought about this in ages. I believe that it is complex to = design, but relatively simple to implement. I did some preliminary = looking into this a couple of years ago, but never made it out of the = early explorer stage for want of time. Warner > Thanks, > Juli. >=20 > On Thu, Mar 15, 2012 at 09:17, Warner Losh wrote: >> Hi Juli, >>=20 >> I'd be fine with mips64 and mips64eb being the same, and moving from = the former to the latter as the uname reported value. I almost did it = when I was doing the stuff, but the pedants were against me and I didn't = have any good amo to push back at them. This would be a good reason. = The code was a little simpler when I always specified the eb on the end = for all mips ports, so there's some tricks in the tree to keep = expressions from getting too gross you'll have to watch out for. >>=20 >> As for IRIX, n32 binaries were run on it, but there never was a n32 = kernel that I recall. It was just a funky ABI that you could compile = your programs to if they had problems with the n64 ABI. So the OS = didn't report anything special there. Our notion of an n32 kernel is = historically a bit funkadelic. >>=20 >> Warner >>=20 >>=20 >> On Mar 15, 2012, at 1:46 AM, Juli Mallett wrote: >>=20 >>> All, >>>=20 >>> Does anyone object to changing the target name of mips64eb to be >>> rendered as mips64? It's difficult to build ports because although >>> the redundant "mipseb" as widely-recognized as synonymous as "mips", >>> our quirky use of "mips64eb" instead of "mips64" just plain breaks >>> stuff. "mips64el" is, of course, recognized, but it's generally >>> assumed that MIPS is big-endian by default. I understand this >>> assumption wasn't made in FreeBSD because the port that was = committed >>> focused early on a number of little-endian MIPS systems, but it = seems >>> worthwhile to switch. I'm happy to make the relevant changes. >>>=20 >>> Thanks, >>> Juli. >>>=20 >>> PS: This may only need to be changed in how we name things in our = GCC >>> and binutils to fix ports, but I'd rather change everything else to >>> match for the sake of consistency. >>>=20 >>> PPS: What to do for n32? I think mips64{,el} is right for GCC and >>> binutils, with something like "n32" in the OS name, but I haven't >>> booted IRIX in almost a decade, so I can't remember what the >>> convention is. I don't even know if there's software in ports that >>> would care. >>> _______________________________________________ >>> freebsd-mips@freebsd.org mailing list >>> http://lists.freebsd.org/mailman/listinfo/freebsd-mips >>> To unsubscribe, send any mail to = "freebsd-mips-unsubscribe@freebsd.org" >>>=20 >>>=20 >>=20 >=20 >=20 From owner-freebsd-mips@FreeBSD.ORG Sat Mar 17 07:28:54 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77243106566B for ; Sat, 17 Mar 2012 07:28:54 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id 4B7878FC15 for ; Sat, 17 Mar 2012 07:28:54 +0000 (UTC) Received: by dald2 with SMTP id d2so7663081dal.13 for ; Sat, 17 Mar 2012 00:28:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=bVEXkcJZuR7WAYWzlZ0j5wpq3bODN0p+acukt2tXDPQ=; b=QnmQEqgzSckXOk8FLgLxzp7hFxMk793JKG5eiz9iL6yoSTA50LTkU3u4iTMzk3nSc3 m1Z70U5l+9Uo3GROpoAhlcocfQFrKMCPR85z1yBo9vHuUl1nwWkaWjRGDwCXwVvjf7IP Op5p/BumiefTkM4DVFIzhy/kYZGRIRguCkVy2FbSSTLFfTguEY5h1yL7dNB0oCQ/JSDY 26joBbc8IRjBBXfLbyh/4pdTMxBQJJw7x3YJU1ieg87HjSMDJEza01+IDm+hUDeRJBXK 3tn+NPuu76L6ZzS0O1IfAhSmz6yE+aAft9cYAUj1XOLIWr/YNfOB9wQ5edOFHYdANNZJ velg== MIME-Version: 1.0 Received: by 10.68.136.231 with SMTP id qd7mr20703656pbb.28.1331969333960; Sat, 17 Mar 2012 00:28:53 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Sat, 17 Mar 2012 00:28:53 -0700 (PDT) In-Reply-To: References: Date: Sat, 17 Mar 2012 00:28:53 -0700 X-Google-Sender-Auth: qNRkOv3n6aCV6prqQRApqIV89KA Message-ID: From: Adrian Chadd To: Patrick Kelsey Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-mips@freebsd.org Subject: Re: [PATCH] MikroTik RB450G support X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Mar 2012 07:28:54 -0000 Hiya, I've added a new chip routine to set the MII clock. Chances are it doesn't change between chipset revisions and if that's the case, I'll go and update the ar724x/ar913x chipsets to do the same. Please use what I have and update your patch. let me know how it works and we'll work on merging in some more stuff for you. :) Thanks again! Adrian From owner-freebsd-mips@FreeBSD.ORG Sat Mar 17 08:23:42 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6D02F1065670 for ; Sat, 17 Mar 2012 08:23:42 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by mx1.freebsd.org (Postfix) with ESMTP id E6AD48FC19 for ; Sat, 17 Mar 2012 08:23:41 +0000 (UTC) Received: by wibhq7 with SMTP id hq7so1439083wib.13 for ; Sat, 17 Mar 2012 01:23:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=6KZXtGTUzUi+/a+q/J3fqXWukS4S1EaEDn4sR55MqSo=; b=oAkx6ywD/Zb5WNpSGplVShAAQ1crSkgm6g10k+qAydYiaJRhNCwYQrcDkU7PjhTgiX FnvlezradhVXJLxzInRe4fbBKEyNELUWEztN9Zf51qss6u15kNih33LltO5bVy2SmZn1 6LKF+Dog/RxBpDDzcLlMA8m44orfn10FkItC7GEI6r3Rhe5lZO0Jr5W69ScHfeCfrN3a sfywiBdzZmg90JrGrM/XV52kUZU8ksuAL1DxrHtE/gTaMYlGThdv7j8k9kG95sv1lfC8 hRTiwWa3mnjef+CqsjsyBG05N3K8TDx3DeA9yREf+OqUNfrqMoVLALouHYpToLaVd2n/ XXeQ== Received: by 10.180.104.137 with SMTP id ge9mr4678776wib.20.1331972615352; Sat, 17 Mar 2012 01:23:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.180.96.231 with HTTP; Sat, 17 Mar 2012 01:23:15 -0700 (PDT) In-Reply-To: <980330D2-1890-48DC-8D7C-5D831F18E42D@bsdimp.com> References: <980330D2-1890-48DC-8D7C-5D831F18E42D@bsdimp.com> From: Juli Mallett Date: Sat, 17 Mar 2012 01:23:15 -0700 Message-ID: To: Warner Losh Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQmPjkINUyF2ACMb1j6/eDgBpI1heceqgHURUv98xkLdg1Tx14FI9zkAVylLx+EDiKyyO11z Cc: "freebsd-mips@FreeBSD.org" Subject: Re: Unbreaking ports with n64 MIPS. X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Mar 2012 08:23:42 -0000 On Fri, Mar 16, 2012 at 23:05, Warner Losh wrote: > The argument for adding the alaises is transition from older release. Indeed. What do you think about Makefile.inc1 giving a helpful error if TARGET_ARCH is set to mips(n32|64)?eb so that it's somewhat more guided (i.e. it's not that the build breaks at some point due to wrong TARGET_CPUARCH) but still not the baggage of an alias? Is an alias much of a bigger win? > This is a bigger discussion. =C2=A0Several issues: > > (1) Multilib. =C2=A0If we had multilib, then we can build one or more of = {o32, n32, n64}. =C2=A0Then the ABI decision would be what to build for the= entire system. =C2=A0SGI used n64 for everything. =C2=A0Other systems have= a default ABI that we build. SGI used n32 plenty :) I still have several IRIX systems that in SGI parlance were "32-bit systems" because they were lowish-end, but they were mips3-based (the R4K and R4400 went into systems like this) and after IRIX 6.2 (IIRC) were using n32 and not o32. > (2) What's the default ABI that tools produce? =C2=A0Is this tied to MACH= INE_ARCH? =C2=A0We spent a lot of time making sure that we have the right d= efault tools so we build everything correctly. The default has to be right not just for MACHINE_ARCH but also for CPUTYPE/TARGET_CPUTYPE. I've complained about the binutils shortcoming that necessitates this before, but I'm still not happy about it. Perhaps our MACHINE_ARCH should be more like an ISA if we have a more mature notion of ABI, and then much of the need for TARGET_CPUTYPE goes away. > (3) Do we support building other ABIs as part of the build system. =C2=A0= We had that before, but TARGET_BIG_ENDIAN removal killed that. =C2=A0There'= s pros and cons of adding support here. =C2=A0Multiple ABIs does junk up a = lot of places in very machine specific ways. =C2=A0Lots of places need twea= king if we go back to this. Did it kill that? -mabi=3D{32,n32,64} works with my n64 base system. -mabi=3Do64 fails wrongly, but o64 has never been quite right with our binutils. > MACHINE_ABI is what we need. =C2=A0But do we really need it? =C2=A0If we = want to support building different ABIs for the same MACHINE_ARCH, then we'= ll need some way to persist this so we can be self-hosting. =C2=A0Right now= the 'make this the default ABI' method for gcc/binutils persists this info= rmation and makes things work nicely. =C2=A0sysctl likely is the way to go = here. I think we are trying to persist too many parameters, really. ISA and ABI (including endianness) are really what we have to persist, but we're doing it piecemeal in slightly-contradictory ways in several places, and are talking about adding more. It sucks. I'm also not sure how we solve it well. I think moving FreeBSD to a triple-like model in which it's all in one place and easy to parse out would be nice. ISA, ISA variant, ABI, Endianness. Kernels inherently have each of those, too, but can support variations of at least the last two in userland, and so the possibility of persisting these things through a sysctl is I think problematic. I have an n64 kernel and an o32 world, why should self-hosting (without overrides) mean I end up with an o32 kernel? > I'm sure that this has decayed into dust. =C2=A0I tried to get gcc to gen= erate -msoft-float on x86, and it just didn't work. =C2=A0Today, I think we= burn this into the default settings of the toolchain we use to bootstrap t= he system. =C2=A0We can have a knob for it, but it is purely a userland con= cept: there's no floating point in the kernel to speak of. =C2=A0MACHINE_FL= OAT=3D{hard,soft} might not be a bad idea, with the value exported via sysc= tl. =C2=A0Not sure if make needs to grow support for this and MACHINE_ABI, = or if it would suffice for the necessary Makefiles and/or .mk files to quer= y the sysctl value. I'd argue that floatness is a part of the ISA variant sort of field above. mips64r2-octeon-n64-big has soft float, for example. mips64r2-softfloat-n64-big does, too. If one compiles for a specific CPU family as the ISA variant, then floating point is usually consistent. Otherwise, are there other variations on the ISA that one cares about other than floating point? Perhaps soon: hypervisor. I want this all in one place, though. Old BSD/Mach-style plus-and-minus config strings? mips:mips64r2+hypervisor-fp:n64:big? >> We need to be thinking about superpages. =C2=A0This is non-trivial even >> though MIPS is just about ideal for superpages. =C2=A0For one thing, it'= d >> be really nice if we did not split TLB entries as we currently do, so >> the default PAGE_SIZE would be 8K, and then we wouldn't have to deal >> with TLB behavior where superpages are involved. =C2=A0Does the TLB alwa= ys >> use the nearest match? =C2=A0How does it impact performance to have two = TLB >> entries covering the same range of addresses? =C2=A0It depends on how th= e >> hardware implements TLB lookups, yes? =C2=A0Wouldn't it be nice to not h= ave >> to split the TLB? =C2=A0Wouldn't it? =C2=A0I know I bring this up a lot,= but it >> seems like it really would make superpages just slightly less ugly. =C2= =A0I >> mean, you do tlbp and you find that your VA is covered by the TLB, but >> the entry it's in is split, and your VA isn't covered by a superpage, >> but the one in the TLB is, so you have to add a more specific entry, >> and suddenly all of your functions using the TLB have gotten >> non-trivially complex. > > Doesn't cache aliasing occur when you have multiple TLBs pointing to the = same physical page, which is a MIPSy no-no? I don't mean to suggest doing that. I mean that TLB Lo0 and TLB Lo1 point to successive physical pages coming from a single PTE. So you have 8K pages in the VM system which are automatically translated into two 4K pages in a single TLB entry. Otherwise, when you have superpages, and you have a 256MB region followed by a 4K page, the superpage TLB entry is going to have a valid Lo0 and an invalid Lo1 and then you have to have a separate 4K-page TLB entry for the VA of the 4K page. So at least for superpages, you have to always not share the TLB entry (and just have TLB Lo0 and Lo1 point to successive physical superpages; if the VM system were aware of this page-splitting, you could use a 512MB superpage with two non-contiguous 256MB regions, but I don't think anyone wants to try to make that work.) You can still share TLB entries for 4K pages, but at that point I'd rather not, y'know? Also, which superpage sizes do we support? For quick lookups, remembering that we have software page tables, we'd probably only want to support those that align with the levels of our page tables, yes? So that you just check the low bits of the address when walking the page tables and you can quickly tell that you've hit a superpage and don't actually need to load the next level. That sucks, because MIPS supports much better granularity, but otherwise TLB refills are a nightmare. If we need to double the size of the kernel stack or the PCPU or some other wired region, we can use a smaller superpage, but do we have a good way to handle things in the page table? With 64-bit PTEs we have a lot more software-usable bits, so we can just copy the PTE into all the PTE slots covered by the superpage mapping, and that opens up most of our superpage sizes, but at the cost of bigger page tables. If you do it that way, it's easy to design and easy to implement, modulo the need to ensure that your superpages are actually twice the size of half the TLB entry :) > I haven't thought about this in ages. =C2=A0I believe that it is complex = to design, but relatively simple to implement. =C2=A0I did some preliminary= looking into this a couple of years ago, but never made it out of the earl= y explorer stage for want of time. Implementing superpages is easy. Not sharing TLB entries is easy. Flipping the switch is not. When I last did this with FreeBSD as-is, extant binaries simply broke, since our image activator couldn't handle semipage-aligned executables. From owner-freebsd-mips@FreeBSD.ORG Sat Mar 17 21:29:30 2012 Return-Path: Delivered-To: freebsd-mips@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1AEEB106564A for ; Sat, 17 Mar 2012 21:29:30 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id E53828FC1F for ; Sat, 17 Mar 2012 21:29:29 +0000 (UTC) Received: by dald2 with SMTP id d2so8460516dal.13 for ; Sat, 17 Mar 2012 14:29:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=mdKOKZJ/7PPJI/ifA8wMx/S/8QAGg/iOlnMmrxLGg8Q=; b=PW2LuI+mPkkfPpLAfv3hEp4k6CS30magVI4uas5plNxFKjv4eKE9eeJiz9ujDVM9/X LSDyelCWTnnAFPrTBPTk6d/YXbayE+rfKO9LFsIP0GsC0GTYxFG6m3goxyrQl/wHSLbM 258YnjWb+nhCG1xNpqkf1pTvwrFKMAxEx9C0V7EijoYzgyy7jXU6aR7x+SPB8BJG72kE Uwim2JSanN7kBfH80DeK9gAapvkKxscV3I36p95HnBS/idf3OpKyawsnZUBBp+wrZ5cX /ARhj732sG4Hgic/tAORWE4AxtivWbcyd2JF8aSTfSb0SeyoV/C2AgOWDLBb8ufoqfF4 /tpA== MIME-Version: 1.0 Received: by 10.68.231.66 with SMTP id te2mr18452738pbc.42.1332019769534; Sat, 17 Mar 2012 14:29:29 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.143.33.5 with HTTP; Sat, 17 Mar 2012 14:29:29 -0700 (PDT) Date: Sat, 17 Mar 2012 14:29:29 -0700 X-Google-Sender-Auth: 8o0YSQ8M653IwUe1BmikbTQQA6s Message-ID: From: Adrian Chadd To: freebsd-mips@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Subject: arge/switch roadmap: my plans X-BeenThere: freebsd-mips@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to MIPS List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Mar 2012 21:29:30 -0000 Hi, There's been a lot of great work done by quite a few of you but I think now it's time to finalise something that's usable right now and that we can (hopefully) build upon. Here's what I'm going to do: * I'm going to separate out arge into the MII bus part and the ethernet controller part. I'm not sure whether that'll be an "arge controller" that supports the MII bus, then the ethernet controller is a child of that.. or whether I have two separate devices with suitable locking and enforce the probe/attach order somehow, I'm not sure. Suffice to say, I'm going to do that split. I realise that's not the "right" solution for all the PHY<->MDIOBUS mapping that's going on but it solves our immediate problem with this mess. * I'm then going to remove the phymask stuff from arge and rely on the miibus phymask code. * I'm going to introduce a new configuration option for arge which specifies whether to use a forced media/duplex setting and no PHY (to support current setups) or to attach an MII device. * I'm going to introduce a new configuration option for arge which specifies whether to ignore the MII clock (as is right now), or force it to something, or lock it to the port speed settings. That should keep Pat happy. * I'm going to undo the arge hack that makes arge0/arge1 MDIO register access map to arge0 only (which is only true for ar71xx), so AR724x and AR913x configurations become possible. At this point AR71xx boards that have multiple PHYs will need configuration changes as they'll have multiple PHYs on the same bus. This last step will break boards which have a PHY for arge1 - for example, the PB47. We'll need a way to be able to say that the PHY for arge1 is actually on argec0 rather than argec1. At this point we can start integrating switch PHY support. Any questions/comments/issues? Adrian