I can eventually look at emulating nvram but it's low priority for me at the moment. The default in u-boot is to boot from HD so once you've installed just escape and use the settings should work for now. It's less work than typing the command in pegasos2 that was needed before.
Isn't this something already emulated by QEMU?
For some machines it's emulated for some it isn't. This is different for each machine as the hardware for it is different. Some store it in a flash, some have battery backed up RAM. Some may map it somewhere while others may access it via something like i2c so there's no generic way te emulate that.
Quote:
I mean, how does it emulate a Mac machine? A Mac relies on nvram in the same kind of way and that has to be stored somewhere.
QEMU can't really emulate a Mac. It can boot MacOS and MacOS X and Linux distros that work on Mac and even MorphOS but it does not actually emulate any actual Macintosh hardware. What it emulates instead is some Macintosh hardware pieces put together so that OSes can boot but this is different from a real Mac. It cannot run a Mac ROM but has a replacement Open Firmware implementation which uses a different nvram layout than a real Mac. It also could not save it until I've added it to one of the Mac like machines trying to get a Mac ROM working. So also MacOS can't use the functions that need nvram such as startup disk prefs or reboot with different config, these must be done by user editing command line when the install reboots. All this could be fixed but nobody bothered. For the 68k Mac NVRAM is more neded so for that it's emulated which is also more closely following a real Quadra800 than the PPC Mac machines. Quote:
As to shutting down, no the XE cannot. It was a hardware flaw. The closest an A1 gets to shutting down is a blinking cursor on a blank screen.
The Quit item in Workbench seems rather useless and has been since it was first introduced in OS2 or what ever release had the item there. No Workbench I've seen can actually quit and always complains about some process running. Even if it could quit it would just quit to DOS into a shell window. Or quit to a blank screen without window.
I don't remember how this worked but I think you could actually exit WB in OS 2.x or 1.3 to a CLI window but this wasn't used often as you could just reboot the machine instead.
balaton wrote:@Maijestro For me it was important to test this new AmigaOne emulation and I confirmed that it works. The installation is the same as with Pegasos2 emulation except that the installer of the AmigaOne version can not finish the installation (AmigaOs4.1 freezes) and you have to do a lot of manual work (kickstart/kicklayout) is not written correctly or the paths in the kicklayout must be completely rewritten after the installation. Fixing this freeze would be needed to make this more user friendly but I need more info on what's happening. Can you get logs shown when that happens (run at least with -d unimp,guest_errors -trace enable="via*" hopefully that gives enough detail; this will probably print a lot of logs, only the end is needed when it finished installation and the freeze happens, I mean not just the last line but the lines printed at that point but not all the logs from the start and during install where it worked) then when it's frozen try info registers from QEMU monitor to see what is running at that point. To redirect both QEMU monitor and serial output to console use -serial mon:stdio then try Ctrl-A h in serial console for help on how to switch between serial and monitor (it's Ctrl-A c but there are more commands described in help).
I tried to debug it according to your instructions, but apparently I got it wrong. I installed AmigaOs4.1 (AmigaOne) until the installer wants to restart the system and then freezes. The debug options are enabled but it doesn't show me anything maybe it's a bug in my Qemu command line....
Switching to the Qemu monitor also shows me nothing.
We should decide what to do first concentrate on the AmigaOne emulation or Sam460 emulation. ? Everything else is too much for me. So for now we should concentrate on one of the two emulations, the Pegasos 2 emulation is out for now as it runs perfectly apart from the incompatibility of the old sdl1 software this system works perfectly.
Since I have compared all 3 emulations I just wanted to give you a short summary of the problems I noticed right away when installing AmigaOs4.1.
Edited by Maijestro on 2023/8/6 19:46:04
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
balaton wrote:@Maijestro [quote] @joerg said before that PPC SFS version only supports some G3 and G4 CPUs so I think this probably does not work on real machine either because of that. Maybe there's a version of SFS that works or use a 68k version instead that was the frist workaround for pegasos2 as well. But it's not slow because of that but because the CPU is embedded PPC which has a different MMU and emulation of that in QEMU is done differently which results in frequently dropping caches that makes it run slow. This should be fixed in QEMU but I've only found the problem but had not time to try to solve it yet.
Maybe it will be fixed later with Enhancer Software 2.2 in this package is also SFS included in a slightly newer version, but I have to test that. However, I can't imagine that SFS is generally not available on Sam460. On the Install CD is also in the Kickstart SmartFileSystem why would you give it to this CD otherwise if it would not be usable.
Quote:
Does it become faster again when download is finished or stays slow? If it's only slow during download it probably does not handle interrupts well which could be related to the MMU issue I've mentioned above which I think happens on context switching so as long as you run one thing it probably less of a problem but would be slower with multiple things running.
Exactly as soon as the access to the network no longer takes place, the emulation becomes faster again.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
However, I can't imagine that SFS is generally not available on Sam460. On the Install CD is also in the Kickstart SmartFileSystem why would you give it to this CD otherwise if it would not be usable.
Hyperion has no licence to include my SFS version in AmigaOS 4.1 FE and newer, and never had. Most of my AmigaOS 4.x software includes protection against pirate copies working after some time, and of course that includes nearly anything Hyperion illegally distributed on their AmigaOS 4.x CDs, incl. AmiDVD, diskboot, diskcache, PartitionWizard, SFS, etc. The Enhancer Software versions, for which A-Eon has a valid licence, should work.
However, I can't imagine that SFS is generally not available on Sam460. On the Install CD is also in the Kickstart SmartFileSystem why would you give it to this CD otherwise if it would not be usable.
Hyperion has no licence to include my SFS version in AmigaOS 4.1 FE and newer, and never had. Most of my AmigaOS 4.x software includes protection against pirate copies working after some time, and of course that includes nearly anything Hyperion illegally distributed on their AmigaOS 4.x CDs, incl. AmiDVD, diskboot, diskcache, PartitionWizard, SFS, etc. The Enhancer Software versions, for which A-Eon has a valid licence, should work.
Ok thanks, I'll try the SFS from Enhancer Software 2.2 tomorrow and let you know if it works.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
I tried to debug it according to your instructions, but apparently I got it wrong. I installed AmigaOs4.1 (AmigaOne) until the installer wants to restart the system and then freezes. The debug options are enabled but it doesn't show me anything maybe it's a bug in my Qemu command line....
If it shows nothing then it's not writing any unimplemented register (that includes most of Articia ones that should log with -d unimp,guest_errors) and also no VIA chip registers so no idea how it tries to restart the machine or what is it doing at that point. Maybe it's still working just slow for some reason and you did not wait enough for it to finish?
Quote:
Switching to the Qemu monitor also shows me nothing.
You need -serial mon:stdio not -serial stdio in the command line. After doing Ctrl-A c nothing seems to happen but the console is switched to QEMU monitor. To confirm press enter then it should show (qemu) prompt. If it doesn't then it's in serial so press Ctrl-A c to switch and try again. Once at (qemu) prompt type "info registers" to get a printout of the CPU registers that should show at least at what memory address it's at from which we may be able to find what it does. Quote:
We should decide what to do first concentrate on the AmigaOne emulation or Sam460 emulation. ? Everything else is too much for me. So for now we should concentrate on one of the two emulations, the Pegasos 2 emulation is out for now as it runs perfectly apart from the incompatibility of the old sdl1 software this system works perfectly.
I think we should finish AmigaOne now so I can submit it for upstream for review which would need it to at least boot and be usable. This problem during install seems to be the only major problem at the moment so I'd like to find out what it is and solve it if possible. I know the problems of sam460ex but they need digging into embedded PPC emulation in QEMU which is more work so getting AmigaOne to work is simpler and would allow more people to use it so I'd do that first.
I have successfully installed the AmigaOne-qemu version, and I will try and describe any issues I had.
(Compiled and run on Ubuntu, Ryzen 5600x.)
Note - There are 3 windows in use * - serial window for debug messages * - VGA BIOS window for uboot * - SM50x window for AmigaOS
- Besides adding the siliconmotion502.chip file to the install CD, I also added the SmartFilesystem file (from enhancer package) so that I could install to and boot from SFS/02
- The ide/CD speed seems slow when loading the kickstart files from it. The speed seems fine when installing onto HD.
- When the OS installation finished and rebooted, the SM50x window looked like it froze, but the VGA BIOS window had reset and was waiting at the uboot menu. Once I set it to boot from HD it worked (my HD boot priority was already set to 10 to make sure the CD didn't boot instead).
- The HD boot worked after I removed the a1floppy.device.kmod entry in the Kicklayout, as that is what is stopping the OS from loading.
- Using the es1370 device for sound is not perfect as sounds crackle and/or get distorted as they go on. changing bitrate and other settings don't make a difference. I didn't notice this issue when using this sound card with sam460-qemu
Summary - The only issue I have is the sound. Other than that I would say its speed is on par with Peg2-qemu.
And to keep things consistend I've used the same defaul for amigaone. If this isn't a good default then tell me a PCR that should be good. This was picked after @Maijestro and others tested this to work best.
@balaton 7457 is a good default for the AmigaOne even if it's not one of the CPUs originally used by Eyetech (750CXe, 750FX, 750GX, 7541 and 7455). The 7457 was used by ACube as replacement in their CPU module repair service. Not sure ACube built own CPU modules as upgrade as well, or only repaired broken Eyetech CPU modules. https://en.wikipedia.org/wiki/AmigaOne
The CPU parts in the HAL of the kernel are probably identical for AmigaOne SE/XE/µA1 and Pegasos2.
I can confirm that for the Pegasos 2 emulation the CPU 7447 is best suited. Ranger as well as SysMon show me Pegasos 2 as detected hardware. With CPU 7457 Ranger shows me Pegasos 2 as detected hardware, but SysMon shows me an AmigaOneXe.
Both CPU's are fine and offer all functions under AmigaOs4.1 which are available on real hardware e.g. altivec/sfs.
Das ist das Ergebnis mit CPU 7457 SysMon, Ranger erkennt das es sich um Pegasos 2 Hardware handelt.
MacStudio ARM M1 Max Qemu//Pegasos2 AmigaOs4.1 FE / AmigaOne A1222plus AmigaOs4.1 FE
@Maijestro That seems like a bug in SysMon. I'd rather not change this default at every release and also don't want to have separate defaults for amigaone and pegasos2 to avoid having issues related to that so these will likely remain 7457 now which is what you've suggested originally after testing all of these. If I change it to 7447 for both then maybe Sysmon will be broken on amigaone.
@balaton Maybe SysMon is only getting the CPU type an guesses the board based on it, instead of getting the board type or name.
;/* untested, but saving it as board.c and using "execute board.c" in a shell should work
gcc board.c -o board -lauto
board
quit
*/
#include <proto/expansion.h>
#include <stdio.h>
int main(void)
{
uint32 boardtype = 0; STRPTR boardname = "unknown";
IExpansion->GetMachineInfoTags(GMIT_Machine, &boardtype, GMIT_MachineString, &boardname, TAG_DONE);
printf("0x%lx:%s\n", boardtype, boardname);
return 0;
}
The complete U-Boot source was always available, the HTTP interface of the U-Boot repository displays the files as being 19-20 years old. No idea where you got incomplete U-Boot sources with binary parts from.
It was around the time there was that project to rebuild UBoot I got hold hold of the sources. But I wasn't aware the sources were complete and just sitting online. All I know is in the sources I had there were some internal UBoot functions that had no source and were linked in from a binary only. It was also a but quirky looking. Like one of those compiler setups that was hacked together and didn't have a clean way to configure and make easily.
It used to work, who’s Execute command? Did AEON / AmigaKit replace it? In a dis-enhancement update. Is text file in Amiga format? Only char 0x0A or does it also have 0x0D? perhaps it does not support PC formatted text files.
(Interestingly MacOS7.x format only has 0x0D instead of 0x0A.)
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
Strange, using non-breaking space (ISO-8859-15 and Unicode #160, <alt><space> on AmigaOS) instead of space should never have worked. With which version of Execute does it work?
Sure, if text is edited with Unicode editor, like “Lite XL”, of course then its changes some symbols are not encoded as expected, however typical symbols are below 180 in the 0-127 value range and that backwards compatible with 7bit ASC.
so “;” should be interpreted as a commented line in AmigaDOS. value 0x0A should be same in UTF8 as in ASC 8bit/7bit.
But who knows what junk you get when copy and pasting from a webpage. (with all that CSS formatting, generated HTML code)
Edited by LiveForIt on 2023/8/9 22:34:57
(NutsAboutAmiga)
Basilisk II for AmigaOS4 AmigaInputAnywhere Excalibur and other tools and apps.
@LiveForIt 0xA0 (non-breaking space), not 0x0A (line-feed), was the problem, and you often get 0xA0 instead of 0x20 (space) when copying text from a web page.
Isn't it Kickstart/Kicklayout? That's what BBoot also looks for when you zip your Kickstart directory. That one has only Kickstart in path but found in System/Kickstart on CD and the CD therefore has an additional Kickstart/Kicklayout file with paths pointing to System/Kickstart but on installation the System/Kickstart dir should be copied to SYS:Kickstart then the Kicklayout file in it would be used and the CD:Kickstart/Kicklayout is only on the CD and should not be copied. Did the frozen install not copy the Kickstart dir or how it missed the Kicklayout file in it?
Yes that's what I meant. For some reason I had startup in my head. Kickstart/Kicklayout is the correct location and would also point the CD to files at System/Kickstart.
By the looks of it it has just copied the whole dir to system and the post fix failed. Given a CD Kicklayout was installed I wonder if it just blindly copied the whole lot and then overwrites the Kickstart with the proper version at the last minute. Thought that would be slightly lazy if it did.
If it suddenly broke or crashed before postfix that would explain it.