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>
|
2009-10-03 Thomas Doerfler <Thomas.Doerfler@embedded-brains.de>
|
||||||
* startup/bspstart.c:
|
* startup/bspstart.c:
|
||||||
add missing file
|
add missing file
|
||||||
|
|||||||
@@ -38,11 +38,10 @@ startup_SOURCES = ../../shared/bspclean.c ../../shared/bsplibc.c \
|
|||||||
../../shared/gnatinstallhandler.c \
|
../../shared/gnatinstallhandler.c \
|
||||||
startup/cmain.c startup/bspstart.c startup/bsppanic.c
|
startup/cmain.c startup/bspstart.c startup/bsppanic.c
|
||||||
# pclock
|
# pclock
|
||||||
clock_SOURCES = ../../shared/clock_driver_simidle.c
|
# clock_SOURCES = ../../shared/clock_driver_simidle.c
|
||||||
|
clock_SOURCES = ../shared/clock/clock.c
|
||||||
# console
|
# console
|
||||||
console_SOURCES = ../../shared/console-polled.c console/console-io.c
|
console_SOURCES = ../../shared/console-polled.c console/console-io.c
|
||||||
#timer
|
|
||||||
timer_SOURCES = ../../shared/timerstub.c
|
|
||||||
|
|
||||||
# irq
|
# irq
|
||||||
include_bsp_HEADERS = irq/irq.h \
|
include_bsp_HEADERS = irq/irq.h \
|
||||||
|
|||||||
@@ -28,9 +28,18 @@ extern "C" {
|
|||||||
|
|
||||||
#define BSP_SMALL_MEMORY 1
|
#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 */
|
/* support for simulated clock tick */
|
||||||
Thread clock_driver_sim_idle_body(uintptr_t);
|
Thread clock_driver_sim_idle_body(uintptr_t);
|
||||||
#define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
|
#define BSP_IDLE_TASK_BODY clock_driver_sim_idle_body
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,20 @@
|
|||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
#include <rtems/bspIo.h>
|
#include <rtems/bspIo.h>
|
||||||
|
|
||||||
|
static void
|
||||||
|
__outb(int port, unsigned char v)
|
||||||
|
{
|
||||||
|
*((volatile unsigned char *)(0x80000000 + port)) = v;
|
||||||
|
}
|
||||||
|
|
||||||
void BSP_panic(char *s)
|
void BSP_panic(char *s)
|
||||||
{
|
{
|
||||||
printk("%s PANIC %s\n",_RTEMS_version, s);
|
printk("%s PANIC %s\n",_RTEMS_version, s);
|
||||||
while(1){};
|
__outb (0x92, 0x01);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _BSP_Fatal_error(unsigned int v)
|
void _BSP_Fatal_error(unsigned int v)
|
||||||
{
|
{
|
||||||
printk("%s PANIC ERROR %x\n",_RTEMS_version, 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[];
|
extern char bsp_interrupt_stack_size[];
|
||||||
uint32_t BSP_mem_size = (uint32_t)RamSize;
|
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 */
|
/* Default decrementer exception handler */
|
||||||
static int default_decrementer_exception_handler( BSP_Exception_frame *frame, unsigned number)
|
static int default_decrementer_exception_handler( BSP_Exception_frame *frame, unsigned number)
|
||||||
{
|
{
|
||||||
@@ -74,7 +69,6 @@ void bsp_start( void )
|
|||||||
uint32_t intrStackSize;
|
uint32_t intrStackSize;
|
||||||
int rv = 0;
|
int rv = 0;
|
||||||
rtems_status_code sc;
|
rtems_status_code sc;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note we can not get CPU identification dynamically, so
|
* Note we can not get CPU identification dynamically, so
|
||||||
* force current_ppc_cpu.
|
* force current_ppc_cpu.
|
||||||
@@ -83,10 +77,11 @@ void bsp_start( void )
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* initialize the device driver parameters
|
* 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_bus_frequency = 20;
|
||||||
/* bsp_clicks_per_usec = BSP_bus_frequency; */
|
bsp_clicks_per_usec = BSP_bus_frequency;
|
||||||
/* BSP_time_base_divisor = 1; */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize the interrupt related settings.
|
* Initialize the interrupt related settings.
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
|
|
||||||
#if 1
|
|
||||||
static void
|
static void
|
||||||
__outb(int port, unsigned char v)
|
__outb(int port, unsigned char v)
|
||||||
{
|
{
|
||||||
@@ -11,7 +10,6 @@ __inb(int port)
|
|||||||
{
|
{
|
||||||
return *((volatile unsigned char *)(0x80000000 + port));
|
return *((volatile unsigned char *)(0x80000000 + port));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__memcpy (unsigned char *d, unsigned char *s, int len)
|
__memcpy (unsigned char *d, unsigned char *s, int len)
|
||||||
@@ -43,12 +41,12 @@ void cmain (void)
|
|||||||
* init variable sections
|
* init variable sections
|
||||||
*/
|
*/
|
||||||
__memcpy (__sdata2_start, __sdata2_load, __sdata2_end - __sdata2_start);
|
__memcpy (__sdata2_start, __sdata2_load, __sdata2_end - __sdata2_start);
|
||||||
__memcpy (__sdata_start, __sdata_load, __sdata_end - __sdata_start);
|
__memcpy (__sdata_start , __sdata_load , __sdata_end - __sdata_start);
|
||||||
__memcpy (__data_start, __data_load, __data_end - __data_start);
|
__memcpy (__data_start , __data_load , __data_end - __data_start);
|
||||||
__bzero (__sbss2_start, __sbss2_end - __sbss2_start);
|
__bzero (__sbss2_start , __sbss2_end - __sbss2_start);
|
||||||
__bzero (__sbss_start, __sbss_end - __sbss_start);
|
__bzero (__sbss_start , __sbss_end - __sbss_start);
|
||||||
__bzero (__bss_start, __bss_end - __bss_start);
|
__bzero (__bss_start , __bss_end - __bss_start);
|
||||||
printk( "hello #\n");
|
printk( "start of BSP\n");
|
||||||
boot_card(0);
|
boot_card(0);
|
||||||
printk( "end of BSP\n");
|
printk( "end of BSP\n");
|
||||||
__outb (0x92, 0x01);
|
__outb (0x92, 0x01);
|
||||||
|
|||||||
@@ -84,7 +84,11 @@ SECTIONS
|
|||||||
__rodata_end = .;
|
__rodata_end = .;
|
||||||
} >ROM =0
|
} >ROM =0
|
||||||
|
|
||||||
. = 0x1000;
|
.vectors :
|
||||||
|
{
|
||||||
|
. = . + 0x2000; /* skip vector area */
|
||||||
|
} >RAM
|
||||||
|
|
||||||
__sdata2_load = __rodata_end;
|
__sdata2_load = __rodata_end;
|
||||||
.sdata2 : AT (__sdata2_load)
|
.sdata2 : AT (__sdata2_load)
|
||||||
{
|
{
|
||||||
@@ -165,7 +169,8 @@ SECTIONS
|
|||||||
bsp_interrupt_stack_end = bsp_interrupt_stack_start + 32k;
|
bsp_interrupt_stack_end = bsp_interrupt_stack_start + 32k;
|
||||||
bsp_interrupt_stack_size = bsp_interrupt_stack_end - bsp_interrupt_stack_start;
|
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;
|
. = RamBase + RamSize;
|
||||||
|
|
||||||
.reset :
|
.reset :
|
||||||
|
|||||||
Reference in New Issue
Block a user