cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

early_printk.c (826B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 *    Copyright IBM Corp. 2017
      4 */
      5
      6#include <linux/console.h>
      7#include <linux/kernel.h>
      8#include <linux/init.h>
      9#include <asm/sclp.h>
     10
     11static void sclp_early_write(struct console *con, const char *s, unsigned int len)
     12{
     13	__sclp_early_printk(s, len);
     14}
     15
     16static struct console sclp_early_console = {
     17	.name  = "earlysclp",
     18	.write = sclp_early_write,
     19	.flags = CON_PRINTBUFFER | CON_BOOT,
     20	.index = -1,
     21};
     22
     23static int __init setup_early_printk(char *buf)
     24{
     25	if (early_console)
     26		return 0;
     27	/* Accept only "earlyprintk" and "earlyprintk=sclp" */
     28	if (buf && !str_has_prefix(buf, "sclp"))
     29		return 0;
     30	if (!sclp.has_linemode && !sclp.has_vt220)
     31		return 0;
     32	early_console = &sclp_early_console;
     33	register_console(early_console);
     34	return 0;
     35}
     36early_param("earlyprintk", setup_early_printk);