I've notice today, that fixup scripts are failing, if some parameters are passed. For example:
if test -n "${param_spinor_spi_bus}"; then
test "${param_spinor_spi_bus}" = "0" && setenv tmp_spi_path "spi@01c05000"
test "${param_spinor_spi_bus}" = "1" && setenv tmp_spi_path "spi@01c06000"
test "${param_spinor_spi_bus}" = "2" && setenv tmp_spi_path "spi@01c17000"
fdt set /soc@01c00000/${tmp_spi_path} status "okay"
fdt set /soc@01c00000/${tmp_spi_path}/spiflash status "okay"
if test -n "${param_spinor_max_freq}"; then
fdt set /soc@01c00000/${tmp_spi_path}/spiflash spi-max-frequency "<${param_spinor_max_freq}>"
fi
if test "${param_spinor_spi_bus}" = "0" && test "${param_spinor_spi_cs}" = "1"; then
fdt set /soc@01c00000/${tmp_spi_path}/spiflash reg "<1>"
fi
env delete tmp_spi_path
fi
I get:
libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
This is caused because u-boot sets paths without leading zero:
=> fdt list /
/ {
#address-cells = <0x00000001>;
#size-cells = <0x00000001>;
interrupt-parent = <0x00000001>;
model = "Olimex A20-SOM204-EVB-eMMC";
compatible = "olimex,a20-olimex-som204-evb-emmc", "allwinner,sun7i-a20";
...
soc@1c00000 {
};
...
};
=>
As you can see the path is /soc@1c00000 not /soc@01c00000.
Does anyone have noticed this?