Пример #1
0
void ipmi_rtc_init(void)
{
	struct dt_node *np = dt_new(opal_node, "rtc");
	dt_add_property_strings(np, "compatible", "ibm,opal-rtc");

	opal_register(OPAL_RTC_READ, ipmi_opal_rtc_read, 2);
	opal_register(OPAL_RTC_WRITE, ipmi_opal_rtc_write, 2);

	/* Initialise the rtc cache */
	ipmi_get_sel_time();
}
Пример #2
0
void ipmi_opal_init(void)
{
	struct dt_node *opal_ipmi;

	opal_ipmi = dt_new(opal_node, "ipmi");
	dt_add_property_strings(opal_ipmi, "compatible", "ibm,opal-ipmi");
	dt_add_property_cells(opal_ipmi, "ibm,ipmi-interface-id",
			      IPMI_DEFAULT_INTERFACE);
	dt_add_property_cells(opal_ipmi, "interrupts",
			      ilog2(ipmi_backend->opal_event_ipmi_recv));

	opal_register(OPAL_IPMI_SEND, opal_ipmi_send, 3);
	opal_register(OPAL_IPMI_RECV, opal_ipmi_recv, 3);
}
Пример #3
0
void fsp_epow_init(void)
{
	struct dt_node *np;

	fsp_register_client(&fsp_epow_client, FSP_MCLASS_SERVICE);
	opal_register(OPAL_GET_EPOW_STATUS, fsp_opal_get_epow_status, 2);
	np = dt_new(opal_node, "epow");
	dt_add_property_strings(np, "compatible", "ibm,opal-v3-epow");
	dt_add_property_strings(np, "epow-classes", "power", "temperature", "cooling");
	prlog(PR_TRACE, "FSP EPOW support initialized\n");
}
Пример #4
0
void init_opal_console(void)
{
	assert(!opal_cons_init);
	opal_cons_init = true;

	if (dummy_console_enabled() && opal_con_driver != &dummy_opal_con) {
		prlog(PR_WARNING, "OPAL: Dummy console forced, %s ignored\n",
		      opal_con_driver->name);

		opal_con_driver = &dummy_opal_con;
	}

	prlog(PR_NOTICE, "OPAL: Using %s\n", opal_con_driver->name);

	if (opal_con_driver->init)
		opal_con_driver->init();

	opal_register(OPAL_CONSOLE_READ, opal_con_driver->read, 3);
	opal_register(OPAL_CONSOLE_WRITE, opal_con_driver->write, 3);
	opal_register(OPAL_CONSOLE_FLUSH, opal_con_driver->flush, 1);
	opal_register(OPAL_CONSOLE_WRITE_BUFFER_SPACE,
			opal_con_driver->space, 2);
}
Пример #5
0
void prd_init(void)
{
	struct proc_chip *chip;

	/* mask everything */
	lock(&ipoll_lock);
	for_each_chip(chip) {
		__ipoll_update_mask(chip->id, true, PRD_IPOLL_MASK);
	}
	unlock(&ipoll_lock);

	if (fsp_present()) {
		/* todo: FSP implementation */
		queue_prd_msg = queue_prd_msg_nop;
	} else {
		queue_prd_msg = queue_prd_msg_hbrt;
		opal_register(OPAL_PRD_MSG, opal_prd_msg, 1);
	}
}