Ignore:
Timestamp:
2013-02-04T10:42:50Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b5e17b1
Parents:
ae7ba7b6
Message:

Factor out stdin/stdout initialization into machine ops.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/mips32/src/mach/msim/msim.c

    rae7ba7b6 r260f678  
    3535
    3636#include <arch/mach/msim/msim.h>
     37#include <console/console.h>
     38#include <sysinfo/sysinfo.h>
     39#include <arch/drivers/msim.h>
     40#include <genarch/drivers/dsrln/dsrlnin.h>
     41#include <genarch/drivers/dsrln/dsrlnout.h>
     42#include <genarch/srln/srln.h>
    3743
    3844static void msim_init(void);
     
    7278void msim_output_init(void)
    7379{
     80#ifdef CONFIG_MSIM_PRN
     81        outdev_t *dsrlndev = dsrlnout_init((ioport8_t *) MSIM_KBD_ADDRESS);
     82        if (dsrlndev)
     83                stdout_wire(dsrlndev);
     84#endif
    7485}
    7586
    7687void msim_input_init(void)
    7788{
     89#ifdef CONFIG_MSIM_KBD
     90        /*
     91         * Initialize the msim keyboard port. Then initialize the serial line
     92         * module and connect it to the msim keyboard. Enable keyboard
     93         * interrupts.
     94         */
     95        dsrlnin_instance_t *dsrlnin_instance
     96            = dsrlnin_init((dsrlnin_t *) MSIM_KBD_ADDRESS, MSIM_KBD_IRQ);
     97        if (dsrlnin_instance) {
     98                srln_instance_t *srln_instance = srln_init();
     99                if (srln_instance) {
     100                        indev_t *sink = stdin_wire();
     101                        indev_t *srln = srln_wire(srln_instance, sink);
     102                        dsrlnin_wire(dsrlnin_instance, srln);
     103                        cp0_unmask_int(MSIM_KBD_IRQ);
     104                }
     105        }
     106       
     107        /*
     108         * This is the necessary evil until the userspace driver is entirely
     109         * self-sufficient.
     110         */
     111        sysinfo_set_item_val("kbd", NULL, true);
     112        sysinfo_set_item_val("kbd.inr", NULL, MSIM_KBD_IRQ);
     113        sysinfo_set_item_val("kbd.address.physical", NULL,
     114            PA2KA(MSIM_KBD_ADDRESS));
     115#endif
    78116}
    79117
Note: See TracChangeset for help on using the changeset viewer.