Welcome, Guest. Please login or register.

Author Topic: New Kickstart 3.9.1 68k on the way  (Read 38392 times)

Description:

0 Members and 8 Guests are viewing this topic.

Offline kolla

Re: New Kickstart 3.9.1 68k on the way
« Reply #134 from previous page: December 14, 2014, 03:38:05 PM »
Do you really intend to put entire OS in kickstart? And boot from what, a RAD disk?
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline paul1981

Re: New Kickstart 3.9.1 68k on the way
« Reply #135 on: December 14, 2014, 03:52:07 PM »
Quote from: kolla;779789
Explain again why you have workbench.library and icon.library in kickstart.

I can think of one good reason - backwards compatibility with existing floppy based software (even some games).
Without those two library's these disks would not boot anymore...they would hang as soon as the LoadWB command is run and a requester saying something like "Unable to open workbench.library" would appear. Same goes for icon.library. It would only serve to confuse users...
Nothing should be taken out of Kickstart. Nothing extra should be included either for the same reasons, but updating/optimising the versions of the software modules within the Kickstart seems perfectly okay to me.
 

guest11527

  • Guest
Re: New Kickstart 3.9.1 68k on the way
« Reply #136 on: December 14, 2014, 04:38:55 PM »
Well, I still don't know whether that's a "yes" or "no" to my proposal. Anyhow, let's try. I'll take this for a yes and attach the sources of P5Init.


Quote from: Cosmos;779787
The first thing to do is to take the 68060.library and patch it if a 68040 is detected : stack frame, mul64 removed and div64 removed... Easy to do I guess : this little trick will save about 43 precious Kb...
No, hard to do. There is much more to do in the FPSP than just emulate the instructions. I suggest that you download the sources of the fpsp and isp from Motorola/Freescale. They should be freely available, and then take a look. The majority of code is really exception processing and instruction decoding, and *that* works entirely different on the 060. The 040 has a rich stack frame from which you can retrieve a lot of information on the instruction pipeline. The 060 does not, you have to decode the instruction yourself and fetch source operands yourself. You also have to write out destination operands yourself. Also, the ISP emulates more than just DIV and MUL (you'll find out, check yourself), and the FPSP has more to do than just to emulate instructions.

Quote from: Cosmos;779787
After that, I have the specific 040/060 code from P5 : I will rip it, I know the authors will yell, but I cannot see any other solution...
I can. As always, ask them...

Quote from: Cosmos;779787
This new 68060.library will be packed of course and only depacked in ram if a 040 or a 060 is detected !
And what about the 68030?

Anyhow, you'll have at this point what I can offer at this point. Come back if you want to cooperate.

Quote from: Cosmos;779787
This new kickstart is for me the very last chance of the Amiga Classics. Must be fantastic. If I fail, it will be the very end of our beloved computer...
Except that this goes into a completely wrong direction... but as you wish.





:)[/QUOTE]
 

Offline wawrzon

Re: New Kickstart 3.9.1 68k on the way
« Reply #137 on: December 14, 2014, 05:12:12 PM »
Quote from: Cosmos;779787

After that, I have the specific 040/060 code from P5 : I will use it, I know the authors will yell, but I cannot see any other solution...


you can look at aros68k 680x0.library, it actually must include support for both 040 and 060 for what i know. the sources for 060 libs are referenced outside amiga community afair. i dont remember where, but maybe somewhere with freescale.
 

Offline wawrzon

Re: New Kickstart 3.9.1 68k on the way
« Reply #138 on: December 14, 2014, 05:18:40 PM »
ah, thor posted it too. so the 060 libs sources including well commented asm by freescale are here in aros source/arch/m68k-all/m680x0
which is to download here:
http://aros.sourceforge.net/de/download2.php
« Last Edit: December 14, 2014, 05:20:47 PM by wawrzon »
 

Offline olsen

Re: New Kickstart 3.9.1 68k on the way
« Reply #139 on: December 14, 2014, 05:37:01 PM »
Quote from: kolla;779795
Do you really intend to put entire OS in kickstart? And boot from what, a RAD disk?
Good question ;)

There are actually did exist a modification of the Commodore "ram-handler" component dubbed "romdisk" (written by Mike Sinz).

It allowed you to put a preconfigured file system image into ROM. Unfortunately, this was a file system, not a "ramdrive.device"-like component, and thus did not support auto-booting. If this did exist (a "romdrive.device") then just maybe you might not even need a disk drive or CF card, just the Kickstart ROM.

Imagine that: you could just boot off the ROM itself, which could contain as much data as would be needed to run a minimal Workbench, space permitting.
 

Offline olsen

Re: New Kickstart 3.9.1 68k on the way
« Reply #140 on: December 14, 2014, 05:43:57 PM »
Quote from: paul1981;779797
I can think of one good reason - backwards compatibility with existing floppy based software (even some games).
Without those two library's these disks would not boot anymore...they would hang as soon as the LoadWB command is run and a requester saying something like "Unable to open workbench.library" would appear. Same goes for icon.library. It would only serve to confuse users...
The A4000T Kickstart ROM, which for lack of space does not contain a "workbench.library", contains a special component "wbfind" whose single purpose it is to locate "workbench.library" on any currently mounted volume at the time the system startup attempts to open that library. Thus, if you boot off a disk which does not contain "workbench.library", opening the library will trigger a search on your hard disk (unless you chose not to mount it through the early startup menu).

Leaving stuff out of the ROM which can be loaded on demand from disk is possible, at the expense of allocating additional memory for it. And it might take 2-3 seconds to load the library, which you probably won't notice because Workbench starting up causes additional disk accesses which take longer than loading the library itself.
 

guest11527

  • Guest
Re: New Kickstart 3.9.1 68k on the way
« Reply #141 on: December 14, 2014, 06:17:30 PM »
Quote from: olsen;779804
Imagine that: you could just boot off the ROM itself, which could contain as much data as would be needed to run a minimal Workbench, space permitting.

The reason why I'm against that ROM-idea is simply because it does not allow users to exchange components. If I have to fiddle-open my machine every time I'm updating a component, chances are better than even that I'll break the ROM socket at some time. A minimal bootstrap ROM could be very stable and would not require a lot of updating. Everything else can be placed on flash, and can be upgraded easily by writing on a regular file system.

Given that you get such Flash-ROMs in GB size today for pennies, there's no reason to allocate an entire partition just for system components, write-lock it in regular operating mode, or even unmount if if it is no longer needed.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: New Kickstart 3.9.1 68k on the way
« Reply #142 on: December 14, 2014, 11:30:48 PM »
Quote from: Thomas Richter;779710
For a quick moment, I want to come back to the math libraries. As Olaf already said, they are rarely used, but for floating point intensive applications, it does make a difference. FPU intensive: JPEG decoding is one nice example where a FPU is beneficial. I haven't had the time to compile my JPEG on Amiga, thus I took the freedom of choosing another benchmark to show the point - Mandelbrot computation. Here I have a program available (DMandel) which comes with various (assembler optimized) computing kernels, IEEE Doubbas, and FPU (and others). Everthing on my 68060@50, note that IEEEDoubBas *also* uses the FPU, but requires register ping-pong to do the work.

Numbers for a zoomed in Mandelbrot: With IEEEDoubBas: 5:15 minutes, with raw FPU, 1:15 min. I believe that's a non-neglibigle difference. I'm usually not much a fan of "optimizing pointless register moves away", but when it makes a difference, it makes a difference. It is probably an artificial benchmark, but it shows one thing: If you *need* to do numerics, it's probably best to go directly on the FPU.


Direct FPU support on the 68060 is likely using many software 6888x instructions through traps for Mandrelbot calculations since most compilers don't avoid the traps (except new unleased vbcc) vs the handicapped IEEE library functions using mostly software also. Or did you use MuRedox for your stats? I guess this tells us that less software and more hardware fp usage is probably faster. Direct FPU use probably won't become more common until FPUs are more common. The new fpga processors are not getting them yet. It looks like the IEEE libraries will be around for awhile. Using the IEEE libraries really isn't that bad for non-CPU intensive multi-68k processor distributions, with a FPU. The IEEE support in vbcc works surprising well. The default vbcc 68k distribution uses IEEE instead of direct floating point. I have compiled my own 68060+FPU version which is significantly faster though.

Quote from: Thomas Richter;779807
The reason why I'm against that ROM-idea is simply because it does not allow users to exchange components. If I have to fiddle-open my machine every time I'm updating a component, chances are better than even that I'll break the ROM socket at some time. A minimal bootstrap ROM could be very stable and would not require a lot of updating. Everything else can be placed on flash, and can be upgraded easily by writing on a regular file system.

Given that you get such Flash-ROMs in GB size today for pennies, there's no reason to allocate an entire partition just for system components, write-lock it in regular operating mode, or even unmount if if it is no longer needed.


You shouldn't have to exchange ROMs with the new fpga hardware. Installing a kickstart to a flash slot could be nearly as easy as installing any other file. I use Blizkick to install a custom ROM in MAPROM which is easy. There is a nice advantage to write protecting the whole kickstart and being able to select different standard kickstarts quickly. Yes, the individual modules can be write protected also but it's faster and easier to write protect the whole kickstart. That's not to say that I would put everything in kickstart like Cosmos but the current kickstart setup isn't that bad either. A few more updated modules could allow booting from more modern devices, better diagnostics and a more consistent and stable core OS. Only mature and stable OS components should go in the kickstarts though. The big problem with kickstarts is that the developers are not producing new ones that can be distributed ;).
« Last Edit: December 14, 2014, 11:45:14 PM by matthey »
 

Offline kolla

Re: New Kickstart 3.9.1 68k on the way
« Reply #143 on: December 15, 2014, 12:08:12 AM »
Yes, I remember reading about that. I also vaguely remember some solution to boot off network filesystem, with one specific zorro NIC that had some boot functionality? Hmmm.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline kolla

Re: New Kickstart 3.9.1 68k on the way
« Reply #144 on: December 15, 2014, 12:10:15 AM »
Quote from: olsen;779804

Imagine that: you could just boot off the ROM itself, which could contain as much data as would be needed to run a minimal Workbench, space permitting.


Yes, I remember reading about that. I also vaguely remember some solution to boot off network filesystem, with one specific zorro NIC that had some boot functionality? Hmmm.
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline Damion

Re: New Kickstart 3.9.1 68k on the way
« Reply #145 on: December 15, 2014, 12:40:04 AM »
Quote from: Thomas Richter;779807
The reason why I'm against that ROM-idea is simply because it does not allow users to exchange components. If I have to fiddle-open my machine every time I'm updating a component, chances are better than even that I'll break the ROM socket at some time.


While it was fun experiementing, this is exactly why I don't mess with burning custom KS images anymore - eventually something gets updated, or you're trying to figure out why some software is broken. Now it's a huge PITA to troubleshoot. I've actually found myself soft-kicking a standard 3.1 ROM a time or two... (and _that_ is not always easy, either, depending on your hardware!)

Quote
A minimal bootstrap ROM could be very stable and would not require a lot of updating. Everything else can be placed on flash, and can be upgraded easily by writing on a regular file system.

Given that you get such Flash-ROMs in GB size today for pennies, there's no reason to allocate an entire partition just for system components, write-lock it in regular operating mode, or even unmount if if it is no longer needed.


I've read about a few projects on the a1k forum, some type of flashrom module that plugs into the ROM socket(s). Looks really neat, but I don't know if they are just one-off projects, or might be released in some fashion. That aside, tools like blizkick, loadmodule, or the DENEB flashrom are (for me) preferable to burning ROMs. (Even with a reboot, we're honestly talking a few extra seconds... hardly an issue IMO vs the hassle of burning/swapping out ROMs).
 

Offline kolla

Re: New Kickstart 3.9.1 68k on the way
« Reply #146 on: December 15, 2014, 12:57:35 AM »
Yes, agree. Would be nice with a kickstart offer along with those new 3.1 floppys that is now offered, kickstarts with updated scsci.device, so we can end the everlasting problem with people corrupting their filesystems on big drives. Oh, an updated 3.1 HDToolBox (without ReAction dependencies) would also be cool. 3.1 revamped for current drives, call it 3.2 :p
B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC
---
A3000/060CSPPC+CVPPC/128MB + 256MB BigRAM/Deneb USB
A4000/CS060/Mediator4000Di/Voodoo5/128MB
A1200/Blz1260/IndyAGA/192MB
A1200/Blz1260/64MB
A1200/Blz1230III/32MB
A1200/ACA1221
A600/V600v2/Subway USB
A600/Apollo630/32MB
A600/A6095
CD32/SX32/32MB/Plipbox
CD32/TF328
A500/V500v2
A500/MTec520
CDTV
MiSTer, MiST, FleaFPGAs and original Minimig
Peg1, SAM440 and Mac minis with MorphOS
 

Offline olsen

Re: New Kickstart 3.9.1 68k on the way
« Reply #147 on: December 15, 2014, 09:25:26 AM »
Quote from: kolla;779826
Yes, I remember reading about that. I also vaguely remember some solution to boot off network filesystem, with one specific zorro NIC that had some boot functionality? Hmmm.
I believe that this was the Hydra Ethernet card, but I may be wrong.

Booting off the network is doable, but there are technical constraints. For a start, the network hardware needs to be operational very early on, which rules out almost all Amiga SANA-II drivers, since these expect to be loaded from disk (e.g. they check environment variables for medium/connection options, which requires that dos.library is already open).

If you can work around that problem (e.g. support only a single specific hardware) then your best chance to make the boot process work might be to use UDP datagrams to both configure the local network address (bootp is simple enough) and find the server to boot from. You'd also have to support ARP.

You'd have to implement client and server for the file system to use, which could also use UDP for communications. Commodore's peer-to-peer networking service "Envoy" did all of that (although the protocol for performing UDP retransmissions could have worked better).

Let's say all of this worked. Then you'd have diskless booting, from a file system server, at about 1MByte/s (probably less). No idea how fast your typical A1200 IDE drive performs by comparison, but I expect it's noticeably faster than what Ethernet can provide.

Now if all of this worked, you might have a problem with using a TCP/IP stack, since it would duplicate functionality of the networked file system and compete for UDP datagrams and ARP packets. This was a problem for Envoy, too. This problem could be worked around, though.
 

guest11527

  • Guest
Re: New Kickstart 3.9.1 68k on the way
« Reply #148 on: December 15, 2014, 10:04:20 AM »
Quote from: matthey;779820
Direct FPU support on the 68060 is likely using many software 6888x instructions through traps for Mandrelbot calculations since most compilers don't avoid the traps (except new unleased vbcc) vs the handicapped IEEE library functions using mostly software also. Or did you use MuRedox for your stats?  
No, the mandelbrot computations only use add,sub and multiplication. Thus, MuRedox makes no difference here. The only traps that may occur are due to non-normalized results where the FPU requires some help. IEEE uses the same instructions, but includes software overhead to load the numbers from the CPU registers into the FPU registers and back. While that makes typically no difference (the called function is long, the register ping-pong is short - intuition!) it makes a difference here. The called function is short (a single add, or sub, or mul) and the overhead is large compared to the actual function.
Quote from: matthey;779820
I guess this tells us that less software and more hardware fp usage is probably faster. Direct FPU use probably won't become more common until FPUs are more common. The new fpga processors are not getting them yet. It looks like the IEEE libraries will be around for awhile. Using the IEEE libraries really isn't that bad for non-CPU intensive multi-68k processor distributions, with a FPU.  
For your average all-day purpose, it will hardly make any difference, indeed. But for that purpose, you don't need an FPU in first place either.
Quote from: matthey;779820
The IEEE support in vbcc works surprising well. The default vbcc 68k distribution uses IEEE instead of direct floating point. I have compiled my own 68060+FPU version which is significantly faster though.
Do you mean, it uses IEEE for compiling  - or IEEE for the running program? The latter is switchable, but the former is pretty critical. To parse floating point constants in C code correctly, you need a *higher* precision than that used for computing in the program (otherwise, you get an additional loss in the compilation phase you want to avoid). For optimizing, you should run in the C compiler exactly the same computations as the code would have performed, so that's not good news either. Gcc has its own math library for emulating various FPUs and math models, and yes - for good compilation and optimization, this is really required.
Quote from: matthey;779820
You shouldn't have to exchange ROMs with the new fpga hardware. Installing a kickstart to a flash slot could be nearly as easy as installing any other file.
True, except that handling of the files or exchanging modules within the kickstart is harder, i.e. the overall user experience is not quite as good for updates. Otherwise, when I remember the Natami here, it booted so fast it made no difference whether it went through another reset or not, so I don't need an updated rom for this machine in first place. Protecting modules can be done easily by MuProtectModules, no need for a ROM actually.
 

Offline olsen

Re: New Kickstart 3.9.1 68k on the way
« Reply #149 on: December 15, 2014, 12:33:47 PM »
Quote from: Thomas Richter;779807
The reason why I'm against that ROM-idea is simply because it does not allow users to exchange components. If I have to fiddle-open my machine every time I'm updating a component, chances are better than even that I'll break the ROM socket at some time. A minimal bootstrap ROM could be very stable and would not require a lot of updating. Everything else can be placed on flash, and can be upgraded easily by writing on a regular file system.
The reason why I am skeptical of moving components and in an out of ROM space is that the approach is beholden to 1980'ies/1990'ies design constraints which no longer apply today.

When the original Amiga was designed RAM was still very expensive, the 68000 CPU was in the sweet spot of being both fast and not too expensive (as compared to the 68010/MMU or 68020/MMU combination which Sun Microsystems used in the Sun 2 and Sun 3 workstations), and the common storage medium was the Sony 3.5" double-sided floppy disk.

Loading the ROM operating system components from disk was expensive: the memory required (256 KBytes) cost real money back in 1986. Commodore had to work on producing a cost-reduced design, and switching to a ROM was inevitable.

Loading operating system components from floppy disk was slow (even on the original 64K Apple Macintosh, which arguably had even worse disk performance than the Amiga, at half the storage space -- did you know that it would either compress data in memory or swap it to disk in order to make that 64K memory budget possible, at the expense of killing system performance?), which meant that you could get a performance boost out of sticking as much into the Amiga Kickstart ROM as possible. And this is exactly what happened. Consequently, the Amiga had one of the largest ROMs for personal computers at the time.

Today we have much cheaper, and more RAM available. The primary storage device is no longer the floppy disk, but a hard disk or SSD. Thanks to the modular design of the Amiga operating system almost everything in the ROM can be replaced later at run time at the expense of committing it to RAM. It's technically possible to have your Amiga load replacements for the components in ROM once, reboot, and then run with all new components. This will survive a warm reboot, and it even works on a machine which has no MMU.

So... why cram everything into the ROM? To save the initial cold boot, load and reboot? Your Amiga can probably do this more quickly than you can say "Supercalifragilisticexpialidocious".
« Last Edit: December 15, 2014, 12:39:32 PM by olsen »