15 Sep, 2017

1 commit

  • When using 32-bit addresses dtoc works correctly. For 64-bit addresses it
    does not since it ignores the #address-cells and #size-cells properties.

    Update the tool to use fdt64_t as the element type for reg properties when
    either the address or size is larger than one cell. Use the correct value
    so that C code can obtain the information from the device tree easily.

    Alos create a new type, fdt_val_t, which is defined to either fdt32_t or
    fdt64_t depending on the word size of the machine. This type corresponds
    to fdt_addr_t and fdt_size_t. Unfortunately we cannot just use those types
    since they are defined to phys_addr_t and phys_size_t which use
    'unsigned long' in the 32-bit case, rather than 'unsigned int'.

    Add tests for the four combinations of address and size values (32/32,
    64/64, 32/64, 64/32). Also update existing uses for rk3399 and rk3368
    which now need to use the new fdt_val_t type.

    Signed-off-by: Simon Glass

    Suggested-by: Heiko Stuebner
    Reported-by: Kever Yang
    Reviewed-by: Philipp Tomsich
    Tested-by: Kever Yang

    Simon Glass
     

15 Jul, 2016

2 commits


22 Jul, 2015

1 commit

  • Add a simple implementaton of register maps, supporting only direct I/O
    for now. This can be enhanced later to support buses which have registers,
    such as I2C, SPI and PCI.

    It allows drivers which can operate with multiple buses to avoid dealing
    with the particulars of register access on that bus.

    Signed-off-by: Simon Glass

    Simon Glass