From 8a0847fbed676776cb15faf63060740ede31f97b Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Sun, 21 May 2017 22:18:05 +0100 Subject: [PATCH] v68-banked: fix swap handling This depends upon the blkdev fixes --- Kernel/platform-v68-banked/config.h | 12 ++++-------- Kernel/platform-v68-banked/kernel.def | 1 + Kernel/platform-v68-banked/tricks.S | 2 ++ 3 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 Kernel/platform-v68-banked/kernel.def diff --git a/Kernel/platform-v68-banked/config.h b/Kernel/platform-v68-banked/config.h index 3f665f90..f5b4a603 100644 --- a/Kernel/platform-v68-banked/config.h +++ b/Kernel/platform-v68-banked/config.h @@ -14,20 +14,16 @@ #define CONFIG_BANK_FIXED #define MAX_MAPS 4 #define MAPBASE 0x00200000 -#define MAP_SIZE 0x00020000 +#define MAP_SIZE 0x0001FC00 #define CONFIG_BANKS 1 -#define PROC_SIZE MAP_SIZE /* 128K */ - -#define CONFIG_SPLIT_UDATA -#define UDATA_SIZE 1024 -#define UDATA_BLKS 2 +#define PROC_SIZE MAP_SIZE /* 128K minus udata */ #define PROGBASE MAPBASE #define PROGTOP (MAPBASE + MAP_SIZE) -#define SWAP_SIZE ((MAP_SIZE/512) + 2) /* 2 for the udata */ +#define SWAP_SIZE 256 /* 128K including udata */ #define SWAPBASE PROGBASE -#define SWAPTOP PROGTOP +#define SWAPTOP (PROGTOP + 0x400) #define MAX_SWAPS 16 #define swap_map(x) ((uint8_t *)(x)) diff --git a/Kernel/platform-v68-banked/kernel.def b/Kernel/platform-v68-banked/kernel.def new file mode 100644 index 00000000..24135b6c --- /dev/null +++ b/Kernel/platform-v68-banked/kernel.def @@ -0,0 +1 @@ +#define UDATA_STASH $0021FC00 \ No newline at end of file diff --git a/Kernel/platform-v68-banked/tricks.S b/Kernel/platform-v68-banked/tricks.S index 0a5a96a4..212bd778 100644 --- a/Kernel/platform-v68-banked/tricks.S +++ b/Kernel/platform-v68-banked/tricks.S @@ -113,6 +113,7 @@ switchin: move.l (sp)+,a0 or #$0700,sr + bra copyud not_swapped: move.w P_TAB__P_PAGE_OFFSET(a0),d0 @@ -122,6 +123,7 @@ not_swapped: move.l P_TAB__P_UDATA_OFFSET(a0),a5 cmp.l U_DATA__U_PTAB(a5),a0 beq skip_copyback +copyud: ; ; Recover the udata block ; -- 2.34.1