Skip to content

Releases: Sakura-IT/SonnetAmiga

Sonnet Library 17.13

19 Dec 12:23
Compare
Choose a tag to compare

Refer to the readme file from SonnetLibrary.lha on Aminet for the details of this release.

Sonnet Library 17.12

02 Jul 16:26
Compare
Choose a tag to compare

Refer to the readme file from SonnetLibrary.lha on Aminet for the details of this release.

Sonnet Library 17.10

15 Aug 21:18
Compare
Choose a tag to compare

Refer to the readme file from SonnetLibrary.lha on Aminet for the details of this release.

Sonnet Library 17.8

17 Apr 20:56
Compare
Choose a tag to compare

Refer to the readme file from SonnetLibrary.lha on Aminet for the details of this release.

Sonnet Library 17.7

02 Sep 08:57
Compare
Choose a tag to compare

The sonnet.library is a driver for the Sonnet 7200 G3/G4 PCI card.

What is needed

  • Amiga with Zorro III/PCI slots compatible with a Mediator.
  • Elbox Mediator 3000Di/4000Di with 3.3V rail.
  • 68040 or better.
  • A Radeon 92xx or 3DFX Voodoo3/4/5 card.
  • Mediator Warp3D 4.2 for 3D graphics in combination with a 3DFX Voodoo card.
  • Sonnet 7200 PCI Card. Supported are MG3-400-512K; MG3-400-1M; MG3-500-1M;
    MG4-400-1M.
  • 5V 168 pins FPM DIMMs 2K Refresh (up to 256 MB in combination with the
    Voodoo3; 128MB with other supported video cards).
  • pci.library version 11.0 or higher.
  • AHI for sound. AHI 4.18 recommended.

What does it do

The library interfaces between the CPU and the memory on a Sonnet 7200 G3/G4
PCI card and the Amiga CPU and memory using the MPC107 chipset on the Sonnet
card. It also offers WarpOS/powerpc.library compatible functions.

What does this mean

It essentially adds a second CPU to your Amiga through the PCI slot.
This being either a 400 or 500 MHz G3 (MPC750) or 400 MHz G4 (MPC7400).
This CPU can be used to run (certain) WarpOS software.

Restrictions

The PPC CPU on the Sonnet card cannot DMA to Amiga memory. Any access to
non-Sonnet/PCI memory by the PPC is very slow. The library is trying to avoid
this by means of patching the AllocMem() and the LoadSeg() functions. This
way, PPC data and code is pushed to the memory residing on the sonnet card
itself. This is not 100% watertight and failure of these patches can lead to
a DSI/ISI exception or very slow execution of the PPC program.

Not all functions of the powerpc.library are yet implemented or will be
implemented (for example memory protection). 100% compatibility will probbly be
never achieved, mostly due to hardware banging of certain WarpOS software.

Sound is restricted to AHI. Paula 8 bit DMA is the recommended setting. At this
moment, the SB128 and FM801 drivers produce a distortion in the sound output.
Paula 8 bit Fast modes have seen some success too.

Albeit that a the library supports AltiVec code, this has not been fully tested
as there exist to this moment no WarpOS programs with AltiVec code.

Options:

The library supports options through ENVARC:sonnet. Currently supported are:

  • EnEDOMem (0 or 1): Enable if you have EDO RAM installed. Default = 0.
  • Debug (0-3): set the level of debug messages. 0 = no messages (default).
  • EnAlignExc (0 or 1): Enable the installation of a user handler for the
    Align Exception. Default = 0.
  • DisL2Cache (0 or 1): Disable the L2 cache. Default = 0.
  • DisL2Flush (0 or 1): Disables the full flush of the L2 cache.
    Can speed up things if it doesn't crash. Default = 0.
  • EnDAccessExc: See EnAlignExc, but now for the Data Access Exception (DSI).
  • DisHunkPatch (0 or 1): Disable automatic pushing first code hunk to FAST RAM.
    Default = 0.
  • SetCMemDiv (0-5): Sets the speed divider of the L2 Cache memory. 5 = 3, 4 = 2.5, 3 = 2, 2 = 1.5, 1 = 1, 0 = Handled by library. Default = 0. For example: A Sonnet with speed 500 MHz and setting 5 will run the L2 cache at 166 MHz (500/3). **USE AT OWN RISK!!!

Notes

The sonnet.library present in the previous archives is no longer supported
The included powerpc.library is for the sonnet only and not compatible with
other PPC solutions (BPPC, CSPPC etc.).

The driver/library is still being actively developed and is in a beta stage.
Refer to https://github.com/Sakura-IT/SonnetAmiga for the latest build and the
latest documentation regarding compatibility, FAQs and issues.

See http://amigafun.blogspot.com/search/label/Sonnet for some demonstrations of
the Sonnet card in action.

In the archive:

  • powerpc.library: Library that initializes the PPC and handles the
    communication between the system and the Sonnet card.
  • InitPPC: Initializes the Sonnet card using the powerpc.library
  • GetInfo: Simple program to show the state of the PPC CPU on the
    Sonnet card after initialization.

The Sonnet card can only be initialized after the graphics card has been
initialized. This means after C:LoadMonDrvs in the Startup-Sequemce. To use it
with WarpDT, it needs to be initialized before AddDataTypes in the Startup-
Sequence. It is however recommended to start the driver from the workbench
using the provided icon.

What has changed since 17.6:

  • CauseInterrupt() and CausePPCInterrupt() now work as intended.
  • The option to enable a DSI exception handler now works as intended.
  • Removed a lot of special purpose register (SPRGx) usage.
  • Made several fixes to the init code when a Radeon is present.
  • Loading DefIcons no longers goes into a infinite loop due to LoadSeg() patch.
  • Added the ENV variable SetCMemDiv. Now you can set the speed of the L2 cache.
  • First hunk of WarpOS programs should now correctly be loaded to FAST RAM.
  • Made some tweaks to the AllocMem() patch.
  • Fixed a big memory leak. The stack of PPC tasks was not freed after exit.
  • LoadSeg() patch crashed on overlaid files. Now they are being ignored.

What has changed since 17.5:

  • Fully working PP_STACKPTR and PP_STACKSIZE for Run68K().
  • Fixed typo in GetPPCState().
  • Added more error messages.
  • Fixed a bug in the scheduler. Removed tasks were not handled properly.
  • Added a memory clean-up task. Memory of removed tasks is now freed properly.
  • Added options through ENVARC:sonnet
  • Kernel now removes crashed tasks and continues instead of halting.
  • Length of context-switch structure was incorrect.
  • Completely rewrote all the exception handlers.
  • Added DSI, Decrementer and External Interrupt exception hooks.
  • Fixed an error in the custom handler code in case of small context used.
  • Register r3 was trashed when more than 1 custom handler present. Fixed.
  • Added option to force first hunk of WarpOS program to FAST memory by default.
  • LoadSeg patch now correctly handles bit 30 of HUNK_SIZE (move to CHIP).
  • Sometimes PPC code was loaded into FAST RAM through the LoadSeg patch. Fixed.
  • Mediator config jumper can now be in ANY position for the sonnet to work.
  • AllocMem() patch now correctly handles CLI names.
  • FreeSpace movies now play at full speed.

What has changed since 17.4

  • Fixed a bug in the FPU opcode detection in the Alignment handler.
  • Fixed various Enforcer hits on the 68K side.
  • Stack transfer limit 68K->PPC of 164 bytes removed (RunPPC).
  • Basic stack transfer support added to Run68K().
  • Added support for Radeon with VendorID $5964.
  • Added a PPC memory test. This is run during memory initialization.
  • Added a timeout for the PPC to report back during initialization.
  • Added checks on the SwapConfig and WindowSize jumpers of the mediator.
  • Added experimental AltiVec support.
  • Added powerpc.library to distribution. See notes above.

What has changed since 17.3

  • Fixed a few more potential hangs with well placed syncs.
  • GetInfo() now recognizes modded 433/466/533 MHz Cards.
  • Z flag of 68K interrupt now handled correctly upon exit interrupt.
  • User code no longer addresses the zero page. That is now Supervisor only.
  • Kernel and graphics memory are now handled by BATs by default.
  • L2 cache can now cache instructions, not only data.
  • L2 cache now set to 200MHz for 400/1MB version instead of 133MHz.
  • Fixed a bug in GetHALInfo().
  • Fixed a bug where inter-CPU messages were duplicated.
  • Inter-CPU messages can now be up to ~64K in size instead of 150 bytes.
  • Other miscelaneous fixes to increase stabilty and speed.

What has changed since 17.0

  • Moved all patches inside the library, no more different start-up programs.
  • Implemented PPF_ASYNC/PP_STACKPTR/PP_STACKSIZE for RunPPC().
  • Fixed a bug in CreatePPCTask(). Now APDF works.
  • Added better error handling through pop-up windows/requesters.
  • Added a ramlib patch to increase stack when needed.
  • Fixed the TagItem functions. Now more demos from Mad Wizards started working.
  • Fixed a bug in GetInfo that was masked by the bug in the TagItem functions.
  • Added shared signal system. Now the signals are shared by the 2 processors.
  • Fixed LockTaskList function. Wrong result was returned.
  • Added CPUUSage, Busy, Activity, CPU Load and System load code (for WarpStat).
  • Fixed a bug in DeleteTaskPPC() as the Snoop list was not correctly freed.
  • Fixed a bug in PutXMsg(). WES should work now (albeit slow).
  • Added alignment support to AllocVecPPC(); For iFusion..No that does not work.
  • Fixed a missing opcode in the FPU alignment emulation code. Now Q1A works.
  • Other miscelaneous fixes and optimizations.

The future

Improving the compatibility with WarpOS regarding the PPC MMU. Maybe a version for a towerized A1200.
Albeit that several attempts have utterly failed.

Sonnet Library 17.6

28 May 20:04
Compare
Choose a tag to compare

The sonnet.library is a driver for the Sonnet 7200 G3/G4 PCI card.

What is needed

  • Amiga with Zorro III/PCI slots compatible with a Mediator.
  • Elbox Mediator 3000Di/4000Di with 3.3V rail.
  • 68040 or better.
  • A Radeon 92xx or 3DFX Voodoo3/4/5 card.
  • Mediator Warp3D 4.2 for 3D graphics in combination with a 3DFX Voodoo card.
  • Sonnet 7200 PCI Card. Supported are MG3-400-512K; MG3-400-1M; MG3-500-1M;
    MG4-400-1M.
  • 5V 168 pins FPM DIMMs 2K Refresh (up to 256 MB in combination with the
    Voodoo3; 128MB with other supported video cards).
  • pci.library version 11.0 or higher.
  • AHI for sound. AHI 4.18 recommended.

What does it do

The library interfaces between the CPU and the memory on a Sonnet 7200 G3/G4
PCI card and the Amiga CPU and memory using the MPC107 chipset on the Sonnet
card. It also offers WarpOS/powerpc.library compatible functions.

What does this mean

It essentially adds a second CPU to your Amiga through the PCI slot.
This being either a 400 or 500 MHz G3 (MPC750) or 400 MHz G4 (MPC7400).
This CPU can be used to run (certain) WarpOS software.

Restrictions

The PPC CPU on the Sonnet card cannot DMA to Amiga memory. Any access to
non-Sonnet/PCI memory by the PPC is very slow. The library is trying to avoid
this by means of patching the AllocMem() and the LoadSeg() functions. This
way, PPC data and code is pushed to the memory residing on the sonnet card
itself. This is not 100% watertight and failure of these patches can lead to
a DSI/ISI exception of very slow execution of the PPC program.

Not all functions of the powerpc.library are yet implemented or will be
implemented (for example memory protection). 100% compatibility will probbly be
never achieved, mostly due to hardware banging of certain WarpOS software.

Sound is restricted to AHI. Paula 8 bit DMA is the recommended setting. At this
moment, the SB128 and FM801 drivers produce a distortion in the sound output.
Paula 8 bit Fast modes have seen some success too.

Albeit that a the library supports AltiVec code, this has not been fully tested
as there exist to this moment no WarpOS programs with AltiVec code.

Options:

The library supports options through ENVARC:sonnet. Currently supported are:

  • EnEDOMem (0 or 1): Enable if you have EDO RAM installed. Default = 0.
  • Debug (0-3): set the level of debug messages. 0 = no messages (default).
  • EnAlignExc (0 or 1): Enable the installation of a user handler for the
    Align Exception. Default = 0.
  • DisL2Cache (0 or 1): Disable the L2 cache. Default = 0.
  • DisL2Flush (0 or 1): Disables the full flush of the L2 cache.
    Can speed up things if it doesn't crash. Default = 0.
  • EnDAccessExc: See EnAlignExc, but now for the Data Access Exception (DSI).
  • DisHunkPatch (0 or 1): Disable automatic pushing first code hunk to FAST RAM.
    Default = 0.

Notes

The sonnet.library present in the previous archives is no longer supported
The included powerpc.library is for the sonnet only and not compatible with
other PPC solutions (BPPC, CSPPC etc.).

The driver/library is still being actively developed and is in a beta stage.
Refer to https://github.com/Sakura-IT/SonnetAmiga for the latest build and the
latest documentation regarding compatibility, FAQs and issues.

See http://amigafun.blogspot.com/search/label/Sonnet for some demonstrations of
the Sonnet card in action.

In the archive:

  • powerpc.library: Library that initializes the PPC and handles the
    communication between the system and the Sonnet card.
  • InitPPC: Initializes the Sonnet card using the powerpc.library
  • GetInfo: Simple program to show the state of the PPC CPU on the
    Sonnet card after initialization.

The Sonnet card can only be initialized after the graphics card has been
initialized. This means after C:LoadMonDrvs in the Startup-Sequemce. To use it
with WarpDT, it needs to be initialized before AddDataTypes in the Startup-
Sequence. It is however recommended to start the driver from the workbench
using the provided icon.

What has changed since 17.5:

  • Fully working PP_STACKPTR and PP_STACKSIZE for Run68K().
  • Fixed typo in GetPPCState().
  • Added more error messages.
  • Fixed a bug in the scheduler. Removed tasks were not handled properly.
  • Added a memory clean-up task. Memory of removed tasks is now freed properly.
  • Added options through ENVARC:sonnet
  • Kernel now removes crashed tasks and continues instead of halting.
  • Length of context-switch structure was incorrect.
  • Completely rewrote all the exception handlers.
  • Added DSI, Decrementer and External Interrupt exception hooks.
  • Fixed an error in the custom handler code in case of small context used.
  • Register r3 was trashed when more than 1 custom handler present. Fixed.
  • Added option to force first hunk of WarpOS program to FAST memory by default.
  • LoadSeg patch now correctly handles bit 30 of HUNK_SIZE (move to CHIP).
  • Sometimes PPC code was loaded into FAST RAM through the LoadSeg patch. Fixed.
  • Mediator config jumper can now be in ANY position for the sonnet to work.
  • AllocMem() patch now correctly handles CLI names.
  • FreeSpace movies now play at full speed.

What has changed since 17.4

  • Fixed a bug in the FPU opcode detection in the Alignment handler.
  • Fixed various Enforcer hits on the 68K side.
  • Stack transfer limit 68K->PPC of 164 bytes removed (RunPPC).
  • Basic stack transfer support added to Run68K().
  • Added support for Radeon with VendorID $5964.
  • Added a PPC memory test. This is run during memory initialization.
  • Added a timeout for the PPC to report back during initialization.
  • Added checks on the SwapConfig and WindowSize jumpers of the mediator.
  • Added experimental AltiVec support.
  • Added powerpc.library to distribution. See notes above.

What has changed since 17.3

  • Fixed a few more potential hangs with well placed syncs.
  • GetInfo() now recognizes modded 433/466/533 MHz Cards.
  • Z flag of 68K interrupt now handled correctly upon exit interrupt.
  • User code no longer addresses the zero page. That is now Supervisor only.
  • Kernel and graphics memory are now handled by BATs by default.
  • L2 cache can now cache instructions, not only data.
  • L2 cache now set to 200MHz for 400/1MB version instead of 133MHz.
  • Fixed a bug in GetHALInfo().
  • Fixed a bug where inter-CPU messages were duplicated.
  • Inter-CPU messages can now be up to ~64K in size instead of 150 bytes.
  • Other miscelaneous fixes to increase stabilty and speed.

What has changed since 17.0

  • Moved all patches inside the library, no more different start-up programs.
  • Implemented PPF_ASYNC/PP_STACKPTR/PP_STACKSIZE for RunPPC().
  • Fixed a bug in CreatePPCTask(). Now APDF works.
  • Added better error handling through pop-up windows/requesters.
  • Added a ramlib patch to increase stack when needed.
  • Fixed the TagItem functions. Now more demos from Mad Wizards started working.
  • Fixed a bug in GetInfo that was masked by the bug in the TagItem functions.
  • Added shared signal system. Now the signals are shared by the 2 processors.
  • Fixed LockTaskList function. Wrong result was returned.
  • Added CPUUSage, Busy, Activity, CPU Load and System load code (for WarpStat).
  • Fixed a bug in DeleteTaskPPC() as the Snoop list was not correctly freed.
  • Fixed a bug in PutXMsg(). WES should work now (albeit slow).
  • Added alignment support to AllocVecPPC(); For iFusion..No that does not work.
  • Fixed a missing opcode in the FPU alignment emulation code. Now Q1A works.
  • Other miscelaneous fixes and optimizations.

The future

Improving the compatibility with WarpOS. Maybe a version for a towerized A1200.
Albeit that several attempts have utterly failed.

Sonnet Library v17.5

23 Mar 08:29
Compare
Choose a tag to compare
Sonnet Library v17.5 Pre-release
Pre-release

The sonnet.library is a driver for the Sonnet 7200 G3/G4 PCI card.

What is needed

  • Amiga with Zorro III/PCI slots compatible with a Mediator.
  • Elbox Mediator 3000Di/4000Di with 3.3V rail.
  • 68040 or better.
  • A Radeon 92xx or 3DFX Voodoo3/4/5 card.
  • Mediator Warp3D 4.2 for 3D graphics in combination with a 3DFX Voodoo card.
  • Sonnet 7200 PCI Card. Supported are MG3-400-512K; MG3-400-1M; MG3-500-1M;
    MG4-400-1M.
  • 5V 168 pins FPM DIMMs 2K Refresh (up to 256 MB in combination with the
    Voodoo3; 128MB with other supported video cards).
  • pci.library version 11.0 or higher.
  • AHI for sound. AHI 4.18 recommended.

What does it do

The library interfaces between the CPU and the memory on a Sonnet 7200 G3/G4
PCI card and the Amiga CPU and memory using the MPC107 chipset on the Sonnet
card. It also offers WarpOS/powerpc.library compatible functions.

What does this mean

It essentially adds a second CPU to your Amiga through the PCI slot.
This being either a 400 or 500 MHz G3 (MPC750) or 400 MHz G4 (MPC7400).
This CPU can be used to run (certain) WarpOS software.

Restrictions

The PPC CPU on the Sonnet card cannot DMA to Amiga memory. Any access to
non-Sonnet/PCI memory by the PPC is very slow. Patch programs are provided to
push code/data needed by the PPC CPU inside PCI/Sonnet memory. This is done on
two levels: on the binary level by patching hunk headers of WarpOS programs
and by changing references from powerpc.library to sonnet.library and on
system level by patching the memory allocation function AllocMem(). Both patch
programs can be obtained through the URL provided above. One of them is
included in this archive.

Not all functions of the powerpc.library are yet implemented or will be
implemented (for example memory protection). 100% compatibility will probbly be
never achieved, mostly due to hardware banging of certain WarpOS software.

Sound is restricted to AHI. Paula 8 bit DMA is the recommended setting. At this
moment, the SB128 and FM801 drivers produce a distortion in the sound output.

Notes

There are now two versions of the library. One of them is the original
sonnet.library. The new library is called powerpc.library. The difference
between the two versions is that the powerpc.library can transparantly load
WarpOS binaries; no more need to patch them. To initialize this library, you
need InitPPC and not InitSonnet.

The included powerpc.library is for the sonnet only and not compatible with
other PPC solutions (BPPC, CSPPC etc.).

The driver/library is still being actively developed and is in a beta stage.
The version number has been bumped to V17.0 (and now to 17.5) to supersede the
latest powerpc.library (V16.1) for patching reasons. Refer to
https://github.com/Sakura-IT/SonnetAmiga for the latest build and the latest
documentation regarding compatibility, FAQs and issues.

See http://amigafun.blogspot.com/search/label/Sonnet for some demonstrations of
the Sonnet card in action.

In the archive:

  • sonnet.library - The driver for the Sonnet 7200 G3/G4 PCI card.
  • InitSonnet - Initializes the Sonnet card using the sonnet.library
  • powerpc.library - New driver that does not need patched binaries.
  • InitPPC - Initialized the Sonnet card using the powerpc.library
  • GetInfo - Simple program to show the state of the PPC CPU on the Sonnet card after initialization.

The Sonnet card can only be initialized after the graphics card has been
initialized. This means after C:LoadMonDrvs in the Startup-Sequemce. To use it
with WarpDT, it needs to be initialized before AddDataTypes in the Startup-
Sequence. It is however recommended to start the driver from the workbench
using the provided icon.

What has changed since 17.4

  • Fixed a bug in the FPU opcode detection in the Alignment handler.
  • Fixed various Enforcer hits on the 68K side.
  • Stack transfer limit 68K->PPC of 164 bytes removed (RunPPC).
  • Basic stack transfer support added to Run68K().
  • Added support for Radeon with VendorID $5964.
  • Added a PPC memory test. This is run during memory initialization.
  • Added a timeout for the PPC to report back during initialization.
  • Added checks on the SwapConfig and WindowSize jumpers of the mediator.
  • Added experimental AltiVec support.
  • Added powerpc.library to distribution. See notes above.

What has changed since 17.3

  • Fixed a few more potential hangs with well placed syncs.
  • GetInfo() now recognizes modded 433/466/533 MHz Cards.
  • Z flag of 68K interrupt now handled correctly upon exit interrupt.
  • User code no longer addresses the zero page. That is now Supervisor only.
  • Kernel and graphics memory are now handled by BATs by default.
  • L2 cache can now cache instructions, not only data.
  • L2 cache now set to 200MHz for 400/1MB version instead of 133MHz.
  • Fixed a bug in GetHALInfo().
  • Fixed a bug where inter-CPU messages were duplicated.
  • Inter-CPU messages can now be up to ~64K in size instead of 150 bytes.
  • Other miscelaneous fixes to increase stabilty and speed.

What has changed since 17.0

  • Moved all patches inside the library, no more different start-up programs.
  • Implemented PPF_ASYNC/PP_STACKPTR/PP_STACKSIZE for RunPPC().
  • Fixed a bug in CreatePPCTask(). Now APDF works.
  • Added better error handling through pop-up windows/requesters.
  • Added a ramlib patch to increase stack when needed.
  • Fixed the TagItem functions. Now more demos from Mad Wizards started working.
  • Fixed a bug in GetInfo that was masked by the bug in the TagItem functions.
  • Added shared signal system. Now the signals are shared by the 2 processors.
  • Fixed LockTaskList function. Wrong result was returned.
  • Added CPUUSage, Busy, Activity, CPU Load and System load code (for WarpStat).
  • Fixed a bug in DeleteTaskPPC() as the Snoop list was not correctly freed.
  • Fixed a bug in PutXMsg(). WES should work now (albeit slow).
  • Added alignment support to AllocVecPPC(); For iFusion..No that does not work.
  • Fixed a missing opcode in the FPU alignment emulation code. Now Q1A works.
  • Other miscelaneous fixes and optimizations.

The future

Improving the compatibility with WarpOS. Maybe a version for a towerized A1200.
Albeit that several attempts have utterly failed. Also, the patch tools are not
very user-friendly/flexible. This is on the To-Do list.

Sonnet Library v17.4

10 Jan 20:56
Compare
Choose a tag to compare
Sonnet Library v17.4 Pre-release
Pre-release

The sonnet.library is a driver for the Sonnet 7200 G3/G4 PCI card.

What is needed

  • Amiga with Zorro III/PCI slots compatible with a Mediator.
  • Elbox Mediator 3000Di/4000Di with 3.3V rail.
  • 68040 or better.
  • A Radeon 92xx or 3DFX Voodoo3/4/5 card.
  • Mediator Warp3D 4.2 for 3D graphics in combination with a 3DFX Voodoo card.
  • Sonnet 7200 PCI Card. Supported are MG3-400-512K; MG3-400-1M; MG3-500-1M;
    MG4-400-1M.
  • 5V 168 pins FPM DIMMs (up to 256 MB in combination with the Voodoo3;
    128MB with other supported video cards).
  • pci.library version 11.0 or higher.
  • AHI for sound. AHI 4.18 recommended.

What does it do

The library interfaces between the CPU and the memory on a Sonnet 7200 G3/G4
PCI cardand the Amiga CPU and memory using the MPC107 chipset on th Sonnet
card. It also offers WarpOS/powerpc.library compatible functions.

What does this mean

It essentially adds a second CPU to your Amiga through the PCI slot.
This being either a 400 or 500 MHz G3 (MPC750) or 400 MHz G4 (MPC7400).
This CPU can be used to run (certain) WarpOS software.

Restrictions

The PPC CPU on the Sonnet card cannot DMA to Amiga memory. Any access to
non-Sonnet/PCI memory by the PPC is very slow. Patch programs are provided to
push code/data needed by the PPC CPU inside PCI/Sonnet memory. This is done on
two levels: on the binary level by patching hunk headers of WarpOS programs
and by changing references from powerpc.library to sonnet.library and on
system level by patching the memory allocation function AllocMem(). Both patch
programs can be obtained through the URL provided above. One of them is
included in this archive.

Not all functions of the powerpc.library are yet implemented or will be
implemented (for example memory protection). 100% compatibility will probbly be
never achieved, mostly due to hardware banging of certain WarpOS software.

Sound is restricted to AHI. Paula 8 bit DMA is the recommended setting. At this
moment, the SB128 and FM801 drivers produce a distortion in the sound output.

Notes

This is not a drop-in for the powerpc.library. The advantage of this is that
you now can have 2 PPCs in your system (the other one being a Cybersorm PPC
card). The drawback is that you need two different binaries for each library.
The original binary for WarpOS/powerpc.library and a patched binary for the
sonnet.library.

The driver/library is still being actively developed and is in an alpha stage.
The version number has been bumped to V17.0 (and now to 17.3) to supersede the
latest powerpc.library (V16.1) for patching reasons. Refer to
https://github.com/Sakura-IT/SonnetAmiga for the latest build and the latest
documentation regarding compatibility, FAQs and issues.

See http://amigafun.blogspot.com/search/label/Sonnet for some demonstrations of
the Sonnet card in action.

In the archive:

  • sonnet.library - The driver for the Sonnet 7200 G3/G4 PCI card.
  • InitSonnet - Initializes the Sonnet card.
  • GetInfo - Simple program to show the state of the PPC CPU on the Sonnet card after initialization.

The Sonnet card can only be initialized after the graphics card has been
initialized. This means after C:LoadMonDrvs in the Startup-Sequemce. It is
however recommended to start the driver from the workbench using the provided
icon.

What has changed since 17.3:

  • Fixed a few more potential hangs with well placed syncs.
  • GetInfo() now recognizes modded 433/466/533 MHz Cards.
  • Z flag of 68K interrupt now handled correctly upon exit interrupt.
  • User code no longer addresses the zero page. That is now Supervisor only.
  • Kernel and graphics memory are now handled by BATs by default.
  • L2 cache can now cache instructions, not only data.
  • L2 cache now set to 200MHz for 400/1MB version instead of 133MHz.
  • Fixed a bug in GetHALInfo().
  • Fixed a bug where inter-CPU messages were duplicated.
  • Inter-CPU messages can now be up to ~64K in size instead of 150 bytes.
  • Other miscelaneous fixes to increase stabilty and speed.

What has changed since 17.0:

  • Moved all patches inside the library, no more different start-up programs.
  • Implemented PPF_ASYNC/PP_STACKPTR/PP_STACKSIZE for RunPPC().
  • Fixed a bug in CreatePPCTask(). Now APDF works.
  • Added better error handling through pop-up windows/requesters.
  • Added a ramlib patch to increase stack when needed.
  • Fixed the TagItem functions. Now more demos from Mad Wizards started working.
  • Fixed a bug in GetInfo that was masked by the bug in the TagItem functions.
  • Added shared signal system. Now the signals are shared by the 2 processors.
  • Fixed LockTaskList function. Wrong result was returned.
  • Added CPUUSage, Busy, Activity, CPU Load and System load code (for WarpStat).
  • Fixed a bug in DeleteTaskPPC() as the Snoop list was not correctly freed.
  • Fixed a bug in PutXMsg(). WES should work now (albeit slow).
  • Added alignment support to AllocVecPPC(); For iFusion..No that does not work.
  • Fixed a missing opcode in the FPU alignment emulation code. Now Q1A works.
  • Other miscelaneous fixes and optimizations.

The future

Improving the compatibility with WarpOS. Maybe a version for a towerized A1200. Albeit that several attempts have utterly failed. Also, the patch tools are not very user-friendly/flexible. This is on the To-Do list.

Sonnet Library v17.0

01 Apr 17:36
Compare
Choose a tag to compare
Sonnet Library v17.0 Pre-release
Pre-release

The sonnet.library is a (n alpha) driver for the Sonnet 7200 G3/G4 PCI card.

What is needed

  • Amiga with Zorro III/PCI slots compatible with a Mediator.
  • Elbox Mediator 3000Di/4000Di with 3.3V rail.
    68040 or better.
  • A Radeon 92xx or 3DFX Voodoo3/4/5 card.
  • Mediator Warp3D 4.2 for 3D graphics in combination with a 3DFX Voodoo card.
  • Sonnet 7200 PCI Card. Supported are MG3-400-512K; MG3-400-1M; MG3-500-1M; MG4-400-1M
  • 5V 168 pins FPM DIMMs (up to 256 MB in combination with the Voodoo3; 128MB with other supported video cards)

What does it do

The library interfaces between the CPU and the memory on a Sonnet 7200 G3/G4 PCI card and the Amiga CPU and memory using the MPC107 chipset on th Sonnet card. It also offers WarpOS/powerpc.library compatible functions.

What does this mean

It essentially adds a second CPU to your Amiga through the PCI slot. This being either a 400 or 500 MHz G3 (MPC750) or 400 MHz G4 (MPC7400). This CPU can be used to run (certain) WarpOS software.

Restrictions

The PPC CPU on the Sonnet card cannot DMA to Amiga memory. Any access to non-Sonnet/PCI memory by the PPC is very slow. Patch programs are provided to push code/data needed by the PPC CPU inside PCI/Sonnet memory. This is done on two levels: on the binary level by patching hunk headers of WarpOS programs and by changing references from powerpc.library to sonnet.library and on system level by patching the memory allocation function AllocMem(). Both patch programs can be obtained through the URL provided above. One of them is included in this archive.

The pci.library provided by Elbox (at the moment writing version 9.11) does not work out of the box with the sonnet.library but needs a patch. Cotact the author for more information on this.

Not all functions of the powerpc.library are yet implemented or will be implemented (for example memory protection). 100% compatibility will probbly be never achieved, mostly due to hardware banging of certain WarpOS software.

Sound is restricted to AHI. Paula 8 bit DMA is the recommended setting. At this moment, the SB128 and FM801 drivers produce a distortion in the sound output.

Notes

This is not a drop-in for the powerpc.library. The advantage of this is that you now can have 2 PPCs in your system (the other one being a Cybersorm PPC card). The drawback is that you need two different binaries for each library. The original binary for WarpOS/powerpc.library and a patched binary for the sonnet.library.

The driver/library is still being actively developed and is in an early alpha stage. The version number has been bumped to V17.0 to supersede the latest powerpc.library (V16.1) for patching reasons. Refer to https://github.com/Sakura-IT/SonnetAmiga for the latest build and the latest documentation regarding compatibility, FAQs and issues.

See http://amigafun.blogspot.com/search/label/Sonnet for some demonstrations of the Sonnet card in action.

In the archive:

  • sonnet.library - The driver for the Sonnet 7200 G3/G4 PCI card.
  • InitSonnet - Initializes the Sonnet card. Also initializes 3rd party PPC libraries which need to be in PCI/Sonnet memory to function. (e.g. Warp3DPC.library)
  • InitSonnetClean - Same as above, but does not initialize any 3rd party software. Can be used for simple tools as GetInfo.
  • GetInfo- Simple program to show the state of the PPC CPU on the Sonnet card after initialization.

The Sonnet card can only be initialized after the graphics card has been initialized. This means after C:LoadMonDrvs in the Startup-Sequemce. It is however recommended to start the driver from the workbench using the provided icon.

The future

Improving the compatibility with WarpOS. Maybe a version for a towerized A1200. Also, the patch tools are not very user-friendly/flexible. This will be addressed soon.