Now, when you say that "All graphics cards emulated in QEMU and supported by AOS4 work correctly with the original pegasos2.rom. ", it make it sounds , like with new firmware they stop working ? Or what ?
Here's a very simple example using sm501 in QEMU. Test code:
#### pegasos2-kas1e.rom # Here on the testkas1e.hdf disk the boot.fth file is actually amigaboot.of!!!! /home/markus/QEMU/qemu-11/bin/qemu-system-ppc -machine pegasos2 -rtc base=localtime -m 1024 -serial stdio -vga none -bios ./pegasos2_kas1e.rom -drive format=raw,if=none,id=rdb,file=testkas1e.hdf -device ide-hd,drive=rdb,bus=ide.0 -device sm501 # bboot.fth /home/markus/QEMU/qemu-11/bin/qemu-system-ppc -machine pegasos2 -rtc base=localtime -m 1024 -serial stdio -vga none -bios ./pegasos2_kas1e.rom -drive format=raw,if=none,id=rdb,file=testkas1e-2.hdf -device ide-hd,drive=rdb,bus=ide.0 -device sm501 #### pegasos2.rom # Here on the testkas1e.hdf disk the boot.fth file is actually amigaboot.of!!!! /home/markus/QEMU/qemu-11/bin/qemu-system-ppc -machine pegasos2 -rtc base=localtime -m 1024 -serial stdio -vga none -bios ./pegasos2.rom -drive format=raw,if=none,id=rdb,file=testkas1e.hdf -device ide-hd,drive=rdb,bus=ide.0 -device sm501 # bboot.fth /home/markus/QEMU/qemu-11/bin/qemu-system-ppc -machine pegasos2 -rtc base=localtime -m 1024 -serial stdio -vga none -bios ./pegasos2.rom -drive format=raw,if=none,id=rdb,file=testkas1e-2.hdf -device ide-hd,drive=rdb,bus=ide.0 -device sm501
Based on this example, it seems that pegasos2_kas1e.rom is trying to change something it shouldn't. Perhaps when it is unable to initialize VGABIOS, it tries to force a change? The original pegasos2.rom behaves correctly. test video -> https://youtu.be/ZSJgQdRSdZQ
They weren't embedded in a full Kickstart image. That is a ROM image.
Nothing in any AmigaOS version, not even 0.x betas on the A1000, cared where and how the individual kickstart modules are stored, on classic Amigas it's even 3 sources: ROM/(E)EPROM (or WORM RAM on A1000 and early A3000), RAM (there were tools like LoadResident, LoadModule, etc., long before OS 3.5/3.9 existed) and the Zorro II/III card ROMs (autoconfig). It's still the same on AmigaOS 4.x: You can either use individual Kickstart module files (default) or a single "ROM" image file like BBoot's Kickstart.zip. You don't even need something like BBoot, with the GNU ld or the VBCC vlink you could link all OS 4.x ELF Kickstart modules, i.e. everything except for loader(|.of|.ub) and text config files like diskboot.conf, p96Config, etc., into a single Kickstart/ROM ELF and use "MODULE Kickstart/ROM" in the Kicklayout.
Quote:
If full Kickstart modules are included it should have supported ROM 3.0 and not needed ROM 3.1.
I don't know if 3.1 was really required for some reason for 3.9, or if Haage&Partner just wanted to make more money by selling additional 3.1 Kickstart ROM/(E)EPROM chips.
pegasos2.rom.org = original firmware pegasos2.rom pegasos2_kas1e.rom - your new firmware version testkas1e.hdf = disk image with AmigaOS 4.1FE containing Update 3 (kernel 54.57) and standard boot via amigaboot.off testkas1e-2.hdf = disk image with AmigaOS 4.1FE containing Update 3 (kernel 54.57) and standard boot via bboot (bboot.fth) Tested on an ASUS RX 560 Dual Fan OC 2 GB graphics card and QEMU-11.
1. Booting on the original PEG2 firmware and standard system boot ".qemu-system-ppc -M pegasos2 -m 1024 -bios pegasos2.rom.org -rtc base=localtime -serial none -vga none -nographic -parallel none -device ide-hd,drive=hd-drive,bus=ide.0 -drive file=testkas1e.hdf,if=none, id=hd-drive,format=raw -device vfio-pci,host=01:00.0,x-vga=on,multifunction=on,bus=pci.0,x-igd-gms=0xff -device vfio-pci,host=01:00.1,bus=pci.0....."
The system does not boot; there is no firmware output screen on the RadeonRX card.
2. Booting on the original PEG2 firmware and booting the bboot system ".qemu-system-ppc -M pegasos2 -m 1024 -bios pegasos2.rom.org -rtc base=localtime -serial none -vga none -nographic -parallel none -device ide-hd,drive=hd-drive,bus=ide.0 -drive file=testkas1e-2.hdf,if=none, id=hd-drive,format=raw -device vfio-pci,host=01:00.0,x-vga=on,multifunction=on,bus=pci.0,x-igd-gms=0xff -device vfio-pci,host=01:00.1,bus=pci.0....."
The system boots correctly, no firmware output screen on the RadeonRX card screen -> https://ibb.co/YBJjdy4N
3. Booting on the new PEG2 firmware and standard system boot ".qemu-system-ppc -M pegasos2 -m 1024 -bios pegasos2_kas1e.rom -rtc base=localtime -serial stdio -vga none -nographic -parallel none -device ide-hd,drive=hd-drive,bus=ide.0 -drive file=testkas1e.hdf,if=none, id=hd-drive,format=raw -device vfio-pci,host=01:00.0,x-vga=on,multifunction=on,bus=pci.0,x-igd-gms=0xff -device vfio-pci,host=01:00.1,bus=pci.0....." The system does not boot; there is a firmware output screen on the RadeonRX card. screen -> https://ibb.co/8LGzjYyw
RTAS instantiate base=01EE8BE0 size=00002A90 blob=00002A90 src_hash=E220CAD1 dst_hash=E220CAD1 words=7CA802A6 48000225 4800011D 480000ED
RadeonRX (2): Identified the chipset as: POLARIS11
RadeonRX (2): Graphics card name is: Radeon RX Polaris11
RadeonRX (2): If - and only if - your card does not work or does not work optimally
please submit a bug report at:
http://www.amiga.org/developer/bugreports
Remember to include the driver version, and the following card details:
0x67FF:0x1043:0x052D:
and *please* describe the problems you are seeing in detail.
graphics.library AltiVec/VMX enabled
graphics.library PPC74xx optimizations enabled
RadeonRX (0): RadeonRX.chip 2.11 (26.1.2022)
RadeonRX (2): Identified the chipset as: POLARIS11
RadeonRX (2): Graphics card name is: Radeon RX Polaris11
RadeonRX (2): If - and only if - your card does not work or does not work optimally
please submit a bug report at:
http://www.amiga.org/developer/bugreports
Remember to include the driver version, and the following card details:
0x67FF:0x1043:0x052D:
and *please* describe the problems you are seeing in detail.
RadeonRX (0): ERROR: Could not get the video RAM resource range
Dump of context at 0x02252460
Trap type: DSI exception
Machine State (raw): 0x0000B030
Machine State (verbose): [ExtInt on] [Super] [FPU on] [IAT on] [DAT on]
Instruction pointer: in module RadeonRX.chip+0x0009DD5C (0x01D7055C)
Crashed task: exec.task (0x6FFAB240)
DSI verbose error description: Access not found in hash or BAT (page fault)
Access was a load operation
0: 01CEFB38 02220130 0020F800 00000000 00000000 00000000 01000800 02253B17
8: 022536CC 00000000 00000000 02220088 26022482 FFF045B4 6FF13000 6FFA4070
16: 60700000 6FFAB780 6FF1B000 6FF57150 6FF963A4 6FF66010 020230E0 00000001
24: 0000004F 6FFA4000 00000000 02410000 00000000 6FF03EEC 6FF03000 6FF03000
CR: 2A022824 XER: 00000000 CTR: 018370FC LR: 01CEFB38
DSISR: 40000000 DAR: 00000000
screen ->https://ibb.co/HDWggYfc In AOS4 debug mode, an infinite loop of the error “Could not get the video RAM resource range” appears continuously.
4. Booting on the new PEG2 firmware and starting the bboot system. ".qemu-system-ppc -M pegasos2 -m 1024 -bios pegasos2_kas1e.rom -rtc base=localtime -serial stdio -vga none -nographic -parallel none -device ide-hd,drive=hd-drive,bus=ide.0 -drive file=testkas1e-2.hdf, if=none,id=hd-drive,format=raw -device vfio-pci,host=01:00.0,x-vga=on,multifunction=on,bus=pci.0,x-igd-gms=0xff -device vfio-pci,host=01:00.1,bus=pci.0....." The system does not boot; there is a firmware output screen on the RadeonRX card. screen -> https://ibb.co/8LGzjYyw
In AOS4 debug mode, an infinite loop of the error “Could not get the video RAM resource range” appears continuously.
RTAS instantiate base=01EE8BE0 size=00002A90 blob=00002A90 src_hash=E220CAD1 dst_hash=E220CAD1 words=7CA802A6 48000225 4800011D 480000ED
RadeonRX (2): Identified the chipset as: POLARIS11
RadeonRX (2): Graphics card name is: Radeon RX Polaris11
RadeonRX (2): If - and only if - your card does not work or does not work optimally
please submit a bug report at:
http://www.amiga.org/developer/bugreports
Remember to include the driver version, and the following card details:
0x67FF:0x1043:0x052D: <name of board>
and *please* describe the problems you are seeing in detail.
graphics.library AltiVec/VMX enabled
graphics.library PPC74xx optimizations enabled
RadeonRX (0): RadeonRX.chip 2.11 (26.1.2022)
RadeonRX (2): Identified the chipset as: POLARIS11
RadeonRX (2): Graphics card name is: Radeon RX Polaris11
RadeonRX (2): If - and only if - your card does not work or does not work optimally
please submit a bug report at:
http://www.amiga.org/developer/bugreports
Remember to include the driver version, and the following card details:
0x67FF:0x1043:0x052D: <name of board>
and *please* describe the problems you are seeing in detail.
RadeonRX (0): ERROR: Could not get the video RAM resource range
Dump of context at 0x02252460
Trap type: DSI exception
Machine State (raw): 0x0000B030
Machine State (verbose): [ExtInt on] [Super] [FPU on] [IAT on] [DAT on]
Instruction pointer: in module RadeonRX.chip+0x0009DD5C (0x01D7055C)
Crashed task: exec.task (0x6FFAB240)
DSI verbose error description: Access not found in hash or BAT (page fault)
Access was a load operation
0: 01CEFB38 02220130 0020F800 00000000 00000000 00000000 01000800 02253B17
8: 022536CC 00000000 00000000 02220088 26022482 FFF045B4 6FF13000 6FFA4070
16: 60700000 6FFAB780 6FF1B000 6FF57150 6FF963A4 6FF66010 020230E0 00000001
24: 0000004F 6FFA4000 00000000 02410000 00000000 6FF03EEC 6FF03000 6FF03000
CR: 2A022824 XER: 00000000 CTR: 018370FC LR: 01CEFB38
DSISR: 40000000 DAR: 00000000
Doh, quotes doent work with ipad/vivaldi. Newer mind.
That part I didnt understood.What you mean you run POST? By setting vga0/vga1?
Protocol sounds fair and good. I personally want better card for higher resolution. As bonus there is all 3D&CO. So i probably drop agp card. But needs may vary and vga0/vga1 resolves that all. Well done :)
Please Subscribe my channel for up-comming C64 videos and Also watch other cool C64 Animation Videos & Demo on my channel at: Watch Here More C64 Demo Videos
@smarkusg wait wait, forget about bboot. It have no needs since in latest kernel issues which fix bboot fixed. Now let's not refer to it, anymore (for our tests at least), because all tests since that on kernel 54.57. So it's all amigaboot.of now, and no mess.
Next, i still didn't get about "graphics cards supported by AOS4"..
Original firmware rom, works only with:
-device VGA with VGABIOS-lgpl-latest.bin. -device ati-vga with rage128progl16mb.VBI
maybe with latest releast with rv100, dunno.
Then, new firmware rom, works with:
- "currus-vga" - "VGA" with VGABIOS-lgpl-latest.bin - "VGA" with default seabios's vgabios-stdvga.bin - "ati-vga" with rage128progl16mb.VBI - "ati-vga" with default vgabios-ati.bin - "ati-vga,model=rv100" with default vgabios-ati.bin
By "works" i mean it show itself on the firmware output screen. And there i mean only firmware, not amigaos4 itself.
Now, when you say that "All graphics cards emulated in QEMU and supported by AOS4 work correctly with the original pegasos2.rom. ", it make it sounds , like with new firmware they stop working ? Or what ?
I just trying to understand what bug you found are. For me, with new firmware much more cards are visibly in firmware. Or there is issue with exactly boot to amigaos4 , and only with new firmware ? If so, plz, give me the full lines of your qemu run , which works with original firmware and didn't with new firmware, so i simple can test it myself on my QEMU too.
Wrong, OS3.9 includes updated, complete kickstart modules like exec, scsi.device, FFS, etc. which replace the old 3.1 ROM versions, it doesn't patch the OS 3.1 versions. expansion.library starts only one kickstart module, the one with the highest struct Resident rt_Version, if several kickstart modules with the same rt_Name name are installed, ROM and RAM in case of OS3.9.
They weren't embedded in a full Kickstart image. That is a ROM image. If full Kickstart modules are included it should have supported ROM 3.0 and not needed ROM 3.1. That doesn't make sense. In any case it still wasn't a perfectly clean solution because it didn't load the modules and patch in before booting. It needed to partially boot and reset.
@kas1e All graphics cards emulated in QEMU and supported by AOS4 work correctly with the original pegasos2.rom. You don't even need to use bboot. They also work correctly with QEMU AmigaOneXE using the original uboot. If you’re asking about “-device ati-vga,model=rv100,guest_hwcursor=on”—yes, it works on pegasos2.rom with bboot and amigaboot.of.
As far as I know, bboot was created to avoid using SmartFirmware and uboot in QEMU for PEG2 and A1. It is closed-source software, and there is no way to fix it or access the source code. You can freely use either bboot or the original SmartFirmware/uboot for PEG2 and A1 emulation. Bboot also fixes a few issues—for example, in PEG2 emulation, the memory limit of 1GB (real hardware also had issues with certain RAM modules) when using pegasos.rom has been fixed, etc.
@balaton Quote:
I also can't follow what you tested and what works and not. You should be more specific about the tests and results.
I'll give it a try. I'm assuming (probably wrongly) that everyone knows exactly what I mean. I'll try to explain it in more detail.
“works” = QEMU and the system will boot from pegasos2_kas1e.rom on an emulated ATI card “-device ati-vga,model=rv100,guest_hwcursor=on”. You don't even need to specify the “rom” file Other emulated cards in QEMU that work with AOS4 (sm501, voodoo3) cause the system to freeze during startup (the system won’t boot). That’s what I meant
But that the same with original firmware, isn't it ?
Once it will works, i can simple release just a smartfirmware part with a python script which build a new rom from original (extracting bootstrap, combine with our smartfirmware, and create new rom). This way ppls already can use it, while i will worry about bootstrap replacement, which, IMHO, will be harder part.
Uploading the sources to a repo and let people test it review it and help fixing it could be done even when it's not finished yet. That way you don't have to do everything alone.
For now, while i trying to fix RTAS issue in the firmware (and there indeed was issue because of which the RTAS scan code of kernel wasn't working for anything in bus more than 0), i found that even RadeonRx start to give me " ERROR: Could not get the video RAM resource range", but then, with beta kernel it works for RadeonRx, so .. i snork something somewhere close enough ..
I think Hans had to fix some more PCI issues in Pegasos2 kernel than 64bit BARs and IRQ setting that BBoot patches so unless those are also released in Update 3 it probably won't work. You might be able to patch some of that in the firmware by presinting a different device tree to AmigaOS but that would probably break new kernels so maybe just get the fixed kernel released or leave it for later when that kernel will be available otherwise you cause yourself unnecessary issues.
@smarkusg I also can't follow what you tested and what works and not. You should be more specific about the tests and results. Such as: describe exactly what you tested with QEMU command line then say how it did not work. Just saying does not work is not enough to understand the issue. The ati-vga is only meant to work with model=rv100 because PCIGraphics.card only recognises Radeon cards no Rage cards so even if you get picture in firmware AmigaOS won't load the driver. You said sm501 does not work with @kas1e's rom. Does it work with that rom + bboot? Maybe there's either some problem with PCI init or RTAS.
@kas1e “works” = QEMU and the system will boot from pegasos2_kas1e.rom on an emulated ATI card “-device ati-vga,model=rv100,guest_hwcursor=on”. You don't even need to specify the “rom” file Other emulated cards in QEMU that work with AOS4 (sm501, voodoo3) cause the system to freeze during startup (the system won’t boot). That’s what I meant
I’ve added a sample video to the previous description.
edit: I've finished testing the Radeon RX. My card is an ASUS RX 560 Dual Fan OC 2 GB. It only works with bboot (bboot.fth) on kernel 54.57 and the original pegasos2.rom. It doesn't work with pegasos2_kas1e.rom, amigaboot.of, or boot.fth. I'll add more details here later.
On QEMU without PCI passthrough booted via pegasos2kas1e.rom (not bboot), only the emulated ATI RV100 graphics card works: “-device ati-vga,model=rv100,guest_hwcursor=on
By "works" you mean can't boot to firmware with correct output, or, can't boot to amigaos4 with Balaton's driver ? If the later, that probably exactly the same with original firmware too ?
I mean is there any difference with original firmware in that terms ? Because as for me, the new one can boot to firmware and with vga, and with cirrus-vga, and with ati-vga, etc, while original firmware can't with some. But then, booting to amigaos4 from CD installation with Balaton's driver can happens only with rv1000 (same on original firmware and on new one).
@kas1e We need to do a quick recap of what I’ve been testing on QEMU. I haven’t tested anything yet on a Radeon RX with QEMU, the new pegasos2kas1e.rom, or the original pegasos2.rom with the UP3 update on my machine. Maybe I wrote something wrong or you misunderstood. Someone might read what we wrote in a few days and won’t be able to understand a thing
1. On QEMU without PCI passthrough booted via pegasos2kas1e.rom (not bboot), only the emulated ATI RV100 graphics card works: “-device ati-vga,model=rv100,guest_hwcursor=on” sample video - > https://youtu.be/-eS3WjsMX4E
2. Tests on QEMU PCI passthrough have so far been performed on the “AMD Radeon HD 7700 Series” Asus Radeon HD 7750 card. Emulation and successful system boot QEMU PCI passthrough with a Radeon HD card using an older kernel < 54.57 (without UPDATE 3 installed) works only with bboot (bboot.fth) and the original pegasos2.rom Emulation and successful system boot via QEMU PCI passthrough with a RadeonHD card using kernel 54.57 (with UPDATE 3 installed) works via bboot (bboot.fth) with the original pegasos2.rom and the standard boot mode (amigaboot.of) Currently, the system is unable to boot correctly on my system in QEMU emulation with pegasos2kas1e.rom on a system with kernel 54.57 via bboot (boot.fth) and in standard boot mode (amigaboot.of)
I was going to install RadeonRX yesterday and test it, but you wrote to check the system boot with amigaboot.of. I haven't tested anything yet with the pegasos2kas1e.rom and the RadeonRX card. From now on, I'll mention which card I used in every post to make things clearer.
YES. It is possible to run QEMU PEG2 with QEMU PCI passthrough without bboot on kernel 54.57 on the original pegasos2.rom.
Ok, good ! One issue less ! Not using bboot there make it easy to test things correctly. And in case with new firmware UDMA is added, so booting will be same fast as with bboot.
Now i need to understand our current mambo-jambo, so far it looks like this:
1). original firmware: you can boot via passthrough with RadeonHd and can boot with RadeonRX (just RadeonRX slow like hell), that right ?
2). with our firmware, you still can boot with RadeonRX (while still slow), but can't RadeonHD anymore, and have " ERROR: Could not get the video RAM resource range". That right too ?
It's quite interesting why things changes...
For now, while i trying to fix RTAS issue in the firmware (and there indeed was issue because of which the RTAS scan code of kernel wasn't working for anything in bus more than 0), i found that even RadeonRx start to give me " ERROR: Could not get the video RAM resource range", but then, with beta kernel it works for RadeonRx, so .. i snork something somewhere close enough ..
ps. can you tell me plz what version of RadeonHD and RadeonRX you use for tests ?
(i just need that to understand if we can get rid of bboot now and it's fixes for tests).
Thank you so much ;P ... it took me a bit of effort to get it running It's a bit tricky to run Peg2 QEMU PCI passthrough on a computer where you only have remote access, especially when the original pegasos2.rom freezes during RadenHD initialization. I have scripts, but I had to improvise a bit here.
YES. It is possible to run QEMU PEG2 RADEONHD with QEMU PCI passthrough without bboot on kernel 54.57 on the original pegasos2.rom.