Rune Holm [Fri, 25 Jun 2021 18:20:27 +0000 (19:20 +0100)]
As Arm is an architecture with weakly ordered memory,
it isn't safe to do cross-thread communication with multiple variables
unless we use memory barriers between them, both on writes and reads.
In the case of musashi, it's the sequence of set irq/do_reset and reset cycles left.
This patch introduces memory barriers between the writes and reads of these
Rune Holm [Fri, 25 Jun 2021 17:20:52 +0000 (18:20 +0100)]
avoid false sharing between the do_reset and amiga_reset variable that caused the cache line to bounce between the two A53 L1 caches. Also clean up a few of the global variables, in addition to placing 64 bytes of pad around do_reset to prevent future false sharing
Rune Holm [Fri, 18 Jun 2021 19:19:41 +0000 (20:19 +0100)]
move address translation cache fields from global variables to the m68k struct, as
this way we can pass around one pointer and access them all in the future.
This happens to win 5-10% performance, because now the code generator can generate a single
global variable pointer to get to all of the translation cache/range fields at once.
Rune Holm [Fri, 11 Jun 2021 17:37:57 +0000 (18:37 +0100)]
Created address translation fast path for code reads, separated slow path into separate function so the fast path is more likely to be inlined. 10-20% performance improvement
beeanyew [Tue, 8 Jun 2021 08:04:27 +0000 (10:04 +0200)]
Fix P96 2.1E(?) issues
The Picasso96 bundled with some WB installs was refusing to enumerate any modes when encountering a palette or graphics controller type higher than its old assigned maximum.
This should fix the problem with sometimes being unable to find any graphics modes through the CyberGraphX API.
NOTE: Requires reattaching the Picasso96 settings to the board, since the palette/graphics controller chip type has changed.
beeanyew [Mon, 7 Jun 2021 22:19:49 +0000 (00:19 +0200)]
Some janitorial stuff
Fix a314.device build.bat to build a314.device to the correct directory
Disable MMU emulation for now, since it mostly just causes problems when enabled
beeanyew [Mon, 7 Jun 2021 02:12:16 +0000 (04:12 +0200)]
Some RTG fixes
Fix RTG screen not being re-enabled after boot without an initial SetSwitch 0 call, should take care of issues switching resolutions and rebooting with Aminet Picasso96
Add hold left shift to not initialize RTG driver, thanks to flype
Now does the following:
* Uses a DOS/1 filesystem binary
* Creates a partition 100% of the disk size
* Adds Lemaru's PiGFX_Installer
* Adds missing .info file
beeanyew [Fri, 4 Jun 2021 14:34:22 +0000 (16:34 +0200)]
PiSCSI hunk reloc change
Came across a version of PFS3AIO with an excessive number of hunk relocations in the binary compared to the ones I've seen.
Fixes segmentation fault when loading said file systems, requires `make` and `make clean` to take effect.
beeanyew [Thu, 3 Jun 2021 20:16:12 +0000 (22:16 +0200)]
Some RTG bug fixes, (inactive for now) P2C iRTG implementation
Fix P2C/P2D behavior when swiching between color depths.
Add P2C iRTG implementation. This is currently too slow to be used due to the massive amount of single ps_read_8s, needs something to copy all the data similar to the RTG driver code.
beeanyew [Wed, 2 Jun 2021 14:10:23 +0000 (16:10 +0200)]
iRTG initial implementation
Reworked PiGFX .card driver to build using m68k-amigaos-gcc instead of VBCC
Add some iRTG accelerated functionality to rtg.c
Move rtg_enums.h to match other Amiga driver build setups
pigfx020i.card must be used to enable iRTG usage
Andrew Hutchings [Sun, 30 May 2021 07:31:25 +0000 (08:31 +0100)]
Fix font rendering issue in GUI
In OS3.9 and others a different font is used which screws up the layout
for the PiStorm GUI gadgets. We now fix this to Topaz 8 so that it is
the same as other Amiga OS versions.
Also fix Disk.info to show all files and rebuild the hdf.
beeanyew [Thu, 27 May 2021 11:39:15 +0000 (13:39 +0200)]
Map the default 128MB of Z3 Fast on Kick 1.3
This assumes that the original Z3 Fast map line in the config has not been edited.
Z3 Fast is autoconfed before this on newer Kickstarts, so they're unaffected by this as the memory range will no longer sit around at $10000000.
1.3 PiSCSI autoboot still doesn't work.