Changeset 9970a5a in mainline for kernel/arch


Ignore:
Timestamp:
2012-01-27T23:24:27Z (14 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7b3b571, fe56c08a
Parents:
d81eaf94 (diff), 221c9ec (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~jakub/helenos/mm.

Location:
kernel/arch
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/arm32.c

    rd81eaf94 r9970a5a  
    5757        size_t i;
    5858        for (i = 0; i < init.cnt; i++) {
    59                 init.tasks[i].addr = (uintptr_t) bootinfo->tasks[i].addr;
     59                init.tasks[i].paddr = KA2PA(bootinfo->tasks[i].addr);
    6060                init.tasks[i].size = bootinfo->tasks[i].size;
    6161                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
  • kernel/arch/arm32/src/mach/gta02/gta02.c

    rd81eaf94 r9970a5a  
    3838#include <arch/mm/page.h>
    3939#include <mm/page.h>
     40#include <mm/km.h>
    4041#include <genarch/fb/fb.h>
    4142#include <abi/fb/visuals.h>
     
    101102        s3c24xx_irqc_regs_t *irqc_regs;
    102103
    103         gta02_timer = (void *) hw_map(S3C24XX_TIMER_ADDRESS, PAGE_SIZE);
    104         irqc_regs = (void *) hw_map(S3C24XX_IRQC_ADDRESS, PAGE_SIZE);
     104        gta02_timer = (void *) km_map(S3C24XX_TIMER_ADDRESS, PAGE_SIZE,
     105            PAGE_NOT_CACHEABLE);
     106        irqc_regs = (void *) km_map(S3C24XX_IRQC_ADDRESS, PAGE_SIZE,
     107            PAGE_NOT_CACHEABLE);
    105108
    106109        /* Initialize interrupt controller. */
  • kernel/arch/arm32/src/mach/integratorcp/integratorcp.c

    rd81eaf94 r9970a5a  
    4545#include <mm/page.h>
    4646#include <mm/frame.h>
     47#include <mm/km.h>
    4748#include <arch/mm/frame.h>
    4849#include <arch/mach/integratorcp/integratorcp.h>
     
    128129void icp_init(void)
    129130{
    130         icp_hw_map.uart = hw_map(ICP_UART, PAGE_SIZE);
    131         icp_hw_map.kbd_ctrl = hw_map(ICP_KBD, PAGE_SIZE);
     131        icp_hw_map.uart = km_map(ICP_UART, PAGE_SIZE,
     132            PAGE_WRITE | PAGE_NOT_CACHEABLE);
     133        icp_hw_map.kbd_ctrl = km_map(ICP_KBD, PAGE_SIZE, PAGE_NOT_CACHEABLE);
    132134        icp_hw_map.kbd_stat = icp_hw_map.kbd_ctrl + ICP_KBD_STAT;
    133135        icp_hw_map.kbd_data = icp_hw_map.kbd_ctrl + ICP_KBD_DATA;
    134136        icp_hw_map.kbd_intstat = icp_hw_map.kbd_ctrl + ICP_KBD_INTR_STAT;
    135         icp_hw_map.rtc = hw_map(ICP_RTC, PAGE_SIZE);
     137        icp_hw_map.rtc = km_map(ICP_RTC, PAGE_SIZE,
     138            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    136139        icp_hw_map.rtc1_load = icp_hw_map.rtc + ICP_RTC1_LOAD_OFFSET;
    137140        icp_hw_map.rtc1_read = icp_hw_map.rtc + ICP_RTC1_READ_OFFSET;
     
    141144        icp_hw_map.rtc1_intrstat = icp_hw_map.rtc + ICP_RTC1_INTRSTAT_OFFSET;
    142145
    143         icp_hw_map.irqc = hw_map(ICP_IRQC, PAGE_SIZE);
     146        icp_hw_map.irqc = km_map(ICP_IRQC, PAGE_SIZE,
     147            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    144148        icp_hw_map.irqc_mask = icp_hw_map.irqc + ICP_IRQC_MASK_OFFSET;
    145149        icp_hw_map.irqc_unmask = icp_hw_map.irqc + ICP_IRQC_UNMASK_OFFSET;
    146         icp_hw_map.cmcr = hw_map(ICP_CMCR, PAGE_SIZE);
     150        icp_hw_map.cmcr = km_map(ICP_CMCR, PAGE_SIZE,
     151            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    147152        icp_hw_map.sdramcr = icp_hw_map.cmcr + ICP_SDRAMCR_OFFSET;
    148         icp_hw_map.vga = hw_map(ICP_VGA, PAGE_SIZE);
     153        icp_hw_map.vga = km_map(ICP_VGA, PAGE_SIZE,
     154            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    149155
    150156        hw_map_init_called = true;
  • kernel/arch/arm32/src/mach/testarm/testarm.c

    rd81eaf94 r9970a5a  
    3737#include <arch/mach/testarm/testarm.h>
    3838#include <mm/page.h>
     39#include <mm/km.h>
    3940#include <genarch/fb/fb.h>
    4041#include <abi/fb/visuals.h>
     
    7172void gxemul_init(void)
    7273{
    73         gxemul_kbd = (void *) hw_map(GXEMUL_KBD_ADDRESS, PAGE_SIZE);
    74         gxemul_rtc = (void *) hw_map(GXEMUL_RTC_ADDRESS, PAGE_SIZE);
    75         gxemul_irqc = (void *) hw_map(GXEMUL_IRQC_ADDRESS, PAGE_SIZE);
     74        gxemul_kbd = (void *) km_map(GXEMUL_KBD_ADDRESS, PAGE_SIZE,
     75            PAGE_WRITE | PAGE_NOT_CACHEABLE);
     76        gxemul_rtc = (void *) km_map(GXEMUL_RTC_ADDRESS, PAGE_SIZE,
     77            PAGE_WRITE | PAGE_NOT_CACHEABLE);
     78        gxemul_irqc = (void *) km_map(GXEMUL_IRQC_ADDRESS, PAGE_SIZE,
     79            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    7680}
    7781
  • kernel/arch/ia32/src/smp/smp.c

    rd81eaf94 r9970a5a  
    4747#include <debug.h>
    4848#include <arch/asm.h>
     49#include <mm/page.h>
    4950#include <mm/frame.h>
    50 #include <mm/page.h>
     51#include <mm/km.h>
    5152#include <mm/slab.h>
    5253#include <mm/as.h>
     
    7273       
    7374        if (config.cpu_count > 1) {
    74                 l_apic = (uint32_t *) hw_map((uintptr_t) l_apic, PAGE_SIZE);
    75                 io_apic = (uint32_t *) hw_map((uintptr_t) io_apic, PAGE_SIZE);
     75                l_apic = (uint32_t *) km_map((uintptr_t) l_apic, PAGE_SIZE,
     76                    PAGE_WRITE | PAGE_NOT_CACHEABLE);
     77                io_apic = (uint32_t *) km_map((uintptr_t) io_apic, PAGE_SIZE,
     78                    PAGE_WRITE | PAGE_NOT_CACHEABLE);
    7679        }
    7780}
  • kernel/arch/ia64/src/ia64.c

    rd81eaf94 r9970a5a  
    5353#include <genarch/srln/srln.h>
    5454#include <mm/page.h>
     55#include <mm/km.h>
    5556
    5657#ifdef MACHINE_ski
     
    6970void arch_pre_main(void)
    7071{
    71         init.cnt = min3(bootinfo->taskmap.cnt, TASKMAP_MAX_RECORDS, CONFIG_INIT_TASKS);
     72        init.cnt = min3(bootinfo->taskmap.cnt, TASKMAP_MAX_RECORDS,
     73            CONFIG_INIT_TASKS);
    7274        size_t i;
     75
    7376        for (i = 0; i < init.cnt; i++) {
    74                 init.tasks[i].addr =
    75                     ((unsigned long) bootinfo->taskmap.tasks[i].addr) |
    76                     VRN_MASK;
     77                init.tasks[i].paddr =
     78                    (uintptr_t) bootinfo->taskmap.tasks[i].addr;
    7779                init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
    7880                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
     
    8789static void iosapic_init(void)
    8890{
    89         uintptr_t IOSAPIC = hw_map(iosapic_base, PAGE_SIZE);
     91        uintptr_t IOSAPIC = km_map(iosapic_base, PAGE_SIZE,
     92            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    9093        int i;
    9194       
     
    115118        if (config.cpu_active == 1) {
    116119                /* Map the page with legacy I/O. */
    117                 legacyio_virt_base = hw_map(LEGACYIO_PHYS_BASE, LEGACYIO_SIZE);
     120                legacyio_virt_base = km_map(LEGACYIO_PHYS_BASE, LEGACYIO_SIZE,
     121                    PAGE_WRITE | PAGE_NOT_CACHEABLE);
    118122
    119123                iosapic_init();
  • kernel/arch/mips32/src/mips32.c

    rd81eaf94 r9970a5a  
    7878        size_t i;
    7979        for (i = 0; i < init.cnt; i++) {
    80                 init.tasks[i].addr = (uintptr_t) bootinfo->tasks[i].addr;
     80                init.tasks[i].paddr = KA2PA(bootinfo->tasks[i].addr);
    8181                init.tasks[i].size = bootinfo->tasks[i].size;
    8282                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
  • kernel/arch/mips32/src/mm/frame.c

    rd81eaf94 r9970a5a  
    123123        for (i = 0; i < init.cnt; i++)
    124124                if (overlaps(frame << ZERO_PAGE_WIDTH, ZERO_PAGE_SIZE,
    125                     KA2PA(init.tasks[i].addr), init.tasks[i].size)) {
     125                    init.tasks[i].paddr, init.tasks[i].size)) {
    126126                        safe = false;
    127127                        break;
  • kernel/arch/mips64/src/mips64.c

    rd81eaf94 r9970a5a  
    7878        size_t i;
    7979        for (i = 0; i < init.cnt; i++) {
    80                 init.tasks[i].addr = (uintptr_t) bootinfo->tasks[i].addr;
     80                init.tasks[i].paddr = KA2PA(bootinfo->tasks[i].addr);
    8181                init.tasks[i].size = bootinfo->tasks[i].size;
    8282                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
  • kernel/arch/mips64/src/mm/frame.c

    rd81eaf94 r9970a5a  
    115115        for (i = 0; i < init.cnt; i++)
    116116                if (overlaps(frame << ZERO_PAGE_WIDTH, ZERO_PAGE_SIZE,
    117                     KA2PA(init.tasks[i].addr), init.tasks[i].size)) {
     117                    init.tasks[i].paddr, init.tasks[i].size)) {
    118118                        safe = false;
    119119                        break;
  • kernel/arch/ppc32/src/drivers/pic.c

    rd81eaf94 r9970a5a  
    3434
    3535#include <arch/drivers/pic.h>
    36 #include <mm/page.h>
     36#include <mm/km.h>
    3737#include <byteorder.h>
    3838#include <bitops.h>
     
    4242void pic_init(uintptr_t base, size_t size, cir_t *cir, void **cir_arg)
    4343{
    44         pic = (uint32_t *) hw_map(base, size);
     44        pic = (uint32_t *) km_map(base, size, PAGE_WRITE | PAGE_NOT_CACHEABLE);
    4545        *cir = pic_ack_interrupt;
    4646        *cir_arg = NULL;
  • kernel/arch/ppc32/src/ppc32.c

    rd81eaf94 r9970a5a  
    4646#include <userspace.h>
    4747#include <mm/page.h>
     48#include <mm/km.h>
    4849#include <abi/proc/uarg.h>
    4950#include <console/console.h>
     
    7172        size_t i;
    7273        for (i = 0; i < init.cnt; i++) {
    73                 init.tasks[i].addr = (uintptr_t) bootinfo->taskmap.tasks[i].addr;
     74                init.tasks[i].paddr = KA2PA(bootinfo->taskmap.tasks[i].addr);
    7475                init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
    7576                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
     
    208209                size_t size = 2 * PAGE_SIZE;
    209210               
    210                 cuda_t *cuda = (cuda_t *)
    211                     (hw_map(aligned_addr, offset + size) + offset);
     211                cuda_t *cuda = (cuda_t *) (km_map(aligned_addr, offset + size,
     212                    PAGE_WRITE | PAGE_NOT_CACHEABLE) + offset);
    212213               
    213214                /* Initialize I/O controller */
  • kernel/arch/sparc64/src/drivers/kbd.c

    rd81eaf94 r9970a5a  
    4040#include <mm/page.h>
    4141#include <arch/mm/page.h>
     42#include <mm/km.h>
    4243#include <typedefs.h>
    4344#include <align.h>
     
    113114        size_t offset = pa - aligned_addr;
    114115       
    115         ns16550_t *ns16550 = (ns16550_t *)
    116            (hw_map(aligned_addr, offset + size) + offset);
     116        ns16550_t *ns16550 = (ns16550_t *) (km_map(aligned_addr, offset + size,
     117            PAGE_WRITE | PAGE_NOT_CACHEABLE) + offset);
    117118       
    118119        ns16550_instance_t *ns16550_instance = ns16550_init(ns16550, inr, cir, cir_arg);
  • kernel/arch/sparc64/src/drivers/pci.c

    rd81eaf94 r9970a5a  
    3939#include <genarch/ofw/upa.h>
    4040#include <arch/trap/interrupt.h>
    41 #include <mm/page.h>
     41#include <mm/km.h>
    4242#include <mm/slab.h>
    4343#include <typedefs.h>
     
    109109        pci->model = PCI_SABRE;
    110110        pci->op = &pci_sabre_ops;
    111         pci->reg = (uint64_t *) hw_map(paddr, reg[SABRE_INTERNAL_REG].size);
     111        pci->reg = (uint64_t *) km_map(paddr, reg[SABRE_INTERNAL_REG].size,
     112            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    112113
    113114        /*
     
    156157        pci->model = PCI_PSYCHO;
    157158        pci->op = &pci_psycho_ops;
    158         pci->reg = (uint64_t *) hw_map(paddr, reg[PSYCHO_INTERNAL_REG].size);
     159        pci->reg = (uint64_t *) km_map(paddr, reg[PSYCHO_INTERNAL_REG].size,
     160            PAGE_WRITE | PAGE_NOT_CACHEABLE);
    159161
    160162        /*
  • kernel/arch/sparc64/src/sun4u/sparc64.c

    rd81eaf94 r9970a5a  
    6262        size_t i;
    6363        for (i = 0; i < init.cnt; i++) {
    64                 init.tasks[i].addr = (uintptr_t) bootinfo->taskmap.tasks[i].addr;
     64                init.tasks[i].paddr = KA2PA(bootinfo->taskmap.tasks[i].addr);
    6565                init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
    6666                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
  • kernel/arch/sparc64/src/sun4v/sparc64.c

    rd81eaf94 r9970a5a  
    6464        size_t i;
    6565        for (i = 0; i < init.cnt; i++) {
    66                 init.tasks[i].addr = (uintptr_t) bootinfo->taskmap.tasks[i].addr;
     66                init.tasks[i].paddr = KA2PA(bootinfo->taskmap.tasks[i].addr);
    6767                init.tasks[i].size = bootinfo->taskmap.tasks[i].size;
    6868                str_cpy(init.tasks[i].name, CONFIG_TASK_NAME_BUFLEN,
Note: See TracChangeset for help on using the changeset viewer.