Vega 10 and 12 reset application

Thanks you that you take the time answering all the question. I have almost no knowledge about low-level programming so most of the stuff you do here is completely out of my field of expertise and I suspect pinches of magic :mage:.

I read the thread again, but the first post is pretty much talking about Vega and that it needs a kernel patch, now you got me proper confused.

Additionally I wanted to ask about your time estimate for Navi. I understand that people getting impatient is annoying but I have until next Thursday to return my Navi and am slowly turning insane stopping all my work and rebooting my computer everytime I need Windows. If I see a light at the end of the tunnel I might keep it since I don’t want to spend my money on “no proper linux driver”-Nvidia.

there is a patch for navi about to drop, hold onto your gpu

2 Likes

That’s what I needed to hear, thank you so much. <3

1 Like
5 Likes

How can i modify the patch for linux-5.2.14-200?
Can i search for something and adjust the line numbers?
Sorry if thats a noob question, i’ve never modified a patch yet.

How can i modify the patch for linux-5.2.14-200?
Can i search for something and adjust the line numbers?
Sorry if thats a noob question, i’ve never modified a patch yet.

The patch is really simple. You don’t need to apply the patch using the tool. Just copy/pasting from patch on “pci/quirks.c” works:

The gnif patch work on 5.3(correct me if I wrong)
https://elixir.bootlin.com/linux/v5.3/source/drivers/pci/quirks.c#L3836
https://elixir.bootlin.com/linux/v5.3/source/drivers/pci/quirks.c#L3825

Manually edit https://elixir.bootlin.com/linux/v5.2.14/source/drivers/pci/quirks.c#L3836
https://elixir.bootlin.com/linux/v5.2.14/source/drivers/pci/quirks.c#L3825

PS: Try to apply unmodified patch on kernel 5.2.14. I think it works!

Thanks for the information.
Is it correct to just add

/*
 * Radeon RX Vega and Navi devices break on bus reset. Oi...
 * This is *not a real workaround* - disabling bus reset
 * for your GPU may have unintended consequences.
 */
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0x687f, quirk_no_bus_reset);
 DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, 0xaaf8, quirk_no_bus_reset);

after

DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CAVIUM, 0xa100, quirk_no_bus_reset);

?

(Of course i’ll change 0x687f and 0xaaf8 to the Ids of my Vega 64)

Is there a noob friendly guide on how to patch this?

proxmox kernel 5.0.21-3 with NAVI reset patch(untested). Using on Ubuntu 18.0.4 and it’s working right. Use at your own risk!

Proxmox 6 kernel package with NAVI reset patch (untested)

Patch

I don’t get it. Using the provided application I get

Failed to read /sys/bus/pci/devices/0000:24:00.0/vendor

and if I try to apply the patch I get

➜ sudo patch -p1 < fix-vega-reset.patch
can't find file to patch at input line 5

I’m running kernel 5.2.11-1 on Manjaro.
Is there some kind of documentation on how to do all this?
I know documentation takes a lot of time but as so much hard work went into this, it would be a shame if just a small group of people are able to take advantage of this.

I very much second that.

I’m running into what I assume is the same unclean reset issue with my RX580.. Whilst this patch is for the 10/12 generation only, do you have access to and any plans to look at the RX580 generation of cards?

Either way, great work on getting the 5700 working. Making the lives of all passthrough users easier in the future :+1: I’m almost tempted to upgrade just to have a working reset, even though the RX580 is still meeting my gaming needs :slight_smile:

A post was merged into an existing topic: Navi Reset Kernel Patch

any progress on AMD fixing this in firmware?
is there a place i can sign up to be notified when this does get fixed in firmware?

a custom made kernel would require i redo alot of my update scripts in my machine that uses Navi.

Navi reset patch working on my ASRock 5700XT!
THANK YOU GNIF!

I’m using Arch as my host OS. I had to switch to Q35 to get passthrough working.
Followed the directions on the Arch wiki for building a kernel and applying the patch. (was gonna put the wiki article here, but I can’t post links, the article title is ‘Kernel/Arch Build System’)

One note, I do not seem to need a BIOS file. I was using it earlier today while troubleshooting, and forgot to put it back in at some point after removing the device from the VM. Working fine at the moment.

2 Likes

Has anyone run into this issue?

Applied the patch manually and compiled on 5.3.2

Attempting Vega 10 reset
CMD_READMODIFYWRITE 0x00000e2b
CMD_DELAY_MS
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_READMODIFYWRITE 0x0001667c
CMD_WAITFOR 0x0001667c
Wait for timed out.
Failed to exit BACO

Tried running right after boot since my mobo always boots to the Vega 64 requiring a reset immediately before I can use it for the VM.

EDIT: Just attempted on 5.3.1 as well. No dice

I have a Vega 64, don’t work too :neutral_face:.

Just found this post since it wasn’t searchable Vega 10 and 12 reset application as well as the answer right under.

So hopefully the patch comes out soon. Looking forward to it!

Is this the reset patches landing for Linux 5.5?
https://lists.freedesktop.org/archives/dri-devel/2019-October/239455.html

1 Like

Two questions:

a) Would these fixes also apply to the Vega Frontier Edition Card ? (I mean no changes in the register map offsets and such)
frontier-edition
b) Is there a similar fix for the R9 290X series also available ?

asus-radeon-290x

1 Like