Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 1b1be5f in mainline


Ignore:
Timestamp:
2019-04-15T17:26:37Z (12 months ago)
Author:
Jakub Jermar <jakub@…>
Branches:
master
Children:
4099129, 8c5586c
Parents:
b63f4e89
Message:

Add support for serial kernel console on sun4u

This feature is currently disabled by default (CONFIG_SUN_TTY) due to
the following behavior observed with QEMU 3.1. After producing a couple
of lines of serial output, the kernel seems to hang on an IO read of the
NS 16550's LSR register (which it needs in order to test for
LSR_TH_READY). Providing some input on the serial console results in
unblocking the kernel for a while until it blocks again a couple of
lines of output later.

Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    rb63f4e89 r1b1be5f  
    554554! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic&CONFIG_NS16550=y] CONFIG_SUN_KBD (y)
    555555
     556% Sun serial console support
     557! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=sparc64&MACHINE=generic&CONFIG_NS16550=y] CONFIG_SUN_TTY (n/y)
     558
    556559% Macintosh ADB keyboard support
    557560! [(CONFIG_HID_IN=generic|CONFIG_HID_IN=keyboard)&PLATFORM=ppc32&(CONFIG_VIA_CUDA=y)] CONFIG_MAC_KBD (y)
     
    564567
    565568% Serial line input module
    566 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_PL011_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_OMAP_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_OMAP_UART=y)|(PLATFORM=arm64&CONFIG_PL011_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)|(PLATFORM=arm32&MACHINE=raspberrypi&CONFIG_PL011_UART=y)|(PLATFORM=ia32&CONFIG_NS16550=y)|(PLATFORM=amd64&CONFIG_NS16550=y)|(PLATFORM=mips32&CONFIG_NS16550=y)] CONFIG_SRLN (y)
     569! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_PL011_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_OMAP_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_OMAP_UART=y)|(PLATFORM=arm64&CONFIG_PL011_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)|(PLATFORM=arm32&MACHINE=raspberrypi&CONFIG_PL011_UART=y)|(PLATFORM=ia32&CONFIG_NS16550=y)|(PLATFORM=amd64&CONFIG_NS16550=y)|(PLATFORM=mips32&CONFIG_NS16550=y)|(PLATFORM=sparc64&CONFIG_SUN_TTY=y)] CONFIG_SRLN (y)
    567570
    568571% EGA support
  • kernel/arch/sparc64/Makefile.inc

    rb63f4e89 r1b1be5f  
    8282        arch/$(KARCH)/src/drivers/tick.c \
    8383        arch/$(KARCH)/src/drivers/kbd.c \
     84        arch/$(KARCH)/src/drivers/tty.c \
    8485        arch/$(KARCH)/src/drivers/pci.c \
    8586        arch/$(KARCH)/src/trap/$(USARCH)/interrupt.c
  • kernel/arch/sparc64/src/console.c

    rb63f4e89 r1b1be5f  
    3737#include <arch/drivers/scr.h>
    3838#include <arch/drivers/kbd.h>
     39#include <arch/drivers/tty.h>
    3940#include <genarch/srln/srln.h>
    4041#include <console/chardev.h>
     
    8485        kbd_init(keyboard);
    8586#endif
     87
     88#ifdef CONFIG_SUN_TTY
     89        ofw_tree_property_t *prop_tty = ofw_tree_getprop(aliases, "ttya");
     90        if (prop_tty && prop_tty->value) {
     91                ofw_tree_node_t *tty = ofw_tree_lookup(prop_tty->value);
     92                if (tty)
     93                        tty_init(tty);
     94        }
     95#endif
    8696}
    8797
Note: See TracChangeset for help on using the changeset viewer.