search for: nvbios_rd08

Displaying 20 results from an estimated 95 matches for "nvbios_rd08".

2017 Apr 10
0
[PATCH 03/11] nvkm/gddr5: MR calculation for timing table v1.0
...mmap.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c index 131d967..0d517a0 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/rammap.c @@ -205,8 +205,11 @@ nvbios_rammapSp(struct nvkm_bios *bios, u32 data, p->ramcfg_10_02_20 = (nvbios_rd08(bios, data + 0x02) & 0x20) >> 5; p->ramcfg_DLLoff = (nvbios_rd08(bios, data + 0x02) & 0x40) >> 6; p->ramcfg_10_03_0f = (nvbios_rd08(bios, data + 0x03) & 0x0f) >> 0; + p->ramcfg_LowFreq = (nvbios_rd08(bios, data + 0x03) & 0x20) >> 5; + p-&g...
2016 Mar 16
1
[PATCH v2 2/2] volt: properly detect entry based voltage tables
...m/subdev/bios/volt.c +++ b/drm/nouveau/nvkm/subdev/bios/volt.c @@ -73,40 +73,45 @@ nvbios_volt_parse(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len, memset(info, 0x00, sizeof(*info)); switch (!!volt * *ver) { case 0x12: - info->type = NVBIOS_VOLT_GPIO; - info->vidmask = nvbios_rd08(bios, volt + 0x04); + info->type = NVBIOS_VOLT_GPIO; + info->vidmask = nvbios_rd08(bios, volt + 0x04); + info->entry_based = true; break; case 0x20: - info->type = NVBIOS_VOLT_GPIO; - info->vidmask = nvbios_rd08(bios, volt + 0x05); + info->type = NV...
2017 Apr 10
14
RESEND Preparations for Fermi DRAM clock changes
Two patches went missing as a result of PEBCAK. No v2 marks as nothing changed really. Just resending for easier enforcement of patch order in other people's trees. Sorry for the noise. Original message: No, no, these will not implement Fermi reclocking. This set of patches contains some of the preparatory work that I deem stable enough to move upstream. Notable changes - Training pattern
2017 Nov 22
1
[PATCH 01/32] bios/vpstate: There are some fermi vbios with no boost or tdp entry
...drm/nouveau/nvkm/subdev/bios/vpstate.c > index 20b6fc82..71524548 100644 > --- a/drm/nouveau/nvkm/subdev/bios/vpstate.c > +++ b/drm/nouveau/nvkm/subdev/bios/vpstate.c > @@ -58,8 +58,14 @@ nvbios_vpstate_parse(struct nvkm_bios *b, struct nvbios_vpstate_header *h) > h->ecount = nvbios_rd08(b, h->offset + 0x5); > > h->base_id = nvbios_rd08(b, h->offset + 0x0f); > - h->boost_id = nvbios_rd08(b, h->offset + 0x10); > - h->tdp_id = nvbios_rd08(b, h->offset + 0x11); > + if (h->hlen > 0x10) > + h->boost_id = nvbios_rd08(b, h->o...
2016 Feb 20
0
[PATCH v4 2/6] nvbios/iccsense: add parsing of the SENSE table
...*ver, u8 *hdr, u8 *cnt, + u8 *len) +{ + struct bit_entry bit_P; + u16 iccsense; + + if (bit_entry(bios, 'P', &bit_P) || bit_P.version != 2 || + bit_P.length < 0x2c) + return 0; + + iccsense = nvbios_rd16(bios, bit_P.offset + 0x28); + if (!iccsense) + return 0; + + *ver = nvbios_rd08(bios, iccsense + 0); + switch (*ver) { + case 0x10: + case 0x20: + *hdr = nvbios_rd08(bios, iccsense + 1); + *len = nvbios_rd08(bios, iccsense + 2); + *cnt = nvbios_rd08(bios, iccsense + 3); + return iccsense; + default: + break; + } + + return 0; +} + +int +nvbios_iccsense_parse(struct nvkm_b...
2017 Apr 10
11
Preparations for Fermi DRAM clock changes
No, no, these will not implement Fermi reclocking. This set of patches contains some of the preparatory work that I deem stable enough to move upstream. Notable changes - Training pattern upload routines from GK104+ now shared with GT215+ - Timing calculation for Fermi - GDDR5 MR calculation from VBIOS timing table v1.0. Also useful for that pesky GT 240. - A routine to translate a VBIOS init
2016 Mar 17
0
[PATCH 03/19] bios: add parsing of BASE CLOCK table
...) + return nvbios_rd16(b, bit_P.offset + 0x38); + } + + return 0x0000; +} + +int +nvbios_baseclock_parse(struct nvkm_bios *b, struct nvbios_baseclk_header *h) +{ + if (!h) + return -EINVAL; + + h->offset = nvbios_baseclock_offset(b); + if (!h->offset) + return -ENODEV; + + h->version = nvbios_rd08(b, h->offset); + switch (h->version) { + case 0x10: + h->hlen = nvbios_rd08(b, h->offset + 0x1); + h->elen = nvbios_rd08(b, h->offset + 0x2); + h->slen = nvbios_rd08(b, h->offset + 0x3); + h->scount = nvbios_rd08(b, h->offset + 0x4); + h->ecount = nvbios_...
2016 Nov 30
3
[PATCH v3 1/3] nvbios/power_budget: Add basic power budget parsing
..._P; > + u32 power_budget; > + > + if (bit_entry(bios, 'P', &bit_P) || bit_P.version != 2 || > + bit_P.length < 0x2c) > + return 0; > + > + power_budget = nvbios_rd32(bios, bit_P.offset + 0x2c); > + if (!power_budget) > + return 0; > + > + *ver = nvbios_rd08(bios, power_budget); > + switch (*ver) { > + case 0x10: > + case 0x20: > + case 0x30: > + *hdr = nvbios_rd08(bios, power_budget + 0x1); > + *len = nvbios_rd08(bios, power_budget + 0x2); > + *cnt = nvbios_rd08(bios, power_budget + 0x3); > + return power_budget; > + def...
2016 Jul 27
0
[PATCH] nvkm/iccsense: Parse the resistors and config the right way
...truct nvbios_iccsense *iccsense) return -ENOMEM; for (i = 0; i < cnt; ++i) { + struct nvbios_extdev_func extdev; struct pwr_rail_t *rail = &iccsense->rail[i]; + u8 res_start = 0; + int r; + entry = table + hdr + i * len; switch(ver) { case 0x10: rail->mode = nvbios_rd08(bios, entry + 0x1); rail->extdev_id = nvbios_rd08(bios, entry + 0x2); - rail->resistor_mohm = nvbios_rd08(bios, entry + 0x3); - rail->rail = nvbios_rd08(bios, entry + 0x4); + res_start = 0x3; break; case 0x20: rail->mode = nvbios_rd08(bios, entry); rail->extd...
2017 Nov 02
0
[PATCH] drm/nouveau/bios/timing: mark expected switch fall-throughs
.../bios/timing.c index 7e83c39..20ff517 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/timing.c @@ -115,16 +115,21 @@ nvbios_timingEp(struct nvkm_bios *bios, int idx, switch (min_t(u8, *hdr, 25)) { case 25: p->timing_10_24 = nvbios_rd08(bios, data + 0x18); + /* fall through */ case 24: case 23: case 22: p->timing_10_21 = nvbios_rd08(bios, data + 0x15); + /* fall through */ case 21: p->timing_10_20 = nvbios_rd08(bios, data + 0x14); + /* fall through */ case 20: p->timing_10_CWL = nvbios_r...
2017 Nov 17
0
[PATCH 01/32] bios/vpstate: There are some fermi vbios with no boost or tdp entry
.../subdev/bios/vpstate.c b/drm/nouveau/nvkm/subdev/bios/vpstate.c index 20b6fc82..71524548 100644 --- a/drm/nouveau/nvkm/subdev/bios/vpstate.c +++ b/drm/nouveau/nvkm/subdev/bios/vpstate.c @@ -58,8 +58,14 @@ nvbios_vpstate_parse(struct nvkm_bios *b, struct nvbios_vpstate_header *h) h->ecount = nvbios_rd08(b, h->offset + 0x5); h->base_id = nvbios_rd08(b, h->offset + 0x0f); - h->boost_id = nvbios_rd08(b, h->offset + 0x10); - h->tdp_id = nvbios_rd08(b, h->offset + 0x11); + if (h->hlen > 0x10) + h->boost_id = nvbios_rd08(b, h->offset + 0x10); + else + h-&...
2018 Jul 14
2
[PATCH 0/2] Some minor reclocking fixes
First patch fixes a potential vbios parsing bug on Fermi GPUs, but it may also affect Kepler ones. Second patch wakes the GPU up whenever the user tries to reclock to prevent the write to the pstate file from freezing. Karol Herbst (2): bios/vpstate: There are some fermi vbios with no boost or tdp entry debugfs: Wake up GPU before doing any reclocking drm/nouveau/nouveau_debugfs.c
2016 Nov 12
1
[PATCH 1/3] nvbios/power_budget: Add basic power budget parsing
..._P; > + u32 power_budget; > + > + if (bit_entry(bios, 'P', &bit_P) || bit_P.version != 2 || > + bit_P.length < 0x2c) > + return 0; > + > + power_budget = nvbios_rd32(bios, bit_P.offset + 0x2c); > + if (!power_budget) > + return 0; > + > + *ver = nvbios_rd08(bios, power_budget); > + switch (*ver) { > + case 0x10: > + case 0x20: > + case 0x30: > + *hdr = nvbios_rd08(bios, power_budget + 0x1); > + *len = nvbios_rd08(bios, power_budget + 0x2); > + *cnt = nvbios_rd08(bios, power_budget + 0x3); > + return power_budget; > + def...
2016 Nov 30
1
[PATCH v3 1/3] nvbios/power_budget: Add basic power budget parsing
...on != 2 || >>> + bit_P.length < 0x2c) >>> + return 0; >>> + >>> + power_budget = nvbios_rd32(bios, bit_P.offset + 0x2c); >>> + if (!power_budget) >>> + return 0; >>> + >>> + *ver = nvbios_rd08(bios, power_budget); >>> + switch (*ver) { >>> + case 0x10: >>> + case 0x20: >>> + case 0x30: >>> + *hdr = nvbios_rd08(bios, power_budget + 0x1); >>> + *len = nvbios_rd08(bios, power_budget + 0x2); >&gt...
2016 Oct 25
1
[PATCH 1/3] nvbios/power_budget: Add basic power budget parsing
..._P; > + u32 power_budget; > + > + if (bit_entry(bios, 'P', &bit_P) || bit_P.version != 2 || > + bit_P.length < 0x2c) > + return 0; > + > + power_budget = nvbios_rd32(bios, bit_P.offset + 0x2c); > + if (!power_budget) > + return 0; > + > + *ver = nvbios_rd08(bios, power_budget); > + switch (*ver) { > + case 0x10: > + case 0x20: > + case 0x30: > + *hdr = nvbios_rd08(bios, power_budget + 0x1); > + *len = nvbios_rd08(bios, power_budget + 0x2); > + *cnt = nvbios_rd08(bios, power_budget + 0x3); > + return power_budget; > + def...
2017 Oct 08
1
[RFC PATCH 15/29] bios: add thermal policies table
...> +int > +nvbios_thermal_policies_parse(struct nvkm_bios *b, struct nvbios_thermal_policies_header *h) > +{ > + if (!h) > + return -EINVAL; > + > + h->offset = nvbios_thermal_policies_offset(b); > + if (!h->offset) > + return -ENODEV; > + > + h->version = nvbios_rd08(b, h->offset); > + switch (h->version) { > + case 0x10: > + h->hlen = nvbios_rd08(b, h->offset + 0x1); > + h->elen = nvbios_rd08(b, h->offset + 0x2); > + h->ecount = nvbios_rd08(b, h->offset + 0x3); > + return 0; > + default: > + return...
2015 Oct 10
2
[Bug 92377] New: Add support for early voltage table as seen on nv43
...lt.c index 6e0a336..3e9dafa 100644 --- a/drm/nouveau/nvkm/subdev/bios/volt.c +++ b/drm/nouveau/nvkm/subdev/bios/volt.c @@ -40,8 +40,10 @@ nvbios_volt_table(struct nvkm_bios *bios, u8 *ver, u8 *hdr, u8 *cnt, u8 *len) if (volt) { *ver = nvbios_rd08(bios, volt + 0); + printk ("nvbios_volt_table_Ver, %d\n", *ver); switch (*ver) { case 0x12: + case 0x10: *hdr = 5;...
2015 Nov 29
2
[PATCH] bios/fan: hardcode the fan mode to linear
...ed7e 100644 --- a/drm/nouveau/nvkm/subdev/bios/fan.c +++ b/drm/nouveau/nvkm/subdev/bios/fan.c @@ -83,6 +83,7 @@ nvbios_fan_parse(struct nvkm_bios *bios, struct nvbios_therm_fan *fan) fan->type = NVBIOS_THERM_FAN_UNK; } + fan->fan_mode = NVBIOS_THERM_FAN_LINEAR; fan->min_duty = nvbios_rd08(bios, data + 0x02); fan->max_duty = nvbios_rd08(bios, data + 0x03); -- 2.6.2
2016 Mar 17
22
[PATCH 00/19] Volting/Clocking improvements for Fermi and newer
This series fixes most of the issues regarding volting on GPUs with any form of GPU Boost inside their vbios, which is mainly Kepler and newer, but we find some boosting related tables in Fermi vbios' already In the end reclocking should work on most Kepler cards without any issues Karol Herbst (19): bios/volt: handle voltage table version 0x50 with 0ed header volt: properly detect entry
2016 Feb 29
9
[PATCH 0/9] Groundwork for clocking fixes
This series contains a lot of groundwork to finally fix reclocking issues on Kepler+ gpus. There shouldn't be any functional changes with the first patch being the only exception (fixes some voltage table parsing issues with of few kepler gpus) The most interessting thing is the tool in the last patch, which can be ran alongside the nvidia driver to test nouveaus volting code and print the