Changeset 42742c5a in mainline


Ignore:
Timestamp:
2009-02-27T20:41:23Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7a28812
Parents:
12081e6
Message:

Userspace driver for OBIO. This will make it possible to clear interrupts from
user space on UltraSPARC IIi and systems with Psycho. Not tested.

Files:
2 added
7 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/sparc64/loader/Makefile

    r12081e6 r42742c5a  
    104104        $(USPACEDIR)/srv/fs/tmpfs/tmpfs \
    105105        $(USPACEDIR)/srv/fs/fat/fat \
    106         $(USPACEDIR)/srv/fhc/fhc
     106        $(USPACEDIR)/srv/fhc/fhc \
     107        $(USPACEDIR)/srv/obio/obio
    107108
    108109RD_APPS = \
  • kernel/arch/sparc64/src/drivers/fhc.c

    r12081e6 r42742c5a  
    9393        sysinfo_set_item_val("fhc.uart.size", NULL, reg->size);
    9494        sysinfo_set_item_val("fhc.uart.physical", NULL, paddr);
     95        sysinfo_set_item_val("kbd.cir.fhc", NULL, 1);
    9596
    9697        return fhc;
  • kernel/arch/sparc64/src/drivers/kbd.c

    r12081e6 r42742c5a  
    117117                        return;
    118118                }
    119                 sysinfo_set_item_val("kbd.cir.fhc", NULL, 1);
    120119                break;
    121120               
     
    134133                };
    135134                break;
    136                
    137135        default:
    138136                panic("Unexpected keyboard type.");
  • kernel/arch/sparc64/src/drivers/pci.c

    r12081e6 r42742c5a  
    4545#include <func.h>
    4646#include <arch/asm.h>
     47#include <sysinfo/sysinfo.h>
    4748
    4849#define SABRE_INTERNAL_REG      0
     
    109110        pci->reg = (uint64_t *) hw_map(paddr, reg[SABRE_INTERNAL_REG].size);
    110111
     112        /*
     113         * Set sysinfo data needed by the uspace OBIO driver.
     114         */
     115        sysinfo_set_item_val("obio.base.physical", NULL, paddr);
     116        sysinfo_set_item_val("kbd.cir.obio", NULL, 1);
     117
    111118        return pci;
    112119}
     
    149156        pci->op = &pci_psycho_ops;
    150157        pci->reg = (uint64_t *) hw_map(paddr, reg[PSYCHO_INTERNAL_REG].size);
     158
     159        /*
     160         * Set sysinfo data needed by the uspace OBIO driver.
     161         */
     162        sysinfo_set_item_val("obio.base.physical", NULL, paddr);
     163        sysinfo_set_item_val("kbd.cir.obio", NULL, 1);
    151164
    152165        return pci;
  • uspace/Makefile

    r12081e6 r42742c5a  
    6464
    6565ifeq ($(UARCH),sparc64)
    66         DIRS += srv/fhc
     66        DIRS += \
     67                srv/fhc \
     68                srv/obio
    6769endif
    6870
  • uspace/lib/libc/include/ipc/services.h

    r12081e6 r42742c5a  
    4646        SERVICE_VFS,
    4747        SERVICE_DEVMAP,
    48         SERVICE_FHC
     48        SERVICE_FHC,
     49        SERVICE_OBIO
    4950} services_t;
    5051
  • uspace/srv/kbd/generic/kbd.c

    r12081e6 r42742c5a  
    179179        if (sysinfo_value("kbd.cir.fhc") == 1)
    180180                cir_service = SERVICE_FHC;
     181        else if (sysinfo_value("kbd.cir.obio") == 1)
     182                cir_service = SERVICE_OBIO;
    181183       
    182184        if (cir_service) {
Note: See TracChangeset for help on using the changeset viewer.