--- /dev/null
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Tue, 21 Apr 2020 19:05:41 +0100
+Received: from localhost ([::1] helo=libre-riscv.org)
+ by libre-soc.org with esmtp (Exim 4.89)
+ (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+ id 1jQxHA-0002Nf-7U; Tue, 21 Apr 2020 19:05:40 +0100
+Received: from localhost ([127.0.0.1] helo=bugs.libre-soc.org)
+ by libre-soc.org with esmtp (Exim 4.89)
+ (envelope-from <bugzilla-daemon@libre-soc.org>) id 1jQxH8-0002NQ-7I
+ for libre-riscv-dev@lists.libre-riscv.org; Tue, 21 Apr 2020 19:05:38 +0100
+From: bugzilla-daemon@libre-soc.org
+To: libre-riscv-dev@lists.libre-riscv.org
+Date: Tue, 21 Apr 2020 18:05:38 +0000
+X-Bugzilla-Reason: CC
+X-Bugzilla-Type: changed
+X-Bugzilla-Watch-Reason: None
+X-Bugzilla-Product: Libre-SOC's first SoC
+X-Bugzilla-Component: Hardware Layout
+X-Bugzilla-Version: unspecified
+X-Bugzilla-Keywords:
+X-Bugzilla-Severity: enhancement
+X-Bugzilla-Who: lkcl@lkcl.net
+X-Bugzilla-Status: CONFIRMED
+X-Bugzilla-Resolution:
+X-Bugzilla-Priority: ---
+X-Bugzilla-Assigned-To: tanner.of.kha@gmail.com
+X-Bugzilla-Flags:
+X-Bugzilla-Changed-Fields:
+Message-ID: <bug-217-13-1DNGkM2vdE@https.bugs.libre-soc.org/>
+In-Reply-To: <bug-217-13@https.bugs.libre-soc.org/>
+References: <bug-217-13@https.bugs.libre-soc.org/>
+X-Bugzilla-URL: https://bugs.libre-soc.org/
+Auto-Submitted: auto-generated
+MIME-Version: 1.0
+Subject: [libre-riscv-dev] [Bug 217] create a "ring" system which allows pad
+ locations to be specified conveniently
+X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
+X-Mailman-Version: 2.1.23
+Precedence: list
+List-Id: Libre-RISCV General Development
+ <libre-riscv-dev.lists.libre-riscv.org>
+List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
+List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
+List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
+List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
+List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
+Reply-To: Libre-RISCV General Development
+ <libre-riscv-dev@lists.libre-riscv.org>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
+Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
+
+aHR0cHM6Ly9idWdzLmxpYnJlLXNvYy5vcmcvc2hvd19idWcuY2dpP2lkPTIxNwoKLS0tIENvbW1l
+bnQgIzgxIGZyb20gTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4g
+LS0tCihJbiByZXBseSB0byBKZWFuLVBhdWwuQ2hhcHV0IGZyb20gY29tbWVudCAjODApCgo+ICAg
+RHVoPyBJdCBzZWVtcyBvayB0byBtZSwgYWNjb3JkaW5nIHRvIHRoZSBuZXRsaXN0IG9mIGFsdTE2
+LCB0b3AgbGV2ZWwKPiAgICJhKDIpIiBpcyBjb25uZWN0ZWQgb25seSB0byAiYWRkIiBhbmQgInN1
+YiIuIFBsdWcgcmVwcmVzZW50IGxvZ2ljYWwKPiAgIGNvbm5leGlvbnMsIHNvIHRoZXkgY2Fubm90
+IGJlICJwbGFjZWQiLiBUaGUgaW5zdGFuY2UgdGhleSBiZWxvbmcgdG8sCj4gICBob3dldmVyLCBt
+YXkgYmUgcGxhY2VkLiBXaGF0IFBsdWcgY29ubmVjdGVkIHRvICJhKDIpIiBkbyB5b3UgbWlzcz8K
+CnRjaCwgdGNoLCB5b3UgYXJlIHJpZ2h0LiAgaSBuZWVkZWQgYWRkX28oMikgYW5kIHN1Yl9vKDIp
+LgoKICAgICAgICBmaW5kID0gc2VsZi5nZXRfbmV0X2Nvbm5lY3Rpb25zKFsnYWRkX28oMCknLCAn
+c3ViX28oMCknLCAnbygwKSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgWydjbGsnLCAncnN0J10pCgptb3JlIFsnb3AnLCAnYWJjXzgyOV9uZXdfbjUxJywgJ29wJywg
+J2FiY184MjlfbmV3X241MScsICdvX25leHQoMCknXQpzZXQoW1sweDdmZTViM2RkOTExMDwtPjB4
+NTVjN2I0Yjc3YjEwIDxpZDozNDMzIEluc3RhbmNlIHN1YmNrdF8wX25teDJfeDEKbm14Ml94MT5d
+LCBbMHg3ZmU1YjNkZDkxMzA8LT4weDU1YzdiNGI5MmIzMCA8aWQ6MzgwMSBJbnN0YW5jZSBzdWJj
+a3RfMzJfc2ZmMV94NApzZmYxX3g0Pl1dKQoKYXQgdGhlIGZpcnN0IGxldmVsIG9mIHJlY3Vyc2lv
+biwgaXQgc2VlbXMgdG8gYmUgd29ya2luZy4gIGZvciBhIGdpdmVuIHZhbHVlIG9mCndvcmsuCgp0
+aGlzIHdpbGwsIHJlY3Vyc2l2ZWx5LCBncmFiIGFsbCB1bmNvbm5lY3RlZCBuZXRzIHRoYXQgYXJl
+IGNvbm5lY3RlZCB0byBuZXRzCnRoYXQgYXJlLi4uIGV0Yy4KCmhvd2V2ZXIgdGhhdCBpcyB0b28g
+bXVjaC4KCnRoaXMgYWxnb3JpdGhtIGNhbiBiZSB1c2VkIHRvIHJlc29sdmUgYWxsIHBhdGhzIGJl
+dHdlZW4gdHdvIHBvaW50czogCmh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZG9jL2Vzc2F5cy9ncmFw
+aHMvCgpzbyBieSBrbm93aW5nIHRoYXQgd2Ugd2FudCBhbGwgY29tcG9uZW50cyBpbnZvbHZlZCBp
+biBhZGRfMCgwKSwgc3ViX28oMCkKYW5kIG8oMCkgaXQgaXMgcG9zc2libGUgdG8gZmluZC4uLgoK
+aG1tbS4uLiBuZXQgIm9wIiBpcyBhIHByb2JsZW0uICBpZiB5b3UgdHJhdmVyc2UgIm9wIiBpdCBn
+b2VzIGV2ZXJ5d2hlcmUuCgpieSBleGNsdWRpbmcgIm9wIiBhcyBhIHBvc3NpYmlsaXR5LCBpIG1h
+bmFnZWQgdG8gZ2V0IGl0IHRvICJ3b3JrIgpyZWN1cnNpdmVseToKCiAgICAgICAgZmluZCA9IHNl
+bGYuZ2V0X25ldF9jb25uZWN0aW9ucyhbJ2FkZF9vKDEpJywgJ3N1Yl9vKDEpJywgJ28oMSknXSwK
+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnY2xrJywgJ3JzdCcsICdv
+cCddKQoKc2V0KFtbMHg3ZjEzY2U4NmMwNzA8LT4weDU1OWNiNTM1YmMyMCA8aWQ6Mzc2OSBJbnN0
+YW5jZSBzdWJja3RfMzNfc2ZmMV94NApzZmYxX3g0Pl0sIFsweDdmMTNjZTg2YzEzMDwtPjB4NTU5
+Y2I1MzVhNjgwIDxpZDozNzU1IEluc3RhbmNlIHN1YmNrdF8yX25teDJfeDEKbm14Ml94MT5dLCBb
+MHg3ZjEzY2U4NmMxOTA8LT4weDU1OWNiNTM1MjEwMCA8aWQ6MzY2OCBJbnN0YW5jZSBzdWJja3Rf
+M19ubzJfeDEKbm8yX3gxPl1dKQoKZmlyc3QgbGlzdCBpcyB3aGF0IGlzIHdhbnRlZCAoc3RhcnQg
+cG9zaXRpb24pLCBzZWNvbmQgbGlzdCBpcyB3aGF0IHlvdSBkbwoqbm90KiB3YW50LiAgYW55dGhp
+bmcgYWxyZWFkeSBmb3VuZCB3aWxsIGJlIGFkZGVkIHJlY3Vyc2l2ZWx5IHRvIHRoZSBzZWNvbmQK
+bGlzdC4KCi0tIApZb3UgYXJlIHJlY2VpdmluZyB0aGlzIG1haWwgYmVjYXVzZToKWW91IGFyZSBv
+biB0aGUgQ0MgbGlzdCBmb3IgdGhlIGJ1Zy4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxpbmcgbGlzdApsaWJyZS1yaXNj
+di1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0cy5saWJyZS1yaXNjdi5vcmcv
+bWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK
+