Changeset 3da166f0 in mainline for kernel/arch


Ignore:
Timestamp:
2014-12-08T19:34:48Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
f42adef
Parents:
7785ebd7 (diff), 21b6307 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~martin-sucha/helenos/kernel-serial

Location:
kernel/arch
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/include/arch/interrupt.h

    r7785ebd7 r3da166f0  
    5353#define IRQ_KBD       1
    5454#define IRQ_PIC1      2
     55/* NS16550 at COM1 */
     56#define IRQ_NS16550   4
    5557#define IRQ_PIC_SPUR  7
    5658#define IRQ_MOUSE     12
  • kernel/arch/amd64/src/amd64.c

    r7785ebd7 r3da166f0  
    4949#include <genarch/drivers/ega/ega.h>
    5050#include <genarch/drivers/i8042/i8042.h>
     51#include <genarch/drivers/ns16550/ns16550.h>
    5152#include <genarch/drivers/legacy/ia32/io.h>
    5253#include <genarch/fb/bfb.h>
    5354#include <genarch/kbrd/kbrd.h>
     55#include <genarch/srln/srln.h>
    5456#include <genarch/multiboot/multiboot.h>
    5557#include <genarch/multiboot/multiboot2.h>
     
    212214        }
    213215#endif
     216
     217#if (defined(CONFIG_NS16550) || defined(CONFIG_NS16550_OUT))
     218        /*
     219         * Initialize the ns16550 controller.
     220         */
     221#ifdef CONFIG_NS16550_OUT
     222        outdev_t *ns16550_out;
     223        outdev_t **ns16550_out_ptr = &ns16550_out;
     224#else
     225        outdev_t **ns16550_out_ptr = NULL;
     226#endif
     227        ns16550_instance_t *ns16550_instance
     228            = ns16550_init((ns16550_t *) NS16550_BASE, IRQ_NS16550, NULL, NULL,
     229            ns16550_out_ptr);
     230        if (ns16550_instance) {
     231#ifdef CONFIG_NS16550
     232                srln_instance_t *srln_instance = srln_init();
     233                if (srln_instance) {
     234                        indev_t *sink = stdin_wire();
     235                        indev_t *srln = srln_wire(srln_instance, sink);
     236                        ns16550_wire(ns16550_instance, srln);
     237                        trap_virtual_enable_irqs(1 << IRQ_NS16550);
     238                }
     239#endif
     240#ifdef CONFIG_NS16550_OUT
     241                if (ns16550_out) {
     242                        stdout_wire(ns16550_out);
     243                }
     244#endif
     245        }
     246#endif
    214247       
    215248        if (irqs_info != NULL)
  • kernel/arch/ia32/include/arch/interrupt.h

    r7785ebd7 r3da166f0  
    5353#define IRQ_KBD       1
    5454#define IRQ_PIC1      2
     55/* NS16550 at COM1 */
     56#define IRQ_NS16550   4
    5557#define IRQ_PIC_SPUR  7
    5658#define IRQ_MOUSE     12
  • kernel/arch/ia32/src/ia32.c

    r7785ebd7 r3da166f0  
    5050#include <genarch/drivers/ega/ega.h>
    5151#include <genarch/drivers/i8042/i8042.h>
     52#include <genarch/drivers/ns16550/ns16550.h>
    5253#include <genarch/drivers/legacy/ia32/io.h>
    5354#include <genarch/fb/bfb.h>
    5455#include <genarch/kbrd/kbrd.h>
     56#include <genarch/srln/srln.h>
    5557#include <genarch/multiboot/multiboot.h>
    5658#include <genarch/multiboot/multiboot2.h>
     
    166168        }
    167169#endif
     170
     171#if (defined(CONFIG_NS16550) || defined(CONFIG_NS16550_OUT))
     172        /*
     173         * Initialize the ns16550 controller.
     174         */
     175#ifdef CONFIG_NS16550_OUT
     176        outdev_t *ns16550_out;
     177        outdev_t **ns16550_out_ptr = &ns16550_out;
     178#else
     179        outdev_t **ns16550_out_ptr = NULL;
     180#endif
     181        ns16550_instance_t *ns16550_instance
     182            = ns16550_init((ns16550_t *) NS16550_BASE, IRQ_NS16550, NULL, NULL,
     183            ns16550_out_ptr);
     184        if (ns16550_instance) {
     185#ifdef CONFIG_NS16550
     186                srln_instance_t *srln_instance = srln_init();
     187                if (srln_instance) {
     188                        indev_t *sink = stdin_wire();
     189                        indev_t *srln = srln_wire(srln_instance, sink);
     190                        ns16550_wire(ns16550_instance, srln);
     191                        trap_virtual_enable_irqs(1 << IRQ_NS16550);
     192                }
     193#endif
     194#ifdef CONFIG_NS16550_OUT
     195                if (ns16550_out) {
     196                        stdout_wire(ns16550_out);
     197                }
     198#endif
     199        }
     200#endif
    168201       
    169202        if (irqs_info != NULL)
  • kernel/arch/ia64/src/ia64.c

    r7785ebd7 r3da166f0  
    173173#ifdef CONFIG_NS16550
    174174        ns16550_instance_t *ns16550_instance
    175             = ns16550_init((ns16550_t *) NS16550_BASE, NS16550_IRQ, NULL, NULL);
     175            = ns16550_init((ns16550_t *) NS16550_BASE, NS16550_IRQ, NULL, NULL,
     176            NULL);
    176177        if (ns16550_instance) {
    177178                srln_instance_t *srln_instance = srln_init();
  • kernel/arch/sparc64/src/drivers/kbd.c

    r7785ebd7 r3da166f0  
    122122       
    123123        ns16550_instance_t *ns16550_instance = ns16550_init(ns16550, inr, cir,
    124             cir_arg);
     124            cir_arg, NULL);
    125125        if (ns16550_instance) {
    126126                kbrd_instance_t *kbrd_instance = kbrd_init();
Note: See TracChangeset for help on using the changeset viewer.