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

ip27-console.c (933B)


      1/*
      2 * This file is subject to the terms and conditions of the GNU General Public
      3 * License.  See the file "COPYING" in the main directory of this archive
      4 * for more details.
      5 *
      6 * Copyright (C) 2001, 2002 Ralf Baechle
      7 */
      8
      9#include <asm/page.h>
     10#include <asm/setup.h>
     11#include <asm/sn/addrs.h>
     12#include <asm/sn/agent.h>
     13#include <asm/sn/klconfig.h>
     14#include <asm/sn/ioc3.h>
     15
     16#include <linux/serial.h>
     17#include <linux/serial_core.h>
     18
     19#include "ip27-common.h"
     20
     21#define IOC3_CLK	(22000000 / 3)
     22#define IOC3_FLAGS	(0)
     23
     24static inline struct ioc3_uartregs *console_uart(void)
     25{
     26	struct ioc3 *ioc3;
     27	nasid_t nasid;
     28
     29	nasid = (master_nasid == INVALID_NASID) ? get_nasid() : master_nasid;
     30	ioc3 = (struct ioc3 *)KL_CONFIG_CH_CONS_INFO(nasid)->memory_base;
     31
     32	return &ioc3->sregs.uarta;
     33}
     34
     35void prom_putchar(char c)
     36{
     37	struct ioc3_uartregs *uart = console_uart();
     38
     39	while ((readb(&uart->iu_lsr) & 0x20) == 0)
     40		;
     41	writeb(c, &uart->iu_thr);
     42}