Remember me

Lost Password?

Register now!


Who's Online
50 user(s) are online (18 user(s) are browsing Forums)

Members: 0
Guests: 50


Support us!

Recent OS4 Files

Report message:*

Re: What is the AmigaOne XE DMA fix?

Subject: Re: What is the AmigaOne XE DMA fix?
by monomango on 2019/3/17 15:28:40

There seem to have been a couple of separate issues from what I have read so far. It involves the VIA and ArticiaS chip.

Firstly, the VIA chip is screwing up the onboard DMA, as it is not initialized correctly according to some sources. However, if that was true it should have been solved by a u-boot firmware update long ago..
Regardless, the Eyetech doc contains a workaround that should stop the VIA chip from putting out the garbage data that leads to freezes under certain circumstance - importantly when using the onboard 3com Ethernet.

Secondly, there was a bug in the ArticiaS related to cache coherency and DMA usage. This was already solved by AmigaOS by using software cache (at a possible performance impact). The Pegasos board, which used the same chip ArticiaS Northbridge but a different Southbridge (not VIA), later got April and April 2 fixes implemented as logic next to the ArticiaS. This can be seen in The Pegasos Book.

My SE board only has one fix applied. On the backside two wires goes from ArticiaS and to the 3com chip location. This could be to solve a separate SE issue related to the onboard Ethernet, which I have no info about, or to fix another ArticiaS issue. So no DMA fix is implemented.
Therefor, the use of the onboard 3com Ethernet is also crippled by the onboard DMA issue which can freeze the system or bring down a transfer over Ethernet. It might only be happening when a hard drive is set up to use a UDMA transfer mode, regardless of using onboard or PCI board IDE such as Sii0680 or Sii3114. However, I suspect it’s even independent of that, i.e. just because Ethernet uses onboard DMA.
Using the onboard IDE in UDMA mode can in addition corrupt data written to the drive, so I never use onboard IDE. PCI based IDE will not corrupt data written in UDMA mode, however the onboard Ethernet could still be affected by it leading to the freeze issue, or the connection falling out.

I have observed the following to avoid all the issues.
Using an Ethernet PCI card, like the RTL8169 gigabit Ethernet, makes the whole system stable, non of those freezes I could previously have when using onboard Ethernet. Then of course, PCI IDE card can also be used freely in all UDMA modes. No issues.
So, for me, using PCI based IDE eliminates disk corruption upon write in fastest UDMA mode, UDMA 6. Similarly, using PCI based Ethernet eliminates the instability that could lead to random freezes.

I never plug anything into the USB, as that can possibly trigger the DMA issue and possible freeze. Commenting out EHCI in Kicklayout could make it fine, possibly. Not tested enough, probably true when using a USB 2.0 card. Using my NEC USB PCI card seems to also be affected by the onboard DMA issue. Usage of USB must be researched more.
Interestingly, my system can only use the UDMA modes of my PCI IDE cards (sii0680 and sii3114) if either my NEC USB 2.0 card is connected or the onboard USB is activated in U-Boot. If no USB is active, it will fail to boot in UDMA mode. This indicates that somehow USB presence is strongly linked with the onboard DMA issue.

To sum it up, here is the current configuration, it gives me a stable system with no freezes or Ethernet dropouts :

ATI Radeon 9200 AGP graphics

PCI cards installed (top to bottom):
Forte Media FM801 sound card
RTL8169 gigabit ethernet (3com onboard ethernet gave freezes/dropouts)
Sii0680 IDE in UDMA 6 mode (any mode is fine, Sii3114 can also be used)

Onboard USB ports 1 and 2 enabled in U-boot. Never used.
U-boot is version 1.1.4, and I run the G3 CPU stable at 667MHz, core voltage of 1.64V, up from 600Mhz at 1.59V. This gives about 10% higher FPS in Quake 3, confirming that the Quake 3 frame-rate is indeed CPU-bound in the system.

If I could use one more PCI slot I would connect the NEC USB 2.0 card. However, I would rather have UDMA 6 IDE transfers from the Sii cards than some extra USB ports that possibly triggers a freeze by the DMA issue.
I don’t know the details, maybe it’s possible to get a USB card that handles its own DMA rather than being controlled by the buggy onboard one, the usage of PCI IDE and Ethernet cards increases stability and avoids the freezes, a PCI USB card should ideally do the same.

Finally, some links of relevance :

https://amigaworld.net//modules/newbb/ ... =40&viewmode=flat&order=0


https://amigaworld.net//modules/featur ... at_id=3&rev_id=41&sort_by

Well appreciated. Thanks a lot!

The SE has the same VIA and ArticiaS chip.. so I’m sure it could be applied there too, if the correct pins are found (pcb layout a bit different).

With AmigaOS 4.1 FE above 2GB of memory can be used. This change might even have come with 4.1.

I run with 2GB, no issues.
Gotta use Registered memory, I use Registered server grade SUN ECC modules @133MHz.

Do you have the DMA fix applied?
How does the system behave after? No issues and stable?

Powered by XOOPS 2.0 © 2001-2016 The XOOPS Project