00001 /*! \file include/kernel/kernel_map.h 00002 * \brief The memory map of the kernel. 00003 * \author Andrea Righi <drizzt@inwind.it> 00004 * \date Last update: 2003-11-05 00005 * \note Copyright (©) 2003 Andrea Righi 00006 */ 00007 00008 #ifndef KERNEL_MAP_H 00009 #define KERNEL_MAP_H 00010 00011 // --- Physical address space ----------------------------------------- // 00012 00013 //! Physiscal address of the kernel (don't touch!!!). 00014 #define K_PHYS_ADDR 0x100000 00015 //! Kernel Page Directory (don't touch!!!). 00016 #define K_PDE 0x1000 00017 //! Kernel Page Table for virtual space (don't touch!!!). 00018 #define K_PTE 0x2000 00019 00020 //! DMA memory area start address (don't touch!!!). 00021 #define DMA_MEMORY_START 0x3000 00022 //! DMA memory area end address (don't touch!!!). 00023 #define DMA_MEMORY_END 0x01000000 00024 00025 // --- V86-required address space ------------------------------------- // 00026 00027 //! BIOS Interrupt Vector Table (IVT) start address. 00028 #define BIOS_IVT_START 0x00000000 00029 //! BIOS Interrupt Vector Table (IVT) end address. 00030 #define BIOS_IVT_END 0x00001000 00031 00032 //! Video Buffer area start address. 00033 #define VIDEO_BUF_START 0x000A0000 00034 //! Video Buffer area end address. 00035 #define VIDEO_BUF_END 0x000C0000 00036 00037 //! ROM BIOS memory start address. 00038 #define BIOS_ROM_START 0x000C0000 00039 //! ROM BIOS memory end address. 00040 #define BIOS_ROM_END 0x00100000 00041 00042 // --- Kernel virtual address space ----------------------------------- // 00043 00044 //! Kernel virtual start address. 00045 //! \note Must be (PAGE_SIZE*1024) aligned!!! 00046 #define K_VIR_START 0xC0000000 00047 00048 //! Kernel heap start address. 00049 #define K_HEAP_START 0xD0000000 00050 //! Kernel heap end address. 00051 #define K_HEAP_END 0xE0000000 00052 00053 // --- Drivers memory area -------------------------------------------- // 00054 #define D_MEM_START 0xE0000000 00055 #define D_MEM_END 0xEF000000 00056 00057 //! Some physical memory (first 16MB of physical memory are mapped here) 00058 //! start address. 00059 #define PHYS_MEM_START 0xEF000000 00060 //! Some physical memory (first 16MB of physical memory are mapped here) 00061 //! end address. 00062 #define PHYS_MEM_END 0xF0000000 00063 00064 //! Temporary memory area start address. 00065 #define K_MEM_TEMP_START 0xF0000000 00066 //! Temporary memory area end address. 00067 #define K_MEM_TEMP_END 0xFFC00000 00068 00069 //! Page tables area start address. 00070 #define PAGE_TABLE_MAP (0xFFC00000) 00071 //! Page tables area end address. 00072 #define PAGE_DIR_MAP (0xFFC00000 + (PAGE_TABLE_MAP / (1024))) 00073 00074 #endif