Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset eeb643d in mainline


Ignore:
Timestamp:
2010-01-24T17:40:43Z (10 years ago)
Author:
Pavel Rimsky <pavel@…>
Branches:
master
Children:
86018c1
Parents:
99de22b
Message:

Implemented Niagara output userspace driver.

Files:
3 added
6 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/drivers/niagara.c

    r99de22b reeb643d  
    8585 * the mapped buffer. The shared buffer definition follows.
    8686 */
    87 /*
    8887#define OUTPUT_BUFFER_SIZE      ((PAGE_SIZE) - 2 * 8)
    8988static volatile struct {
     
    9594        __attribute__ ((aligned(PAGE_SIZE)))
    9695        output_buffer;
    97 */
    9896
    9997#if 0
     
    193191static void niagara_poll(niagara_instance_t *instance)
    194192{
    195         /*
    196193        while (output_buffer.read_ptr != output_buffer.write_ptr) {
    197194                do_putchar(output_buffer.data[output_buffer.read_ptr]);
     
    199196                        ((output_buffer.read_ptr) + 1) % OUTPUT_BUFFER_SIZE;
    200197        }
    201         */
    202198
    203199        uint64_t c;
     
    245241
    246242        instance->srlnin = NULL;
     243        sysinfo_set_item_val("fb.kind", NULL, 5);
     244
     245        /*
     246         * Set sysinfos and pareas so that the userspace counterpart of the
     247         * niagara fb driver can communicate with kernel using a shared buffer.
     248         */
     249        output_buffer.read_ptr = 0;
     250        output_buffer.write_ptr = 0;
     251
     252        sysinfo_set_item_val("niagara.outbuf.address", NULL,
     253                KA2PA(&output_buffer));
     254        sysinfo_set_item_val("niagara.outbuf.size", NULL,
     255                PAGE_SIZE);
     256        sysinfo_set_item_val("niagara.outbuf.datasize", NULL,
     257                OUTPUT_BUFFER_SIZE);
     258
     259        static parea_t outbuf_parea;
     260        outbuf_parea.pbase = (uintptr_t) (KA2PA(&output_buffer));
     261        outbuf_parea.frames = 1;
     262        ddi_parea_register(&outbuf_parea);
    247263
    248264        #if 0
     
    261277        sysinfo_set_item_val("kbd.devno", NULL, devno);
    262278        sysinfo_set_item_val("kbd.inr", NULL, FICTIONAL_INR);
    263         sysinfo_set_item_val("fb.kind", NULL, 5);
    264279        #endif
    265280
  • uspace/app/init/init.c

    r99de22b reeb643d  
    263263        }
    264264       
    265         spawn("/srv/fhc");
    266         spawn("/srv/obio");
    267         srv_start("/srv/i8042");
    268         srv_start("/srv/c_mouse");
     265        //spawn("/srv/fhc");
     266        //spawn("/srv/obio");
     267        //srv_start("/srv/i8042");
     268        //srv_start("/srv/c_mouse");
    269269
    270270        spawn("/srv/fb");
  • uspace/srv/hid/fb/Makefile.build

    r99de22b reeb643d  
    7272
    7373ifeq ($(UARCH),sparc64)
    74         SOURCES += sgcn.c \
    75                 serial_console.c
    76         CFLAGS += -DSGCN_ENABLED
     74        ifeq ($(PROCESSOR), sun4v)
     75                SOURCES += niagara.c \
     76                        serial_console.c
     77                CFLAGS += -DNIAGARA_ENABLED
     78        endif
     79
     80        ifeq ($(MACHINE), serengeti)
     81                SOURCES += sgcn.c \
     82                        serial_console.c
     83                CFLAGS += -DSGCN_ENABLED
     84        endif
    7785endif
    7886
  • uspace/srv/hid/fb/main.c

    r99de22b reeb643d  
    4141#include "ski.h"
    4242#include "sgcn.h"
     43#include "niagara.h"
    4344#include "main.h"
    4445
     
    8889        }
    8990#endif
     91#ifdef NIAGARA_ENABLED
     92        if ((!initialized) && (sysinfo_value("fb.kind") == 5)) {
     93                if (niagara_init() == 0)
     94                        initialized = true;
     95        }
     96#endif
    9097#ifdef SKI_ENABLED
    9198        if ((!initialized) && (sysinfo_value("fb") != true)) {
  • uspace/srv/hid/kbd/Makefile.build

    r99de22b reeb643d  
    130130
    131131ifeq ($(UARCH),sparc64)
    132         ifeq ($(MACHINE),serengeti)
    133                 SOURCES += \
    134                         port/sgcn.c \
    135                         ctl/stty.c
    136         else
    137                 SOURCES += \
     132        ifeq ($(PROCESSOR),sun4u)
     133                ifeq ($(MACHINE),serengeti)
     134                        SOURCES += \
     135                                port/sgcn.c \
     136                                ctl/stty.c
     137                endif
     138                ifeq ($(MACHINE),generic)
     139                        SOURCES += \
    138140                        port/sun.c \
    139141                        port/z8530.c \
    140142                        port/ns16550.c \
    141143                        ctl/sun.c
     144                endif
     145        endif
     146        ifeq ($(PROCESSOR),sun4v)
     147                SOURCES += \
     148                        port/niagara.c \
     149                        ctl/stty.c
    142150        endif
    143151endif
  • uspace/srv/hid/kbd/generic/kbd.c

    r99de22b reeb643d  
    219219                cir_service = SERVICE_OBIO;
    220220       
     221/*
    221222        if (cir_service) {
    222223                while (cir_phone < 0) {
     
    225226                }
    226227        }
     228*/
     229printf("KBD driver!!!\n");
    227230       
    228231        /* Initialize port driver. */
Note: See TracChangeset for help on using the changeset viewer.