Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 15 Oct 2011 00:40:36 +0530
From:      "Jayachandran C." <jchandra@freebsd.org>
To:        Rafal Jaworowski <raj@semihalf.com>, Marcel Moolenaar <marcel@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   [RFC] FDT fix for 64 bit platforms
Message-ID:  <CA%2B7sy7AhU7WLuabx6HCtUgvEtUHWBmGe-eP=N8L9VknM65r-mg@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--0016e6d785301d9bdc04af470395
Content-Type: text/plain; charset=ISO-8859-1

I'm planning commit this -CURRENT if there an no objections.

In the current implementation, phandle is used to store a pointer to
the location inside the device tree.  Since phandle_t is u32, this
will not work on 64 bit platforms. With this fix, the phandle is the
offset from the start of device tree pointer 'fdtp', which will be 32
bit.

Review or testing from device tree users will be welcome.

JC.

--0016e6d785301d9bdc04af470395
Content-Type: application/octet-stream; name="fdt-64-fix.patch"
Content-Disposition: attachment; filename="fdt-64-fix.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gtrjnult0

Y29tbWl0IDMzMGVjM2ExMDZhNWFmZTliMWRmMTdmZmVkNzVjNzUyNWI0ZWRmMGIKQXV0aG9yOiBK
YXlhY2hhbmRyYW4gQyA8amF5YWNoYW5kcmFuY0BuZXRsb2dpY21pY3JvLmNvbT4KRGF0ZTogICBX
ZWQgT2N0IDEyIDEzOjA5OjI1IDIwMTEgKzA1MzAKCiAgICBGaXggRkRUIGNvZGUgZm9yIDY0IGJp
dAogICAgCiAgICBVc2UgdGhlIG9mZnNldCBpbnRvIHRoZSBkZXZpY2UgdHJlZSBmcm9tIGZkdHAg
YXMgdGhlIHBoYW5kbGUgaW5zdGVhZAogICAgb2YgdXNpbmcgcG9pbnRlciBpbnRvIHRoZSBkZXZp
Y2UgdHJlZS4gIFRoaXMgd2lsbCBtYWtlIHN1cmUgIHRoYXQKICAgIHBoYW5kbGUgZml0cyBpbnRv
IGEgdWludDMyX3QgdHlwZS4KCmRpZmYgLS1naXQgYS9zeXMvZGV2L29mdy9vZndfZmR0LmMgYi9z
eXMvZGV2L29mdy9vZndfZmR0LmMKaW5kZXggNjhkMzE0OS4uZjljY2MzMiAxMDA2NDQKLS0tIGEv
c3lzL2Rldi9vZncvb2Z3X2ZkdC5jCisrKyBiL3N5cy9kZXYvb2Z3L29md19mZHQuYwpAQCAtMTEy
LDE5ICsxMTIsMzkgQEAgb2Z3X2ZkdF9pbml0KG9md190IG9mdywgdm9pZCAqZGF0YSkKICAqIERl
dmljZSB0cmVlIGZ1bmN0aW9ucwogICovCiAKK3N0YXRpYyBwaGFuZGxlX3QKK2ZkdF9vZmZzZXRf
cGhhbmRsZShpbnQgb2Zmc2V0KQoreworCWlmIChvZmZzZXQgPCAwKQorCQlyZXR1cm4gKDApOwor
CXJldHVybiAoKHBoYW5kbGVfdClvZmZzZXQgKyBmZHRfb2ZmX2R0X3N0cnVjdChmZHRwKSk7Cit9
CisKIHN0YXRpYyBpbnQKIGZkdF9waGFuZGxlX29mZnNldChwaGFuZGxlX3QgcCkKIHsKLQljb25z
dCBjaGFyICpkdF9zdHJ1Y3Q7CisJaW50IHBpbnQgPSAoaW50KXA7CisJaW50IGR0b2ZmID0gZmR0
X29mZl9kdF9zdHJ1Y3QoZmR0cCk7CisKKwlpZiAocGludCA8IGR0b2ZmKQorCQlyZXR1cm4gKC0x
KTsKKwlyZXR1cm4gKHBpbnQgLSBkdG9mZik7Cit9CisKK3N0YXRpYyBpbnQKK2ZkdF9wb2ludGVy
X29mZnNldChjb25zdCB2b2lkICpwdHIpCit7CisJdWludHB0cl90IGR0X3N0cnVjdCwgcDsKIAlp
bnQgb2Zmc2V0OwogCi0JZHRfc3RydWN0ID0gKGNvbnN0IGNoYXIgKilmZHRwICsgZmR0X29mZl9k
dF9zdHJ1Y3QoZmR0cCk7CisJcCA9ICh1aW50cHRyX3QpcHRyOworCWR0X3N0cnVjdCA9ICh1aW50
cHRyX3QpZmR0cCArIGZkdF9vZmZfZHRfc3RydWN0KGZkdHApOwogCi0JaWYgKCgoY29uc3QgY2hh
ciAqKXAgPCBkdF9zdHJ1Y3QpIHx8Ci0JICAgIChjb25zdCBjaGFyICopcCA+IChkdF9zdHJ1Y3Qg
KyBmZHRfc2l6ZV9kdF9zdHJ1Y3QoZmR0cCkpKQorCWlmICgocCA8IGR0X3N0cnVjdCkgfHwKKwkg
ICAgcCA+IChkdF9zdHJ1Y3QgKyBmZHRfc2l6ZV9kdF9zdHJ1Y3QoZmR0cCkpKQogCQlyZXR1cm4g
KC0xKTsKIAotCW9mZnNldCA9IChjb25zdCBjaGFyICopcCAtIGR0X3N0cnVjdDsKKwlvZmZzZXQg
PSBwIC0gZHRfc3RydWN0OwogCWlmIChvZmZzZXQgPCAwKQogCQlyZXR1cm4gKC0xKTsKIApAQCAt
MTM1LDE1ICsxNTUsMTMgQEAgZmR0X3BoYW5kbGVfb2Zmc2V0KHBoYW5kbGVfdCBwKQogc3RhdGlj
IHBoYW5kbGVfdAogb2Z3X2ZkdF9wZWVyKG9md190IG9mdywgcGhhbmRsZV90IG5vZGUpCiB7Ci0J
cGhhbmRsZV90IHA7CiAJaW50IGRlcHRoLCBvZmZzZXQ7CiAKIAlpZiAobm9kZSA9PSAwKSB7CiAJ
CS8qIEZpbmQgcm9vdCBub2RlICovCiAJCW9mZnNldCA9IGZkdF9wYXRoX29mZnNldChmZHRwLCAi
LyIpOwotCQlwID0gKHBoYW5kbGVfdClmZHRfb2Zmc2V0X3B0cihmZHRwLCBvZmZzZXQsIHNpemVv
ZihwKSk7CiAKLQkJcmV0dXJuIChwKTsKKwkJcmV0dXJuIChmZHRfb2Zmc2V0X3BoYW5kbGUob2Zm
c2V0KSk7CiAJfQogCiAJb2Zmc2V0ID0gZmR0X3BoYW5kbGVfb2Zmc2V0KG5vZGUpOwpAQCAtMTU1
LDEwICsxNzMsOCBAQCBvZndfZmR0X3BlZXIob2Z3X3Qgb2Z3LCBwaGFuZGxlX3Qgbm9kZSkKIAkg
ICAgb2Zmc2V0ID0gZmR0X25leHRfbm9kZShmZHRwLCBvZmZzZXQsICZkZXB0aCkpIHsKIAkJaWYg
KGRlcHRoIDwgMCkKIAkJCXJldHVybiAoMCk7Ci0JCWlmIChkZXB0aCA9PSAxKSB7Ci0JCQlwID0g
KHBoYW5kbGVfdClmZHRfb2Zmc2V0X3B0cihmZHRwLCBvZmZzZXQsIHNpemVvZihwKSk7Ci0JCQly
ZXR1cm4gKHApOwotCQl9CisJCWlmIChkZXB0aCA9PSAxKQorCQkJcmV0dXJuIChmZHRfb2Zmc2V0
X3BoYW5kbGUob2Zmc2V0KSk7CiAJfQogCiAJcmV0dXJuICgwKTsKQEAgLTE2OCw3ICsxODQsNiBA
QCBvZndfZmR0X3BlZXIob2Z3X3Qgb2Z3LCBwaGFuZGxlX3Qgbm9kZSkKIHN0YXRpYyBwaGFuZGxl
X3QKIG9md19mZHRfY2hpbGQob2Z3X3Qgb2Z3LCBwaGFuZGxlX3Qgbm9kZSkKIHsKLQlwaGFuZGxl
X3QgcDsKIAlpbnQgZGVwdGgsIG9mZnNldDsKIAogCW9mZnNldCA9IGZkdF9waGFuZGxlX29mZnNl
dChub2RlKTsKQEAgLTE4MCwxMCArMTk1LDggQEAgb2Z3X2ZkdF9jaGlsZChvZndfdCBvZncsIHBo
YW5kbGVfdCBub2RlKQogCSAgICBvZmZzZXQgPSBmZHRfbmV4dF9ub2RlKGZkdHAsIG9mZnNldCwg
JmRlcHRoKSkgewogCQlpZiAoZGVwdGggPCAwKQogCQkJcmV0dXJuICgwKTsKLQkJaWYgKGRlcHRo
ID09IDEpIHsKLQkJCXAgPSAocGhhbmRsZV90KWZkdF9vZmZzZXRfcHRyKGZkdHAsIG9mZnNldCwg
c2l6ZW9mKHApKTsKLQkJCXJldHVybiAocCk7Ci0JCX0KKwkJaWYgKGRlcHRoID09IDEpCisJCQly
ZXR1cm4gKGZkdF9vZmZzZXRfcGhhbmRsZShvZmZzZXQpKTsKIAl9CiAKIAlyZXR1cm4gKDApOwpA
QCAtMTkzLDcgKzIwNiw2IEBAIG9md19mZHRfY2hpbGQob2Z3X3Qgb2Z3LCBwaGFuZGxlX3Qgbm9k
ZSkKIHN0YXRpYyBwaGFuZGxlX3QKIG9md19mZHRfcGFyZW50KG9md190IG9mdywgcGhhbmRsZV90
IG5vZGUpCiB7Ci0JcGhhbmRsZV90IHA7CiAJaW50IG9mZnNldCwgcGFyb2Zmc2V0OwogCiAJb2Zm
c2V0ID0gZmR0X3BoYW5kbGVfb2Zmc2V0KG5vZGUpOwpAQCAtMjAxLDE1ICsyMTMsMTMgQEAgb2Z3
X2ZkdF9wYXJlbnQob2Z3X3Qgb2Z3LCBwaGFuZGxlX3Qgbm9kZSkKIAkJcmV0dXJuICgwKTsKIAog
CXBhcm9mZnNldCA9IGZkdF9wYXJlbnRfb2Zmc2V0KGZkdHAsIG9mZnNldCk7Ci0JcCA9IChwaGFu
ZGxlX3QpZmR0X29mZnNldF9wdHIoZmR0cCwgcGFyb2Zmc2V0LCBzaXplb2YocGhhbmRsZV90KSk7
Ci0JcmV0dXJuIChwKTsKKwlyZXR1cm4gKGZkdF9vZmZzZXRfcGhhbmRsZShwYXJvZmZzZXQpKTsK
IH0KIAogLyogUmV0dXJuIHRoZSBwYWNrYWdlIGhhbmRsZSB0aGF0IGNvcnJlc3BvbmRzIHRvIGFu
IGluc3RhbmNlIGhhbmRsZS4gKi8KIHN0YXRpYyBwaGFuZGxlX3QKIG9md19mZHRfaW5zdGFuY2Vf
dG9fcGFja2FnZShvZndfdCBvZncsIGloYW5kbGVfdCBpbnN0YW5jZSkKIHsKLQlwaGFuZGxlX3Qg
cDsKIAlpbnQgb2Zmc2V0OwogCiAJLyoKQEAgLTIyMyw4ICsyMzMsNyBAQCBvZndfZmR0X2luc3Rh
bmNlX3RvX3BhY2thZ2Uob2Z3X3Qgb2Z3LCBpaGFuZGxlX3QgaW5zdGFuY2UpCiAJaWYgKG9mZnNl
dCA8IDApCiAJCXJldHVybiAoLTEpOwogCi0JcCA9IChwaGFuZGxlX3QpZmR0X29mZnNldF9wdHIo
ZmR0cCwgb2Zmc2V0LCBzaXplb2YocGhhbmRsZV90KSk7Ci0JcmV0dXJuIChwKTsKKwlyZXR1cm4g
KGZkdF9vZmZzZXRfcGhhbmRsZShvZmZzZXQpKTsKIH0KIAogLyogR2V0IHRoZSBsZW5ndGggb2Yg
YSBwcm9wZXJ0eSBvZiBhIHBhY2thZ2UuICovCkBAIC0zNDMsNyArMzUyLDcgQEAgb2Z3X2ZkdF9u
ZXh0cHJvcChvZndfdCBvZncsIHBoYW5kbGVfdCBwYWNrYWdlLCBjb25zdCBjaGFyICpwcmV2aW91
cywgY2hhciAqYnVmLAogCWlmIChwcm9wID09IE5VTEwpCiAJCXJldHVybiAoLTEpOwogCi0Jb2Zm
c2V0ID0gZmR0X3BoYW5kbGVfb2Zmc2V0KChwaGFuZGxlX3QpcHJvcCk7CisJb2Zmc2V0ID0gZmR0
X3BvaW50ZXJfb2Zmc2V0KHByb3ApOwogCXJ2ID0gZmR0X25leHRwcm9wKG9mZnNldCwgYnVmLCBz
aXplKTsKIAlyZXR1cm4gKHJ2KTsKIH0KQEAgLTM3NCwxNCArMzgzLDEwIEBAIG9md19mZHRfY2Fu
b24ob2Z3X3Qgb2Z3LCBjb25zdCBjaGFyICpkZXZpY2UsIGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikK
IHN0YXRpYyBwaGFuZGxlX3QKIG9md19mZHRfZmluZGRldmljZShvZndfdCBvZncsIGNvbnN0IGNo
YXIgKmRldmljZSkKIHsKLQlwaGFuZGxlX3QgcDsKIAlpbnQgb2Zmc2V0OwogCiAJb2Zmc2V0ID0g
ZmR0X3BhdGhfb2Zmc2V0KGZkdHAsIGRldmljZSk7Ci0KLQlwID0gKHBoYW5kbGVfdClmZHRfb2Zm
c2V0X3B0cihmZHRwLCBvZmZzZXQsIHNpemVvZihwKSk7Ci0KLQlyZXR1cm4gKHApOworCXJldHVy
biAoZmR0X29mZnNldF9waGFuZGxlKG9mZnNldCkpOwogfQogCiAvKiBSZXR1cm4gdGhlIGZ1bGx5
IHF1YWxpZmllZCBwYXRobmFtZSBjb3JyZXNwb25kaW5nIHRvIGFuIGluc3RhbmNlLiAqLwo=
--0016e6d785301d9bdc04af470395--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2B7sy7AhU7WLuabx6HCtUgvEtUHWBmGe-eP=N8L9VknM65r-mg>