static void check_node_reservations(void)
{
	struct dt_node *parent, *node;
	unsigned int i;

	parent = dt_find_by_name(dt_root, "reserved-memory");
	assert(parent);

	assert(dt_prop_get_cell(parent, "#address-cells", 0) == 2);
	assert(dt_prop_get_cell(parent, "#size-cells", 0) == 2);
	dt_require_property(parent, "ranges", 0);

	dt_for_each_child(parent, node) {
		uint64_t addr, size;

		addr = dt_get_address(node, 0, &size);

		for (i = 0; i < ARRAY_SIZE(test_regions); i++) {
			if (strncmp(test_regions[i].name, node->name,
						strlen(test_regions[i].name)))
				continue;

			assert(!test_regions[i].found);
			assert(test_regions[i].addr == addr);
			assert(size == 0x1000);
			test_regions[i].found = true;
		}
	}
Ejemplo n.º 2
0
/*
 * Helper function for adding /ibm,opal/consoles/serial@<xyz> nodes
 */
struct dt_node *add_opal_console_node(int index, const char *type,
	uint32_t write_buffer_size)
{
	struct dt_node *con, *consoles;
	char buffer[32];

	consoles = dt_find_by_name(opal_node, "consoles");
	if (!consoles) {
		consoles = dt_new(opal_node, "consoles");
		assert(consoles);
		dt_add_property_cells(consoles, "#address-cells", 1);
		dt_add_property_cells(consoles, "#size-cells", 0);
	}

	con = dt_new_addr(consoles, "serial", index);
	assert(con);

	snprintf(buffer, sizeof(buffer), "ibm,opal-console-%s", type);
	dt_add_property_string(con, "compatible", buffer);

	dt_add_property_cells(con, "#write-buffer-size", write_buffer_size);
	dt_add_property_cells(con, "reg", index);
	dt_add_property_string(con, "device_type", "serial");

	return con;
}
Ejemplo n.º 3
0
static struct dt_node *find_l2_node(struct dt_node *cpus, u32 unit_addr)
{
	char name[32];

	snprintf(name, sizeof(name), "l2-cache@%.08x", unit_addr);
	return dt_find_by_name(cpus, name);
}
Ejemplo n.º 4
0
/* This will free ipmi_dev_id structure */
void ipmi_dt_add_bmc_info(void)
{
	char buf[8];
	struct dt_node *dt_fw_version;

	while (bmc_info_waiting)
		time_wait_ms(5);

	if (!bmc_info_valid)
		return;

	dt_fw_version = dt_find_by_name(dt_root, "ibm,firmware-versions");
	if (!dt_fw_version) {
		free(ipmi_dev_id);
		return;
	}

	memset(buf, 0, sizeof(buf));
	snprintf(buf, sizeof(buf), "%x.%02x",
		 ipmi_dev_id->fw_rev1, ipmi_dev_id->fw_rev2);
	dt_add_property_string(dt_fw_version, "bmc-firmware-version", buf);

	free(ipmi_dev_id);
}