MemoryMapping.Mos 853 B

12345678910111213141516171819202122232425262728293031323334
  1. MODULE MemoryMapping;
  2. (**
  3. AUTHOR Timothée Martiel, 12/2015
  4. PURPOSE Application-specific virtual memory mapping setup for Minos.
  5. *)
  6. IMPORT SYSTEM, Trace, Memory;
  7. CONST
  8. k = 1024;
  9. M = k * k;
  10. G = M * k;
  11. PROCEDURE SetupPageTable ;
  12. VAR
  13. i: LONGINT;
  14. BEGIN
  15. (* Reset all entries to 0 *)
  16. FOR i := 0 TO Memory.PageTableLength DO
  17. SYSTEM.PUT32( Memory.virtualPageTable+(i*4), 0 );
  18. END;
  19. (* 1:1 Mapping of first 120 MB. *)
  20. Memory.AllocateMmu(0, 0, 510 * M, Memory.SrwUrw, Memory.Cacheable + Memory.Shareable);
  21. (* 1:1, Non cached mapping for I/O *)
  22. Memory.AllocateMmu(ADDRESS(040000000H), ADDRESS(040000000H), ADDRESS( 3008* M), Memory.SrwUrw, Memory.B);
  23. END SetupPageTable;
  24. BEGIN
  25. Trace.StringLn("MMU -> Pre Memory Init");
  26. SetupPageTable;
  27. Memory.InitMemory;
  28. Trace.StringLn("MMU -> Virtual Memory Initialized");
  29. END MemoryMapping.