--- /dev/null
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Mon, 16 Mar 2020 23:25:29 +0000
+Received: from localhost ([::1] helo=libre-riscv.org)
+ by libre-riscv.org with esmtp (Exim 4.89)
+ (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+ id 1jDz6u-0006sj-Op; Mon, 16 Mar 2020 23:25:28 +0000
+Received: from localhost ([127.0.0.1] helo=bugs.libre-riscv.org)
+ by libre-riscv.org with esmtp (Exim 4.89)
+ (envelope-from <bugzilla-daemon@libre-riscv.org>) id 1jDz6s-0006sW-5E
+ for libre-riscv-dev@lists.libre-riscv.org; Mon, 16 Mar 2020 23:25:26 +0000
+From: bugzilla-daemon@libre-riscv.org
+To: libre-riscv-dev@lists.libre-riscv.org
+Date: Mon, 16 Mar 2020 23:25:26 +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-DLxTkNtxlV@http.bugs.libre-riscv.org/>
+In-Reply-To: <bug-217-13@http.bugs.libre-riscv.org/>
+References: <bug-217-13@http.bugs.libre-riscv.org/>
+X-Bugzilla-URL: http://bugs.libre-riscv.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>
+
+aHR0cDovL2J1Z3MubGlicmUtcmlzY3Yub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcKCi0tLSBDb21t
+ZW50ICM5IGZyb20gTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2NsLm5ldD4g
+LS0tCihJbiByZXBseSB0byBKb2NrIFRhbm5lciBmcm9tIGNvbW1lbnQgIzcpCgo+IEkgcGxheWVk
+IHdpdGggdGhlIGV4YW1wbGUgZm9yIHNldmVyYWwgZGF5cywgCgpvayAtIGRvbid0IGxlYXZlIGl0
+IHNldmVyYWwgZGF5cy4gIHdlIGRvbid0IGhhdmUgdGltZSBmb3IgImkgY2FuJ3QgZ2V0IGl0IHRv
+CndvcmsgdGhlcmVmb3JlIGknbSBnb2luZyB0byBrZWVwIHF1aWV0IGFuZCBzcGVuZCB0aW1lIGJl
+Y2F1c2UgaSdtIGVtYmFycmFzc2VkCnRvIGFkbWl0IGkgY2FuJ3QgZ2V0IGl0IHRvIHdvcmsiLgoK
+dGhlICptb21lbnQqIHlvdSBjYW4ndCBnZXQgc29tZXRoaW5nIHRvIHdvcmssIHBsZWFzZSBzYXkg
+c28gKmltbWVkaWF0ZWx5Kiwgb24KaGVyZS4gIHRoaXMgaXMgKnJlYWxseSogaW1wb3J0YW50LgoK
+PiBidXQgSSBhZnJhaWQgSSBoYXZlIG5vIGFuc3dlcnMsCj4gYnV0IG9ubHkgbW9yZSBxdWVzdGlv
+bnMuCgpncmVhdC4KCj4gRmlyc3Qgb2YgYWxsLCBJJ20gbm90IHN1cmUgd2hhdCB0aGUgcmVzdWx0
+IG9mIHRoZSAnZG9BbHUxNi5weScgc2NyaXB0IHNob3VsZAo+IGJlLCBhbmQgaG93IHJ1bm5pbmcg
+b2YgdGhlIHNjcmlwdCByZWxhdGVzIHRvIHJ1bm5pbmcgJ21ha2UnIHdpdGggZGlmZmVyZW50Cj4g
+dGFyZ2V0cy4gCgp5b3UgbmVlZCB0byBydW4gIm1ha2UgbHZ4IiB0aGVuICJtYWtlIHZpZXciLiAg
+bm90aGluZyBlbHNlOiBhYnNvbHV0ZWx5IG5vdGhpbmcKZWxzZS4KCnlvdSAqbWlnaHQqIGhhdmUg
+dG8gcnVuICJtYWtlIGNsZWFuIiBpZiBzb21ldGhpbmcgaGFzIG5vdCB3b3JrZWQgYmVjYXVzZQpv
+Y2Nhc2lvbmFsbHkgdGhlIGludGVybWVkaWFyeSBmaWxlcyBhcmUgbW9kaWZpZWQgc3VjaCB0aGF0
+IG9uIHN1YnNlcXVlbnQgcnVucwp0aGV5IGFmZmVjdCBvbmdvaW5nIG91dHB1dC4KCj4gSSB0aG91
+Z2h0IEkgY2FuIGZpbmQgc29tZSBkb2N1bWVudHMgb24gdGhpcywgYnV0IEkgY291bGRuJ3QuCgp0
+aGF0J3Mgd2hhdCB0aGUgdHV0b3JpYWwgaXMgZm9yLgoKPiBJIHRoaW5rIHRoZSBzY3JpcHQgaXMg
+bm90IHdvcmtpbmcgYW55d2F5LiBUaGUgbW9zdCBJIGNhbiBnZXQgb3V0IG9mIGl0IGlzCj4gCj4g
+PiBbRVJST1JdIE5lZ29jaWF0ZVdpbmRvdzo6Y3JlYXRlVHJhY2tTZWdtZW50KCk6IE5vIHRyYWNr
+IG5lYXIgYXhpcyBvZiA8aWQ6NzY3NiBIb3Jpem9udGFsIGIoMTUpIE1FVEFMMiBbMzIwbCA0MDBs
+XSBbMzIwbCA0MDBsXSAybCBycEQ6MCAtLS0tVUMtLS1ULS0tLS1yaS10dC0+IChhZnRlciBhZGp1
+c3QpLgoKYWguICB0aGF0J3MgYSBidWcsIHRoYXQgbmVlZHMgdG8gYmUgcmVwb3J0ZWQgdG8gamVh
+bi1wYXVsLgoKaGUgd2lsbCBuZWVkIHRoZSAqRVhBQ1QqIGdpdCB2ZXJzaW9uL3JldmlzaW9uIG9m
+IGFsbCByZXBvc2l0b3JpZXMgdGhhdCB5b3UgaGF2ZQpjaGVja2VkIG91dCAoYWxsaWFuY2UsIGFs
+bGlhbmNlLWNoZWNrLXRvb2xraXQsIGNvcmlvbGlzMikKCnNvLCBmb3IgZXhhbXBsZTogaSBhbSB1
+c2luZzoKCnRvb2xraXQKCmNvbW1pdCBhYmVjMWJlYTk2NDNkNjlhYzIzMTc5MWFkOGEzMGM5NjRh
+MjM2Nzk0Ck1lcmdlOiBiMjM4MGQ2IGE5MDAzM2YKQXV0aG9yOiBKZWFuLVBhdWwgQ2hhcHV0IDxK
+ZWFuLVBhdWwuQ2hhcHV0QGxpcDYuZnI+CkRhdGU6ICAgV2VkIE1hciA0IDAxOjQwOjM5IDIwMjAg
+KzAxMDAKCiAgICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2YgZ2l0bGFiLmxpcDYuZnI6dmxzaS1l
+ZGEvYWxsaWFuY2UtY2hlY2stdG9vbGtpdAoKCmFsbGlhbmNlCgpjb21taXQgOTNjZDk4OGQwNzAz
+N2I3MWMzYjg0OTdjNGMzNzZiMWQ3ZDE1MWY3MQpBdXRob3I6IEplYW4tUGF1bCBDaGFwdXQgPEpl
+YW4tUGF1bC5DaGFwdXRAbGlwNi5mcj4KRGF0ZTogICBXZWQgTm92IDEzIDE3OjQ3OjIyIDIwMTkg
+KzAxMDAKCiAgICBTdGFibGUgQVAgcmVhZC93cml0ZSBnZW5lcmF0aW9uLgoKCgpjb3Jpb2xpcy0y
+Cgpjb21taXQgNTllZTgzNThjYWM4MjU0ZGNkOTk5YTk0NWUwN2VmNzE3NTczZTMyZQpBdXRob3I6
+IEplYW4tUGF1bCBDaGFwdXQgPEplYW4tUGF1bC5DaGFwdXRAbGlwNi5mcj4KRGF0ZTogICBXZWQg
+TWFyIDQgMDA6NTA6MTggMjAyMCArMDEwMAoKICAgIEZpcnN0IHdvcmtpbmcgcmVjdXJzaXZlIHBs
+YWNlICYgcm91dGUgKExpYnJlLVNPQyBBTFUxNiBiZW5jaG1hcmspLgoKCgphbmQgaSBqdXN0ICJn
+aXQgcHVsbGVkIiBzb2NsYXlvdXQgKGFuZCBwdXNoZWQgYW4gYWRkIG9mIGEgc3ltbGluayB0byBt
+a3N5bXMuc2gpCgphYWFhbmQuLi4uIGl0IHdvcmtzIHBlcmZlY3RseS4gICJtYWtlIGx2eCIgZm9s
+bG93ZWQgYnkgIm1ha2UgdmlldyIgZG9lcyB3aGF0IGlzCmV4cGVjdGVkLgoKbm93IGxldCBtZSBk
+byBhIGdpdCBwdWxsIGFuZCByZWJ1aWxkIG9uIGFsbCB0aHJlZSByZXBvcyAob25lIGF0IGEgdGlt
+ZSwgZmlyc3QpLgoKLi4uLiBhcnNlLiAgYWxsaWFuY2UtY2hlY2stdG9vbGtpdCBjcml0aWNhbGx5
+IHJlbGllcyBvbiB1cGRhdGVzIGluIGNvcmlvbGlzMi4gCmFyc2UuICBvayBoYXZlIHRvIGRvIGFs
+bCB0aHJlZS4KCm9rIGNvcmlvbGlzLTIgaXMgYSBiaWcgdXBkYXRlIGl0IHNlZW1zOiBhbGxpYW5j
+ZSBub3Qgc28gbXVjaC4KCm9rIHRoYXQncyBidWlsdDogaSByZS1yYW4gZXhwZXJpbWVudHM3IChh
+ZnRlciBydW5uaW5nIG1rc3ltcy5zaCBhbmQgIm1ha2UKY2xlYW4iIGFuZCwgYWdhaW4sIGl0IHdv
+cmtlZCBwZXJmZWN0bHkuCgoKPiBJcyBzb21ldGhpbmcgd3Jvbmcgd2l0aCBteSBzZXR1cD8KCndl
+IGRvbid0IGtub3cuICBkbyAibWFrZSBjbGVhbiIsICJtYWtlIGx2eCIgYW5kIChvbmx5IGlmIHRo
+YXQgd29ya3MpICJtYWtlCnZpZXciLgoKY29yaW9saXMyIGlzICpzdXBwb3NlZCogdG8gYmUgYWJz
+b2x1dGVseSByZXBsaWNhYmxlIChkZXRlcm1pbmlzdGljKSBhbmQgc28gdGhlCm91dHB1dCBpcyAq
+bm90KiBzdXBwb3NlZCB0byAiZ28gd3JvbmciIG9uIG9uZSBzeXN0ZW0gYW5kICJnbyByaWdodCIg
+b24gYW5vdGhlci4KCgo+IE9oLCBhbmQgaXQgd2FzIG9ubHkgYWZ0ZXIgSSBmaXhlZCBhbiBlcnJv
+ciB3aXRoIGZvcmdvdHRlbiBpbXBvcnQ6Cj4gCj4gKH4vYWxsaWFuY2UtY2hlY2stdG9va2l0L2Jl
+bmNocy9ubWlnZW4vQUxVMTYvZG9BbHUxNi5weTo1MjMpCj4gPiAgICAgc2hvd1B5dGhvblRyYWNl
+KCBfX2ZpbGVfXywgZSwgRmFsc2UgKQo+IAo+IGJ1dCAnc2hvd1B5dGhvblRyYWNlKCknIGlzIG5v
+dCBkZWZpbmVkLgoKZ2VuZXJhbGx5IHRoaXMga2luZCBvZiBhcHByb2FjaCAtIGNhdGNoaW5nIGFu
+IGV4Y2VwdGlvbiB0aGVuIHNob3dpbmcgaXQgLSBpcwp2ZXJ5IGJhZCBwcmFjdGljZS4gIGl0J3Mg
+YmV0dGVyIHRvIGxldCB0aGUgZXhjZXB0aW9uIGhhcHBlbiwgd2hlcmUgaXQgaGFwcGVucy4gCnRo
+ZSBleGl0IGNvZGUgKnNob3VsZCogYmUgbm9uLXplcm8gb24gZXhjZXB0aW9uIHdoaWNoIGlzIGV4
+YWN0bHkgd2hhdCBpcyB3YW50ZWQKYW55d2F5OgoKbGtjbEBmaXp6eTokIHB5dGhvbiAtYyAieCA9
+IDUgLyAwIjsgZWNobyAkPwpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmls
+ZSAiPHN0cmluZz4iLCBsaW5lIDEsIGluIDxtb2R1bGU+Clplcm9EaXZpc2lvbkVycm9yOiBpbnRl
+Z2VyIGRpdmlzaW9uIG9yIG1vZHVsbyBieSB6ZXJvCjEKbGtjbEBmaXp6eTokIHB5dGhvbiAtYyAi
+eCA9IDUgLyAxIjsgZWNobyAkPwowCgp5eXllcCwgbm9uLXplcm8gZXhpdCBjb2RlIG9uIGV4Y2Vw
+dGlvbi4gIHRoZXJlZm9yZSwgZG9pbmcgImNhdGNoIGV4Y2VwdGlvbiB0aGVuCmRvIHN5cy5leGl0
+KGNvZGUpIiBpcyBjb21wbGV0ZWx5IHVubmVjZXNzYXJ5LgoKCj4gSSB0aG91Z2h0IEkgY291bGQg
+Z2V0IHNvbWV0aGluZyBvdXQgb2YgZG9jdW1lbnRhdGlvbiwgYnV0IGl0IHNlZW1zIHZlcnkKPiBz
+Y2FyY2UgdG8gbWUuIEkgY291bGQgbm90IGZpbmQgYW4gQVBJIHJlZmVyZW5jZSBtYW51YWwgKG5l
+aXRoZXIgUHl0aG9uIG5vcgo+IEMrKyksIGJ1dCB0aGVuIEkgd2FzIHN0YXJ0aW5nIHRvIHRoaW5r
+IGl0IHdvdWxkbid0IGhlbHAgbWUgZWl0aGVyLgoKaXQncyBpbiBIVE1MIGluIHRoZSByZXBvc2l0
+b3J5LiAgbG9jYXRlIGEgZG9jcyBkaXIuICBob3dldmVyLi4uIHllcywgaXQgZG9lc24ndApoZWxw
+IGV4YWN0bHkuCgo+IEl0IGFsc28gbWFrZXMgbWUgd29uZGVyIHdoeSBhbGwgdGhlIGV4YW1wbGVz
+IGFyZSB0b3RhbGx5IGRldm9pZCBvZgo+IG1lYW5pbmdmdWwgY29tbWVudHMgb3IgZG9jc3RyaW5n
+cywgYXMgaWYgdGhleSBhcmVuJ3QgbWVhbnQgZm9yIGRpZGFjdGljCj4gcHVycG9zZXMsIGJ1dCBq
+dXN0IGZvciBzcGlubmluZyBvZmYgbmV3IGRldmljZXMuIExpa2UgYm9pbGVycGxhdGVzLiBFeGNl
+cHQKPiB0aGV5IGFyZSB0b28gYmlnIGZvciBib2lsZXJwbGF0ZXMsIGFuZCBub3QgZXhhY3RseSB3
+b3JraW5nLgoKdGltZSwgYmFzaWNhbGx5LiAgamVhbi1wYXVsJ3MgYSBsaXR0bGUgb3ZlcndoZWxt
+ZWQgd2l0aCBvdGhlciB0YXNrcy4KCgo+IEkgaG9wZSBJIHdhcyBhYmxlIHRvIHNvbWVob3cgYWRk
+cmVzcyB0aGUgaXNzdWUgb2YgY3JlYXRpbmcgdGhlIGxheWVyIEx1a2UKPiBtZW50aW9uczoKPiAK
+PiBodHRwczovL2dpdC5saWJyZS1yaXNjdi5vcmcvP3A9c29jbGF5b3V0LmdpdDthPWJsb2I7Zj1l
+eHBlcmltZW50czcvZG9BbHUxNi4KPiBweTtoYj1IRUFEI2wyNQo+IAo+IEJ1dCBvdGhlcndpc2Ug
+SSBhbSBsb3N0LiBBbmQgdGhlIG92ZXJhbGwgcXVhbGl0eSBvZiB0aGUgUHl0aG9uIGNvZGUgSSdt
+Cj4gZGVhbGluZyB3aXRoIGluIENvcmlvbGlzIG1ha2VzIG1lIHdhbnQgdG8gcG9rZSBteSBleWVz
+IG91dC4gCgppIGtub3cuICBpdCBhYnNvbHV0ZWx5IHNlcmlvdXNseSBuZWVkcyBhdXRvcGVwOCBy
+dW4gb24gaXQsIGJpZy10aW1lIC0gdGhlIHdob2xlCmxvdC4gIChleGNlcHQgYXV0b3BlcDggaGFz
+IGdvbmUgZG93bmhpbGwgYXMgaXRzIGRldmVsb3BlciBpcyBmYWlsaW5nIHRvIHJlc3BvbmQKdG8g
+YnVncmVwb3J0cykuCgppIGhhdmVuJ3QgbWVudGlvbmVkIGl0IHlldCwgYmVjYXVzZSBhdXRvcGVw
+OCwgaWYgcnVuIGluY29ycmVjdGx5LCBjYW4gZG8gcXVpdGUKYSBiaXQgb2YgcmVhZGFiaWxpdHkg
+ZGFtYWdlIChkdWUgdG8gaXRzIGRldmVsb3BlciBub3QgcHJvcGVybHkgbGlzdGVuaW5nIGFuZApu
+b3QgZml4aW5nIHJlcG9ydGVkIGJ1Z3MgdGhhdCBoYXZlIGJlZW4gdGhlcmUgZm9yIGEgbWluaW11
+bSBvZiBlaWdodCB5ZWFycywKZXZlbiB3aGVuIGkgcmVwb3J0ZWQgYSBicmFpbi1kZWFkIHRyaXZp
+YWwgcmVwcm8gY2FzZSkKCgo+IEknbSB0ZXJyaWJseQo+IHNvcnJ5IGlmIEkgb2ZmZW5kZWQgc29t
+ZW9uZSwgYnV0IGF0IHRoZSBzYW1lIHRpbWUgSSdtIHN1cmUgSSdtIG5vdCB0aGUgb25seQo+IG9u
+ZSBzYXlpbmcgdGhpcy4gSSB3b25kZXIgd2h5IGl0IGlzIHNvIGJhZCBhbmQgd2hlcmUgdG8gc3Rh
+cnQgaW1wcm92aW5nIGl0LgoKYXQgdGhlIHJpZ2h0IHRpbWUuCgpvciBpZiBpdCdzIHNlcmlvdXNs
+eSBpbnRvbGVyYWJsZSwgd2UgZG8gaGF2ZSBhIGJ1ZGdldCBhdmFpbGFibGUgZm9yIGZpeGluZwpj
+b3Jpb2xpczIgaXRzZWxmLiAgaXQgbmVlZHMgY29vcmRpbmF0aW5nIHdpdGggamVhbi1wYXVsIGFu
+ZCBtYXJpZS1taW5lcnZlIGF0CmxpcDYuCgotLSAKWW91IGFyZSByZWNlaXZpbmcgdGhpcyBtYWls
+IGJlY2F1c2U6CllvdSBhcmUgb24gdGhlIENDIGxpc3QgZm9yIHRoZSBidWcuCl9fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBtYWls
+aW5nIGxpc3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8vbGlz
+dHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==