From 924dd69f2bfb2b5b28e731233b1b60b577ba1bdd Mon Sep 17 00:00:00 2001 From: Byron Lathi Date: Wed, 22 Nov 2023 08:31:34 -0800 Subject: [PATCH] Add mapper docs --- doc/{ => memory_mapper}/memory_mapper.drawio | 122 +++++++++---------- doc/memory_mapper/memory_mapper.drawio.png | Bin 0 -> 125302 bytes doc/memory_mapper/memory_mapper.md | 70 +++++++++++ 3 files changed, 131 insertions(+), 61 deletions(-) rename doc/{ => memory_mapper}/memory_mapper.drawio (76%) create mode 100644 doc/memory_mapper/memory_mapper.drawio.png create mode 100644 doc/memory_mapper/memory_mapper.md diff --git a/doc/memory_mapper.drawio b/doc/memory_mapper/memory_mapper.drawio similarity index 76% rename from doc/memory_mapper.drawio rename to doc/memory_mapper/memory_mapper.drawio index 296e767..60b7619 100644 --- a/doc/memory_mapper.drawio +++ b/doc/memory_mapper/memory_mapper.drawio @@ -1,66 +1,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -68,52 +68,52 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -123,13 +123,13 @@ - + - + - + @@ -137,12 +137,12 @@ - + - + @@ -150,12 +150,12 @@ - + - + @@ -163,61 +163,61 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -225,31 +225,31 @@ - + - + - + - + - + - + - + @@ -259,32 +259,32 @@ - + - + - + - + - + - + - + - + diff --git a/doc/memory_mapper/memory_mapper.drawio.png b/doc/memory_mapper/memory_mapper.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..c656da571be0615730a2e4078eea83f3d8598cd5 GIT binary patch literal 125302 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
cnztcS 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 b{``B|NRvG3JJv)06!?1~E-Qu-)$;rwdp?Y~ literal 0 HcmV?d00001 diff --git a/doc/memory_mapper/memory_mapper.md b/doc/memory_mapper/memory_mapper.md new file mode 100644 index 0000000..6f216ed --- /dev/null +++ b/doc/memory_mapper/memory_mapper.md @@ -0,0 +1,70 @@ +# Memory Mapper + +## Overview + +The memory mapper gives expands the CPU's address space from 16 bits to 25. +It can be expanded to be 28 bits, but only 25 are needed to access all of +sdram. + +Its architecture is show below: + +![memory_mapper.drawio.png](memory_mapper.drawio.png) + +There are 32 16 bit registers: One for each 4k page in the virtual address +space. The memory mapper is always enabled, but at reset it is identity +mapped, i.e. register _n_ will be reset to value _n_. + +## Interface + +The Memory mapper is composed of 32 identical 16 bit mapping registers + +The chip select should be calculated based on the virtual address. If not, +it will be possible for the CPU to map away access to the mapper, at which +point it is impossible to change the mappings without a reset. + +## Registers + +### Register Map + +| Address | Read | Write | +|--------- |-------------- |-------------- | +| 00 | MM0 Low | MM0 Low | +| 01 | MM0 High | MM0 High | +| 02 | MM1 Low | MM1 Low | +| 03 | MM1 High | MM1 High | +| 04 | MM2 Low | MM2 Low | +| 05 | MM2 High | MM2 High | +| 06 | MM3 Low | MM3 Low | +| 07 | MM3 High | MM3 High | +| 08 | MM4 Low | MM4 Low | +| 09 | MM4 High | MM4 High | +| 0A | MM5 Low | MM5 Low | +| 0B | MM5 High | MM5 High | +| 0C | MM6 Low | MM6 Low | +| 0D | MM6 High | MM6 High | +| 0E | MM7 Low | MM7 Low | +| 0F | MM7 High | MM7 High | +| 10 | MM8 Low | MM8 Low | +| 11 | MM8 High | MM8 High | +| 12 | MM9 Low | MM9 Low | +| 13 | MM9 High | MM9 High | +| 14 | MM10 Low | MM10 Low | +| 15 | MM10 High | MM10 High | +| 16 | MM11 Low | MM11 Low | +| 17 | MM11 High | MM11 High | +| 18 | MM12 Low | MM12 Low | +| 19 | MM12 High | MM12 High | +| 1A | MM13 Low | MM13 Low | +| 1B | MM13 High | MM13 High | +| 1C | MM14 Low | MM14 Low | +| 1D | MM14 High | MM14 High | +| 1E | MM15 Low | MM15 Low | +| 1F | MM15 High | MM15 High | + +### MMn Low + +Low memory map data. Becomes bits [19:12] of physical address. + +### MMn High + +High memory map data. Becomes bits [27:20] of physical address. \ No newline at end of file