Who's Online |
66 user(s) are online ( 32 user(s) are browsing Forums)
Members: 1
Guests: 65
emeck,
more...
|
|
Headlines |
-
waitfile.lha - utility/script
Mar 10, 2026
-
hwp_mp3enc.lha - library/hollywood
Mar 9, 2026
-
virtio9pfs.lha - driver/handler
Mar 7, 2026
-
iconecta.lha - network/misc
Mar 5, 2026
-
sfront.lha - utility/script
Mar 4, 2026
-
arabic_console_devicepro2.lha - driver/input
Mar 2, 2026
-
amiarcadia.lha - emulation/gamesystem
Mar 2, 2026
-
hwp_zip.lha - library/hollywood
Mar 2, 2026
-
amigadiskbench.lha - utility/benchmark
Mar 2, 2026
-
virtioscsi.lha - driver/storage
Mar 1, 2026
|
|
|
|
|
Re: working virtio-net.device for QEMU : no more issues with rtl drivers !
|
Posted on: Yesterday 23:27
#1
|
Quite a regular 
|
@balaton Quote: I haven't heard reports from there but I don't usually hear anything from MorphOS people. Not many people use MorphOS with QEMU as you can't register only try the demo and maybe the few who do use it use mac99 with sungem instead. I have a MorphOS disk image version 3.19 for PEG2 somewhere and I can take a look. Generally speaking, apart from MorphOS, we would have to redo the tests for RTL8139 on the current version of QEMU and AOS4. There have been a few changes over the past few years. UP3 Roadshow had an update to version 1.15, drivers... Even the systems on which QEMU runs. It is possible that some of the old reports are outdated regarding AOS4 and may be incorrect. Even if someone wrote that everything works correctly on Windows, it was true, but they did not provide any details. If anyone is willing to test RTL8139 and QEMU, please let me know. It would be best to start a new thread related to this on amigans.net. I will definitely not check it myself because it is time-consuming on all QEMU machines where QEMU runs (A1, PEG2, Sam460), various macOS and Linux systems, and possible stupid changes in system settings (e.g., MTU). If no one is willing to do it and everyone is waiting for a ready-made solution, they will certainly not find out whether RTL8139 is currently working properly.
|
|
|
|
|
|
Re: Introducing the Rear Window blog
|
Posted on: Yesterday 22:29
#2
|
Just can't stay away 
|
@jabirulo Quote: When clicking (click or click and drag) on right side border of waveform preview/gadget the apps crashes/freezes system. I tried to reproduce it, but couldn't. But I'm not sure I understand exactly where you click/drag. Can you show it in a screen grab or something? Also, that is on a Sam460, IIRC? Best regards, Niels
|
|
|
|
|
|
Re: USB Audio driver for AmigaOS4
|
Posted on: Yesterday 22:13
#3
|
Not too shy to talk 
|
Excellent!!
As it happens, one of my three current projects is also USB audio.
So much to talk about.. I also have some working code for Audio2, written for the Behringer 404HD.
There are quite a few challenges to making AHI work for USB. I hope you beat them all and I'll help if I can in any way.
There are a few things in Audio1 that were left undefined, so there's a few different ways of doing things. My latest code is for one specific device, on the thinking that if I get one "just right" then release the code it might grow from there. I was/am writing for the creative SoundBlaster Play3. Nothing particularly special about it except it's a name brand and should be available everywhere.
I suspect you're already past where I am right now. I look forward to downloading and testing tonight if I get a chance to do so.
///////////////////////edit///////////////////////////// The Play3 is recognized, but when I play a test sound everything stops.. Also it offers 7.1, which is not a supported mode in this adapter.
But I am very enthusiastic. It wouldn't hurt my feelings at all if your driver is ready before mine is.
My "Amiga Time" is very limited, perhaps this weekend I'll find a NULL modem cable and grab some debug for you.
//////////////////Another Edit //////////////////////////// Based on Sashimi output, it all looks good until it tries to set interface 1 to alternate 1. That is the correct choice, but immediately after that everything stops.
That stop is from the libusb code..
I might be all wrong, but I don't have a null modem cable handy tonight, it'll, have to wait for the weekend.
Good Luck! We're all rooting for you.
Edited by LyleHaze on 2026/3/10 23:05:20 Edited by LyleHaze on 2026/3/10 23:31:01
|
|
|
|
|
|
Re: x1000 onboard network opensource driver in progress
|
Posted on: Yesterday 20:33
#4
|
Just popping in 
|
My DMA-based network drivers assume there is no cache coherency. They use Exec cache-related commands (wrapped in macros for compatibility) to flush caches before and after DMA transfers.
I wasn't aware of the MEMATTRF_CACHEINHIBIT flag until now, so I can't say for sure if that could be used instead.
It is strange to me that the two on-board NICs enumerated by PCI don't have BARs (is the one that's actually connected to the RJ45 port the 1 Gb or 10 Gb one?). Normally, driver code just gets the virtual address from the BAR and doesn't need to care about the offsets etc. you mentioned.
However, the PCI entries do have interrupt numbers, so why shouldn't AddIntServer() work with them?
I also second what Niels said about the battery: a low voltage can have strange effects, as I found out recently: my X1000 wouldn't turn off!
|
|
|
|
|
|
Re: working virtio-net.device for QEMU : no more issues with rtl drivers !
|
Posted on: Yesterday 20:23
#5
|
Just can't stay away 
|
@kas1e Quote: Why then on all machines include x5000 rtl8139 show no bugs ? Too slow in compare with qemu ? But imho x5000 faster than qemu emulation, shouldnt be issue with too many irqs ? CPU speed probably does not matter here more network speed. X5000 uses different kernel so problem may only be with pegasos2 or with IRQ sharing. If there's a problem with interrupt handling in AmigaOS it could explain a hang. Is it possible to get a stacktrace of a hung driver to see where it stopped? Quote: Also, all in all, we can try non interrupt way for virtionet.device , i mean this busy-waiting/polling by cpu instead of irqs ? I tried it on real x1000 now (i mean non interrupt way) and while have ai bugs it works, and i didnt see lot of cpu loading (if at all) probably because roadshow limited speed anyway .. maybe as test worth of try ? Polling is not an option as it would be very ineffifient so I don't think it's usable. It may only be used to test if the problem is in interrupt handling. With polling if you limit the number of polls to avoid high load it will limit the speed and if you do it too often it will generate constant load even if nothing is transferred. That's why these normally use interrupts which is a better way to handle these async events.
|
|
|
|
|
|
Re: working virtio-net.device for QEMU : no more issues with rtl drivers !
|
Posted on: Yesterday 20:17
#6
|
Just can't stay away 
|
@smarkusg Quote: I also don't remember how MorphOS worked with RTL8139 and Qemu. I haven't heard reports from there but I don't usually hear anything from MorphOS people. Not many people use MorphOS with QEMU as you can't register only try the demo and maybe the few who do use it use mac99 with sungem instead.
|
|
|
|
|
|
Re: working virtio-net.device for QEMU : no more issues with rtl drivers !
|
Posted on: Yesterday 20:13
#7
|
Just can't stay away 
|
@joerg Quote: Using RTL8139 with QEmu doesn't make any sense, instead you should always try to emulate the simplest hardware as it's less likely to have emulation bugs and emulating simple hardware is usually faster than emulating more complex hardware. For example NE2000 (rtl8029.device), or if it's supported by QEmu the 3Com (AmigaOne) or VIA Rhine (Pegasos2). There are limited number of cards emulated by QEMU and limited number of cards with AOS4 drivers. The rtl8139 seems to be the only common in both that mostly works. I did not write any of these just used what's already available. There's also ne2k_pci but I don't know what's with that. It seems to work with AROS but others here said it does not work with AmigaOS4. Since no driver source available I have no idea why. Quote: Also very important: Make sure the IRQ used for the network card (emulation) isn't shared with other PCI devices. Ethernet I/O causes a huge number of IRQs per second anyway, with fast emulation maybe more than the kernel, other parts of the OS or drivers can handle, but if the same IRQ is shared with other PCI devices as well it's nearly guarantied to fail... It may be a problem on the Pegasos2 which AFAIK uses a single IRQ for all PCI devices, but on the AmigaOne you have 4 IRQs which are freely configurable for each PCI port.
In case there is a problem in the kernel, the TCP/IP stack or the SANA-II drivers handling thousands of IRQs per second it's getting worse with virtio: Less overhead -> more speed -> more IRQs and task switches per second. Amigaone also has specific IRQ mappings, see here so having more than 3 PCI devices could also share interrupts. To use the on-board ethernet card slot you can do -device rtl8139,addr=6 on amigaone which would use the IRQ reserved for this card and avoid potential sharing. I think this was tried before but did not help.
|
|
|
|
|
|
Re: working virtio-net.device for QEMU : no more issues with rtl drivers !
|
Posted on: Yesterday 20:02
#8
|
Just can't stay away 
|
@joerg Quote: - The author of the OS4 RTL8139 driver found bugs in the QEmu emulation of it, that's why there were some special QEmu beta version of it. Maybe I missed something but I think he looked at the emulation but could not find anything that's not in accordance with the chip specification so we could not identify anything that could be fixed there. That's why he made changes to the driver instead. I'm not sure what the workarounds added in beta version were but apparently these did not fix all problems. If the problem is not in the rtl8139 emulation or driver (as it's seen with virtio-net too) then maybe no surprise it can't be fixed there. The rtl8139 in QEMU is not the most tested or maintained network card but seems to work with all other OSes apart from AmigaOS so this suggests problem is more likely on the AmigaOS side or in machine emulation not in actual network related stuff. Quote: - It's emulated. If your host has a 1 Gbit or even 10 Gbit ethernet controller that's the speed you get from the emulation as well. With the slow (every packet is copied several times around inside the TCP/IP stack while processing it) and ancient TCP/IP stacks on AmigaOS flooding it with that many packets and IRQs per second is similar to a DDoS attack 
Limiting the host ethernet controller to 10 or 100 Mbit might help, at least while developing a network driver and beta testing it. If you can't do that on your host computer itself most routers have such an option, usually called "ECO mode" or similar. I'm not sure this would help much as QEMU sends packets through the host OS so it may be taken by host OS before it's sent or packets received could be buffered by host OS so guest might see faster speeds.
|
|
|
|
|
|
Re: USB Audio driver for AmigaOS4
|
Posted on: Yesterday 18:38
#9
|
Not too shy to talk 
|
Hi Andrea and all
As I reported in Discord channel I tried 4 different USB Sound Card
UGreen Cheap 7.1 USB Cheap 8.1 USB Behringer U-Phobia UM-2
I can see USB Sound cards in Prefs/AHI or Prefs/Sound (A-Eon version), but I when I click Play A Test Sound, it locks the machine (Sam460)
Does anyone have the same problem ?
|
|
Sinan - AmigaOS4 Beta-Tester - AmigaOne X5000 - AmigaOne A1222 - Sam460ex
|
|
|
|
Re: My AmigaOs4.1 projects
|
Posted on: Yesterday 18:30
#10
|
Just popping in 
|
@Maijestro
Hi Everyone,
This is great that you are doing this. The current ScummVm on os4depot is buggy. I believe it is version 2.9.0. I get a grim reaper when I quit it and it complains about some function in one of the objects then crashes on exit no matter what game I play.
ScummVm 2.8.0 works great on Os4. No problem. Must games run perfectly. Ultima 8 is a bit buggy but the Ultima games usually are.
Speaking of Ultima. If you want to port something else, the exult engine would be great. The version we have is very old, it work fine, but the new version would be great. Exult is used to play Ultima 7 which I feel is the best Ultima game.
No matter what you port, thank you. Much appreciated here.
Yogi
|
|
|
|
|
|
Re: working virtio-net.device for QEMU : no more issues with rtl drivers !
|
Posted on: Yesterday 16:43
#11
|
Home away from home 
|
@kas1e Quote: As for interrupts and speed:
Why then on all machines include x5000 rtl8139 show no bugs ? Too slow in compare with qemu ? But imho x5000 faster than qemu emulation, shouldnt be issue with too many irqs ? If the emulated PowerPC CPU speed of QEmu is slower or faster than a real X5000 depends on the host, with a very fast ARM host CPU like Apple's M5 Ultra emulation might be faster. Major differences: - The author of the OS4 RTL8139 driver found bugs in the QEmu emulation of it, that's why there were some special QEmu beta version of it. - It's emulated. If your host has a 1 Gbit or even 10 Gbit ethernet controller that's the speed you get from the emulation as well. With the slow (every packet is copied several times around inside the TCP/IP stack while processing it) and ancient TCP/IP stacks on AmigaOS flooding it with that many packets and IRQs per second is similar to a DDoS attack  Limiting the host ethernet controller to 10 or 100 Mbit might help, at least while developing a network driver and beta testing it. If you can't do that on your host computer itself most routers have such an option, usually called "ECO mode" or similar.
|
|
|
|
|
|
Re: x1000 onboard opensource driver in progress
|
Posted on: Yesterday 16:30
#12
|
Just popping in 
|
@kas1eQuote: kas1e wrote:
but, still have some problem with whole thing, awfull pings (sometime good enough like 0.5ms, sometime 1000(!) ms), and so all the data load up like "load fast -> stall for a while -> load fast".
2 years ago I tried AROS x86 in qemu with it's rtl8139 driver. It showed similiar behaviour. I did not have much clue about networking stuff, but I looked in the driver source and it had a "TODO:" comment about "wrapped buffers". I managed to do a quick fix and the bad behaviour (load fast, stall, load fast, ...) disappeared. The issue was that a packet in the rx buffer for whatever reason (maybe not happening on real hw) can end up being partly put at the end of the rx buffer, and the rest of it (parts which did not fit) wrapped over and was put at the beginning of the rx buffer. So the quick fix was to allocate the rx buffer 2 times as big, and when a wrap over was detected ("if (ring_offset + rx_size > np->rx_buf_len)" copy the overspilled part from the beginning to "rx_buffer + rx_buf_len". Without this (I think) ~broken packets (only parts of them valid, because not fully/correctly copied) ended up going through network stack.
|
|
|
|
|
|
Re: USB Audio driver for AmigaOS4
|
Posted on: Yesterday 15:49
#13
|
Not too shy to talk 
|
Well done. Amazing. Does it depend on Update 3 and the new isochronous support?
|
|
|
|
|
|
Re: USB Audio driver for AmigaOS4
|
Posted on: Yesterday 15:45
#14
|
Just popping in 
|
Great news! Thank you afxgroup. I'll check this driver with 2 DACs TOPPING EX5 and Topping D10.
|
|
|
|
|
|
Re: Introducing the Rear Window blog
|
Posted on: Yesterday 15:09
#15
|
Just popping in 
|
@samo79
+1
|
|
|
|
|
|
Re: USB Audio driver for AmigaOS4
|
Posted on: Yesterday 13:26
#16
|
Just popping in 
|
Great work. Many thanks indeed!
|
|
Happiness is mandatory
|
|
|
|
Re: USB Audio driver for AmigaOS4
|
Posted on: Yesterday 13:09
#17
|
Quite a regular 
|
@afxgroup Great! Thank you very much! It is not only driver - it also means one free slot in Sam460LE !
|
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
|
Re: x1000 onboard opensource driver in progress
|
Posted on: Yesterday 13:07
#18
|
Quite a regular 
|
@kas1e thanks for effort! It will be great to have ( finally ) driver for X1000 NIC!
|
|
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
|
|
|
|
Re: x1000 onboard network opensource driver in progress
|
Posted on: Yesterday 13:03
#19
|
Home away from home 
|
@balaton Quote: If it hangs on DRAM did you check if memory is good? What is printed after that when it boots? Maybe check that too,
Yeah, will have to check all this while i am at it.. But it's not only this : when i hit reset one time then with 100% case NIC led didn't fire up, then i hit again reset (or 2 more times) and then connection from onboard internet fire up. I.e. 2 problems: 1). Not everytime boot, so no x1000 logo, 2). Sometime even if boot to logo, no onboard ethernet boot up. Quote: To answer that you may first need to understand what dma_alloc_coherent() does, in other word what coherence refers to here and why would that be needed. Maybe it does not matter as long as you only use one core. Coherence may refer to cache coherence between cores but maybe also be for PCI as was the case with graphics cards. That's why you have to find out the above first to get an answer.
At least that can explain why it uses on linux much : they utilize both cores of x1000, while os4 only one, so maybe there no sense to worry, but sure i need do dig in. Quote: If this is AI generated code then who knows, could be anything and nobody could guess without trying to make sense of the code
Of course that all with help of AI: it creates skeletons quite fast, how else i can come to even transfer something for just 2 days :) But then it still need understanding in end to deal everything right. For me were important to know if my onboard network works at all (it is), and if it can transfer data at all (as all those issues with onboard driver there for many years already). So, talking about which, if you (and joerg :) ) have time , can you plz light me up on this and fix if i talk bull: As far as i understand, when x1000 (on any amigaos4) hw) boot up, it doing some PCI mapping from physical to virtual called ECAM, and for x1000 (found by tests on real x1000 hw) the start address of ECAM are 0xE0000000. Next, we have there whole PCI(e) three, which include IOB (first , right at the 0xE0000000, then come other stuff like L2, and then on 0xe00a3000 (00:14.3) we had Ethernet, after which come XAUI, and then at 0xe00d0000 (00:1a.0) DMA engine, and then things go further with SMBus, Serial, etc, etc. Now, what i also found is that some devices have BAR, some have none at all. The IOB, MAC, DMA, L2, few internal to soc PCIe Bridges have no BAR at all, GetResourceRange() just return NULL for them. While others ones (which also part of SOC) still have BARs : SB600, SMBus, Serial, etc. And of course all external devices have BARs too. Then, as i see it, for BAR devices we use GetResourceRange() + ReadConfigLong/WriteConfigLong() (or we can directly (volatile ULONG *)r->BaseAddress; just take care byteswapping). For NOBAR devices (our onboard network as one of them), we just use ECAM address+offset, and then again, then same ReadConfigLong/WriteConfigLong() or direct "(volatile ULONG *)0xE0000000;". Next, we can 2 ways to wrote driver : 1. polling/busywait one , so no interrupts, and probably on real hardware no go ? Currently that the way i use with beta driver. 2. interrupt driven one : this one probably way to go on x1000, but then , currently i didn't get for now full picture of how i should operate with. I.e. this can't be not just simple AddIntServer,like done in the atheros5000 driver by Neils like PCI interrupt path → AddIntServer(MapInterrupt(), handler) , but totally different we should compute ourselfs with usage of DMA_engine where interrupts are, etc ? Did i get everything right till that point ? Because AI of course helps, but offten generate unlogical crap, so had to sort it all before moving to the next steps.. Thanks!
|
|
|
|
|
|
Re: Introducing the Rear Window blog
|
Posted on: Yesterday 12:58
#20
|
Home away from home 
|
@trixie
For next release could you add support for localization?
|
|
|
|
|
|