1/* Debugging stuff for the MN10300-based processors 2 * 3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public Licence 8 * as published by the Free Software Foundation; either version 9 * 2 of the Licence, or (at your option) any later version. 10 */ 11#include <linux/sched.h> 12#include <asm/serial-regs.h> 13 14#undef MN10300_CONSOLE_ON_SERIO 15 16/* 17 * write a string directly through one of the serial ports on-board the MN10300 18 */ 19#ifdef MN10300_CONSOLE_ON_SERIO 20void debug_to_serial_mnser(const char *p, int n) 21{ 22 char ch; 23 24 for (; n > 0; n--) { 25 ch = *p++; 26 27#if MN10300_CONSOLE_ON_SERIO == 0 28 while (SC0STR & (SC01STR_TBF)) continue; 29 SC0TXB = ch; 30 while (SC0STR & (SC01STR_TBF)) continue; 31 if (ch == 0x0a) { 32 SC0TXB = 0x0d; 33 while (SC0STR & (SC01STR_TBF)) continue; 34 } 35 36#elif MN10300_CONSOLE_ON_SERIO == 1 37 while (SC1STR & (SC01STR_TBF)) continue; 38 SC1TXB = ch; 39 while (SC1STR & (SC01STR_TBF)) continue; 40 if (ch == 0x0a) { 41 SC1TXB = 0x0d; 42 while (SC1STR & (SC01STR_TBF)) continue; 43 } 44 45#elif MN10300_CONSOLE_ON_SERIO == 2 46 while (SC2STR & (SC2STR_TBF)) continue; 47 SC2TXB = ch; 48 while (SC2STR & (SC2STR_TBF)) continue; 49 if (ch == 0x0a) { 50 SC2TXB = 0x0d; 51 while (SC2STR & (SC2STR_TBF)) continue; 52 } 53 54#endif 55 } 56} 57#endif 58 59