09 Oct, 2016

6 commits


19 Sep, 2016

16 commits


26 Jul, 2016

1 commit

  • This code does not match the fdt version in fdt.py. When dtoc is unable to
    use the Python libfdt library, it uses the fallback version, which does not
    widen arrays correctly.

    Fix this to avoid a warning 'excess elements in array initialize' in
    dt-platdata.c which happens on some platforms.

    Reported-by: Tom Rini
    Signed-off-by: Simon Glass
    Tested-by: Tom Rini

    Simon Glass
     

15 Jul, 2016

5 commits

  • Devices which use of-platdata have their own platdata. However, in many
    cases the driver will have its own auto-alloced platdata, for use with the
    device tree. The ofdata_to_platdata() method converts the device tree
    settings to platdata.

    With of-platdata we would not normally allocate the platdata since it is
    provided by the U_BOOT_DEVICE() declaration. However this is inconvenient
    since the of-platdata struct is closely tied to the device tree properties.
    It is unlikely to exactly match the platdata needed by the driver.

    In fact a useful approach is to declare platdata in the driver like this:

    struct r3288_mmc_platdata {
    struct dtd_rockchip_rk3288_dw_mshc of_platdata;
    /* the 'normal' fields go here */
    };

    In this case we have dt_platadata available, but the normal fields are not
    present, since ofdata_to_platdata() is never called. In fact driver model
    doesn't allocate any space for the 'normal' fields, since it sees that there
    is already platform data attached to the device.

    To make this easier, adjust driver model to allocate the full size of the
    struct (i.e. platdata_auto_alloc_size from the driver) and copy in the
    of-platdata. This means that when the driver's bind() method is called,
    the of-platdata will be present, followed by zero bytes for the empty
    'normal field' portion.

    A new DM_FLAG_OF_PLATDATA flag is available that indicates that the platdata
    came from of-platdata. When the allocation/copy happens, the
    DM_FLAG_ALLOC_PDATA flag will be set as well. The dtoc tool is updated to
    output the platdata_size field, since U-Boot has no other way of knowing
    the size of the of-platdata struct.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This property is not useful for of-platdata, so omit it.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • Add a Python version of the libfdt library which contains enough features to
    support the dtoc tool. This is only a very bare-bones implementation. It
    requires the 'swig' to build.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This tool can produce C struct definitions and C platform data tables.
    This is used to support the of-platdata feature.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • This Python library provides a way to access the contents of the device
    tree. It uses fdtget, so is inefficient for larger device tree files.

    Signed-off-by: Simon Glass

    Simon Glass