Ejemplo n.º 1
0
static u8
init_ram_restrict(struct nvbios_init *init)
{
	u8  strap = init_ram_restrict_strap(init);
	u16 table = init_ram_restrict_table(init);
	if (table)
		return nv_ro08(init->bios, table + strap);
	return 0x00;
}
Ejemplo n.º 2
0
	if (!bit_entry(bios, 'M', &bit_M)) {
		if (bit_M.version == 1 && bit_M.length >= 5)
			return nv_ro08(bios, bit_M.offset + 2);
		if (bit_M.version == 2 && bit_M.length >= 3)
			return nv_ro08(bios, bit_M.offset + 0);
	}

	return 0x00;
}

static u8
init_ram_restrict(struct nvbios_init *init)
{
	u32 strap = (init_rd32(init, 0x101000) & 0x0000003c) >> 2;
	u16 table = init_ram_restrict_table(init);
	if (table)
		return nv_ro08(init->bios, table + strap);
	return 0x00;
}

static u8
init_xlat_(struct nvbios_init *init, u8 index, u8 offset)
{
	struct nouveau_bios *bios = init->bios;
	u16 table = init_xlat_table(init);
	if (table) {
		u16 data = nv_ro16(bios, table + (index * 2));
		if (data)
			return nv_ro08(bios, data + offset);
		warn("xlat table pointer %d invalid\n", index);