Re: [U-Boot] [PATCH v2 11/17] pylibfdt: Sync up with upstream

2019-11-05 Thread sjg
Sync up the libfdt Python bindings with upstream, commit:

430419c (tests: fix some python warnings)

Signed-off-by: Simon Glass 
---

Changes in v2: None

 scripts/dtc/pylibfdt/libfdt.i_shipped | 45 ---
 1 file changed, 33 insertions(+), 12 deletions(-)

Applied to u-boot-fdt
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 11/17] pylibfdt: Sync up with upstream

2019-10-31 Thread Simon Glass
Sync up the libfdt Python bindings with upstream, commit:

430419c (tests: fix some python warnings)

Signed-off-by: Simon Glass 
---

Changes in v2: None

 scripts/dtc/pylibfdt/libfdt.i_shipped | 45 ---
 1 file changed, 33 insertions(+), 12 deletions(-)

diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped 
b/scripts/dtc/pylibfdt/libfdt.i_shipped
index 53b70f8f5e..e2aa7bb01e 100644
--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
@@ -92,7 +92,7 @@ def check_err(val, quiet=()):
 Raises
 FdtException if val < 0
 """
-if val < 0:
+if isinstance(val, int) and val < 0:
 if -val not in quiet:
 raise FdtException(val)
 return val
@@ -417,7 +417,7 @@ class FdtRo(object):
quiet)
 if isinstance(pdata, (int)):
 return pdata
-return Property(prop_name, bytearray(pdata[0]))
+return Property(prop_name, bytes(pdata[0]))
 
 def get_phandle(self, nodeoffset):
 """Get the phandle of a node
@@ -431,6 +431,18 @@ class FdtRo(object):
 """
 return fdt_get_phandle(self._fdt, nodeoffset)
 
+def get_alias(self, name):
+"""Get the full path referenced by a given alias
+
+Args:
+name: name of the alias to lookup
+
+Returns:
+Full path to the node for the alias named 'name', if it exists
+None, if the given alias or the /aliases node does not exist
+"""
+return fdt_get_alias(self._fdt, name)
+
 def parent_offset(self, nodeoffset, quiet=()):
 """Get the offset of a node's parent
 
@@ -727,8 +739,10 @@ class FdtSw(FdtRo):
 
 # First create the device tree with a node and property:
 sw = FdtSw()
-with sw.add_node('node'):
-sw.property_u32('reg', 2)
+sw.finish_reservemap()
+with sw.add_node(''):
+with sw.add_node('node'):
+sw.property_u32('reg', 2)
 fdt = sw.as_fdt()
 
 # Now we can use it as a real device tree
@@ -1029,17 +1043,24 @@ typedef uint32_t fdt32_t;
if (!$1)
$result = Py_None;
else
-   $result = Py_BuildValue("s#", $1, *arg4);
+%#if PY_VERSION_HEX >= 0x0300
+$result = Py_BuildValue("y#", $1, *arg4);
+%#else
+$result = Py_BuildValue("s#", $1, *arg4);
+%#endif
 }
 
 /* typemap used for fdt_setprop() */
 %typemap(in) (const void *val) {
-$1 = PyString_AsString($input);   /* char *str */
-}
-
-/* typemap used for fdt_add_reservemap_entry() */
-%typemap(in) uint64_t {
-   $1 = PyLong_AsUnsignedLong($input);
+%#if PY_VERSION_HEX >= 0x0300
+if (!PyBytes_Check($input)) {
+SWIG_exception_fail(SWIG_TypeError, "bytes expected in method '" 
"$symname"
+"', argument " "$argnum"" of type '" "$type""'");
+}
+$1 = PyBytes_AsString($input);
+%#else
+$1 = PyString_AsString($input);   /* char *str */
+%#endif
 }
 
 /* typemaps used for fdt_next_node() */
@@ -1061,7 +1082,7 @@ typedef uint32_t fdt32_t;
 }
 
 %typemap(argout) uint64_t * {
-PyObject *val = PyLong_FromUnsignedLong(*arg$argnum);
+PyObject *val = PyLong_FromUnsignedLongLong(*arg$argnum);
 if (!result) {
if (PyTuple_GET_SIZE(resultobj) == 0)
   resultobj = val;
-- 
2.24.0.rc0.303.g954a862665-goog

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot