Ignore:
Timestamp:
2010-01-24T17:40:43Z (14 years ago)
Author:
Pavel Rimsky <pavel@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
86018c1
Parents:
99de22b
Message:

Implemented Niagara output userspace driver.

File:
1 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
Note: See TracChangeset for help on using the changeset viewer.