Changeset 6ed5352 in mainline


Ignore:
Timestamp:
2006-01-21T17:44:26Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bd6e392
Parents:
86c9e37
Message:

Finalize ASID management for sparc64 and mips32 by making use of FIFO queue of ASIDs.

Files:
1 added
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • arch/ia32/src/mm/tlb.c

    r86c9e37 r6ed5352  
    4747}
    4848
    49 /** Invalidate TLB entry for specified page range belonging to specified address space.
     49/** Invalidate TLB entries for specified page range belonging to specified address space.
    5050 *
    5151 * @param asid This parameter is ignored as the architecture doesn't support it.
  • arch/ia64/include/mm/asid.h

    r86c9e37 r6ed5352  
    3535
    3636/*
    37  * ASID_MAX can range from 2^18 - 1 to 2^24 - ,
     37 * ASID_MAX can range from 2^18 - 1 to 2^24 - 1,
    3838 * depending on architecture implementation.
    3939 */
    4040#define ASID_MAX_ARCH   16777215        /* 2^24 - 1 */
    4141
     42#define asid_find_free()        ASID_MAX_ARCH
     43#define asid_put_arch(x)
     44
    4245#endif
  • arch/mips32/Makefile.inc

    r86c9e37 r6ed5352  
    5656
    5757CONFIG_ASID = y
    58 
     58CONFIG_ASID_FIFO = y
    5959
    6060## Accepted MACHINEs
     
    114114        arch/$(ARCH)/src/debugger.c \
    115115        arch/$(ARCH)/src/cpu/cpu.c \
    116         arch/$(ARCH)/src/mm/asid.c \
    117116        arch/$(ARCH)/src/mm/frame.c \
    118117        arch/$(ARCH)/src/mm/page.c \
  • arch/mips32/src/mm/tlb.c

    r86c9e37 r6ed5352  
    2929#include <arch/mm/tlb.h>
    3030#include <mm/asid.h>
     31#include <genarch/mm/asid_fifo.h>
    3132#include <mm/tlb.h>
    3233#include <mm/page.h>
     
    5758{
    5859        int i;
     60
     61        asid_fifo_init();
    5962
    6063        cp0_pagemask_write(TLB_PAGE_MASK_16K);
  • arch/sparc64/Makefile.inc

    r86c9e37 r6ed5352  
    5656
    5757CONFIG_ASID = y
    58 
     58CONFIG_ASID_FIFO = y
    5959
    6060ARCH_SOURCES = \
  • arch/sparc64/src/mm/tlb.c

    r86c9e37 r6ed5352  
    2929#include <arch/mm/tlb.h>
    3030#include <mm/tlb.h>
     31#include <genarch/mm/asid_fifo.h>
    3132#include <arch/mm/frame.h>
    3233#include <arch/mm/page.h>
     
    5556        frame_address_t fr;
    5657        page_address_t pg;
     58
     59        asid_fifo_init();
    5760
    5861        fr.address = config.base;
  • genarch/Makefile.inc

    r86c9e37 r6ed5352  
    5050                genarch/src/mm/asid.c
    5151endif
     52ifeq ($(CONFIG_ASID_FIFO),y)
     53        GENARCH_SOURCES += \
     54                genarch/src/mm/asid_fifo.c
     55endif
  • genarch/include/mm/asid_fifo.h

    r86c9e37 r6ed5352  
    11/*
    2  * Copyright (C) 2005 Martin Decky
    3  * Copyright (C) 2005 Jakub Jermar
     2 * Copyright (C) 2006 Jakub Jermar
    43 * All rights reserved.
    54 *
     
    2827 */
    2928
    30 #include <arch/mm/asid.h>
    31 #include <typedefs.h>
     29#ifndef __ASID_FIFO_H__
     30#define __ASID_FIFO_H__
    3231
     32extern void asid_fifo_init(void);
     33
     34#endif
  • generic/include/mm/asid.h

    r86c9e37 r6ed5352  
    5555#endif /* !def asid_install */
    5656
    57 #define asid_find_free()        ASID_START
    58 #define asid_put_arch(x)
     57#ifndef asid_find_free
     58extern asid_t asid_find_free(void);
     59#endif /* !def asid_find_free */
     60
     61#ifndef asid_put_arch
     62extern void asid_put_arch(asid_t asid);
     63#endif /* !def asid_put_arch */
    5964
    6065#endif
Note: See TracChangeset for help on using the changeset viewer.