forked from Imagelibrary/rtems
various changes
This commit is contained in:
@@ -1,3 +1,19 @@
|
||||
2009-10-06 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
|
||||
* Makefile.am:
|
||||
do not use shared/timerstub
|
||||
|
||||
* include/bsp.h:
|
||||
add macro to convert Decrementer value
|
||||
|
||||
* startup/bspstart.c:
|
||||
set clock frequency to suitable value
|
||||
|
||||
* startup/bsppanic.c:
|
||||
issue a reset after panic
|
||||
|
||||
* startup/linkcmds:
|
||||
add space for stacks
|
||||
|
||||
2009-10-03 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
|
||||
* startup/bspstart.c:
|
||||
add missing file
|
||||
|
||||
@@ -38,11 +38,10 @@ startup_SOURCES = ../../shared/bspclean.c ../../shared/bsplibc.c \
|
||||
../../shared/gnatinstallhandler.c \
|
||||
startup/cmain.c startup/bspstart.c startup/bsppanic.c
|
||||
# pclock
|
||||
clock_SOURCES = ../../shared/clock_driver_simidle.c
|
||||
# clock_SOURCES = ../../shared/clock_driver_simidle.c
|
||||
clock_SOURCES = ../shared/clock/clock.c
|
||||
# console
|
||||
console_SOURCES = ../../shared/console-polled.c console/console-io.c
|
||||
#timer
|
||||
timer_SOURCES = ../../shared/timerstub.c
|
||||
|
||||
# irq
|
||||
include_bsp_HEADERS = irq/irq.h \
|
||||
|
||||
@@ -28,9 +28,18 @@ extern "C" {
|
||||
|
||||
#define BSP_SMALL_MEMORY 1
|
||||
|
||||
/*
|
||||
* Convert decrementer value to tenths of microseconds (used by shared timer
|
||||
* driver).
|
||||
*/
|
||||
#define BSP_Convert_decrementer( _value ) \
|
||||
((int) (((_value) * 10) / bsp_clicks_per_usec))
|
||||
|
||||
#if 0
|
||||
/* support for simulated clock tick */
|
||||
Thread clock_driver_sim_idle_body(uintptr_t);
|
||||
#define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
#include <rtems.h>
|
||||
#include <rtems/bspIo.h>
|
||||
|
||||
static void
|
||||
__outb(int port, unsigned char v)
|
||||
{
|
||||
*((volatile unsigned char *)(0x80000000 + port)) = v;
|
||||
}
|
||||
|
||||
void BSP_panic(char *s)
|
||||
{
|
||||
printk("%s PANIC %s\n",_RTEMS_version, s);
|
||||
while(1){};
|
||||
__outb (0x92, 0x01);
|
||||
}
|
||||
|
||||
void _BSP_Fatal_error(unsigned int v)
|
||||
{
|
||||
printk("%s PANIC ERROR %x\n",_RTEMS_version, v);
|
||||
while(1){};
|
||||
__outb (0x92, 0x01);
|
||||
}
|
||||
|
||||
@@ -49,11 +49,6 @@ extern char bsp_interrupt_stack_end[];
|
||||
extern char bsp_interrupt_stack_size[];
|
||||
uint32_t BSP_mem_size = (uint32_t)RamSize;
|
||||
|
||||
/*
|
||||
* Time base divisior (how many tick for 1 second).
|
||||
*/
|
||||
unsigned int BSP_time_base_divisor;
|
||||
|
||||
/* Default decrementer exception handler */
|
||||
static int default_decrementer_exception_handler( BSP_Exception_frame *frame, unsigned number)
|
||||
{
|
||||
@@ -74,7 +69,6 @@ void bsp_start( void )
|
||||
uint32_t intrStackSize;
|
||||
int rv = 0;
|
||||
rtems_status_code sc;
|
||||
|
||||
/*
|
||||
* Note we can not get CPU identification dynamically, so
|
||||
* force current_ppc_cpu.
|
||||
@@ -83,10 +77,11 @@ void bsp_start( void )
|
||||
|
||||
/*
|
||||
* initialize the device driver parameters
|
||||
* assume we are running with 20MHz bus
|
||||
* this should speed up some tests :-)
|
||||
*/
|
||||
/* BSP_bus_frequency = (unsigned int)&PSIM_INSTRUCTIONS_PER_MICROSECOND; */
|
||||
/* bsp_clicks_per_usec = BSP_bus_frequency; */
|
||||
/* BSP_time_base_divisor = 1; */
|
||||
BSP_bus_frequency = 20;
|
||||
bsp_clicks_per_usec = BSP_bus_frequency;
|
||||
|
||||
/*
|
||||
* Initialize the interrupt related settings.
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
#if 1
|
||||
static void
|
||||
__outb(int port, unsigned char v)
|
||||
{
|
||||
@@ -11,7 +10,6 @@ __inb(int port)
|
||||
{
|
||||
return *((volatile unsigned char *)(0x80000000 + port));
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
__memcpy (unsigned char *d, unsigned char *s, int len)
|
||||
@@ -43,12 +41,12 @@ void cmain (void)
|
||||
* init variable sections
|
||||
*/
|
||||
__memcpy (__sdata2_start, __sdata2_load, __sdata2_end - __sdata2_start);
|
||||
__memcpy (__sdata_start, __sdata_load, __sdata_end - __sdata_start);
|
||||
__memcpy (__data_start, __data_load, __data_end - __data_start);
|
||||
__bzero (__sbss2_start, __sbss2_end - __sbss2_start);
|
||||
__bzero (__sbss_start, __sbss_end - __sbss_start);
|
||||
__bzero (__bss_start, __bss_end - __bss_start);
|
||||
printk( "hello #\n");
|
||||
__memcpy (__sdata_start , __sdata_load , __sdata_end - __sdata_start);
|
||||
__memcpy (__data_start , __data_load , __data_end - __data_start);
|
||||
__bzero (__sbss2_start , __sbss2_end - __sbss2_start);
|
||||
__bzero (__sbss_start , __sbss_end - __sbss_start);
|
||||
__bzero (__bss_start , __bss_end - __bss_start);
|
||||
printk( "start of BSP\n");
|
||||
boot_card(0);
|
||||
printk( "end of BSP\n");
|
||||
__outb (0x92, 0x01);
|
||||
|
||||
@@ -84,7 +84,11 @@ SECTIONS
|
||||
__rodata_end = .;
|
||||
} >ROM =0
|
||||
|
||||
. = 0x1000;
|
||||
.vectors :
|
||||
{
|
||||
. = . + 0x2000; /* skip vector area */
|
||||
} >RAM
|
||||
|
||||
__sdata2_load = __rodata_end;
|
||||
.sdata2 : AT (__sdata2_load)
|
||||
{
|
||||
@@ -165,7 +169,8 @@ SECTIONS
|
||||
bsp_interrupt_stack_end = bsp_interrupt_stack_start + 32k;
|
||||
bsp_interrupt_stack_size = bsp_interrupt_stack_end - bsp_interrupt_stack_start;
|
||||
|
||||
WorkAreaBase = .;
|
||||
bsp_work_area_start = bsp_interrupt_stack_end;
|
||||
WorkAreaBase = bsp_work_area_start;
|
||||
. = RamBase + RamSize;
|
||||
|
||||
.reset :
|
||||
|
||||
Reference in New Issue
Block a user