Re: [U-Boot] [PATCH 0/3] dtoc: Add support for 64-bit addresses

2017-08-14 Thread Dr. Philipp Tomsich
Simon,

> On 20 Jun 2017, at 05:34, Simon Glass  wrote:
> 
> This series updates dtoc to support 64-bit addresses automatically. These
> appear in C code as fdt64_t arrays:
> 
> struct dtd_test1 {
>   fdt64_t reg[2];
> 
> };
> 
> static struct dtd_test1 dtv_test1 = {
>   .reg= {0x1234, 0x5678},
> };
> 
> C code can then process these address and size parents easily. This
> feature is controlled by the #address-cells and #size-cells values of the
> parent.
> 
> 
> Simon Glass (3):
>  dtoc: Adjust Node to record its parent
>  dtoc: Add a 64-bit type and a way to convert cells into 64 bits
>  dtoc: Add support for 32 or 64-bit addresses
> 
> tools/dtoc/dtb_platdata.py |  62 +++
> tools/dtoc/dtoc_test_addr32.dts|  27 +
> tools/dtoc/dtoc_test_addr32_64.dts |  33 ++
> tools/dtoc/dtoc_test_addr64.dts|  33 ++
> tools/dtoc/dtoc_test_addr64_32.dts |  33 ++
> tools/dtoc/fdt.py  |  14 +--
> tools/dtoc/fdt_util.py |  14 +++
> tools/dtoc/test_dtoc.py| 212 +
> 8 files changed, 422 insertions(+), 6 deletions(-)
> create mode 100644 tools/dtoc/dtoc_test_addr32.dts
> create mode 100644 tools/dtoc/dtoc_test_addr32_64.dts
> create mode 100644 tools/dtoc/dtoc_test_addr64.dts
> create mode 100644 tools/dtoc/dtoc_test_addr64_32.dts
> 
> — 

While testing this for the TPL stage of the RK3368, I triggered an error:
> Traceback (most recent call last):
>   File "./tools/dtoc/dtoc", line 76, in 
> options.output)
>   File 
> "/hgst-3tb/home/ptomsich/rk3399-spl/u-boot/tools/dtoc/dtb_platdata.py", line 
> 510, in run_steps
> plat.scan_reg_sizes()
>   File 
> "/hgst-3tb/home/ptomsich/rk3399-spl/u-boot/tools/dtoc/dtb_platdata.py", line 
> 297, in scan_reg_sizes
> addr = fdt_util.fdt_cells_to_cpu(val[i:], reg.na)
>   File "/hgst-3tb/home/ptomsich/rk3399-spl/u-boot/tools/dtoc/fdt_util.py", 
> line 41, in fdt_cells_to_cpu
> out = long(fdt32_to_cpu(val[0]))
>   File "/hgst-3tb/home/ptomsich/rk3399-spl/u-boot/tools/dtoc/fdt_util.py", 
> line 30, in fdt32_to_cpu
> return struct.unpack('>I', val)[0]
> struct.error: unpack requires a string argument of length 4
with the following DTS snippet:
>   spi@ff12 {
>   compatible = "rockchip,rk3368-spi", "rockchip,rk3066-spi";
>   reg = <0x0 0xff12 0x0 0x1000>;
>   clocks = <0xb 0x42 0xb 0x153>;
>   clock-names = "spiclk", "apb_pclk";
>   interrupts = <0x0 0x2d 0x4>;
>   #address-cells = <0x1>;
>   #size-cells = <0x0>;
>   status = "okay";
>   u-boot,dm-pre-reloc;
> 
>   w25q32dw@0 {
>   u-boot,dm-pre-reloc;
>   compatible = "spi-flash";
>   reg = <0x0>;
>   spi-max-frequency = <0x2f34f60>;
>   spi-cpol;
>   spi-cpha;
>   };
>   };

A bit of debug code shows that the error occurs during the processing of the 
'w25q32dw@0’ node.

Note that this is not a showstopper for the RK3368, as OF_PLATDATA is only used 
for TPL, which
performs a return-to-bootrom anyway (and I will be making this more explicit by 
using the 'dm-spl’
and ‘dm-tpl’ decorators).

Regards,
Phil.

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


[U-Boot] [PATCH 0/3] dtoc: Add support for 64-bit addresses

2017-06-19 Thread Simon Glass
This series updates dtoc to support 64-bit addresses automatically. These
appear in C code as fdt64_t arrays:

struct dtd_test1 {
fdt64_t reg[2];

};

static struct dtd_test1 dtv_test1 = {
.reg= {0x1234, 0x5678},
};

C code can then process these address and size parents easily. This
feature is controlled by the #address-cells and #size-cells values of the
parent.


Simon Glass (3):
  dtoc: Adjust Node to record its parent
  dtoc: Add a 64-bit type and a way to convert cells into 64 bits
  dtoc: Add support for 32 or 64-bit addresses

 tools/dtoc/dtb_platdata.py |  62 +++
 tools/dtoc/dtoc_test_addr32.dts|  27 +
 tools/dtoc/dtoc_test_addr32_64.dts |  33 ++
 tools/dtoc/dtoc_test_addr64.dts|  33 ++
 tools/dtoc/dtoc_test_addr64_32.dts |  33 ++
 tools/dtoc/fdt.py  |  14 +--
 tools/dtoc/fdt_util.py |  14 +++
 tools/dtoc/test_dtoc.py| 212 +
 8 files changed, 422 insertions(+), 6 deletions(-)
 create mode 100644 tools/dtoc/dtoc_test_addr32.dts
 create mode 100644 tools/dtoc/dtoc_test_addr32_64.dts
 create mode 100644 tools/dtoc/dtoc_test_addr64.dts
 create mode 100644 tools/dtoc/dtoc_test_addr64_32.dts

-- 
2.13.1.518.g3df882009-goog

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