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; } }
/* * 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; }
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); }
/* 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); }