Changes in / [6be2c13:973be387] in mainline
- Location:
- kernel
- Files:
-
- 45 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/abs32le/include/arch/mm/page.h
r6be2c13 r973be387 92 92 get_pt_flags((pte_t *) (ptl0), (size_t) (i)) 93 93 #define GET_PTL2_FLAGS_ARCH(ptl1, i) \ 94 094 PAGE_PRESENT 95 95 #define GET_PTL3_FLAGS_ARCH(ptl2, i) \ 96 096 PAGE_PRESENT 97 97 #define GET_FRAME_FLAGS_ARCH(ptl3, i) \ 98 98 get_pt_flags((pte_t *) (ptl3), (size_t) (i)) … … 154 154 return ( 155 155 ((unsigned int) (!p->page_cache_disable) << PAGE_CACHEABLE_SHIFT) | 156 ((unsigned int) (!p->present) << PAGE_ NOT_PRESENT_SHIFT) |156 ((unsigned int) (!p->present) << PAGE_PRESENT_SHIFT) | 157 157 ((unsigned int) p->uaccessible << PAGE_USER_SHIFT) | 158 (1 << PAGE_READ_SHIFT) | 158 159 ((unsigned int) p->writeable << PAGE_WRITE_SHIFT) | 159 160 (1 << PAGE_EXEC_SHIFT) | -
kernel/arch/amd64/include/arch/mm/page.h
r6be2c13 r973be387 212 212 213 213 return ((!p->page_cache_disable) << PAGE_CACHEABLE_SHIFT | 214 (!p->present) << PAGE_ NOT_PRESENT_SHIFT |214 (!p->present) << PAGE_PRESENT_SHIFT | 215 215 p->uaccessible << PAGE_USER_SHIFT | 216 1 << PAGE_READ_SHIFT | 216 217 p->writeable << PAGE_WRITE_SHIFT | 217 218 (!p->no_execute) << PAGE_EXEC_SHIFT | -
kernel/arch/amd64/src/mm/page.c
r6be2c13 r973be387 56 56 uintptr_t cur; 57 57 unsigned int identity_flags = 58 PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_EXEC | PAGE_WRITE ;58 PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_EXEC | PAGE_WRITE | PAGE_READ; 59 59 60 60 page_mapping_operations = &pt_mapping_operations; -
kernel/arch/amd64/src/vreg.c
r6be2c13 r973be387 67 67 68 68 page = (uint64_t *) km_map(frame, PAGE_SIZE, 69 PAGE_ WRITE | PAGE_USER | PAGE_CACHEABLE);69 PAGE_READ | PAGE_WRITE | PAGE_USER | PAGE_CACHEABLE); 70 70 71 71 write_msr(AMD_MSR_FS, (uintptr_t) page); -
kernel/arch/arm32/include/arch/mm/page.h
r6be2c13 r973be387 108 108 get_pt_level0_flags((pte_t *) (ptl0), (size_t) (i)) 109 109 #define GET_PTL2_FLAGS_ARCH(ptl1, i) \ 110 0110 PAGE_PRESENT 111 111 #define GET_PTL3_FLAGS_ARCH(ptl2, i) \ 112 0112 PAGE_PRESENT 113 113 #define GET_FRAME_FLAGS_ARCH(ptl3, i) \ 114 114 get_pt_level1_flags((pte_t *) (ptl3), (size_t) (i)) -
kernel/arch/arm32/include/arch/mm/page_armv4.h
r6be2c13 r973be387 138 138 int np = (p->descriptor_type == PTE_DESCRIPTOR_NOT_PRESENT); 139 139 140 return (np << PAGE_ NOT_PRESENT_SHIFT) | (1 << PAGE_USER_SHIFT) |141 (1 << PAGE_ WRITE_SHIFT) |140 return (np << PAGE_PRESENT_SHIFT) | (1 << PAGE_USER_SHIFT) | 141 (1 << PAGE_READ_SHIFT) | (1 << PAGE_WRITE_SHIFT) | 142 142 (1 << PAGE_EXEC_SHIFT) | (1 << PAGE_CACHEABLE_SHIFT); 143 143 } … … 156 156 int ap = p->access_permission_0; 157 157 158 return ((dt == PTE_DESCRIPTOR_NOT_PRESENT) << PAGE_NOT_PRESENT_SHIFT) | 158 return ((dt == PTE_DESCRIPTOR_NOT_PRESENT) << PAGE_PRESENT_SHIFT) | 159 ((ap == PTE_AP_USER_RO_KERNEL_RW) << PAGE_READ_SHIFT) | 160 ((ap == PTE_AP_USER_RW_KERNEL_RW) << PAGE_READ_SHIFT) | 159 161 ((ap == PTE_AP_USER_RW_KERNEL_RW) << PAGE_WRITE_SHIFT) | 160 162 ((ap != PTE_AP_USER_NO_KERNEL_RW) << PAGE_USER_SHIFT) | 163 ((ap == PTE_AP_USER_NO_KERNEL_RW) << PAGE_READ_SHIFT) | 161 164 ((ap == PTE_AP_USER_NO_KERNEL_RW) << PAGE_WRITE_SHIFT) | 162 165 (1 << PAGE_EXEC_SHIFT) | … … 217 220 218 221 if (flags & PAGE_USER) { 222 if (flags & PAGE_READ) { 223 p->access_permission_0 = p->access_permission_1 = 224 p->access_permission_2 = p->access_permission_3 = 225 PTE_AP_USER_RO_KERNEL_RW; 226 } 219 227 if (flags & PAGE_WRITE) { 220 228 p->access_permission_0 = p->access_permission_1 = 221 229 p->access_permission_2 = p->access_permission_3 = 222 230 PTE_AP_USER_RW_KERNEL_RW; 223 } else {224 p->access_permission_0 = p->access_permission_1 =225 p->access_permission_2 = p->access_permission_3 =226 PTE_AP_USER_RO_KERNEL_RW;227 231 } 228 232 } -
kernel/arch/arm32/include/arch/mm/page_armv6.h
r6be2c13 r973be387 171 171 const unsigned np = (p->descriptor_type == PTE_DESCRIPTOR_NOT_PRESENT); 172 172 173 return (np << PAGE_ NOT_PRESENT_SHIFT) | (1 << PAGE_USER_SHIFT) |174 (1 << PAGE_ WRITE_SHIFT) |173 return (np << PAGE_PRESENT_SHIFT) | (1 << PAGE_USER_SHIFT) | 174 (1 << PAGE_READ_SHIFT) | (1 << PAGE_WRITE_SHIFT) | 175 175 (1 << PAGE_EXEC_SHIFT) | (1 << PAGE_CACHEABLE_SHIFT); 176 176 } … … 190 190 const unsigned ap1 = p->access_permission_1; 191 191 192 return ((dt == PTE_DESCRIPTOR_NOT_PRESENT) << PAGE_ NOT_PRESENT_SHIFT) |192 return ((dt == PTE_DESCRIPTOR_NOT_PRESENT) << PAGE_PRESENT_SHIFT) | 193 193 ((dt != PTE_DESCRIPTOR_SMALL_PAGE_NX) << PAGE_EXEC_SHIFT) | 194 ((ap0 == PTE_AP0_USER_LIMITED_KERNEL_FULL) << PAGE_READ_SHIFT) | 195 ((ap0 == PTE_AP0_USER_FULL_KERNEL_FULL) << PAGE_READ_SHIFT) | 196 ((ap0 == PTE_AP0_USER_NO_KERNEL_FULL) << PAGE_READ_SHIFT) | 194 197 ((ap0 != PTE_AP0_USER_NO_KERNEL_FULL) << PAGE_USER_SHIFT) | 195 198 (((ap1 != PTE_AP1_RO) && (ap0 == PTE_AP0_USER_FULL_KERNEL_FULL)) << PAGE_WRITE_SHIFT) | -
kernel/arch/arm32/src/mach/beagleboardxm/beagleboardxm.c
r6be2c13 r973be387 101 101 beagleboard.irc_addr = 102 102 (void *) km_map(AMDM37x_IRC_BASE_ADDRESS, AMDM37x_IRC_SIZE, 103 0);103 PAGE_NOT_CACHEABLE); 104 104 assert(beagleboard.irc_addr); 105 105 omap_irc_init(beagleboard.irc_addr); -
kernel/arch/arm32/src/mach/beaglebone/beaglebone.c
r6be2c13 r973be387 87 87 { 88 88 bbone.irc_addr = (void *) km_map(AM335x_IRC_BASE_ADDRESS, 89 AM335x_IRC_SIZE, 0);89 AM335x_IRC_SIZE, PAGE_NOT_CACHEABLE); 90 90 91 91 bbone.cm_per_addr = (void *) km_map(AM335x_CM_PER_BASE_ADDRESS, 92 AM335x_CM_PER_SIZE, 0);92 AM335x_CM_PER_SIZE, PAGE_NOT_CACHEABLE); 93 93 94 94 bbone.cm_dpll_addr = (void *) km_map(AM335x_CM_DPLL_BASE_ADDRESS, 95 AM335x_CM_DPLL_SIZE, 0);95 AM335x_CM_DPLL_SIZE, PAGE_NOT_CACHEABLE); 96 96 97 97 bbone.ctrl_module = (void *) km_map(AM335x_CTRL_MODULE_BASE_ADDRESS, 98 AM335x_CTRL_MODULE_SIZE, 0);98 AM335x_CTRL_MODULE_SIZE, PAGE_NOT_CACHEABLE); 99 99 100 100 assert(bbone.irc_addr != NULL); -
kernel/arch/arm32/src/mach/gta02/gta02.c
r6be2c13 r973be387 103 103 104 104 gta02_timer = (void *) km_map(S3C24XX_TIMER_ADDRESS, PAGE_SIZE, 105 0);105 PAGE_NOT_CACHEABLE); 106 106 irqc_regs = (void *) km_map(S3C24XX_IRQC_ADDRESS, PAGE_SIZE, 107 0);107 PAGE_NOT_CACHEABLE); 108 108 109 109 /* Initialize interrupt controller. */ -
kernel/arch/arm32/src/mach/integratorcp/integratorcp.c
r6be2c13 r973be387 135 135 { 136 136 icp.hw_map.uart = km_map(ICP_UART, PAGE_SIZE, 137 PAGE_WRITE );138 icp.hw_map.kbd_ctrl = km_map(ICP_KBD, PAGE_SIZE, 0);137 PAGE_WRITE | PAGE_NOT_CACHEABLE); 138 icp.hw_map.kbd_ctrl = km_map(ICP_KBD, PAGE_SIZE, PAGE_NOT_CACHEABLE); 139 139 icp.hw_map.kbd_stat = icp.hw_map.kbd_ctrl + ICP_KBD_STAT; 140 140 icp.hw_map.kbd_data = icp.hw_map.kbd_ctrl + ICP_KBD_DATA; 141 141 icp.hw_map.kbd_intstat = icp.hw_map.kbd_ctrl + ICP_KBD_INTR_STAT; 142 142 icp.hw_map.rtc = km_map(ICP_RTC, PAGE_SIZE, 143 PAGE_WRITE );143 PAGE_WRITE | PAGE_NOT_CACHEABLE); 144 144 icp.hw_map.rtc1_load = icp.hw_map.rtc + ICP_RTC1_LOAD_OFFSET; 145 145 icp.hw_map.rtc1_read = icp.hw_map.rtc + ICP_RTC1_READ_OFFSET; … … 150 150 151 151 icp.hw_map.irqc = km_map(ICP_IRQC, PAGE_SIZE, 152 PAGE_WRITE );152 PAGE_WRITE | PAGE_NOT_CACHEABLE); 153 153 icp.hw_map.irqc_mask = icp.hw_map.irqc + ICP_IRQC_MASK_OFFSET; 154 154 icp.hw_map.irqc_unmask = icp.hw_map.irqc + ICP_IRQC_UNMASK_OFFSET; 155 155 icp.hw_map.cmcr = km_map(ICP_CMCR, PAGE_SIZE, 156 PAGE_WRITE );156 PAGE_WRITE | PAGE_NOT_CACHEABLE); 157 157 icp.hw_map.sdramcr = icp.hw_map.cmcr + ICP_SDRAMCR_OFFSET; 158 158 icp.hw_map.vga = km_map(ICP_VGA, PAGE_SIZE, 159 PAGE_WRITE );159 PAGE_WRITE | PAGE_NOT_CACHEABLE); 160 160 161 161 hw_map_init_called = true; -
kernel/arch/arm32/src/mach/raspberrypi/raspberrypi.c
r6be2c13 r973be387 102 102 /* Initialize interrupt controller */ 103 103 raspi.irc = (void *) km_map(BCM2835_IRC_ADDR, sizeof(bcm2835_irc_t), 104 0);104 PAGE_NOT_CACHEABLE); 105 105 assert(raspi.irc); 106 106 bcm2835_irc_init(raspi.irc); … … 109 109 raspi.timer = (void *) km_map(BCM2835_TIMER_ADDR, 110 110 sizeof(bcm2835_timer_t), 111 0);111 PAGE_NOT_CACHEABLE); 112 112 } 113 113 -
kernel/arch/arm32/src/ras.c
r6be2c13 r973be387 57 57 58 58 ras_page = (uintptr_t *) km_map(frame, 59 PAGE_SIZE, PAGE_ WRITE | PAGE_USER | PAGE_CACHEABLE);59 PAGE_SIZE, PAGE_READ | PAGE_WRITE | PAGE_USER | PAGE_CACHEABLE); 60 60 61 61 memsetb(ras_page, PAGE_SIZE, 0); -
kernel/arch/ia32/include/arch/mm/page.h
r6be2c13 r973be387 109 109 get_pt_flags((pte_t *) (ptl0), (size_t) (i)) 110 110 #define GET_PTL2_FLAGS_ARCH(ptl1, i) \ 111 0111 PAGE_PRESENT 112 112 #define GET_PTL3_FLAGS_ARCH(ptl2, i) \ 113 0113 PAGE_PRESENT 114 114 #define GET_FRAME_FLAGS_ARCH(ptl3, i) \ 115 115 get_pt_flags((pte_t *) (ptl3), (size_t) (i)) … … 185 185 186 186 return ((!p->page_cache_disable) << PAGE_CACHEABLE_SHIFT | 187 (!p->present) << PAGE_ NOT_PRESENT_SHIFT |187 (!p->present) << PAGE_PRESENT_SHIFT | 188 188 p->uaccessible << PAGE_USER_SHIFT | 189 1 << PAGE_READ_SHIFT | 189 190 p->writeable << PAGE_WRITE_SHIFT | 190 191 1 << PAGE_EXEC_SHIFT | -
kernel/arch/ia32/src/mm/page.c
r6be2c13 r973be387 70 70 for (cur = 0; cur < min(config.identity_size, config.physmem_end); 71 71 cur += FRAME_SIZE) { 72 flags = PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_WRITE ;72 flags = PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_WRITE | PAGE_READ; 73 73 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); 74 74 } -
kernel/arch/ia32/src/smp/smp.c
r6be2c13 r973be387 75 75 76 76 if (config.cpu_count > 1) { 77 l_apic = (uint32_t *) km_map((uintptr_t) l_apic, 78 PAGE_ SIZE, PAGE_WRITE);79 io_apic = (uint32_t *) km_map((uintptr_t) io_apic, 80 PAGE_ SIZE, PAGE_WRITE);77 l_apic = (uint32_t *) km_map((uintptr_t) l_apic, PAGE_SIZE, 78 PAGE_WRITE | PAGE_NOT_CACHEABLE); 79 io_apic = (uint32_t *) km_map((uintptr_t) io_apic, PAGE_SIZE, 80 PAGE_WRITE | PAGE_NOT_CACHEABLE); 81 81 } 82 82 } -
kernel/arch/ia32/src/vreg.c
r6be2c13 r973be387 68 68 69 69 page = (uint32_t *) km_map(frame, PAGE_SIZE, 70 PAGE_ WRITE | PAGE_USER | PAGE_CACHEABLE);70 PAGE_READ | PAGE_WRITE | PAGE_USER | PAGE_CACHEABLE); 71 71 72 72 gdt_setbase(&gdt_p[VREG_DES], (uintptr_t) page); -
kernel/arch/ia64/src/ia64.c
r6be2c13 r973be387 106 106 { 107 107 uintptr_t IOSAPIC = km_map(iosapic_base, PAGE_SIZE, 108 PAGE_WRITE );108 PAGE_WRITE | PAGE_NOT_CACHEABLE); 109 109 int i; 110 110 … … 135 135 /* Map the page with legacy I/O. */ 136 136 legacyio_virt_base = km_map(LEGACYIO_PHYS_BASE, LEGACYIO_SIZE, 137 PAGE_WRITE );137 PAGE_WRITE | PAGE_NOT_CACHEABLE); 138 138 139 139 iosapic_init(); -
kernel/arch/mips32/include/arch/mm/page.h
r6be2c13 r973be387 114 114 get_pt_flags((pte_t *) (ptl0), (size_t) (i)) 115 115 #define GET_PTL2_FLAGS_ARCH(ptl1, i) \ 116 0116 PAGE_PRESENT 117 117 #define GET_PTL3_FLAGS_ARCH(ptl2, i) \ 118 0118 PAGE_PRESENT 119 119 #define GET_FRAME_FLAGS_ARCH(ptl3, i) \ 120 120 get_pt_flags((pte_t *) (ptl3), (size_t) (i)) … … 167 167 168 168 return ((p->cacheable << PAGE_CACHEABLE_SHIFT) | 169 ((!p->p) << PAGE_ NOT_PRESENT_SHIFT) |169 ((!p->p) << PAGE_PRESENT_SHIFT) | 170 170 (1 << PAGE_USER_SHIFT) | 171 (1 << PAGE_READ_SHIFT) | 171 172 ((p->w) << PAGE_WRITE_SHIFT) | 172 173 (1 << PAGE_EXEC_SHIFT) | -
kernel/arch/ppc32/include/arch/mm/page.h
r6be2c13 r973be387 111 111 112 112 #define GET_PTL2_FLAGS_ARCH(ptl1, i) \ 113 0113 PAGE_PRESENT 114 114 115 115 #define GET_PTL3_FLAGS_ARCH(ptl2, i) \ 116 0116 PAGE_PRESENT 117 117 118 118 #define GET_FRAME_FLAGS_ARCH(ptl3, i) \ … … 167 167 168 168 return (((!entry->page_cache_disable) << PAGE_CACHEABLE_SHIFT) | 169 ((!entry->present) << PAGE_ NOT_PRESENT_SHIFT) |169 ((!entry->present) << PAGE_PRESENT_SHIFT) | 170 170 (1 << PAGE_USER_SHIFT) | 171 (1 << PAGE_READ_SHIFT) | 171 172 (1 << PAGE_WRITE_SHIFT) | 172 173 (1 << PAGE_EXEC_SHIFT) | -
kernel/arch/ppc32/src/drivers/pic.c
r6be2c13 r973be387 42 42 void pic_init(uintptr_t base, size_t size, cir_t *cir, void **cir_arg) 43 43 { 44 pic = (uint32_t *) km_map(base, size, PAGE_WRITE );44 pic = (uint32_t *) km_map(base, size, PAGE_WRITE | PAGE_NOT_CACHEABLE); 45 45 *cir = pic_ack_interrupt; 46 46 *cir_arg = NULL; -
kernel/arch/ppc32/src/ppc32.c
r6be2c13 r973be387 242 242 243 243 cuda_t *cuda = (cuda_t *) (km_map(aligned_addr, offset + size, 244 PAGE_WRITE ) + offset);244 PAGE_WRITE | PAGE_NOT_CACHEABLE) + offset); 245 245 246 246 /* Initialize I/O controller */ -
kernel/arch/riscv64/include/arch/mm/page.h
r6be2c13 r973be387 82 82 83 83 /* Flags mask for non-leaf page table entries */ 84 #define NON_LEAF_MASK (~(PAGE_ WRITE | PAGE_EXEC))84 #define NON_LEAF_MASK (~(PAGE_READ | PAGE_WRITE | PAGE_EXEC)) 85 85 86 86 /* Get PTE address accessors for each level. */ … … 183 183 pte_t *entry = &pt[i]; 184 184 185 return (((!entry->valid) << PAGE_ NOT_PRESENT_SHIFT) |185 return (((!entry->valid) << PAGE_PRESENT_SHIFT) | 186 186 (entry->user << PAGE_USER_SHIFT) | 187 (entry->readable << PAGE_READ_SHIFT) | 187 188 (entry->writable << PAGE_WRITE_SHIFT) | 188 189 (entry->executable << PAGE_EXEC_SHIFT) | … … 195 196 196 197 entry->valid = !(flags & PAGE_NOT_PRESENT); 197 entry->readable = 1;198 entry->readable = (flags & PAGE_READ) != 0; 198 199 entry->writable = (flags & PAGE_WRITE) != 0; 199 200 entry->executable = (flags & PAGE_EXEC) != 0; -
kernel/arch/riscv64/src/mm/page.c
r6be2c13 r973be387 63 63 cur += FRAME_SIZE) 64 64 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, 65 PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_EXEC | PAGE_WRITE );65 PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_EXEC | PAGE_WRITE | PAGE_READ); 66 66 67 67 page_table_unlock(AS_KERNEL, true); -
kernel/arch/sparc64/src/drivers/kbd.c
r6be2c13 r973be387 119 119 120 120 ioport8_t *ns16550 = (ioport8_t *) (km_map(aligned_addr, offset + size, 121 PAGE_WRITE ) + offset);121 PAGE_WRITE | PAGE_NOT_CACHEABLE) + offset); 122 122 123 123 ns16550_instance_t *ns16550_instance = ns16550_init(ns16550, 0, inr, cir, -
kernel/arch/sparc64/src/drivers/pci.c
r6be2c13 r973be387 110 110 pci->op = &pci_sabre_ops; 111 111 pci->reg = (uint64_t *) km_map(paddr, reg[SABRE_INTERNAL_REG].size, 112 PAGE_WRITE );112 PAGE_WRITE | PAGE_NOT_CACHEABLE); 113 113 114 114 return pci; … … 152 152 pci->op = &pci_psycho_ops; 153 153 pci->reg = (uint64_t *) km_map(paddr, reg[PSYCHO_INTERNAL_REG].size, 154 PAGE_WRITE );154 PAGE_WRITE | PAGE_NOT_CACHEABLE); 155 155 156 156 return pci; -
kernel/genarch/include/genarch/drivers/amdm37x/gpt.h
r6be2c13 r973be387 208 208 // TODO find a nicer way to setup 32kHz clock source for timer1 209 209 // reg 0x48004C40 is CM_CLKSEL_WKUP see page 485 of the manual 210 ioport32_t *clksel = (void*) km_map(0x48004C40, 4, 0);210 ioport32_t *clksel = (void*) km_map(0x48004C40, 4, PAGE_NOT_CACHEABLE); 211 211 *clksel &= ~1; 212 212 km_unmap((uintptr_t)clksel, 4); … … 214 214 assert(timer); 215 215 /* Map control register */ 216 timer->regs = (void*) km_map(ioregs, iosize, 0);216 timer->regs = (void*) km_map(ioregs, iosize, PAGE_NOT_CACHEABLE); 217 217 218 218 /* Reset the timer */ -
kernel/genarch/src/acpi/acpi.c
r6be2c13 r973be387 104 104 /* Start with mapping the header only. */ 105 105 vhdr = (struct acpi_sdt_header *) km_map((uintptr_t) psdt, 106 sizeof(struct acpi_sdt_header), 0);106 sizeof(struct acpi_sdt_header), PAGE_READ | PAGE_NOT_CACHEABLE); 107 107 108 108 /* Now we can map the entire structure. */ 109 109 vsdt = (struct acpi_sdt_header *) km_map((uintptr_t) psdt, 110 vhdr->length, PAGE_WRITE );110 vhdr->length, PAGE_WRITE | PAGE_NOT_CACHEABLE); 111 111 112 112 // TODO: do not leak vtmp -
kernel/genarch/src/drivers/am335x/timer.c
r6be2c13 r973be387 100 100 size = regs_map[id].size; 101 101 102 timer->regs = (void *) km_map(base_addr, size, 0);102 timer->regs = (void *) km_map(base_addr, size, PAGE_NOT_CACHEABLE); 103 103 assert(timer->regs != NULL); 104 104 -
kernel/genarch/src/drivers/bcm2835/mbox.c
r6be2c13 r973be387 91 91 92 92 fb_mbox = (void *) km_map(BCM2835_MBOX0_ADDR, sizeof(bcm2835_mbox_t), 93 0);93 PAGE_NOT_CACHEABLE); 94 94 95 95 fb_desc->width = 640; -
kernel/genarch/src/drivers/ega/ega.c
r6be2c13 r973be387 601 601 instance->base = base; 602 602 instance->addr = (uint8_t *) km_map(addr, EGA_VRAM_SIZE, 603 PAGE_WRITE );603 PAGE_WRITE | PAGE_NOT_CACHEABLE); 604 604 if (!instance->addr) { 605 605 LOG("Unable to EGA video memory."); -
kernel/genarch/src/drivers/omap/uart.c
r6be2c13 r973be387 87 87 { 88 88 assert(uart); 89 uart->regs = (void *)km_map(addr, size, 0);89 uart->regs = (void *)km_map(addr, size, PAGE_NOT_CACHEABLE); 90 90 91 91 assert(uart->regs); -
kernel/genarch/src/drivers/pl011/pl011.c
r6be2c13 r973be387 100 100 assert(uart); 101 101 uart->regs = (void*)km_map(addr, sizeof(pl011_uart_regs_t), 102 0);102 PAGE_NOT_CACHEABLE); 103 103 assert(uart->regs); 104 104 -
kernel/genarch/src/drivers/s3c24xx/uart.c
r6be2c13 r973be387 117 117 118 118 uart->io = (s3c24xx_uart_io_t *) km_map(paddr, PAGE_SIZE, 119 PAGE_WRITE );119 PAGE_WRITE | PAGE_NOT_CACHEABLE); 120 120 uart->indev = NULL; 121 121 -
kernel/genarch/src/fb/fb.c
r6be2c13 r973be387 610 610 611 611 instance->addr = (uint8_t *) km_map((uintptr_t) props->addr, fbsize, 612 PAGE_WRITE );612 PAGE_WRITE | PAGE_NOT_CACHEABLE); 613 613 if (!instance->addr) { 614 614 LOG("Unable to map framebuffer."); -
kernel/genarch/src/mm/page_ht.c
r6be2c13 r973be387 61 61 static void ht_mapping_remove(as_t *, uintptr_t); 62 62 static bool ht_mapping_find(as_t *, uintptr_t, bool, pte_t *); 63 static void ht_mapping_update(as_t *, uintptr_t, bool, constpte_t *);63 static void ht_mapping_update(as_t *, uintptr_t, bool, pte_t *); 64 64 static void ht_mapping_make_global(uintptr_t, size_t); 65 65 … … 268 268 * @param pte New PTE. 269 269 */ 270 void ht_mapping_update(as_t *as, uintptr_t page, bool nolock, constpte_t *pte)270 void ht_mapping_update(as_t *as, uintptr_t page, bool nolock, pte_t *pte) 271 271 { 272 272 irq_spinlock_lock(&page_ht_lock, true); -
kernel/genarch/src/mm/page_pt.c
r6be2c13 r973be387 55 55 static void pt_mapping_remove(as_t *, uintptr_t); 56 56 static bool pt_mapping_find(as_t *, uintptr_t, bool, pte_t *pte); 57 static void pt_mapping_update(as_t *, uintptr_t, bool, constpte_t *pte);57 static void pt_mapping_update(as_t *, uintptr_t, bool, pte_t *pte); 58 58 static void pt_mapping_make_global(uintptr_t, size_t); 59 59 … … 353 353 * @param[in] pte New PTE. 354 354 */ 355 void pt_mapping_update(as_t *as, uintptr_t page, bool nolock, constpte_t *pte)355 void pt_mapping_update(as_t *as, uintptr_t page, bool nolock, pte_t *pte) 356 356 { 357 357 pte_t *t = pt_mapping_find_internal(as, page, nolock); … … 431 431 SET_PTL1_ADDRESS(ptl0, PTL0_INDEX(addr), KA2PA(l1)); 432 432 SET_PTL1_FLAGS(ptl0, PTL0_INDEX(addr), 433 PAGE_ USER | PAGE_CACHEABLE |434 PAGE_EXEC | PAGE_WRITE );433 PAGE_PRESENT | PAGE_USER | PAGE_CACHEABLE | 434 PAGE_EXEC | PAGE_WRITE | PAGE_READ); 435 435 } 436 436 } -
kernel/generic/include/mm/mm.h
r6be2c13 r973be387 37 37 38 38 #define PAGE_CACHEABLE_SHIFT 0 39 #define PAGE_NOT_PRESENT_SHIFT 1 39 #define PAGE_NOT_CACHEABLE_SHIFT PAGE_CACHEABLE_SHIFT 40 #define PAGE_PRESENT_SHIFT 1 41 #define PAGE_NOT_PRESENT_SHIFT PAGE_PRESENT_SHIFT 40 42 #define PAGE_USER_SHIFT 2 43 #define PAGE_KERNEL_SHIFT PAGE_USER_SHIFT 44 #define PAGE_READ_SHIFT 3 41 45 #define PAGE_WRITE_SHIFT 4 42 46 #define PAGE_EXEC_SHIFT 5 43 47 #define PAGE_GLOBAL_SHIFT 6 44 48 49 #define PAGE_NOT_CACHEABLE (0 << PAGE_CACHEABLE_SHIFT) 45 50 #define PAGE_CACHEABLE (1 << PAGE_CACHEABLE_SHIFT) 46 #define PAGE_NOT_PRESENT (1 << PAGE_NOT_PRESENT_SHIFT) 51 52 #define PAGE_PRESENT (0 << PAGE_PRESENT_SHIFT) 53 #define PAGE_NOT_PRESENT (1 << PAGE_PRESENT_SHIFT) 54 47 55 #define PAGE_USER (1 << PAGE_USER_SHIFT) 56 #define PAGE_KERNEL (0 << PAGE_USER_SHIFT) 57 58 #define PAGE_READ (1 << PAGE_READ_SHIFT) 48 59 #define PAGE_WRITE (1 << PAGE_WRITE_SHIFT) 49 60 #define PAGE_EXEC (1 << PAGE_EXEC_SHIFT) 61 50 62 #define PAGE_GLOBAL (1 << PAGE_GLOBAL_SHIFT) 51 63 -
kernel/generic/include/mm/page.h
r6be2c13 r973be387 49 49 void (*mapping_remove)(as_t *, uintptr_t); 50 50 bool (*mapping_find)(as_t *, uintptr_t, bool, pte_t *); 51 void (*mapping_update)(as_t *, uintptr_t, bool, constpte_t *);51 void (*mapping_update)(as_t *, uintptr_t, bool, pte_t *); 52 52 void (*mapping_make_global)(uintptr_t, size_t); 53 53 } page_mapping_operations_t; -
kernel/generic/src/console/cmd.c
r6be2c13 r973be387 727 727 else 728 728 #endif 729 ptr = (uint8_t *) km_map( 730 argv[0].intval, sizeof(uint8_t), 0);729 ptr = (uint8_t *) km_map(argv[0].intval, sizeof(uint8_t), 730 PAGE_NOT_CACHEABLE); 731 731 732 732 const uint8_t val = pio_read_8(ptr); … … 757 757 else 758 758 #endif 759 ptr = (uint16_t *) km_map( 760 argv[0].intval, sizeof(uint16_t), 0);759 ptr = (uint16_t *) km_map(argv[0].intval, sizeof(uint16_t), 760 PAGE_NOT_CACHEABLE); 761 761 762 762 const uint16_t val = pio_read_16(ptr); … … 787 787 else 788 788 #endif 789 ptr = (uint32_t *) km_map( 790 argv[0].intval, sizeof(uint32_t), 0);789 ptr = (uint32_t *) km_map(argv[0].intval, sizeof(uint32_t), 790 PAGE_NOT_CACHEABLE); 791 791 792 792 const uint32_t val = pio_read_32(ptr); … … 818 818 #endif 819 819 ptr = (uint8_t *) km_map(argv[0].intval, sizeof(uint8_t), 820 PAGE_ WRITE);820 PAGE_NOT_CACHEABLE); 821 821 822 822 printf("write %" PRIxn ": %" PRIx8 "\n", argv[0].intval, … … 849 849 #endif 850 850 ptr = (uint16_t *) km_map(argv[0].intval, sizeof(uint16_t), 851 PAGE_ WRITE);851 PAGE_NOT_CACHEABLE); 852 852 853 853 printf("write %" PRIxn ": %" PRIx16 "\n", argv[0].intval, … … 880 880 #endif 881 881 ptr = (uint32_t *) km_map(argv[0].intval, sizeof(uint32_t), 882 PAGE_ WRITE);882 PAGE_NOT_CACHEABLE); 883 883 884 884 printf("write %" PRIxn ": %" PRIx32 "\n", argv[0].intval, -
kernel/generic/src/ipc/irq.c
r6be2c13 r973be387 93 93 #endif 94 94 ranges[i].base = km_map(pbase[i], ranges[i].size, 95 PAGE_ WRITE);95 PAGE_READ | PAGE_WRITE | PAGE_KERNEL | PAGE_NOT_CACHEABLE); 96 96 if (!ranges[i].base) { 97 97 ranges_unmap(ranges, i); -
kernel/generic/src/main/kinit.c
r6be2c13 r973be387 250 250 uintptr_t page = km_map(init.tasks[i].paddr, 251 251 init.tasks[i].size, 252 PAGE_ WRITE | PAGE_CACHEABLE);252 PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE); 253 253 assert(page); 254 254 -
kernel/generic/src/mm/as.c
r6be2c13 r973be387 1217 1217 NO_TRACE static unsigned int area_flags_to_page_flags(unsigned int aflags) 1218 1218 { 1219 unsigned int flags = PAGE_USER ;1220 1221 // TODO: AS_AREA_READ currently has no effect.1222 // Readability is implied.1219 unsigned int flags = PAGE_USER | PAGE_PRESENT; 1220 1221 if (aflags & AS_AREA_READ) 1222 flags |= PAGE_READ; 1223 1223 1224 1224 if (aflags & AS_AREA_WRITE) -
kernel/generic/src/mm/km.c
r6be2c13 r973be387 257 257 if (frame) { 258 258 page = km_map(frame, PAGE_SIZE, 259 PAGE_ WRITE | PAGE_CACHEABLE);259 PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE); 260 260 if (!page) { 261 261 frame_free(frame, 1); -
kernel/test/mm/mapping1.c
r6be2c13 r973be387 44 44 45 45 uintptr_t page0 = km_map(frame, FRAME_SIZE, 46 PAGE_ WRITE | PAGE_CACHEABLE);46 PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE); 47 47 TPRINTF("Virtual address %p mapped to physical address %p.\n", 48 48 (void *) page0, (void *) frame); 49 49 50 50 uintptr_t page1 = km_map(frame, FRAME_SIZE, 51 PAGE_ WRITE | PAGE_CACHEABLE);51 PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE); 52 52 TPRINTF("Virtual address %p mapped to physical address %p.\n", 53 53 (void *) page1, (void *) frame);
Note:
See TracChangeset
for help on using the changeset viewer.