Changeset 2057572 in mainline for uspace/libc/arch


Ignore:
Timestamp:
2007-03-27T23:40:25Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
399ece9
Parents:
8d37a06
Message:

The Ultimate Solution To Illegal Virtual Aliases.
It is better to avoid them completely than to fight them.
Switch the sparc64 port to 16K pages. The TLBs and TSBs
continue to operate with 8K pages only. Page tables and
other generic parts operate with 16K pages.

Because the MMU doesn't support 16K directly, each 16K
page is emulated by a pair of 8K pages. With 16K pages,
illegal aliases cannot be created in 16K D-cache.

Location:
uspace/libc/arch/sparc64
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/libc/arch/sparc64/_link.ld.in

    r8d37a06 r2057572  
    88
    99SECTIONS {
    10         . = 0x2000;
     10        . = 0x4000;
    1111
    12         .init ALIGN(0x2000) : SUBALIGN(0x2000) {
     12        .init ALIGN(0x4000) : SUBALIGN(0x4000) {
    1313                *(.init);
    1414        } :text
     
    1818        } :text
    1919       
    20         .got ALIGN(0x2000) : SUBALIGN(0x2000) {
     20        .got ALIGN(0x4000) : SUBALIGN(0x4000) {
    2121                 _gp = .;
    2222                 *(.got*);
    2323        } :data
    24         .data ALIGN(0x2000) : SUBALIGN(0x2000) {
     24        .data ALIGN(0x4000) : SUBALIGN(0x4000) {
    2525                *(.data);
    2626                *(.sdata);
     
    4242        } :data
    4343
    44         . = ALIGN(0x2000);
     44        . = ALIGN(0x4000);
    4545        _heap = .;
    4646       
  • uspace/libc/arch/sparc64/include/config.h

    r8d37a06 r2057572  
    3636#define LIBC_sparc64_CONFIG_H_
    3737
    38 #define PAGE_WIDTH      13
    39 #define PAGE_SIZE       (1<<PAGE_WIDTH)
    40 #define PAGE_COLOR_BITS 1               /**< Bit 13 is the page color. */
     38#define PAGE_WIDTH      14
     39#define PAGE_SIZE       (1 << PAGE_WIDTH)
     40#define PAGE_COLOR_BITS 0               /**< Only one page color. */
    4141
    4242#endif
  • uspace/libc/arch/sparc64/include/stack.h

    r8d37a06 r2057572  
    4444 * 16-extended-word save area for %i[0-7] and %l[0-7] registers.
    4545 */
    46 #define STACK_WINDOW_SAVE_AREA_SIZE     (16*STACK_ITEM_SIZE)
     46#define STACK_WINDOW_SAVE_AREA_SIZE     (16 * STACK_ITEM_SIZE)
    4747
    4848/**
Note: See TracChangeset for help on using the changeset viewer.