summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/pc386/start
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-05-20 17:06:57 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-05-20 17:06:57 +0000
commit2efdd08b402f42579548349e62c73c9fe999bc98 (patch)
tree28856228b02ded770e9e81a935e13ec7cb6bf07c /c/src/lib/libbsp/i386/pc386/start
parentSome patches in place from Brian Stevens which help the Solaris port (diff)
downloadrtems-2efdd08b402f42579548349e62c73c9fe999bc98.tar.bz2
Patch from Ralf Corseipus to fix latent configure problems suddenly triggered:
The breakdown: * CC_FOR_TARGET and CXX_FOR_TARGET were not correctly re-read from autoconf's configuration cache (config.cache) * If <target>-[gcc|g++] was not found while running configure, the config macros tried to use other (wrong) compilers (e.g. cc). Changes: * New RTEMS_PROG_CC macro (aclocal/prog-cc.m4). * New RTEMS_PROG_CXX macro (aclocal/prog-cxx.m4) * Moved a shell script fragment from configure.in to a new m4-autoconf macro (New file: aclocal/tool-prefix.m4) * Minor changes to configure.in I tested it with linux/posix (native gcc/primary libc) and sh-rtems/gensh1 on a linux host and didn't notice any bugs related to the problems mentioned above. There seem to be more bugs with the posix bsp, but I consider them minor as the build run completed successfully. It is just too late for me to attempt to fix them now.
Diffstat (limited to 'c/src/lib/libbsp/i386/pc386/start')
-rw-r--r--c/src/lib/libbsp/i386/pc386/start/start.s43
1 files changed, 42 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/start/start.s b/c/src/lib/libbsp/i386/pc386/start/start.s
index 9501af12b8..3ed542c255 100644
--- a/c/src/lib/libbsp/i386/pc386/start/start.s
+++ b/c/src/lib/libbsp/i386/pc386/start/start.s
@@ -12,6 +12,11 @@
|
| Instituto Superior Tecnico * Lisboa * PORTUGAL
+--------------------------------------------------------------------------+
+|
+| Modified the 20/05/1998 by valette@crf.canon.fr in order to give a working
+| example of eraly stage debugging via the DEBUG_EARLY_START define.
+|
++--------------------------------------------------------------------------+
| Disclaimer:
|
| This file is provided "AS IS" without warranty of any kind, either
@@ -62,11 +67,39 @@ BEGIN_CODE
EXTERN (boot_card)
EXTERN (load_segments)
EXTERN (exit)
-
+ EXTERN (_IBMPC_initVideo)
+ EXTERN (debugPoolingGetChar)
+
+/*
+ * In case it crash on your machine and this is not due
+ * to video mode set by the loader, you may try to define
+ * the follwoing variable
+#define DEBUG_EARLY_START
+ */
+
SYM (start):
nop
cli # DISABLE INTERRUPTS!!!
+#ifdef DEBUG_EARLY_START
+ cld
+ /*
+ * Must get video attribute to have a working printk.
+ * Note that the following code assume we already have
+ * valid segments and a stack. It should be true for
+ * any loader starting RTEMS in protected mode (or
+ * at least I hope so : -)).
+ */
+ call _IBMPC_initVideo
+ /*
+ * try printk and a getchar in polling mode ASAP
+ */
+ pushl $welcome_msg
+ call printk
+ addl $4, esp
+
+ call debugPoolingGetChar
+#endif
/*----------------------------------------------------------------------------+
| Load the segment registers (this is done by the board's BSP) and perform any
@@ -265,6 +298,14 @@ SYM (start_frame):
SYM (stack_start):
.long 0
+#ifdef DEBUG_EARLY_START
+
+ PUBLIC (welcome_msg)
+SYM (welcome_msg) :
+ .string "Ready to debug RTEMS ?\nEnter <CR>\n"
+
+#endif
+
END_DATA
/*----------------------------------------------------------------------------+