Changeset 3e828ea in mainline for kernel/arch/sparc64


Ignore:
Timestamp:
2019-09-23T12:49:29Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9be2358
Parents:
9259d20 (diff), 1a4ec93f (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.
git-author:
Jiri Svoboda <jiri@…> (2019-09-22 12:49:07)
git-committer:
Jiri Svoboda <jiri@…> (2019-09-23 12:49:29)
Message:

Merge changes from master, especially Meson build

Location:
kernel/arch/sparc64
Files:
1 added
1 deleted
7 edited
2 moved

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/arch/drivers/tty.h

    r9259d20 r3e828ea  
    11/*
    2  * Copyright (c) 2014 Martin Sucha
     2 * Copyright (c) 2019 Jakub Jermar
    33 * All rights reserved.
    44 *
     
    2727 */
    2828
    29 /** @addtogroup draw
     29/** @addtogroup kernel_sparc64
    3030 * @{
    3131 */
    32 /**
    33  * @file
     32/** @file
    3433 */
    3534
    36 #ifndef DRAW_FONT_PBF_H_
    37 #define DRAW_FONT_PBF_H_
     35#ifndef KERN_sparc64_TTY_H_
     36#define KERN_sparc64_TTY_H_
    3837
    39 #include "../font.h"
     38#include <genarch/ofw/ofw_tree.h>
    4039
    41 extern errno_t pcf_font_create(font_t **, char *path, uint16_t points);
     40extern void tty_init(ofw_tree_node_t *node);
    4241
    4342#endif
  • kernel/arch/sparc64/include/arch/mm/sun4u/as.h

    r9259d20 r3e828ea  
    3939
    4040#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  1
     41#define KERNEL_SEPARATE_PTL0_ARCH           0
    4142
    4243#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT64_C(0x0000000000000000)
  • kernel/arch/sparc64/include/arch/mm/sun4v/as.h

    r9259d20 r3e828ea  
    4141
    4242#define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH  1
     43#define KERNEL_SEPARATE_PTL0_ARCH           0
    4344
    4445#define KERNEL_ADDRESS_SPACE_START_ARCH  UINT64_C(0x0000000000000000)
  • kernel/arch/sparc64/meson.build

    r9259d20 r3e828ea  
    2727#
    2828
    29 COMMON_CFLAGS += -msoft-float -mno-abicalls -G 0 -fno-zero-initialized-in-bss -mabi=32
    30 AS_PROLOG = .module softfloat;
    31 
    32 BITS = 32
    33 
    34 ## Accepted MACHINEs
    35 #
    36 
    37 ifeq ($(MACHINE),msim)
    38         ENDIANESS = LE
    39         COMMON_CFLAGS += -march=r4000
    40 endif
    41 ifeq ($(MACHINE),bmalta)
    42         ENDIANESS = BE
    43         COMMON_CFLAGS += -D__BE__ -march=4kc
    44 endif
    45 ifeq ($(MACHINE),lmalta)
    46         ENDIANESS = LE
    47         COMMON_CFLAGS += -march=4kc
     29if PROCESSOR == 'us' or PROCESSOR == 'us3'
     30        USARCH = 'sun4u'
     31elif PROCESSOR == 'sun4v'
     32        USARCH = 'sun4v'
     33else
     34        error('Unknown PROCESSOR: ' + PROCESSOR)
    4835endif
    4936
    50 ARCH_SOURCES = \
    51         arch/$(KARCH)/src/start.S \
    52         arch/$(KARCH)/src/context.S \
    53         arch/$(KARCH)/src/mips32.c \
    54         arch/$(KARCH)/src/asm.S \
    55         arch/$(KARCH)/src/exception.c \
    56         arch/$(KARCH)/src/interrupt.c \
    57         arch/$(KARCH)/src/cache.c \
    58         arch/$(KARCH)/src/debugger.c \
    59         arch/$(KARCH)/src/cpu/cpu.c \
    60         arch/$(KARCH)/src/debug/stacktrace.c \
    61         arch/$(KARCH)/src/debug/stacktrace_asm.S \
    62         arch/$(KARCH)/src/mm/km.c \
    63         arch/$(KARCH)/src/mm/frame.c \
    64         arch/$(KARCH)/src/mm/page.c \
    65         arch/$(KARCH)/src/mm/tlb.c \
    66         arch/$(KARCH)/src/mm/as.c \
    67         arch/$(KARCH)/src/fpu_context.c \
    68         arch/$(KARCH)/src/smc.c \
    69         arch/$(KARCH)/src/smp/smp.c \
    70         arch/$(KARCH)/src/machine_func.c
     37arch_src += files(
     38        'src/sparc64.c',
     39        'src/cpu' / USARCH / 'cpu.c',
     40        'src/debug/stacktrace.c',
     41        'src/debug/stacktrace_asm.S',
     42        'src/asm.S',
     43        'src' / USARCH / 'asm.S',
     44        'src/console.c',
     45        'src/context.S',
     46        'src/fpu_context.c',
     47        'src/dummy.S',
     48        'src/mm' / USARCH / 'km.c',
     49        'src/mm' / USARCH / 'as.c',
     50        'src/mm' / USARCH / 'frame.c',
     51        'src/mm/page.c',
     52        'src/mm' / USARCH / 'tlb.c',
     53        'src' / USARCH / 'sparc64.c',
     54        'src' / USARCH / 'start.S',
     55        'src/proc' / USARCH / 'scheduler.c',
     56        'src/proc/thread.c',
     57        'src/smc.c',
     58        'src/trap' / USARCH / 'mmu.S',
     59        'src/trap' / USARCH / 'trap_table.S',
     60        'src/trap/trap.c',
     61        'src/trap/exception.c',
     62        'src/trap/interrupt.c',
     63        'src/drivers/tick.c',
     64        'src/drivers/kbd.c',
     65        'src/drivers/tty.c',
     66        'src/drivers/pci.c',
     67        'src/trap' / USARCH / 'interrupt.c',
     68)
    7169
    72 ifeq ($(MACHINE),$(filter lmalta bmalta,$(MACHINE)))
    73         ARCH_SOURCES += arch/$(KARCH)/src/mach/malta/malta.c
     70if USARCH == 'sun4v'
     71        arch_src += files(
     72                'src/drivers/niagara.c',
     73                'src/sun4v/md.c',
     74        )
    7475endif
    7576
    76 ifeq ($(MACHINE),msim)
    77         ARCH_SOURCES += \
    78                 arch/$(KARCH)/src/mach/msim/msim.c \
    79                 arch/$(KARCH)/src/mach/msim/dorder.c
     77if CONFIG_FB
     78        arch_src += files(
     79                'src/drivers/scr.c',
     80        )
    8081endif
    8182
    82 ARCH_AUTOCHECK_HEADERS = \
    83         arch/$(KARCH)/include/arch/istate_struct.h \
    84         arch/$(KARCH)/include/arch/context_struct.h \
    85         arch/$(KARCH)/include/arch/fpu_context_struct.h
     83if CONFIG_SMP
     84        arch_src += files(
     85                'src/smp' / USARCH / 'smp.c',
     86                'src/smp' / USARCH / 'ipi.c',
     87        )
     88endif
     89
     90if CONFIG_TSB
     91        arch_src += files(
     92                'src/mm' / USARCH / 'tsb.c',
     93        )
     94endif
     95
     96
     97_check_headers = [
     98        'include/arch/istate_struct.h',
     99        'include/arch/context_struct.h',
     100]
     101
     102foreach h : _check_headers
     103        arch_src += [ autocheck.process(h) ]
     104endforeach
  • kernel/arch/sparc64/src/console.c

    r9259d20 r3e828ea  
    3737#include <arch/drivers/scr.h>
    3838#include <arch/drivers/kbd.h>
     39#include <arch/drivers/tty.h>
    3940#include <genarch/srln/srln.h>
    4041#include <console/chardev.h>
     
    8485        kbd_init(keyboard);
    8586#endif
     87
     88#ifdef CONFIG_SUN_TTY
     89        ofw_tree_property_t *prop_tty = ofw_tree_getprop(aliases, "ttya");
     90        if (prop_tty && prop_tty->value) {
     91                ofw_tree_node_t *tty = ofw_tree_lookup(prop_tty->value);
     92                if (tty)
     93                        tty_init(tty);
     94        }
     95#endif
    8696}
    8797
  • kernel/arch/sparc64/src/drivers/kbd.c

    r9259d20 r3e828ea  
    3838#include <console/console.h>
    3939#include <ddi/irq.h>
    40 #include <mm/page.h>
    41 #include <arch/mm/page.h>
    42 #include <mm/km.h>
    4340#include <typedefs.h>
    4441#include <align.h>
     
    8885        }
    8986
    90         size_t size = ((ofw_ebus_reg_t *) prop->value)->size;
    91 
    9287        uintptr_t pa = 0; // Prevent -Werror=maybe-uninitialized
    9388        if (!ofw_ebus_apply_ranges(node->parent,
     
    109104        }
    110105
    111         ioport8_t *ns16550 = (ioport8_t *) km_map(pa, size,
    112             KM_NATURAL_ALIGNMENT, PAGE_WRITE | PAGE_NOT_CACHEABLE);
    113 
    114         ns16550_instance_t *ns16550_instance = ns16550_init(ns16550, 0, inr, cir,
    115             cir_arg, NULL);
     106        ns16550_instance_t *ns16550_instance = ns16550_init((ioport8_t *) pa, 0,
     107            inr, cir, cir_arg, NULL);
    116108        if (ns16550_instance) {
    117109                kbrd_instance_t *kbrd_instance = kbrd_init();
  • kernel/arch/sparc64/src/mm/sun4u/tlb.c

    r9259d20 r3e828ea  
    311311                t.a = true;
    312312                t.d = true;
    313                 dtlb_demap(TLB_DEMAP_PAGE, TLB_DEMAP_SECONDARY,
     313                dtlb_demap(TLB_DEMAP_PAGE,
     314                    (as == AS_KERNEL) ? TLB_DEMAP_PRIMARY : TLB_DEMAP_SECONDARY,
    314315                    page_16k + index * MMU_PAGE_SIZE);
    315316                dtlb_pte_copy(&t, index, false);
  • kernel/arch/sparc64/src/sun4u/sparc64.c

    r9259d20 r3e828ea  
    163163{
    164164        (void) interrupts_disable();
    165         switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry,
    166             ((uintptr_t) kernel_uarg->uspace_stack) +
     165        switch_to_userspace(kernel_uarg->uspace_entry,
     166            kernel_uarg->uspace_stack +
    167167            kernel_uarg->uspace_stack_size -
    168168            (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS),
    169             (uintptr_t) kernel_uarg->uspace_uarg);
     169            kernel_uarg->uspace_uarg);
    170170
    171171        /* Not reached */
  • kernel/arch/sparc64/src/sun4v/sparc64.c

    r9259d20 r3e828ea  
    161161{
    162162        (void) interrupts_disable();
    163         switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry,
    164             ((uintptr_t) kernel_uarg->uspace_stack) +
     163        switch_to_userspace(kernel_uarg->uspace_entry,
     164            kernel_uarg->uspace_stack +
    165165            kernel_uarg->uspace_stack_size -
    166166            (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS),
    167             (uintptr_t) kernel_uarg->uspace_uarg);
     167            kernel_uarg->uspace_uarg);
    168168
    169169        /* Not reached */
Note: See TracChangeset for help on using the changeset viewer.