12345678910111213141516171819202122232425262728293031323334 |
- MODULE MemoryMapping;
- (**
- AUTHOR Timothée Martiel, 12/2015
- PURPOSE Application-specific virtual memory mapping setup for Minos.
- *)
- IMPORT SYSTEM, Trace, Memory;
- CONST
- k = 1024;
- M = k * k;
- G = M * k;
- PROCEDURE SetupPageTable ;
- VAR
- i: LONGINT;
- BEGIN
- (* Reset all entries to 0 *)
- FOR i := 0 TO Memory.PageTableLength DO
- SYSTEM.PUT32( Memory.virtualPageTable+(i*4), 0 );
- END;
- (* 1:1 Mapping of first 120 MB. *)
- Memory.AllocateMmu(0, 0, 510 * M, Memory.SrwUrw, Memory.Cacheable + Memory.Shareable);
-
- (* 1:1, Non cached mapping for I/O *)
- Memory.AllocateMmu(ADDRESS(040000000H), ADDRESS(040000000H), ADDRESS( 3008* M), Memory.SrwUrw, Memory.B);
- END SetupPageTable;
- BEGIN
- Trace.StringLn("MMU -> Pre Memory Init");
- SetupPageTable;
- Memory.InitMemory;
- Trace.StringLn("MMU -> Virtual Memory Initialized");
- END MemoryMapping.
|