Changeset f9a56c0 in mainline for kernel/genarch/src


Ignore:
Timestamp:
2006-08-17T11:39:38Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ee289cf0
Parents:
ec2c55a
Message:

sparc64 work.
interrupt_vector trap experimental handling.
Minimal reverse-engineered FireHose Controller driver (documentation needed!).
Keyboard on Sun Enterprise is now interrupt driven. Keyboard on Sun Ultra
is still polled.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/kbd/z8530.c

    rec2c55a rf9a56c0  
    3939#include <genarch/kbd/scanc.h>
    4040#include <genarch/kbd/scanc_sun.h>
     41#include <arch/drivers/fhc.h>
    4142#include <arch/drivers/z8530.h>
    42 #include <arch/drivers/kbd.h>
    4343#include <arch/interrupt.h>
    4444#include <cpu.h>
     
    6565};
    6666
    67 void z8530_interrupt(int n, istate_t *istate);
    6867void z8530_wait(void);
    6968
     
    7271{
    7372}
     73
    7474/** Resume the former interrupt vector */
    7575void z8530_release(void)
    7676{
    7777}
    78 
    79 #include <print.h>
    8078
    8179/** Initialize z8530. */
     
    8583        stdin = &kbrd;
    8684
     85        (void) z8530_read_a(RR8);
     86
    8787        z8530_write_a(WR1, WR1_IARCSC); /* interrupt on all characters */
    88         z8530_write_a(WR2, 12);         /* FIXME: IRQ12 ??? */
    8988
    9089        /* 8 bits per character and enable receiver */
     
    9291       
    9392        z8530_write_a(WR9, WR9_MIE);    /* Master Interrupt Enable. */
     93       
     94        /*
     95         * We need to initialize the FireHose Controller,
     96         * to which is this z8530 attached. Otherwise
     97         * interrupts generated by the z8530 would not
     98         * be forwarded to the CPU.
     99         */
     100        fhc_init();
    94101}
    95102
     
    99106 * @param istate Interrupted state.
    100107 */
    101 void z8530_interrupt(int n, istate_t *istate)
     108void z8530_interrupt(void)
    102109{
     110        z8530_poll();
    103111}
    104112
Note: See TracChangeset for help on using the changeset viewer.