Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
115 user(s) are online (42 user(s) are browsing Forums)

Members: 0
Guests: 115

more...

Support us!

Headlines

 
  Register To Post  

« 1 2 (3)
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Home away from home
Home away from home


See User information
@Majestro
Quote:

Where can I get the original? And thanks for the tip.

The last version were released in fe-update2, placed in Utilities/Commodities/RAWBInfo

@derfs
I take my words back about needs to create virtuo.library, maybe that one were better at first, but now, when you already create with no problems directly device and handler, then probably following the same "direct" way..

I just add to qemu "-device virtio-net-pci,disable-legacy=on", and can see in ranger that it add new Ethernet.device "1AF4:1041" (the virtuo-Handler is 1AF4:1049 btw). So probably it's matter now to follow your device code logic in SCSI device, and made "virtio-net.device", the only difference will be is implementation of SANAII stuff. And then no more issues with network ever !

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Not too shy to talk
Not too shy to talk


See User information
@kas1eQuote:
kas1e wrote:
I just add to qemu "-device virtio-net-pci,disable-legacy=on", and can see in ranger that it add new Ethernet.device "1AF4:1041" (the virtuo-Handler is 1AF4:1049 btw). So probably it's matter now to follow your device code logic in SCSI device, and made "virtio-net.device", the only difference will be is implementation of SANAII stuff. And then no more issues with network ever !


Thats correct as all the generic commands are already covered and SANA-II would be added as additions.

I need to get the PCI-setup working for all machines without having to change the qemu device parameters but MMIO only works for pegasos2 which means I have stayed with legacy virtio for amigaone.

Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Quite a regular
Quite a regular


See User information
@kas1e @@derfs
Quote:
Btw, now as you can made those devices/libraries/handlers now, and i see on your github you made some https://github.com/derfsss/AmigaBlockDevLibrary, is it possible (if i may ask for), to create our opensource version of the virtuo.library instead of that one from AEON, so we can then make on top of that some network driver which will works fine without needs to use those rtl ones which cause issues ?

@Falke_34 announced on the os4welt forum that he wants to make VirtioVGA.
He seems enthusiastic about it and is making progress. Let's keep our fingers crossed that he succeeds
He is also working on “virtio.library.”
It would be great if anyone wanted to help him.
I don't know enough to say whether he has chosen the right path.
Description: “The project may be distributed, copied, edited, and also puzzling!”
Yesterday he wrote that it is initializing in a certain way: “GPU is recognized -> QEmu also opens a new black screen.”
[DOS ELF_LSNOTENo _start() found in file "LIBS:virtiovga.chip" installing dummy_start().
[
virtiovgaChipLibInit IExec=02182E1C lib=62D9A4C8
[virtiovgaInitChip bi=6FF0D2B0 IExec=02182E1C
[DOS ELF_LSNOTENo _start() found in file "LIBS:virtio.library" installing dummy_start().
[
virtio.libraryLibInit OK IExec=02182E1C SysBase=022969F2
[virtio.librarylib=62D9A548 seglist=18B65A31 IDOS=6FFA05D0
[virtio.libraryOpen cnt=1 caller=0183B39C
[virtiovgavirtio.library62D9A548
[virtiovgaiface62D9A5B0
[virtioDevice GPUPCI-DID=1050 idx=0 bar4=84200000 ccfg=84200000
[virtioDevice SoundPCI-DID=1059 idx=0 bar4=84204000 ccfg=84204000
[virtioDevice NetPCI-DID=1000 idx=0 bar4=84208000 ccfg=84208000
[virtioDevice SCSIPCI-DID=1048 idx=0 bar4=84280000 ccfg=84280000
[virtiovgaGPU62D4D5D0
[virtiovio_initfeatures_lo=00000000 features_hi=00000001 (VERSION_1)
[
virtiovio_initstatus after FEATURES_OK 0B
[virtiovio_init OK ready for queue setup (DRIVER_OK pending)
[
virtioringvirt=62D41000 phys=00932000 (delta=1648422912)
[
virtiobuf:  virt=62D43000 phys=00934000
[
virtioQ0 readbackenable=1 desc=00932000 avail=00932400 used=00933000
[
virtioQueue 0notify_off=0 notify_addr=84203000
[virtioQueue 0size=64 desc=00932000 avail=00932400 used=00933000 notify=84203000
[virtiovgactrlq62D96A00
[virtioDRIVER_OK set DevStatus=0F ISRaddr=84201000
[virtiovgaDRIVER_OK set GPU ready
[virtionotify q0
[virtioq0 OK ISR=01 used=1
[virtiovgaDISPLAY_INFO resp=00001101
[virtiovga]  s[0en=1 1280x800
[virtiovgaResolution1280x800
[virtiovgaFB62905000 (4000 KB)
[
virtionotify q0
[virtioq0 OK ISR=01 used=2
[virtiovgaCREATE_2D OK
[virtionotify q0
[virtioq0 OK ISR=01 used=3
[virtiovgaATTACH_BACKING OK
[virtionotify q0
[virtioq0 OK ISR=01 used=4
[virtionotify q0
[virtioq0 OK ISR=01 used=5
[virtiovgaInitChip OK 1280x800 32bpp
[virtiovgaChipLibInit OK GPU active 1280x800
[virtiovgaLibOpen cnt=1


To sum up... if you guys have the time and inclination, maybe it's worth helping him out?
ps
@Falke_34 also developed QEmu Helper - a program written in Python3 that provides a config interface to make it easier to configure and start QEmu with Amiga OS 4.1. He is still working on it.
It was created before @walkero developed Kyvos.
https://amigaworld.net/modules/newbb/v ... =20&viewmode=flat&order=0

@Falke_34 has the enthusiasm and desire to do something for AOS4... so if anyone can help him, thank you in advance.

Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Home away from home
Home away from home


See User information
@smarkusg
I not sure to be honest if virtio.library is need it us at all for now.. I mean what derfs did is quite cool and very well written, so all we need to have virtio-net.device "today" is update what he did with SANAII. Going another way now can be a bit more time consuming even if future proof.. But that of course up to derfs :)

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Quite a regular
Quite a regular


See User information
@kas1e
As you see virtio is a whole family of devices that all use the same primitives to communicate with QEMU so if you make drivers for them you'll end up with duplicated code in these drivers that's best put in a library. Not only to make the drivers smaller but also to avoid having to fix the same bug in multiple drivers or have different bugs in different drivers. So you should really make the common part a virtio.library then base all drivers on that. That way improving the library would also improve all drivers without having to touch them.

Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Quite a regular
Quite a regular


See User information
@derfs
Quote:
I need to get the PCI-setup working for all machines without having to change the qemu device parameters but MMIO only works for pegasos2 which means I have stayed with legacy virtio for amigaone.

Why is that? MMIO should work with amigaone too. Isn't it just a memory mapped BAR that should show up in the PCI window? Or does it need something else that pegasos2 has and amigaone lacks?

Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Not too shy to talk
Not too shy to talk


See User information
@balaton
Quote:
The Articia S northbridge does not forward CPU memory cycles to PCI. The address decodes fine, the BAR is visible in config space, but when you actually try to read or write the MMIO region, the data never reaches the device.

The Articia S only reliably forwards I/O port (not memory) PCI cycles, which is why AmigaOne needs legacy VirtIO transitional devices (device ID 0x1004) that expose an I/O BAR. The OS InWord()/OutWord() PCI methods work fine for I/O space — it's specifically memory-mapped BAR access that the Articia S doesn't pass through.


If I want to use devices that have no I/O BAR then that is where I hit the issue. I am moving everything to legacy-only for now and will re-visit the issue later.

Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Home away from home
Home away from home


See User information
@derf,balaton
Based on derf's code of the SCSI device were able to create working virtionet.device ! I can now set it as interface in network prefs, can ping to 127.0.0.1 and to my new ip 192.168.100.100 on this device.. now only to understand how correctly to tell qemu now to go outside of qemu to see if whole transfering work, and not just pings.

Before it was some hardcore like i had to setup openvpn to have TAP device, then "-device rtl8139,netdev=net0 -netdev tap,id=net0,ifname=TAP0,script=no,downscript=no" , etc.. Is the same TAP/slirp way need when use virtionet.device as well ?

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Quite a regular
Quite a regular


See User information
@kas1e
If you want the virtual machine to appear on your network you still need TAP. If you just want to access a port like ssh into the guest you can use port forwarding with user/slirp. There's also an alternative to slirp called passt which is the modern way with more features but I don't know it. In QEMU the -device is the guest side part and -net is the host side so it works the same on the host side independent if you use -device rtl8139 or -device virtio-net which just sets what card the guest sees. Once the packets reach QEMU it's the -net option that decides where they go.

Go to top
Re: Virtio SCSI driver for AmigaOS4.1FE on QEMU
Quite a regular
Quite a regular


See User information
@derfs
I don't understand that explanation. Can you explain it or is it just what the AI generated? The sm501 has the whole vram memory mapped and you can certainly read and write it on both amigaone and pegasos2 so this should fundamentally work. If it doesn't there must be some other reason but I don't understand what.

Using legacy virtio devices is not recommended because they may be dropped in next release or soon after. You should really fix the driver to work with modern virtio.

One thing that modern virtio is different from legacy is that it's always little endian so more than byte access may need endian conversion. Is that handled in your driver? But if it works on pegasos2 it probably does. While the Marvell and Articia may have bits to do endian swap they are not emulated, you should get a log message with -d unimp,guest_errors if you try to use it. So the driver needs to handle it.

Go to top

  Register To Post
« 1 2 (3)

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )



Polls
Running AmigaOS 4 on?
AmigaOne SE/XE or microA1 12% (26)
Pegasos2 3% (8)
X5000 22% (48)
X1000 14% (30)
A1222 8% (19)
Sam 440/460 18% (40)
Classic PowerPC Amiga 2% (6)
WinUAE emulation 7% (16)
Qemu emulation 9% (21)
Total Votes: 214
The poll closed at 2025/12/1 12:00
8 Comments


Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project