[U-Boot-Users] What do I do if fdt_setprop() returns -FDT_ERR_NOSPACE?

Timur Tabi timur at freescale.com
Fri Dec 7 22:28:53 CET 2007


I have this code:

static int fdt_set_qe_firmware(void *blob, int nodeoffset, const char *name, 
bd_t *bd)
{
	struct qe_firmware_info *qe_fw_info;
	int ret;

	qe_fw_info = qe_get_firmware_info();

	if (qe_fw_info) {
                 /* We assume the node doesn't exist yet */
		nodeoffset = fdt_add_subnode(blob, nodeoffset, name);
		if (nodeoffset < 0)
			return nodeoffset;

		ret = fdt_setprop_string(blob, nodeoffset, "id", qe_fw_info->id);
		if (ret < 0)
			return ret;

		ret = fdt_setprop_typed(blob, nodeoffset, "extended_modes",
			qe_fw_info->extended_modes);
		if (ret < 0)
			return ret;

		return fdt_setprop(blob, nodeoffset, "virtual_traps",
			qe_fw_info->vtraps, sizeof(qe_fw_info->vtraps));
	}

	return 0;
}

The call to fdt_setprop_string() returns -FDT_ERR_NOSPACE.  I created the DTB 
with this command:

dtc -I dts -O dtb -b 0 -R 8 -S 0x3000

What am I missing?  Why is there no space left to add a string?

-- 
Timur Tabi
Linux kernel developer at Freescale




More information about the U-Boot mailing list