diff packages/hal/sh/edk/current/include/platform.inc @ 76:435cced73e2f ecos-v1_3_1-release

eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
author jlarmour
date Tue, 28 Mar 2000 14:10:45 +0000
parents
children 6736c52df507
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/hal/sh/edk/current/include/platform.inc
@@ -0,0 +1,132 @@
+#ifndef CYGONCE_HAL_PLATFORM_INC
+#define CYGONCE_HAL_PLATFORM_INC
+##=============================================================================
+##
+##	platform.inc
+##
+##	SH/EDK7708 board assembler header file
+##
+##=============================================================================
+#####COPYRIGHTBEGIN####
+#                                                                          
+# -------------------------------------------                              
+# The contents of this file are subject to the Red Hat eCos Public License 
+# Version 1.0 (the "License"); you may not use this file except in         
+# compliance with the License.  You may obtain a copy of the License at    
+# http://sourceware.cygnus.com/ecos                                        
+#                                                                          
+# Software distributed under the License is distributed on an       
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+# License for the specific language governing rights and limitations under 
+# the License.                                                             
+#                                                                          
+# The Original Code is eCos - Embedded Configurable Operating System,      
+# released September 30, 1998.                                             
+#                                                                          
+# The Initial Developer of the Original Code is Red Hat.                   
+# Portions created by Red Hat are                                          
+# Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+# All Rights Reserved.                                                     
+# -------------------------------------------                              
+#                                                                          
+#####COPYRIGHTEND####
+##=============================================================================
+#######DESCRIPTIONBEGIN####
+##
+## Author(s): 	jskov
+## Contributors:jskov
+## Date:	2000-02-02
+## Purpose:	SH/EDK7708 board definitions.
+## Description:	This file contains various definitions and macros that are
+##              useful for writing assembly code for the SH/EDK7708 board.
+## Usage:
+##		#include <cyg/hal/platform.inc>
+##		...
+##		
+##
+######DESCRIPTIONEND####
+##
+##=============================================================================
+
+#include <pkgconf/hal.h>
+
+#include <cyg/hal/sh_offsets.inc>
+
+#------------------------------------------------------------------------------
+# Monitor initialization.
+
+#ifndef CYGPKG_HAL_SH_MON_DEFINED
+
+#if	defined(CYG_HAL_STARTUP_ROM) ||			\
+	(	defined(CYG_HAL_STARTUP_RAM) &&		\
+		!defined(CYGSEM_HAL_USE_ROM_MONITOR))
+
+	# If we are starting up from ROM, or we are starting in
+	# RAM and NOT using a ROM monitor, initialize the VSR table.
+
+	.macro	hal_mon_init
+        mov.l   $_hal_vsr_table_p,r3
+	# Write exception vectors
+	mov.l   $_cyg_hal_default_exception_vsr_p,r4
+	mov     #CYGNUM_HAL_VSR_EXCEPTION_COUNT,r5
+1:	mov.l   r4,@r3
+        add     #4,r3
+	dt	r5
+	bf	1b
+	# Write interrupt vector
+	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
+	mov.l   r4,@r3
+	bra	2f
+	 nop
+        .align  2
+
+$_cyg_hal_default_exception_vsr_p:
+	.long	_cyg_hal_default_exception_vsr
+$_cyg_hal_default_interrupt_vsr_p:
+	.long	_cyg_hal_default_interrupt_vsr
+
+	.extern _hal_vsr_table
+$_hal_vsr_table_p:
+	.long _hal_vsr_table
+
+2:
+	.endm
+
+#elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
+
+	# Initialize the VSR table entries
+	# We only take control of the interrupt vector,
+	# the rest are left to the ROM for now...
+
+	.macro	hal_mon_init
+	# Write interrupt vector
+        mov.l   $_hal_vsr_table_p,r3
+	mov.l   $_cyg_hal_default_interrupt_vsr_p,r4
+	mov.l   r4,@r3
+	bra	2f
+	 nop
+        .align  2
+
+$_cyg_hal_default_interrupt_vsr_p:
+	.long	_cyg_hal_default_interrupt_vsr
+
+	.extern _hal_vsr_table
+$_hal_vsr_table_p:
+	.long _hal_vsr_table+CYGNUM_HAL_VECTOR_INTERRUPT*4
+
+2:
+	.endm
+
+#else
+
+	.macro	hal_mon_init
+	.endm
+
+#endif
+
+
+#define CYGPKG_HAL_SH_MON_DEFINED
+
+#endif // CYGPKG_HAL_SH_MON_DEFINED
+
+#endif // CYGONCE_HAL_PLATFORM_INC