コード例 #1
0
ファイル: reg_access.c プロジェクト: punitvara/coreboot
static uint64_t reg_read(struct reg_script_context *ctx)
{
	const struct reg_script *step = ctx->step;
	uint64_t value = 0;

	switch (step->id) {
	default:
		printk(BIOS_ERR,
			"ERROR - Unknown register set (0x%08x)!\n",
			step->id);
		ctx->display_features = REG_SCRIPT_DISPLAY_NOTHING;
		return 0;

	case GPE0_REGS:
		ctx->display_prefix = "GPE0";
		value = reg_gpe0_read(step->reg);
		break;

	case GPIO_REGS:
		ctx->display_prefix = "GPIO";
		value = reg_gpio_read(step->reg);
		break;

	case HOST_BRIDGE:
		ctx->display_prefix = "Host Bridge";
		value = reg_host_bridge_unit_read(step->reg);
		break;

	case LEG_GPIO_REGS:
		ctx->display_prefix = "Legacy GPIO";
		value = reg_legacy_gpio_read(step->reg);
		break;

	case PCIE_AFE_REGS:
		ctx->display_prefix = "PCIe AFE";
		value = reg_pcie_afe_read(step->reg);
		break;

	case RMU_TEMP_REGS:
		ctx->display_prefix = "RMU TEMP";
		value = reg_rmu_temp_read(step->reg);
		break;

	case SOC_UNIT_REGS:
		ctx->display_prefix = "SOC Unit";
		value = reg_soc_unit_read(step->reg);
		break;

	case USB_PHY_REGS:
		ctx->display_prefix = "USB PHY";
		value = reg_usb_read(step->reg);
		break;
	}
	return value;
}
コード例 #2
0
ファイル: gpio.c プロジェクト: serenasensini/coreboot
void mainboard_gpio_pcie_reset(uint32_t pin_value)
{
	uint32_t pin_number;
	uint32_t value;

	/* Determine the correct PCIe reset pin */
	if (IS_ENABLED(CONFIG_GALILEO_GEN2))
		pin_number = GEN2_PCI_RESET_RESUMEWELL_GPIO;
	else
		pin_number = GEN1_PCI_RESET_RESUMEWELL_GPIO;

	/* Update the PCIe reset value */
	value = reg_legacy_gpio_read(R_QNC_GPIO_RGLVL_RESUME_WELL);
	value = (value & ~(1 << pin_number)) | ((pin_value & 1) << pin_number);
	reg_legacy_gpio_write(R_QNC_GPIO_RGLVL_RESUME_WELL, value);
}
コード例 #3
0
ファイル: gpio.c プロジェクト: serenasensini/coreboot
void mainboard_gpio_i2c_init(device_t dev)
{
	const struct reg_script *script;

	printk(BIOS_INFO, "Galileo I2C chip initialization\n");

	/* Determine the correct script for the board */
	if (IS_ENABLED(CONFIG_GALILEO_GEN2))
		script = gen2_i2c_init;
	else
		/* Determine which I2C address is in use */
		script = (reg_legacy_gpio_read (R_QNC_GPIO_RGLVL_RESUME_WELL)
			& GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO)
			? gen1_i2c_0x20_init : gen1_i2c_0x21_init;

	/* Initialize the I2C chips */
	reg_script_run(script);
}
コード例 #4
0
ファイル: gpio.c プロジェクト: serenasensini/coreboot
void car_mainboard_pre_console_init(void)
{
	const struct reg_script *script;

	/* Initialize the GPIO controllers */
	if (IS_ENABLED(CONFIG_GALILEO_GEN2))
		script = gen2_gpio_init;
	else
		script = gen1_gpio_init;
	reg_script_run(script);

	/* Initialize the RXD and TXD paths for UART0 */
	if (IS_ENABLED(CONFIG_ENABLE_BUILTIN_HSUART0)) {
		if (IS_ENABLED(CONFIG_GALILEO_GEN2))
			script = gen2_hsuart0;
		else
			script = (reg_legacy_gpio_read(
				R_QNC_GPIO_RGLVL_RESUME_WELL)
				& GALILEO_DETERMINE_IOEXP_SLA_RESUMEWELL_GPIO)
				? gen1_hsuart0_0x20 : gen1_hsuart0_0x21;
		reg_script_run(script);
	}
}