summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-07 19:38:55 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-12 07:09:11 +0200
commitb46f943c56a3bc5fafaa2ec475577da6fa8f3475 (patch)
tree7cc3db0cb7b818cc537addb1d225dc61c4898cf7 /c/src/lib/libbsp
parentbsp/beatnik: Avoid RTEMS_RELLDFLAGS (diff)
downloadrtems-b46f943c56a3bc5fafaa2ec475577da6fa8f3475.tar.bz2
bsp/motorola_powerpc: Move polled_io.c
This file was used by this BSP only. Avoid RTEMS_RELLDFLAGS. This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am11
-rw-r--r--c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am2
-rw-r--r--c/src/lib/libbsp/powerpc/shared/console/console.inl49
-rw-r--r--c/src/lib/libbsp/powerpc/shared/console/keyboard.h430
-rw-r--r--c/src/lib/libbsp/powerpc/shared/console/polled_io.c1107
5 files changed, 2 insertions, 1597 deletions
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am
index 75e4332284..4fd24a3978 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/Makefile.am
@@ -54,14 +54,8 @@ librtemsbsp_a_SOURCES += ../../shared/tod.c ../../powerpc/shared/tod/todcfg.c
# pclock
librtemsbsp_a_SOURCES += ../../powerpc/shared/clock/p_clock.c
-# Needs conditional compilation
-polledIO_CPPFLAGS = -DSTATIC_LOG_ALLOC
-noinst_PROGRAMS += polledIO.rel
-polledIO_rel_SOURCES = ../../powerpc/shared/console/polled_io.c
-polledIO_rel_CPPFLAGS = $(AM_CPPFLAGS) $(polledIO_CPPFLAGS)
-polledIO_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
-
# console
+librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/motorola_powerpc/dev/polled_io.c
librtemsbsp_a_SOURCES += ../../powerpc/shared/console/uart.c
librtemsbsp_a_SOURCES += ../../powerpc/shared/console/console.c
librtemsbsp_a_SOURCES += ../../powerpc/shared/console/consoleIo.h
@@ -110,9 +104,6 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/mmu/mmuAsm.S
librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/mmu/pte121.c
librtemsbsp_a_SOURCES += ../../../../../../bsps/powerpc/shared/irq/ppc-irq-legacy.c
-librtemsbsp_a_LIBADD = polledIO.rel
-
-
include $(top_srcdir)/../../../../automake/local.am
include $(srcdir)/../../../../../../bsps/shared/shared-sources.am
include $(top_srcdir)/../../../../automake/subdirs.am
diff --git a/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am b/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am
index 97f4925f0e..ba22593785 100644
--- a/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/motorola_powerpc/bootloader/Makefile.am
@@ -13,7 +13,7 @@ bootloader_SOURCES = ../../../powerpc/shared/bootloader/head.S \
../../../powerpc/shared/bootloader/zlib.c \
../../../powerpc/shared/bootloader/mm.c \
../../../powerpc/shared/bootloader/em86.c \
- ../../../powerpc/shared/console/polled_io.c \
+ ../../../../../../../bsps/powerpc/motorola_powerpc/dev/polled_io.c \
../../../powerpc/shared/bootloader/lib.c \
../../../powerpc/shared/bootloader/bootldr.h \
../../../powerpc/shared/bootloader/zlib.h \
diff --git a/c/src/lib/libbsp/powerpc/shared/console/console.inl b/c/src/lib/libbsp/powerpc/shared/console/console.inl
deleted file mode 100644
index 177444e870..0000000000
--- a/c/src/lib/libbsp/powerpc/shared/console/console.inl
+++ /dev/null
@@ -1,49 +0,0 @@
-/* inline routines for console i/o
- *
- * The purpose of this file is to provide generic inline functions,
- * i.e. not using hardcoded base addresses. These are provided by
- * the BSP header.
- */
-
-#include <bsp.h>
-#include <stdint.h>
-
-#define INL_IN_DECL(name,base) \
-static inline unsigned char name(int off) \
-{ \
- return in_8((uint8_t*)(((unsigned long)base) + off)); \
-}
-
-#define INL_OUT_DECL(name,base) \
-static inline void name(int off, unsigned int val) \
-{ \
- out_8((uint8_t*)(((unsigned long)base) + off), val); \
-}
-
-#ifdef BSP_UART_IOBASE_COM1
-INL_IN_DECL(com1_inb, BSP_UART_IOBASE_COM1)
-INL_OUT_DECL(com1_outb, BSP_UART_IOBASE_COM1)
-#endif
-#ifdef BSP_UART_IOBASE_COM2
-INL_IN_DECL(com2_inb, BSP_UART_IOBASE_COM2)
-INL_OUT_DECL(com2_outb, BSP_UART_IOBASE_COM2)
-#endif
-
-#if defined(BSP_CONSOLE_PORT)
-#if (BSP_CONSOLE_PORT == BSP_UART_COM1) && defined(BSP_UART_IOBASE_COM1)
-#define INL_CONSOLE_INB com1_inb
-#define INL_CONSOLE_OUTB com1_outb
-#elif (BSP_CONSOLE_PORT == BSP_UART_COM2) && defined(BSP_UART_IOBASE_COM2)
-#define INL_CONSOLE_INB com2_inb
-#define INL_CONSOLE_OUTB com2_outb
-#endif
-#endif
-
-#ifdef BSP_KBD_IOBASE
-INL_IN_DECL(kbd_inb, BSP_KBD_IOBASE)
-INL_OUT_DECL(kbd_outb, BSP_KBD_IOBASE)
-#endif
-
-#ifdef BSP_VGA_IOBASE
-INL_OUT_DECL(vga_outb, BSP_VGA_IOBASE)
-#endif
diff --git a/c/src/lib/libbsp/powerpc/shared/console/keyboard.h b/c/src/lib/libbsp/powerpc/shared/console/keyboard.h
deleted file mode 100644
index 0a38d0136d..0000000000
--- a/c/src/lib/libbsp/powerpc/shared/console/keyboard.h
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * keyboard.h -- keyboard definitions.
- *
- * Copyright (C) 1999 Eric Valette. valette@crf.canon.fr
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __LINUX_KEYBOARD_H
-#define __LINUX_KEYBOARD_H
-
-#define KG_SHIFT 0
-#define KG_CTRL 2
-#define KG_ALT 3
-#define KG_ALTGR 1
-#define KG_SHIFTL 4
-#define KG_SHIFTR 5
-#define KG_CTRLL 6
-#define KG_CTRLR 7
-#define KG_CAPSSHIFT 8
-
-#define NR_SHIFT 9
-
-#define NR_KEYS 128
-#define MAX_NR_KEYMAPS 256
-/* This means 64Kb if all keymaps are allocated. Only the superuser
- may increase the number of keymaps beyond MAX_NR_OF_USER_KEYMAPS. */
-#define MAX_NR_OF_USER_KEYMAPS 256 /* should be at least 7 */
-
-#define MAX_NR_FUNC 256 /* max nr of strings assigned to keys */
-
-#define KT_LATIN 0 /* we depend on this being zero */
-#define KT_LETTER 11 /* symbol that can be acted upon by CapsLock */
-#define KT_FN 1
-#define KT_SPEC 2
-#define KT_PAD 3
-#define KT_DEAD 4
-#define KT_CONS 5
-#define KT_CUR 6
-#define KT_SHIFT 7
-#define KT_META 8
-#define KT_ASCII 9
-#define KT_LOCK 10
-#define KT_SLOCK 12
-
-#define K(t,v) (((t)<<8)|(v))
-#define KTYP(x) ((x) >> 8)
-#define KVAL(x) ((x) & 0xff)
-
-#define K_F1 K(KT_FN,0)
-#define K_F2 K(KT_FN,1)
-#define K_F3 K(KT_FN,2)
-#define K_F4 K(KT_FN,3)
-#define K_F5 K(KT_FN,4)
-#define K_F6 K(KT_FN,5)
-#define K_F7 K(KT_FN,6)
-#define K_F8 K(KT_FN,7)
-#define K_F9 K(KT_FN,8)
-#define K_F10 K(KT_FN,9)
-#define K_F11 K(KT_FN,10)
-#define K_F12 K(KT_FN,11)
-#define K_F13 K(KT_FN,12)
-#define K_F14 K(KT_FN,13)
-#define K_F15 K(KT_FN,14)
-#define K_F16 K(KT_FN,15)
-#define K_F17 K(KT_FN,16)
-#define K_F18 K(KT_FN,17)
-#define K_F19 K(KT_FN,18)
-#define K_F20 K(KT_FN,19)
-#define K_FIND K(KT_FN,20)
-#define K_INSERT K(KT_FN,21)
-#define K_REMOVE K(KT_FN,22)
-#define K_SELECT K(KT_FN,23)
-#define K_PGUP K(KT_FN,24) /* PGUP is a synonym for PRIOR */
-#define K_PGDN K(KT_FN,25) /* PGDN is a synonym for NEXT */
-#define K_MACRO K(KT_FN,26)
-#define K_HELP K(KT_FN,27)
-#define K_DO K(KT_FN,28)
-#define K_PAUSE K(KT_FN,29)
-#define K_F21 K(KT_FN,30)
-#define K_F22 K(KT_FN,31)
-#define K_F23 K(KT_FN,32)
-#define K_F24 K(KT_FN,33)
-#define K_F25 K(KT_FN,34)
-#define K_F26 K(KT_FN,35)
-#define K_F27 K(KT_FN,36)
-#define K_F28 K(KT_FN,37)
-#define K_F29 K(KT_FN,38)
-#define K_F30 K(KT_FN,39)
-#define K_F31 K(KT_FN,40)
-#define K_F32 K(KT_FN,41)
-#define K_F33 K(KT_FN,42)
-#define K_F34 K(KT_FN,43)
-#define K_F35 K(KT_FN,44)
-#define K_F36 K(KT_FN,45)
-#define K_F37 K(KT_FN,46)
-#define K_F38 K(KT_FN,47)
-#define K_F39 K(KT_FN,48)
-#define K_F40 K(KT_FN,49)
-#define K_F41 K(KT_FN,50)
-#define K_F42 K(KT_FN,51)
-#define K_F43 K(KT_FN,52)
-#define K_F44 K(KT_FN,53)
-#define K_F45 K(KT_FN,54)
-#define K_F46 K(KT_FN,55)
-#define K_F47 K(KT_FN,56)
-#define K_F48 K(KT_FN,57)
-#define K_F49 K(KT_FN,58)
-#define K_F50 K(KT_FN,59)
-#define K_F51 K(KT_FN,60)
-#define K_F52 K(KT_FN,61)
-#define K_F53 K(KT_FN,62)
-#define K_F54 K(KT_FN,63)
-#define K_F55 K(KT_FN,64)
-#define K_F56 K(KT_FN,65)
-#define K_F57 K(KT_FN,66)
-#define K_F58 K(KT_FN,67)
-#define K_F59 K(KT_FN,68)
-#define K_F60 K(KT_FN,69)
-#define K_F61 K(KT_FN,70)
-#define K_F62 K(KT_FN,71)
-#define K_F63 K(KT_FN,72)
-#define K_F64 K(KT_FN,73)
-#define K_F65 K(KT_FN,74)
-#define K_F66 K(KT_FN,75)
-#define K_F67 K(KT_FN,76)
-#define K_F68 K(KT_FN,77)
-#define K_F69 K(KT_FN,78)
-#define K_F70 K(KT_FN,79)
-#define K_F71 K(KT_FN,80)
-#define K_F72 K(KT_FN,81)
-#define K_F73 K(KT_FN,82)
-#define K_F74 K(KT_FN,83)
-#define K_F75 K(KT_FN,84)
-#define K_F76 K(KT_FN,85)
-#define K_F77 K(KT_FN,86)
-#define K_F78 K(KT_FN,87)
-#define K_F79 K(KT_FN,88)
-#define K_F80 K(KT_FN,89)
-#define K_F81 K(KT_FN,90)
-#define K_F82 K(KT_FN,91)
-#define K_F83 K(KT_FN,92)
-#define K_F84 K(KT_FN,93)
-#define K_F85 K(KT_FN,94)
-#define K_F86 K(KT_FN,95)
-#define K_F87 K(KT_FN,96)
-#define K_F88 K(KT_FN,97)
-#define K_F89 K(KT_FN,98)
-#define K_F90 K(KT_FN,99)
-#define K_F91 K(KT_FN,100)
-#define K_F92 K(KT_FN,101)
-#define K_F93 K(KT_FN,102)
-#define K_F94 K(KT_FN,103)
-#define K_F95 K(KT_FN,104)
-#define K_F96 K(KT_FN,105)
-#define K_F97 K(KT_FN,106)
-#define K_F98 K(KT_FN,107)
-#define K_F99 K(KT_FN,108)
-#define K_F100 K(KT_FN,109)
-#define K_F101 K(KT_FN,110)
-#define K_F102 K(KT_FN,111)
-#define K_F103 K(KT_FN,112)
-#define K_F104 K(KT_FN,113)
-#define K_F105 K(KT_FN,114)
-#define K_F106 K(KT_FN,115)
-#define K_F107 K(KT_FN,116)
-#define K_F108 K(KT_FN,117)
-#define K_F109 K(KT_FN,118)
-#define K_F110 K(KT_FN,119)
-#define K_F111 K(KT_FN,120)
-#define K_F112 K(KT_FN,121)
-#define K_F113 K(KT_FN,122)
-#define K_F114 K(KT_FN,123)
-#define K_F115 K(KT_FN,124)
-#define K_F116 K(KT_FN,125)
-#define K_F117 K(KT_FN,126)
-#define K_F118 K(KT_FN,127)
-#define K_F119 K(KT_FN,128)
-#define K_F120 K(KT_FN,129)
-#define K_F121 K(KT_FN,130)
-#define K_F122 K(KT_FN,131)
-#define K_F123 K(KT_FN,132)
-#define K_F124 K(KT_FN,133)
-#define K_F125 K(KT_FN,134)
-#define K_F126 K(KT_FN,135)
-#define K_F127 K(KT_FN,136)
-#define K_F128 K(KT_FN,137)
-#define K_F129 K(KT_FN,138)
-#define K_F130 K(KT_FN,139)
-#define K_F131 K(KT_FN,140)
-#define K_F132 K(KT_FN,141)
-#define K_F133 K(KT_FN,142)
-#define K_F134 K(KT_FN,143)
-#define K_F135 K(KT_FN,144)
-#define K_F136 K(KT_FN,145)
-#define K_F137 K(KT_FN,146)
-#define K_F138 K(KT_FN,147)
-#define K_F139 K(KT_FN,148)
-#define K_F140 K(KT_FN,149)
-#define K_F141 K(KT_FN,150)
-#define K_F142 K(KT_FN,151)
-#define K_F143 K(KT_FN,152)
-#define K_F144 K(KT_FN,153)
-#define K_F145 K(KT_FN,154)
-#define K_F146 K(KT_FN,155)
-#define K_F147 K(KT_FN,156)
-#define K_F148 K(KT_FN,157)
-#define K_F149 K(KT_FN,158)
-#define K_F150 K(KT_FN,159)
-#define K_F151 K(KT_FN,160)
-#define K_F152 K(KT_FN,161)
-#define K_F153 K(KT_FN,162)
-#define K_F154 K(KT_FN,163)
-#define K_F155 K(KT_FN,164)
-#define K_F156 K(KT_FN,165)
-#define K_F157 K(KT_FN,166)
-#define K_F158 K(KT_FN,167)
-#define K_F159 K(KT_FN,168)
-#define K_F160 K(KT_FN,169)
-#define K_F161 K(KT_FN,170)
-#define K_F162 K(KT_FN,171)
-#define K_F163 K(KT_FN,172)
-#define K_F164 K(KT_FN,173)
-#define K_F165 K(KT_FN,174)
-#define K_F166 K(KT_FN,175)
-#define K_F167 K(KT_FN,176)
-#define K_F168 K(KT_FN,177)
-#define K_F169 K(KT_FN,178)
-#define K_F170 K(KT_FN,179)
-#define K_F171 K(KT_FN,180)
-#define K_F172 K(KT_FN,181)
-#define K_F173 K(KT_FN,182)
-#define K_F174 K(KT_FN,183)
-#define K_F175 K(KT_FN,184)
-#define K_F176 K(KT_FN,185)
-#define K_F177 K(KT_FN,186)
-#define K_F178 K(KT_FN,187)
-#define K_F179 K(KT_FN,188)
-#define K_F180 K(KT_FN,189)
-#define K_F181 K(KT_FN,190)
-#define K_F182 K(KT_FN,191)
-#define K_F183 K(KT_FN,192)
-#define K_F184 K(KT_FN,193)
-#define K_F185 K(KT_FN,194)
-#define K_F186 K(KT_FN,195)
-#define K_F187 K(KT_FN,196)
-#define K_F188 K(KT_FN,197)
-#define K_F189 K(KT_FN,198)
-#define K_F190 K(KT_FN,199)
-#define K_F191 K(KT_FN,200)
-#define K_F192 K(KT_FN,201)
-#define K_F193 K(KT_FN,202)
-#define K_F194 K(KT_FN,203)
-#define K_F195 K(KT_FN,204)
-#define K_F196 K(KT_FN,205)
-#define K_F197 K(KT_FN,206)
-#define K_F198 K(KT_FN,207)
-#define K_F199 K(KT_FN,208)
-#define K_F200 K(KT_FN,209)
-#define K_F201 K(KT_FN,210)
-#define K_F202 K(KT_FN,211)
-#define K_F203 K(KT_FN,212)
-#define K_F204 K(KT_FN,213)
-#define K_F205 K(KT_FN,214)
-#define K_F206 K(KT_FN,215)
-#define K_F207 K(KT_FN,216)
-#define K_F208 K(KT_FN,217)
-#define K_F209 K(KT_FN,218)
-#define K_F210 K(KT_FN,219)
-#define K_F211 K(KT_FN,220)
-#define K_F212 K(KT_FN,221)
-#define K_F213 K(KT_FN,222)
-#define K_F214 K(KT_FN,223)
-#define K_F215 K(KT_FN,224)
-#define K_F216 K(KT_FN,225)
-#define K_F217 K(KT_FN,226)
-#define K_F218 K(KT_FN,227)
-#define K_F219 K(KT_FN,228)
-#define K_F220 K(KT_FN,229)
-#define K_F221 K(KT_FN,230)
-#define K_F222 K(KT_FN,231)
-#define K_F223 K(KT_FN,232)
-#define K_F224 K(KT_FN,233)
-#define K_F225 K(KT_FN,234)
-#define K_F226 K(KT_FN,235)
-#define K_F227 K(KT_FN,236)
-#define K_F228 K(KT_FN,237)
-#define K_F229 K(KT_FN,238)
-#define K_F230 K(KT_FN,239)
-#define K_F231 K(KT_FN,240)
-#define K_F232 K(KT_FN,241)
-#define K_F233 K(KT_FN,242)
-#define K_F234 K(KT_FN,243)
-#define K_F235 K(KT_FN,244)
-#define K_F236 K(KT_FN,245)
-#define K_F237 K(KT_FN,246)
-#define K_F238 K(KT_FN,247)
-#define K_F239 K(KT_FN,248)
-#define K_F240 K(KT_FN,249)
-#define K_F241 K(KT_FN,250)
-#define K_F242 K(KT_FN,251)
-#define K_F243 K(KT_FN,252)
-#define K_F244 K(KT_FN,253)
-#define K_F245 K(KT_FN,254)
-#define K_UNDO K(KT_FN,255)
-
-#define K_HOLE K(KT_SPEC,0)
-#define K_ENTER K(KT_SPEC,1)
-#define K_SH_REGS K(KT_SPEC,2)
-#define K_SH_MEM K(KT_SPEC,3)
-#define K_SH_STAT K(KT_SPEC,4)
-#define K_BREAK K(KT_SPEC,5)
-#define K_CONS K(KT_SPEC,6)
-#define K_CAPS K(KT_SPEC,7)
-#define K_NUM K(KT_SPEC,8)
-#define K_HOLD K(KT_SPEC,9)
-#define K_SCROLLFORW K(KT_SPEC,10)
-#define K_SCROLLBACK K(KT_SPEC,11)
-#define K_BOOT K(KT_SPEC,12)
-#define K_CAPSON K(KT_SPEC,13)
-#define K_COMPOSE K(KT_SPEC,14)
-#define K_SAK K(KT_SPEC,15)
-#define K_DECRCONSOLE K(KT_SPEC,16)
-#define K_INCRCONSOLE K(KT_SPEC,17)
-#define K_SPAWNCONSOLE K(KT_SPEC,18)
-#define K_BARENUMLOCK K(KT_SPEC,19)
-
-#define K_ALLOCATED K(KT_SPEC,126) /* dynamically allocated keymap */
-#define K_NOSUCHMAP K(KT_SPEC,127) /* returned by KDGKBENT */
-
-#define K_P0 K(KT_PAD,0)
-#define K_P1 K(KT_PAD,1)
-#define K_P2 K(KT_PAD,2)
-#define K_P3 K(KT_PAD,3)
-#define K_P4 K(KT_PAD,4)
-#define K_P5 K(KT_PAD,5)
-#define K_P6 K(KT_PAD,6)
-#define K_P7 K(KT_PAD,7)
-#define K_P8 K(KT_PAD,8)
-#define K_P9 K(KT_PAD,9)
-#define K_PPLUS K(KT_PAD,10) /* key-pad plus */
-#define K_PMINUS K(KT_PAD,11) /* key-pad minus */
-#define K_PSTAR K(KT_PAD,12) /* key-pad asterisk (star) */
-#define K_PSLASH K(KT_PAD,13) /* key-pad slash */
-#define K_PENTER K(KT_PAD,14) /* key-pad enter */
-#define K_PCOMMA K(KT_PAD,15) /* key-pad comma: kludge... */
-#define K_PDOT K(KT_PAD,16) /* key-pad dot (period): kludge... */
-#define K_PPLUSMINUS K(KT_PAD,17) /* key-pad plus/minus */
-#define K_PPARENL K(KT_PAD,18) /* key-pad left parenthesis */
-#define K_PPARENR K(KT_PAD,19) /* key-pad right parenthesis */
-
-#define NR_PAD 20
-
-#define K_DGRAVE K(KT_DEAD,0)
-#define K_DACUTE K(KT_DEAD,1)
-#define K_DCIRCM K(KT_DEAD,2)
-#define K_DTILDE K(KT_DEAD,3)
-#define K_DDIERE K(KT_DEAD,4)
-#define K_DCEDIL K(KT_DEAD,5)
-
-#define NR_DEAD 6
-
-#define K_DOWN K(KT_CUR,0)
-#define K_LEFT K(KT_CUR,1)
-#define K_RIGHT K(KT_CUR,2)
-#define K_UP K(KT_CUR,3)
-
-#define K_SHIFT K(KT_SHIFT,KG_SHIFT)
-#define K_CTRL K(KT_SHIFT,KG_CTRL)
-#define K_ALT K(KT_SHIFT,KG_ALT)
-#define K_ALTGR K(KT_SHIFT,KG_ALTGR)
-#define K_SHIFTL K(KT_SHIFT,KG_SHIFTL)
-#define K_SHIFTR K(KT_SHIFT,KG_SHIFTR)
-#define K_CTRLL K(KT_SHIFT,KG_CTRLL)
-#define K_CTRLR K(KT_SHIFT,KG_CTRLR)
-#define K_CAPSSHIFT K(KT_SHIFT,KG_CAPSSHIFT)
-
-#define K_ASC0 K(KT_ASCII,0)
-#define K_ASC1 K(KT_ASCII,1)
-#define K_ASC2 K(KT_ASCII,2)
-#define K_ASC3 K(KT_ASCII,3)
-#define K_ASC4 K(KT_ASCII,4)
-#define K_ASC5 K(KT_ASCII,5)
-#define K_ASC6 K(KT_ASCII,6)
-#define K_ASC7 K(KT_ASCII,7)
-#define K_ASC8 K(KT_ASCII,8)
-#define K_ASC9 K(KT_ASCII,9)
-#define K_HEX0 K(KT_ASCII,10)
-#define K_HEX1 K(KT_ASCII,11)
-#define K_HEX2 K(KT_ASCII,12)
-#define K_HEX3 K(KT_ASCII,13)
-#define K_HEX4 K(KT_ASCII,14)
-#define K_HEX5 K(KT_ASCII,15)
-#define K_HEX6 K(KT_ASCII,16)
-#define K_HEX7 K(KT_ASCII,17)
-#define K_HEX8 K(KT_ASCII,18)
-#define K_HEX9 K(KT_ASCII,19)
-#define K_HEXa K(KT_ASCII,20)
-#define K_HEXb K(KT_ASCII,21)
-#define K_HEXc K(KT_ASCII,22)
-#define K_HEXd K(KT_ASCII,23)
-#define K_HEXe K(KT_ASCII,24)
-#define K_HEXf K(KT_ASCII,25)
-
-#define NR_ASCII 26
-
-#define K_SHIFTLOCK K(KT_LOCK,KG_SHIFT)
-#define K_CTRLLOCK K(KT_LOCK,KG_CTRL)
-#define K_ALTLOCK K(KT_LOCK,KG_ALT)
-#define K_ALTGRLOCK K(KT_LOCK,KG_ALTGR)
-#define K_SHIFTLLOCK K(KT_LOCK,KG_SHIFTL)
-#define K_SHIFTRLOCK K(KT_LOCK,KG_SHIFTR)
-#define K_CTRLLLOCK K(KT_LOCK,KG_CTRLL)
-#define K_CTRLRLOCK K(KT_LOCK,KG_CTRLR)
-
-#define K_SHIFT_SLOCK K(KT_SLOCK,KG_SHIFT)
-#define K_CTRL_SLOCK K(KT_SLOCK,KG_CTRL)
-#define K_ALT_SLOCK K(KT_SLOCK,KG_ALT)
-#define K_ALTGR_SLOCK K(KT_SLOCK,KG_ALTGR)
-#define K_SHIFTL_SLOCK K(KT_SLOCK,KG_SHIFTL)
-#define K_SHIFTR_SLOCK K(KT_SLOCK,KG_SHIFTR)
-#define K_CTRLL_SLOCK K(KT_SLOCK,KG_CTRLL)
-#define K_CTRLR_SLOCK K(KT_SLOCK,KG_CTRLR)
-
-#define NR_LOCK 8
-
-#define MAX_DIACR 256
-#endif
diff --git a/c/src/lib/libbsp/powerpc/shared/console/polled_io.c b/c/src/lib/libbsp/powerpc/shared/console/polled_io.c
deleted file mode 100644
index 331515b9ef..0000000000
--- a/c/src/lib/libbsp/powerpc/shared/console/polled_io.c
+++ /dev/null
@@ -1,1107 +0,0 @@
-/*
- * polled_io.c -- Basic input/output for early boot
- *
- * Copyright (C) 1998, 1999 Gabriel Paubert, paubert@iram.es
- *
- * Modified to compile in RTEMS development environment
- * by Eric Valette
- *
- * Copyright (C) 1999 Eric Valette. valette@crf.canon.fr
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#include <rtems/system.h>
-#include <sys/types.h>
-#include <libcpu/byteorder.h>
-#include <libcpu/mmu.h>
-#include <libcpu/io.h>
-#include <string.h>
-#include <stdarg.h>
-#include <bsp/consoleIo.h>
-#include <bsp.h>
-#include <libcpu/spr.h>
-
-#ifdef BSP_KBD_IOBASE
-#define USE_KBD_SUPPORT
-#endif
-#ifdef BSP_VGA_IOBASE
-#define USE_VGA_SUPPORT
-#endif
-
-#ifdef USE_KBD_SUPPORT
-#include "keyboard.h"
-#endif
-#include "console.inl"
-
-#ifdef __BOOT__
-extern void boot_udelay(uint32_t _microseconds);
-void * __palloc(u_long);
-void pfree(void *);
-#else
-#include <rtems/bspIo.h>
-#endif
-
-#ifndef __BOOT__
-BSP_output_char_function_type BSP_output_char = debug_putc_onlcr;
-BSP_polling_getchar_function_type BSP_poll_char = NULL;
-#endif
-
-#ifdef USE_KBD_SUPPORT
-unsigned short plain_map[NR_KEYS] = {
- 0xf200, 0xf01b, 0xf031, 0xf032, 0xf033, 0xf034, 0xf035, 0xf036,
- 0xf037, 0xf038, 0xf039, 0xf030, 0xf02d, 0xf03d, 0xf07f, 0xf009,
- 0xfb71, 0xfb77, 0xfb65, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
- 0xfb6f, 0xfb70, 0xf05b, 0xf05d, 0xf201, 0xf702, 0xfb61, 0xfb73,
- 0xfb64, 0xfb66, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf03b,
- 0xf027, 0xf060, 0xf700, 0xf05c, 0xfb7a, 0xfb78, 0xfb63, 0xfb76,
- 0xfb62, 0xfb6e, 0xfb6d, 0xf02c, 0xf02e, 0xf02f, 0xf700, 0xf30c,
- 0xf703, 0xf020, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
- 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf209, 0xf307,
- 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
- 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03c, 0xf10a,
- 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-unsigned short shift_map[NR_KEYS] = {
- 0xf200, 0xf01b, 0xf021, 0xf040, 0xf023, 0xf024, 0xf025, 0xf05e,
- 0xf026, 0xf02a, 0xf028, 0xf029, 0xf05f, 0xf02b, 0xf07f, 0xf009,
- 0xfb51, 0xfb57, 0xfb45, 0xfb52, 0xfb54, 0xfb59, 0xfb55, 0xfb49,
- 0xfb4f, 0xfb50, 0xf07b, 0xf07d, 0xf201, 0xf702, 0xfb41, 0xfb53,
- 0xfb44, 0xfb46, 0xfb47, 0xfb48, 0xfb4a, 0xfb4b, 0xfb4c, 0xf03a,
- 0xf022, 0xf07e, 0xf700, 0xf07c, 0xfb5a, 0xfb58, 0xfb43, 0xfb56,
- 0xfb42, 0xfb4e, 0xfb4d, 0xf03c, 0xf03e, 0xf03f, 0xf700, 0xf30c,
- 0xf703, 0xf020, 0xf207, 0xf10a, 0xf10b, 0xf10c, 0xf10d, 0xf10e,
- 0xf10f, 0xf110, 0xf111, 0xf112, 0xf113, 0xf213, 0xf203, 0xf307,
- 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
- 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf03e, 0xf10a,
- 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf20b, 0xf601, 0xf602, 0xf117, 0xf600, 0xf20a, 0xf115, 0xf116,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-unsigned short altgr_map[NR_KEYS] = {
- 0xf200, 0xf200, 0xf200, 0xf040, 0xf200, 0xf024, 0xf200, 0xf200,
- 0xf07b, 0xf05b, 0xf05d, 0xf07d, 0xf05c, 0xf200, 0xf200, 0xf200,
- 0xfb71, 0xfb77, 0xf918, 0xfb72, 0xfb74, 0xfb79, 0xfb75, 0xfb69,
- 0xfb6f, 0xfb70, 0xf200, 0xf07e, 0xf201, 0xf702, 0xf914, 0xfb73,
- 0xf917, 0xf919, 0xfb67, 0xfb68, 0xfb6a, 0xfb6b, 0xfb6c, 0xf200,
- 0xf200, 0xf200, 0xf700, 0xf200, 0xfb7a, 0xfb78, 0xf916, 0xfb76,
- 0xf915, 0xfb6e, 0xfb6d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c,
- 0xf703, 0xf200, 0xf207, 0xf50c, 0xf50d, 0xf50e, 0xf50f, 0xf510,
- 0xf511, 0xf512, 0xf513, 0xf514, 0xf515, 0xf208, 0xf202, 0xf911,
- 0xf912, 0xf913, 0xf30b, 0xf90e, 0xf90f, 0xf910, 0xf30a, 0xf90b,
- 0xf90c, 0xf90d, 0xf90a, 0xf310, 0xf206, 0xf200, 0xf07c, 0xf516,
- 0xf517, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-unsigned short ctrl_map[NR_KEYS] = {
- 0xf200, 0xf200, 0xf200, 0xf000, 0xf01b, 0xf01c, 0xf01d, 0xf01e,
- 0xf01f, 0xf07f, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf008, 0xf200,
- 0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
- 0xf00f, 0xf010, 0xf01b, 0xf01d, 0xf201, 0xf702, 0xf001, 0xf013,
- 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
- 0xf007, 0xf000, 0xf700, 0xf01c, 0xf01a, 0xf018, 0xf003, 0xf016,
- 0xf002, 0xf00e, 0xf00d, 0xf200, 0xf20e, 0xf07f, 0xf700, 0xf30c,
- 0xf703, 0xf000, 0xf207, 0xf100, 0xf101, 0xf102, 0xf103, 0xf104,
- 0xf105, 0xf106, 0xf107, 0xf108, 0xf109, 0xf208, 0xf204, 0xf307,
- 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
- 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf10a,
- 0xf10b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-unsigned short shift_ctrl_map[NR_KEYS] = {
- 0xf200, 0xf200, 0xf200, 0xf000, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf01f, 0xf200, 0xf200, 0xf200,
- 0xf011, 0xf017, 0xf005, 0xf012, 0xf014, 0xf019, 0xf015, 0xf009,
- 0xf00f, 0xf010, 0xf200, 0xf200, 0xf201, 0xf702, 0xf001, 0xf013,
- 0xf004, 0xf006, 0xf007, 0xf008, 0xf00a, 0xf00b, 0xf00c, 0xf200,
- 0xf200, 0xf200, 0xf700, 0xf200, 0xf01a, 0xf018, 0xf003, 0xf016,
- 0xf002, 0xf00e, 0xf00d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c,
- 0xf703, 0xf200, 0xf207, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf208, 0xf200, 0xf307,
- 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
- 0xf302, 0xf303, 0xf300, 0xf310, 0xf206, 0xf200, 0xf200, 0xf200,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-unsigned short alt_map[NR_KEYS] = {
- 0xf200, 0xf81b, 0xf831, 0xf832, 0xf833, 0xf834, 0xf835, 0xf836,
- 0xf837, 0xf838, 0xf839, 0xf830, 0xf82d, 0xf83d, 0xf87f, 0xf809,
- 0xf871, 0xf877, 0xf865, 0xf872, 0xf874, 0xf879, 0xf875, 0xf869,
- 0xf86f, 0xf870, 0xf85b, 0xf85d, 0xf80d, 0xf702, 0xf861, 0xf873,
- 0xf864, 0xf866, 0xf867, 0xf868, 0xf86a, 0xf86b, 0xf86c, 0xf83b,
- 0xf827, 0xf860, 0xf700, 0xf85c, 0xf87a, 0xf878, 0xf863, 0xf876,
- 0xf862, 0xf86e, 0xf86d, 0xf82c, 0xf82e, 0xf82f, 0xf700, 0xf30c,
- 0xf703, 0xf820, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
- 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf209, 0xf907,
- 0xf908, 0xf909, 0xf30b, 0xf904, 0xf905, 0xf906, 0xf30a, 0xf901,
- 0xf902, 0xf903, 0xf900, 0xf310, 0xf206, 0xf200, 0xf83c, 0xf50a,
- 0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf01c, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf118, 0xf210, 0xf211, 0xf117, 0xf600, 0xf119, 0xf115, 0xf116,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-unsigned short ctrl_alt_map[NR_KEYS] = {
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf811, 0xf817, 0xf805, 0xf812, 0xf814, 0xf819, 0xf815, 0xf809,
- 0xf80f, 0xf810, 0xf200, 0xf200, 0xf201, 0xf702, 0xf801, 0xf813,
- 0xf804, 0xf806, 0xf807, 0xf808, 0xf80a, 0xf80b, 0xf80c, 0xf200,
- 0xf200, 0xf200, 0xf700, 0xf200, 0xf81a, 0xf818, 0xf803, 0xf816,
- 0xf802, 0xf80e, 0xf80d, 0xf200, 0xf200, 0xf200, 0xf700, 0xf30c,
- 0xf703, 0xf200, 0xf207, 0xf500, 0xf501, 0xf502, 0xf503, 0xf504,
- 0xf505, 0xf506, 0xf507, 0xf508, 0xf509, 0xf208, 0xf200, 0xf307,
- 0xf308, 0xf309, 0xf30b, 0xf304, 0xf305, 0xf306, 0xf30a, 0xf301,
- 0xf302, 0xf303, 0xf300, 0xf20c, 0xf206, 0xf200, 0xf200, 0xf50a,
- 0xf50b, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
- 0xf30e, 0xf702, 0xf30d, 0xf200, 0xf701, 0xf205, 0xf114, 0xf603,
- 0xf118, 0xf601, 0xf602, 0xf117, 0xf600, 0xf119, 0xf115, 0xf20c,
- 0xf11a, 0xf10c, 0xf10d, 0xf11b, 0xf11c, 0xf110, 0xf311, 0xf11d,
- 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200, 0xf200,
-};
-
-ushort *key_maps[MAX_NR_KEYMAPS] = {
- plain_map, shift_map, altgr_map, 0,
- ctrl_map, shift_ctrl_map, 0, 0,
- alt_map, 0, 0, 0,
- ctrl_alt_map, 0
-};
-
-unsigned int keymap_count = 7;
-
-/*
- * Philosophy: most people do not define more strings, but they who do
- * often want quite a lot of string space. So, we statically allocate
- * the default and allocate dynamically in chunks of 512 bytes.
- */
-
-char func_buf[] = {
- '\033', '[', '[', 'A', 0,
- '\033', '[', '[', 'B', 0,
- '\033', '[', '[', 'C', 0,
- '\033', '[', '[', 'D', 0,
- '\033', '[', '[', 'E', 0,
- '\033', '[', '1', '7', '~', 0,
- '\033', '[', '1', '8', '~', 0,
- '\033', '[', '1', '9', '~', 0,
- '\033', '[', '2', '0', '~', 0,
- '\033', '[', '2', '1', '~', 0,
- '\033', '[', '2', '3', '~', 0,
- '\033', '[', '2', '4', '~', 0,
- '\033', '[', '2', '5', '~', 0,
- '\033', '[', '2', '6', '~', 0,
- '\033', '[', '2', '8', '~', 0,
- '\033', '[', '2', '9', '~', 0,
- '\033', '[', '3', '1', '~', 0,
- '\033', '[', '3', '2', '~', 0,
- '\033', '[', '3', '3', '~', 0,
- '\033', '[', '3', '4', '~', 0,
- '\033', '[', '1', '~', 0,
- '\033', '[', '2', '~', 0,
- '\033', '[', '3', '~', 0,
- '\033', '[', '4', '~', 0,
- '\033', '[', '5', '~', 0,
- '\033', '[', '6', '~', 0,
- '\033', '[', 'M', 0,
- '\033', '[', 'P', 0,
-};
-
-char *funcbufptr = func_buf;
-int funcbufsize = sizeof(func_buf);
-int funcbufleft = 0; /* space left */
-
-char *func_table[MAX_NR_FUNC] = {
- func_buf + 0,
- func_buf + 5,
- func_buf + 10,
- func_buf + 15,
- func_buf + 20,
- func_buf + 25,
- func_buf + 31,
- func_buf + 37,
- func_buf + 43,
- func_buf + 49,
- func_buf + 55,
- func_buf + 61,
- func_buf + 67,
- func_buf + 73,
- func_buf + 79,
- func_buf + 85,
- func_buf + 91,
- func_buf + 97,
- func_buf + 103,
- func_buf + 109,
- func_buf + 115,
- func_buf + 120,
- func_buf + 125,
- func_buf + 130,
- func_buf + 135,
- func_buf + 140,
- func_buf + 145,
- 0,
- 0,
- func_buf + 149,
- 0,
-};
-
-struct kbdiacr {
- unsigned char diacr, base, result;
-};
-
-struct kbdiacr accent_table[MAX_DIACR] = {
- {'`', 'A', '\300'}, {'`', 'a', '\340'},
- {'\'', 'A', '\301'}, {'\'', 'a', '\341'},
- {'^', 'A', '\302'}, {'^', 'a', '\342'},
- {'~', 'A', '\303'}, {'~', 'a', '\343'},
- {'"', 'A', '\304'}, {'"', 'a', '\344'},
- {'O', 'A', '\305'}, {'o', 'a', '\345'},
- {'0', 'A', '\305'}, {'0', 'a', '\345'},
- {'A', 'A', '\305'}, {'a', 'a', '\345'},
- {'A', 'E', '\306'}, {'a', 'e', '\346'},
- {',', 'C', '\307'}, {',', 'c', '\347'},
- {'`', 'E', '\310'}, {'`', 'e', '\350'},
- {'\'', 'E', '\311'}, {'\'', 'e', '\351'},
- {'^', 'E', '\312'}, {'^', 'e', '\352'},
- {'"', 'E', '\313'}, {'"', 'e', '\353'},
- {'`', 'I', '\314'}, {'`', 'i', '\354'},
- {'\'', 'I', '\315'}, {'\'', 'i', '\355'},
- {'^', 'I', '\316'}, {'^', 'i', '\356'},
- {'"', 'I', '\317'}, {'"', 'i', '\357'},
- {'-', 'D', '\320'}, {'-', 'd', '\360'},
- {'~', 'N', '\321'}, {'~', 'n', '\361'},
- {'`', 'O', '\322'}, {'`', 'o', '\362'},
- {'\'', 'O', '\323'}, {'\'', 'o', '\363'},
- {'^', 'O', '\324'}, {'^', 'o', '\364'},
- {'~', 'O', '\325'}, {'~', 'o', '\365'},
- {'"', 'O', '\326'}, {'"', 'o', '\366'},
- {'/', 'O', '\330'}, {'/', 'o', '\370'},
- {'`', 'U', '\331'}, {'`', 'u', '\371'},
- {'\'', 'U', '\332'}, {'\'', 'u', '\372'},
- {'^', 'U', '\333'}, {'^', 'u', '\373'},
- {'"', 'U', '\334'}, {'"', 'u', '\374'},
- {'\'', 'Y', '\335'}, {'\'', 'y', '\375'},
- {'T', 'H', '\336'}, {'t', 'h', '\376'},
- {'s', 's', '\337'}, {'"', 'y', '\377'},
- {'s', 'z', '\337'}, {'i', 'j', '\377'},
-};
-
-unsigned int accent_table_size = 68;
-
-/* These #defines have been copied from drivers/char/pc_keyb.h, by
- * Martin Mares (mj@ucw.cz).
- * converted to offsets by Till Straumann <strauman@slac.stanford.edu>
- */
-#define KBD_STATUS_REG 0x4 /* Status register (R) */
-#define KBD_CNTL_REG 0x4 /* Controller command register (W) */
-#define KBD_DATA_REG 0x0 /* Keyboard data register (R/W) */
-
-/*
- * Keyboard Controller Commands
- */
-
-#define KBD_CCMD_WRITE_MODE 0x60 /* Write mode bits */
-#define KBD_CCMD_GET_VERSION 0xA1 /* Get controller version */
-#define KBD_CCMD_MOUSE_DISABLE 0xA7 /* Disable mouse interface */
-#define KBD_CCMD_MOUSE_ENABLE 0xA8 /* Enable mouse interface */
-#define KBD_CCMD_TEST_MOUSE 0xA9 /* Mouse interface test */
-#define KBD_CCMD_SELF_TEST 0xAA /* Controller self test */
-#define KBD_CCMD_KBD_TEST 0xAB /* Keyboard interface test */
-#define KBD_CCMD_KBD_DISABLE 0xAD /* Keyboard interface disable */
-#define KBD_CCMD_KBD_ENABLE 0xAE /* Keyboard interface enable */
-
-/*
- * Keyboard Commands
- */
-
-#define KBD_CMD_ENABLE 0xF4 /* Enable scanning */
-#define KBD_CMD_DISABLE 0xF5 /* Disable scanning */
-#define KBD_CMD_RESET 0xFF /* Reset */
-
-/*
- * Keyboard Replies
- */
-
-#define KBD_REPLY_POR 0xAA /* Power on reset */
-#define KBD_REPLY_ACK 0xFA /* Command ACK */
-#define KBD_REPLY_RESEND 0xFE /* Command NACK, send the cmd again */
-
-/*
- * Status Register Bits
- */
-
-#define KBD_STAT_OBF 0x01 /* Keyboard output buffer full */
-#define KBD_STAT_IBF 0x02 /* Keyboard input buffer full */
-#define KBD_STAT_UNLOCKED 0x10 /* Zero if keyboard locked */
-#define KBD_STAT_GTO 0x40 /* General receive/xmit timeout */
-#define KBD_STAT_PERR 0x80 /* Parity error */
-
-/*
- * Controller Mode Register Bits
- */
-
-#define KBD_MODE_KBD_INT 0x01 /* Keyboard data generate IRQ1 */
-#define KBD_MODE_SYS 0x04 /* The system flag (?) */
-#define KBD_MODE_NO_KEYLOCK 0x08 /* The keylock doesn't affect the keyboard if set */
-#define KBD_MODE_DISABLE_KBD 0x10 /* Disable keyboard interface */
-#define KBD_MODE_DISABLE_MOUSE 0x20 /* Disable mouse interface */
-#define KBD_MODE_KCC 0x40 /* Scan code conversion to PC format */
-#define KBD_MODE_RFU 0x80
-
-#endif /* USE_KBD_SUPPORT */
-
-/* Early messages after mm init but before console init are kept in log
- * buffers.
- */
-#define PAGE_LOG_CHARS (PAGE_SIZE-sizeof(int)-sizeof(u_long)-1)
-
-typedef struct _console_log {
- struct _console_log *next;
- int offset;
- u_char data[PAGE_LOG_CHARS];
-} console_log;
-
-#ifdef STATIC_LOG_ALLOC
-
-#define STATIC_LOG_DATA_PAGE_NB 3
-
-static u_char log_page_pool [STATIC_LOG_DATA_PAGE_NB * PAGE_SIZE];
-
-#endif
-
-static board_memory_map mem_map = {
- (__io_ptr) _IO_BASE, /* from libcpu/io.h */
- (__io_ptr) _ISA_MEM_BASE,
-};
-
-board_memory_map *ptr_mem_map = &mem_map;
-
-struct _console_global_data {
- console_log *log;
- int vacuum_sent;
- int lines;
- int cols;
- int orig_x;
- int orig_y;
- u_char shfts, ctls, alts, caps;
-} console_global_data = {NULL, 0, 25, 80, 0, 24, 0, 0, 0, 0};
-
-typedef struct console_io {
- void (*console_io_putc) (const u_char);
- int (*console_io_getc) (void);
- int (*console_io_tstc) (void);
-}console_io;
-
-extern console_io* curIo;
-
-void debug_putc(const u_char c)
-{
- curIo->console_io_putc(c);
-}
-
-/* const char arg to be compatible with BSP_output_char decl. */
-void
-debug_putc_onlcr(const char c)
-{
- debug_putc(c);
-}
-
-int debug_getc(void)
-{
- return curIo->console_io_getc();
-}
-
-int debug_tstc(void)
-{
- return curIo->console_io_tstc();
-}
-
-#define vidmem ((__io_ptr)(ptr_mem_map->isa_mem_base+0xb8000))
-
-static void vacuum_putc(u_char c) {
- console_global_data.vacuum_sent++;
-}
-
-static int vacuum_getc(void) {
- return -1;
-}
-
-static int vacuum_tstc(void) {
- return 0;
-}
-
-/*
- * COM1 NS16550 support
- */
-
-#define rbr 0
-#define ier 1
-#define fcr 2
-#define lcr 3
-#define mcr 4
-#define lsr 5
-#define msr 6
-#define scr 7
-#define thr rbr
-#define iir fcr
-#define dll rbr
-#define dlm ier
-
-#define LSR_DR 0x01 /* Data ready */
-#define LSR_OE 0x02 /* Overrun */
-#define LSR_PE 0x04 /* Parity error */
-#define LSR_FE 0x08 /* Framing error */
-#define LSR_BI 0x10 /* Break */
-#define LSR_THRE 0x20 /* Xmit holding register empty */
-#define LSR_TEMT 0x40 /* Xmitter empty */
-#define LSR_ERR 0x80 /* Error */
-
-#ifdef STATIC_LOG_ALLOC
-static int global_index = 0;
-
-static void *__palloc(int s)
-{
- if (global_index ==( STATIC_LOG_DATA_PAGE_NB - 1) ) return (void*) 0;
- return (void*) &(log_page_pool [PAGE_SIZE * global_index++]);
-}
-
-static void pfree(void* p)
-{
- --global_index;
-}
-#endif
-
-static void log_putc(const u_char c) {
- console_log *l;
- for(l=console_global_data.log; l; l=l->next) {
- if (l->offset<PAGE_LOG_CHARS) break;
- }
- if (!l) {
- l=__palloc(sizeof(console_log));
- memset(l, 0, sizeof(console_log));
- if (!console_global_data.log)
- console_global_data.log = l;
- else {
- console_log *p;
- for (p=console_global_data.log;
- p->next; p=p->next);
- p->next = l;
- }
- }
- l->data[l->offset++] = c;
-}
-
-/* This puts is non standard since it does not automatically add a newline
- * at the end. So it is made private to avoid confusion in other files.
- */
-static
-void my_puts(const u_char *s)
-{
- char c;
-
- while ( ( c = *s++ ) != '\0' ) {
- rtems_putc(c);
- }
-}
-
-static
-void flush_log(void) {
- console_log *p, *next;
- if (console_global_data.vacuum_sent) {
-#ifdef TRACE_FLUSH_LOG
- printk("%d characters sent into oblivion before MM init!\n",
- console_global_data.vacuum_sent);
-#endif
- }
- for(p=console_global_data.log; p; p=next) {
- my_puts(p->data);
- next = p->next;
- pfree(p);
- }
-}
-
-#ifndef INL_CONSOLE_INB
-#error "BSP probably didn't define a console port"
-#endif
-
-static void serial_putc(const u_char c)
-{
- while ((INL_CONSOLE_INB(lsr) & LSR_THRE) == 0) ;
- INL_CONSOLE_OUTB(thr, c);
-}
-
-static int serial_getc(void)
-{
- while ((INL_CONSOLE_INB(lsr) & LSR_DR) == 0) ;
- return (INL_CONSOLE_INB(rbr));
-}
-
-static int serial_tstc(void)
-{
- return ((INL_CONSOLE_INB(lsr) & LSR_DR) != 0);
-}
-
-#ifdef USE_VGA_SUPPORT
-static void scroll(void)
-{
- int i;
-
- memcpy ( (u_char *)vidmem, (u_char *)vidmem + console_global_data.cols * 2,
- ( console_global_data.lines - 1 ) * console_global_data.cols * 2 );
- for ( i = ( console_global_data.lines - 1 ) * console_global_data.cols * 2;
- i < console_global_data.lines * console_global_data.cols * 2;
- i += 2 )
- vidmem[i] = ' ';
-}
-
-/*
- * cursor() sets an offset (0-1999) into the 80x25 text area
- */
-static void
-cursor(int x, int y)
-{
- int pos = console_global_data.cols*y + x;
- vga_outb(14, 0x14);
- vga_outb(0x15, pos>>8);
- vga_outb(0x14, 15);
- vga_outb(0x15, pos);
-}
-
-static void
-vga_putc(const u_char c)
-{
- int x,y;
-
- x = console_global_data.orig_x;
- y = console_global_data.orig_y;
-
- if ( c == '\n' ) {
- if ( ++y >= console_global_data.lines ) {
- scroll();
- y--;
- }
- } else if (c == '\b') {
- if (x > 0) {
- x--;
- }
- } else if (c == '\r') {
- x = 0;
- } else {
- vidmem [ ( x + console_global_data.cols * y ) * 2 ] = c;
- if ( ++x >= console_global_data.cols ) {
- x = 0;
- if ( ++y >= console_global_data.lines ) {
- scroll();
- y--;
- }
- }
- }
-
- cursor(x, y);
-
- console_global_data.orig_x = x;
- console_global_data.orig_y = y;
-}
-#endif /* USE_VGA_SUPPORT */
-
-#ifdef USE_KBD_SUPPORT
-/* Keyboard support */
-static int kbd_getc(void)
-{
- unsigned char dt, brk, val;
- unsigned code;
-loop:
- while((kbd_inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) ;
-
- dt = kbd_inb(KBD_DATA_REG);
-
- brk = dt & 0x80; /* brk == 1 on key release */
- dt = dt & 0x7f; /* keycode */
-
- if (console_global_data.shfts)
- code = shift_map[dt];
- else if (console_global_data.ctls)
- code = ctrl_map[dt];
- else
- code = plain_map[dt];
-
- val = KVAL(code);
- switch (KTYP(code) & 0x0f) {
- case KT_LATIN:
- if (brk)
- break;
- if (console_global_data.alts)
- val |= 0x80;
- if (val == 0x7f) /* map delete to backspace */
- val = '\b';
- return val;
-
- case KT_LETTER:
- if (brk)
- break;
- if (console_global_data.caps)
- val -= 'a'-'A';
- return val;
-
- case KT_SPEC:
- if (brk)
- break;
- if (val == KVAL(K_CAPS))
- console_global_data.caps = !console_global_data.caps;
- else if (val == KVAL(K_ENTER)) {
-enter: /* Wait for key up */
- while (1) {
- while((kbd_inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0) ;
- dt = kbd_inb(KBD_DATA_REG);
- if (dt & 0x80) /* key up */ break;
- }
- return 10;
- }
- break;
-
- case KT_PAD:
- if (brk)
- break;
- if (val < 10)
- return val;
- if (val == KVAL(K_PENTER))
- goto enter;
- break;
-
- case KT_SHIFT:
- switch (val) {
- case KG_SHIFT:
- case KG_SHIFTL:
- case KG_SHIFTR:
- console_global_data.shfts = brk ? 0 : 1;
- break;
- case KG_ALT:
- case KG_ALTGR:
- console_global_data.alts = brk ? 0 : 1;
- break;
- case KG_CTRL:
- case KG_CTRLL:
- case KG_CTRLR:
- console_global_data.ctls = brk ? 0 : 1;
- break;
- }
- break;
-
- case KT_LOCK:
- switch (val) {
- case KG_SHIFT:
- case KG_SHIFTL:
- case KG_SHIFTR:
- if (brk)
- console_global_data.shfts = !console_global_data.shfts;
- break;
- case KG_ALT:
- case KG_ALTGR:
- if (brk)
- console_global_data.alts = !console_global_data.alts;
- break;
- case KG_CTRL:
- case KG_CTRLL:
- case KG_CTRLR:
- if (brk)
- console_global_data.ctls = !console_global_data.ctls;
- break;
- }
- break;
- }
- /* if (brk) return (0); */ /* Ignore initial 'key up' codes */
- goto loop;
-}
-
-static int kbd_get(int ms) {
- int status, data;
- while(1) {
- status = kbd_inb(KBD_STATUS_REG);
- if (status & KBD_STAT_OBF) {
- data = kbd_inb(KBD_DATA_REG);
- if (status & (KBD_STAT_GTO | KBD_STAT_PERR))
- return -1;
- else
- return data;
- }
- if (--ms < 0) return -1;
-#ifdef __BOOT__
- boot_udelay(1000);
-#else
- rtems_bsp_delay(1000);
-#endif
- }
-}
-
-static void kbd_put(u_char c, int ms, int port) {
- while (kbd_inb(KBD_STATUS_REG) & KBD_STAT_IBF) {
- if (--ms < 0) return;
-#ifdef __BOOT__
- boot_udelay(1000);
-#else
- rtems_bsp_delay(1000);
-#endif
- }
- kbd_outb(port, c);
-}
-
-int kbdreset(void)
-{
- int c;
-
- /* Flush all pending data */
- while(kbd_get(10) != -1);
-
- /* Send self-test */
- kbd_put(KBD_CCMD_SELF_TEST, 10, KBD_CNTL_REG);
- c = kbd_get(1000);
- if (c != 0x55) return 1;
-
- /* Enable then reset the KB */
- kbd_put(KBD_CCMD_KBD_ENABLE, 10, KBD_CNTL_REG);
-
- while (1) {
- kbd_put(KBD_CMD_RESET, 10, KBD_DATA_REG);
- c = kbd_get(1000);
- if (c == KBD_REPLY_ACK) break;
- if (c != KBD_REPLY_RESEND) return 2;
- }
-
- if (kbd_get(1000) != KBD_REPLY_POR) return 3;
-
- /* Disable the keyboard while setting up the controller */
- kbd_put(KBD_CMD_DISABLE, 10, KBD_DATA_REG);
- if (kbd_get(10)!=KBD_REPLY_ACK) return 4;
-
- /* Enable interrupts and keyboard controller */
- kbd_put(KBD_CCMD_WRITE_MODE, 10, KBD_CNTL_REG);
- kbd_put(KBD_MODE_KBD_INT | KBD_MODE_SYS |
- KBD_MODE_DISABLE_MOUSE | KBD_MODE_KCC,
- 10, KBD_DATA_REG);
-
- /* Reenable the keyboard */
- kbd_put(KBD_CMD_ENABLE, 10, KBD_DATA_REG);
- if (kbd_get(10)!=KBD_REPLY_ACK) return 5;
-
- return 0;
-}
-
-static int kbd_tstc(void)
-{
- return ((kbd_inb(KBD_STATUS_REG) & KBD_STAT_OBF) != 0);
-}
-#endif /* USE_KBD_SUPPORT */
-
-const struct console_io
-vacuum_console_functions = {
- vacuum_putc,
- vacuum_getc,
- vacuum_tstc
-};
-
-static const struct console_io
-log_console_functions = {
- log_putc,
- vacuum_getc,
- vacuum_tstc
-}
-,
-serial_console_functions = {
- serial_putc,
- serial_getc,
- serial_tstc
-}
-#if defined(USE_KBD_SUPPORT) && defined(USE_VGA_SUPPORT)
-,
-vga_console_functions = {
- vga_putc,
- kbd_getc,
- kbd_tstc
-}
-#endif
-;
-
-console_io* curIo = (console_io*) &vacuum_console_functions;
-
-int select_console(ioType t) {
- static ioType curType = CONSOLE_VACUUM;
-
- switch (t) {
- case CONSOLE_VACUUM : curIo = (console_io*)&vacuum_console_functions; break;
- case CONSOLE_LOG : curIo = (console_io*)&log_console_functions; break;
- case CONSOLE_SERIAL : curIo = (console_io*)&serial_console_functions; break;
-#if defined(USE_KBD_SUPPORT) && defined(USE_VGA_SUPPORT)
- case CONSOLE_VGA : curIo = (console_io*)&vga_console_functions; break;
-#endif
- default : curIo = (console_io*)&vacuum_console_functions;break;
- }
- if (curType == CONSOLE_LOG) flush_log();
- curType = t;
- return 0;
-}
-
-/* we use this so that we can do without the ctype library */
-#define is_digit(c) ((c) >= '0' && (c) <= '9')
-
-/* provide this for the bootloader only; otherwise
- * use libcpu implementation
- */
-#if defined(__BOOT__)
-static int skip_atoi(const char **s)
-{
- int i=0;
-
- while (is_digit(**s))
- i = i*10 + *((*s)++) - '0';
- return i;
-}
-
-/* Based on linux/lib/vsprintf.c and modified to suit our needs,
- * bloat has been limited since we basically only need %u, %x, %s and %c.
- * But we need 64 bit values !
- */
-int k_vsprintf(char *buf, const char *fmt, va_list args);
-
-int printk(const char *fmt, ...) {
- va_list args;
- int i;
- /* Should not be a problem with 8kB of stack */
- char buf[1024];
-
- va_start(args, fmt);
- i = k_vsprintf(buf, fmt, args);
- va_end(args);
- my_puts((u_char*)buf);
- return i;
-}
-
-#endif
-
-/* Necessary to avoid including a library, and GCC won't do this inline. */
-#define div10(num, rmd) \
-do { uint32_t t1, t2, t3; \
- __asm__ ("lis %4,0xcccd; " \
- "addi %4,%4,0xffffcccd; " /* Build 0xcccccccd */ \
- "mulhwu %3,%0+1,%4; " /* (num.l*cst.l).h */ \
- "mullw %2,%0,%4; " /* (num.h*cst.l).l */ \
- "addc %3,%3,%2; " \
- "mulhwu %2,%0,%4; " /* (num.h*cst.l).h */ \
- "addi %4,%4,-1; " /* Build 0xcccccccc */ \
- "mullw %1,%0,%4; " /* (num.h*cst.h).l */ \
- "adde %2,%2,%1; " \
- "mulhwu %1,%0,%4; " /* (num.h*cst.h).h */ \
- "addze %1,%1; " \
- "mullw %0,%0+1,%4; " /* (num.l*cst.h).l */ \
- "addc %3,%3,%0; " \
- "mulhwu %0,%0+1,%4; " /* (num.l*cst.h).h */ \
- "adde %2,%2,%0; " \
- "addze %1,%1; " \
- "srwi %2,%2,3; " \
- "srwi %0,%1,3; " \
- "rlwimi %2,%1,29,0,2; " \
- "mulli %4,%2,10; " \
- "sub %4,%0+1,%4; " \
- "mr %0+1,%2; " : \
- "=r" (num), "=&r" (t1), "=&r" (t2), "=&r"(t3), "=&b" (rmd) : \
- "0" (num)); \
- \
-} while(0);
-
-#define SIGN 1 /* unsigned/signed long */
-#define LARGE 2 /* use 'ABCDEF' instead of 'abcdef' */
-#define HEX 4 /* hexadecimal instead of decimal */
-#define ADDR 8 /* Value is an addres (p) */
-#define ZEROPAD 16 /* pad with zero */
-#define HALF 32
-#define LONG 64 /* long argument */
-#define LLONG 128 /* 64 bit argument */
-
-#if defined(__BOOT__)
-static char * number(char * str, int size, int type, uint64_t num)
-{
- char fill,sign,tmp[24];
- const char *digits="0123456789abcdef";
- int i;
-
- if (type & LARGE)
- digits = "0123456789ABCDEF";
- fill = (type & ZEROPAD) ? '0' : ' ';
- sign = 0;
- if (type & SIGN) {
- if ((int64_t)num <0) {
- sign = '-';
- num = -num;
- size--;
- }
- }
-
- i = 0;
- do {
- unsigned rem;
- if (type&HEX) {
- rem = num & 0x0f;
- num >>=4;
- } else {
- div10(num, rem);
- }
- tmp[i++] = digits[rem];
- } while (num != 0);
-
- size -= i;
- if (!(type&(ZEROPAD)))
- while(size-->0)
- *str++ = ' ';
- if (sign)
- *str++ = sign;
-
- while (size-- > 0)
- *str++ = fill;
- while (i-- > 0)
- *str++ = tmp[i];
- while (size-- > 0)
- *str++ = ' ';
- return str;
-}
-
-int k_vsprintf(char *buf, const char *fmt, va_list args)
-{
- int len;
- uint64_t num;
- int i;
- char * str;
- const char *s;
-
- int flags; /* flags to number() and private */
-
- int field_width; /* width of output field */
-
- for (str=buf ; *fmt ; ++fmt) {
- if (*fmt != '%') {
- *str++ = *fmt;
- continue;
- }
-
- /* process flags, only 0 padding needed */
- flags = 0;
- if (*++fmt == '0' ) {
- flags |= ZEROPAD;
- fmt++;
- }
-
- /* get field width */
- field_width = -1;
- if (is_digit(*fmt))
- field_width = skip_atoi(&fmt);
-
- /* get the conversion qualifier */
- if (*fmt == 'h') {
- flags |= HALF;
- fmt++;
- } else if (*fmt == 'L') {
- flags |= LLONG;
- fmt++;
- } else if (*fmt == 'l') {
- flags |= LONG;
- fmt++;
- }
-
- switch (*fmt) {
- case 'c':
- *str++ = (unsigned char) va_arg(args, int);
- while (--field_width > 0)
- *str++ = ' ';
- continue;
-
- case 's':
- s = va_arg(args, char *);
- len = strlen(s);
-
- for (i = 0; i < len; ++i)
- *str++ = *s++;
- while (len < field_width--)
- *str++ = ' ';
- continue;
-
- case 'p':
- if (field_width == -1) {
- field_width = 2*sizeof(void *);
- }
- flags |= ZEROPAD|HEX|ADDR;
- break;
-
- case 'X':
- flags |= LARGE;
- case 'x':
- flags |= HEX;
- break;
-
- case 'd':
- case 'i':
- flags |= SIGN;
- case 'u':
- break;
-
- default:
- if (*fmt != '%')
- *str++ = '%';
- if (*fmt)
- *str++ = *fmt;
- else
- --fmt;
- continue;
- }
- /* This ugly code tries to minimize the number of va_arg()
- * since they expand to a lot of code on PPC under the SYSV
- * calling conventions (but not with -mcall-aix which has
- * other problems). Arguments have at least the size of a
- * long allocated, and we use this fact to minimize bloat.
- * (and pointers are assimilated to unsigned long too).
- */
- if (sizeof(long long) > sizeof(long) && flags & LLONG)
- num = va_arg(args, unsigned long long);
- else {
- u_long n = va_arg(args, unsigned long);
- if (flags & HALF) {
- if (flags & SIGN)
- n = (short) n;
- else
- n = (unsigned short) n;
- } else if (!(flags & LONG)) {
- /* Here the compiler correctly removes this
- * do nothing code on 32 bit PPC.
- */
- if (flags & SIGN)
- n = (int) n;
- else
- n = (unsigned) n;
- }
- if (flags & SIGN) num = (long) n; else num = n;
- }
- str = number(str, field_width, flags, num);
- }
- *str = '\0';
- return str-buf;
-}
-#endif