From 1693c131a19f6c23ae95e33161119e48239dc165 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 26 Nov 2007 21:20:33 +0000 Subject: 2007-11-26 Joel Sherrill * startup/bspstart.c: Eliminate the interrupt_vector_table field in the m68k CPU Table since it is never read. --- c/src/lib/libbsp/m68k/av5282/ChangeLog | 5 + c/src/lib/libbsp/m68k/av5282/startup/bspstart.c | 42 +-- c/src/lib/libbsp/m68k/csb360/ChangeLog | 5 + c/src/lib/libbsp/m68k/csb360/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/gen68302/ChangeLog | 5 + c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c | 3 - c/src/lib/libbsp/m68k/gen68340/ChangeLog | 5 + c/src/lib/libbsp/m68k/gen68340/startup/bspstart.c | 3 - c/src/lib/libbsp/m68k/idp/ChangeLog | 5 + c/src/lib/libbsp/m68k/idp/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/mcf5206elite/ChangeLog | 5 + .../libbsp/m68k/mcf5206elite/startup/bspstart.c | 27 +- c/src/lib/libbsp/m68k/mcf5235/ChangeLog | 5 + c/src/lib/libbsp/m68k/mcf5235/startup/bspstart.c | 42 +-- c/src/lib/libbsp/m68k/mrm332/ChangeLog | 5 + c/src/lib/libbsp/m68k/mrm332/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/mvme136/ChangeLog | 5 + c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/mvme147/ChangeLog | 5 + c/src/lib/libbsp/m68k/mvme147/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/mvme147s/ChangeLog | 5 + c/src/lib/libbsp/m68k/mvme147s/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/mvme162/ChangeLog | 5 + c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c | 3 +- c/src/lib/libbsp/m68k/mvme167/ChangeLog | 5 + c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c | 1 - c/src/lib/libbsp/m68k/ods68302/ChangeLog | 5 + c/src/lib/libbsp/m68k/ods68302/startup/bspstart.c | 6 +- c/src/lib/libbsp/m68k/uC5282/ChangeLog | 5 + c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c | 401 +++++++++++---------- 30 files changed, 332 insertions(+), 277 deletions(-) (limited to 'c/src/lib/libbsp/m68k') diff --git a/c/src/lib/libbsp/m68k/av5282/ChangeLog b/c/src/lib/libbsp/m68k/av5282/ChangeLog index d28723c55f..103bfd3b2c 100644 --- a/c/src/lib/libbsp/m68k/av5282/ChangeLog +++ b/c/src/lib/libbsp/m68k/av5282/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/av5282/startup/bspstart.c b/c/src/lib/libbsp/m68k/av5282/startup/bspstart.c index fe8b4f703b..1225f52d59 100644 --- a/c/src/lib/libbsp/m68k/av5282/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/av5282/startup/bspstart.c @@ -192,33 +192,31 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; Cpu_table.interrupt_stack_size = 4096; - Cpu_table.interrupt_vector_table = (m68k_isr *)0; /* vectors at start of RAM */ - /* - * Invalidate the cache and disable it - */ - m68k_set_acr0(0); - m68k_set_acr1(0); - m68k_set_cacr(MCF5XXX_CACR_CINV); - - /* - * Cache SDRAM and FLASH - */ - m68k_set_acr0(MCF5XXX_ACR_AB(SDRAM_BASE) | - MCF5XXX_ACR_AM(SDRAM_SIZE-1) | - MCF5XXX_ACR_EN | - MCF5XXX_ACR_BWE | - MCF5XXX_ACR_SM_IGNORE); + /* + * Invalidate the cache and disable it + */ + m68k_set_acr0(0); + m68k_set_acr1(0); + m68k_set_cacr(MCF5XXX_CACR_CINV); - /* - * Enable the cache - */ - m68k_set_cacr(cacr_mode); + /* + * Cache SDRAM and FLASH + */ + m68k_set_acr0(MCF5XXX_ACR_AB(SDRAM_BASE) | + MCF5XXX_ACR_AM(SDRAM_SIZE-1) | + MCF5XXX_ACR_EN | + MCF5XXX_ACR_BWE | + MCF5XXX_ACR_SM_IGNORE); + /* + * Enable the cache + */ + m68k_set_cacr(cacr_mode); } uint32_t get_CPU_clock_speed(void) { - extern char _CPUClockSpeed[]; - return( (uint32_t)_CPUClockSpeed); + extern char _CPUClockSpeed[]; + return( (uint32_t)_CPUClockSpeed); } diff --git a/c/src/lib/libbsp/m68k/csb360/ChangeLog b/c/src/lib/libbsp/m68k/csb360/ChangeLog index 3cb8c71478..108da4638d 100644 --- a/c/src/lib/libbsp/m68k/csb360/ChangeLog +++ b/c/src/lib/libbsp/m68k/csb360/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/csb360/startup/bspstart.c b/c/src/lib/libbsp/m68k/csb360/startup/bspstart.c index a9c724770d..8058dbed00 100644 --- a/c/src/lib/libbsp/m68k/csb360/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/csb360/startup/bspstart.c @@ -79,5 +79,4 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; Cpu_table.interrupt_stack_size = 4096; - Cpu_table.interrupt_vector_table = (m68k_isr *)0; /* vectors at start of RAM */ } diff --git a/c/src/lib/libbsp/m68k/gen68302/ChangeLog b/c/src/lib/libbsp/m68k/gen68302/ChangeLog index d406385bf2..f3d1228730 100644 --- a/c/src/lib/libbsp/m68k/gen68302/ChangeLog +++ b/c/src/lib/libbsp/m68k/gen68302/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c b/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c index fd7f7503b2..cce4abaedd 100644 --- a/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/gen68302/startup/bspstart.c @@ -62,9 +62,6 @@ void bsp_start( void ) * typically done by stock BSPs) by subtracting the required amount * of work space from the last physical address on the CPU board. */ -#if 0 - Cpu_table.interrupt_vector_table = (mc68000_isr *) 0/*&M68Kvec*/; -#endif /* * Need to "allocate" the memory for the RTEMS Workspace and diff --git a/c/src/lib/libbsp/m68k/gen68340/ChangeLog b/c/src/lib/libbsp/m68k/gen68340/ChangeLog index cc26779834..332bfaa7fa 100644 --- a/c/src/lib/libbsp/m68k/gen68340/ChangeLog +++ b/c/src/lib/libbsp/m68k/gen68340/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/gen68340/startup/bspstart.c b/c/src/lib/libbsp/m68k/gen68340/startup/bspstart.c index f12a999207..d2378796a5 100644 --- a/c/src/lib/libbsp/m68k/gen68340/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/gen68340/startup/bspstart.c @@ -65,9 +65,6 @@ void bsp_start( void ) * typically done by stock BSPs) by subtracting the required amount * of work space from the last physical address on the CPU board. */ -#if 0 - Cpu_table.interrupt_vector_table = (mc68000_isr *) 0/*&M68Kvec*/; -#endif /* * Need to "allocate" the memory for the RTEMS Workspace and diff --git a/c/src/lib/libbsp/m68k/idp/ChangeLog b/c/src/lib/libbsp/m68k/idp/ChangeLog index a33b153488..1ef67dcc98 100644 --- a/c/src/lib/libbsp/m68k/idp/ChangeLog +++ b/c/src/lib/libbsp/m68k/idp/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-06-22 Joel Sherrill * console/leds.c, console/mc68ec.c: Rename delay to rtems_bsp_delay to diff --git a/c/src/lib/libbsp/m68k/idp/startup/bspstart.c b/c/src/lib/libbsp/m68k/idp/startup/bspstart.c index 6f08a45ff3..f2203a0c26 100644 --- a/c/src/lib/libbsp/m68k/idp/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/idp/startup/bspstart.c @@ -97,7 +97,6 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_vector_table = (m68k_isr_entry *) &M68Kvec; Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; BSP_Configuration.work_space_start = (void *) &_WorkspaceBase; diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/ChangeLog b/c/src/lib/libbsp/m68k/mcf5206elite/ChangeLog index fae5ee0aaa..4003818fcf 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/ChangeLog +++ b/c/src/lib/libbsp/m68k/mcf5206elite/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/startup/bspstart.c b/c/src/lib/libbsp/m68k/mcf5206elite/startup/bspstart.c index 1a30f0ff1e..c85410c15c 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mcf5206elite/startup/bspstart.c @@ -59,21 +59,20 @@ void bsp_pretasking_hook(void); /* m68k version */ */ void bsp_start( void ) { - extern void *_WorkspaceBase; + extern void *_WorkspaceBase; - /* - * Need to "allocate" the memory for the RTEMS Workspace and - * tell the RTEMS configuration where it is. This memory is - * not malloc'ed. It is just "pulled from the air". - */ + /* + * Need to "allocate" the memory for the RTEMS Workspace and + * tell the RTEMS configuration where it is. This memory is + * not malloc'ed. It is just "pulled from the air". + */ - BSP_Configuration.work_space_start = (void *)&_WorkspaceBase; + BSP_Configuration.work_space_start = (void *)&_WorkspaceBase; - /* - * initialize the CPU table for this BSP - */ - Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ - Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_stack_size = 4096; - Cpu_table.interrupt_vector_table = (m68k_isr *)0; /* vectors at start of RAM */ + /* + * initialize the CPU table for this BSP + */ + Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ + Cpu_table.postdriver_hook = bsp_postdriver_hook; + Cpu_table.interrupt_stack_size = 4096; } diff --git a/c/src/lib/libbsp/m68k/mcf5235/ChangeLog b/c/src/lib/libbsp/m68k/mcf5235/ChangeLog index dd792956cb..17f1f61cde 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/ChangeLog +++ b/c/src/lib/libbsp/m68k/mcf5235/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mcf5235/startup/bspstart.c b/c/src/lib/libbsp/m68k/mcf5235/startup/bspstart.c index 5b826f737a..c6b223bf56 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mcf5235/startup/bspstart.c @@ -185,33 +185,31 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; Cpu_table.interrupt_stack_size = 4096; - Cpu_table.interrupt_vector_table = (m68k_isr *)0; /* vectors at start of RAM */ - /* - * Invalidate the cache and disable it - */ - m68k_set_acr0(0); - m68k_set_acr1(0); - m68k_set_cacr(MCF5XXX_CACR_CINV); - - /* - * Cache SDRAM - */ - m68k_set_acr0(MCF5XXX_ACR_AB(SDRAM_BASE) | - MCF5XXX_ACR_AM(SDRAM_SIZE-1) | - MCF5XXX_ACR_EN | - MCF5XXX_ACR_BWE | - MCF5XXX_ACR_SM_IGNORE); + /* + * Invalidate the cache and disable it + */ + m68k_set_acr0(0); + m68k_set_acr1(0); + m68k_set_cacr(MCF5XXX_CACR_CINV); - /* - * Enable the cache - */ - m68k_set_cacr(cacr_mode); + /* + * Cache SDRAM + */ + m68k_set_acr0(MCF5XXX_ACR_AB(SDRAM_BASE) | + MCF5XXX_ACR_AM(SDRAM_SIZE-1) | + MCF5XXX_ACR_EN | + MCF5XXX_ACR_BWE | + MCF5XXX_ACR_SM_IGNORE); + /* + * Enable the cache + */ + m68k_set_cacr(cacr_mode); } uint32_t get_CPU_clock_speed(void) { - extern char _CPUClockSpeed[]; - return( (uint32_t)_CPUClockSpeed); + extern char _CPUClockSpeed[]; + return( (uint32_t)_CPUClockSpeed); } diff --git a/c/src/lib/libbsp/m68k/mrm332/ChangeLog b/c/src/lib/libbsp/m68k/mrm332/ChangeLog index a50fbfd70a..7a774eee58 100644 --- a/c/src/lib/libbsp/m68k/mrm332/ChangeLog +++ b/c/src/lib/libbsp/m68k/mrm332/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mrm332/startup/bspstart.c b/c/src/lib/libbsp/m68k/mrm332/startup/bspstart.c index f40fa2153d..caca5dfc5f 100644 --- a/c/src/lib/libbsp/m68k/mrm332/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mrm332/startup/bspstart.c @@ -74,7 +74,6 @@ void bsp_start( void ) Cpu_table.postdriver_hook = bsp_postdriver_hook; m68k_get_vbr( vbr ); - Cpu_table.interrupt_vector_table = vbr; BSP_Configuration.work_space_start = (void *) &_WorkspaceBase; diff --git a/c/src/lib/libbsp/m68k/mvme136/ChangeLog b/c/src/lib/libbsp/m68k/mvme136/ChangeLog index aa2e11a986..7b7d3a45cc 100644 --- a/c/src/lib/libbsp/m68k/mvme136/ChangeLog +++ b/c/src/lib/libbsp/m68k/mvme136/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c index 59e72c60db..a90b2fdc9c 100644 --- a/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mvme136/startup/bspstart.c @@ -80,7 +80,6 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_vector_table = (m68k_isr_entry *) &M68Kvec; Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; BSP_Configuration.work_space_start = (void *) &_WorkspaceBase; diff --git a/c/src/lib/libbsp/m68k/mvme147/ChangeLog b/c/src/lib/libbsp/m68k/mvme147/ChangeLog index 12ce1dc93f..478391a525 100644 --- a/c/src/lib/libbsp/m68k/mvme147/ChangeLog +++ b/c/src/lib/libbsp/m68k/mvme147/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mvme147/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme147/startup/bspstart.c index ea84a67fdb..5fd2e3bb8d 100644 --- a/c/src/lib/libbsp/m68k/mvme147/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mvme147/startup/bspstart.c @@ -87,7 +87,6 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_vector_table = (m68k_isr_entry *) &M68Kvec; Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; BSP_Configuration.work_space_start = (void *) &_WorkspaceBase; diff --git a/c/src/lib/libbsp/m68k/mvme147s/ChangeLog b/c/src/lib/libbsp/m68k/mvme147s/ChangeLog index 4b94ea0ea9..84211751a6 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/ChangeLog +++ b/c/src/lib/libbsp/m68k/mvme147s/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mvme147s/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme147s/startup/bspstart.c index b97c2e3501..1651cab018 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mvme147s/startup/bspstart.c @@ -146,7 +146,6 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_vector_table = (m68k_isr_entry *) &M68Kvec; Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; BSP_Configuration.work_space_start = (void *) &_WorkspaceBase; diff --git a/c/src/lib/libbsp/m68k/mvme162/ChangeLog b/c/src/lib/libbsp/m68k/mvme162/ChangeLog index 297dcb38c3..9998b4a184 100644 --- a/c/src/lib/libbsp/m68k/mvme162/ChangeLog +++ b/c/src/lib/libbsp/m68k/mvme162/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c index ec26fdf77e..dd000827d7 100644 --- a/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mvme162/startup/bspstart.c @@ -62,7 +62,7 @@ void bsp_start( void ) extern void *_RamSize; extern unsigned long _M68k_Ramsize; - _M68k_Ramsize = (unsigned long)&_RamSize; /* RAM size set in linker script */ + _M68k_Ramsize = (unsigned long)&_RamSize; /* RAM size set in linker script */ /* * 162Bug Vectors are at 0xFFE00000 @@ -104,7 +104,6 @@ void bsp_start( void ) Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_vector_table = (m68k_isr_entry *) &M68Kvec; Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; BSP_Configuration.work_space_start = (void *) &_WorkspaceBase; diff --git a/c/src/lib/libbsp/m68k/mvme167/ChangeLog b/c/src/lib/libbsp/m68k/mvme167/ChangeLog index 137c891045..69af094266 100644 --- a/c/src/lib/libbsp/m68k/mvme167/ChangeLog +++ b/c/src/lib/libbsp/m68k/mvme167/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c b/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c index 1d07234879..1626917a27 100644 --- a/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/mvme167/startup/bspstart.c @@ -127,7 +127,6 @@ void bsp_start( void ) /* We only use a hook to get the C library initialized. */ Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_vector_table = (m68k_isr_entry *) &M68Kvec; /* Must match value in start.s */ Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; diff --git a/c/src/lib/libbsp/m68k/ods68302/ChangeLog b/c/src/lib/libbsp/m68k/ods68302/ChangeLog index 7dc117bd1b..454558d1e2 100644 --- a/c/src/lib/libbsp/m68k/ods68302/ChangeLog +++ b/c/src/lib/libbsp/m68k/ods68302/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-05-03 Joel Sherrill * startup/linkcmds: Handle .data.* sections diff --git a/c/src/lib/libbsp/m68k/ods68302/startup/bspstart.c b/c/src/lib/libbsp/m68k/ods68302/startup/bspstart.c index 09c38108d0..d04d43f096 100644 --- a/c/src/lib/libbsp/m68k/ods68302/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/ods68302/startup/bspstart.c @@ -53,11 +53,7 @@ void bsp_start( void ) extern void *_RamSize; extern unsigned long _M68k_Ramsize; - _M68k_Ramsize = (unsigned long)&_RamSize; /* RAM size set in linker script */ - -#if 0 - Cpu_table.interrupt_vector_table = (mc68000_isr *) 0/*&M68Kvec*/; -#endif + _M68k_Ramsize = (unsigned long)&_RamSize; /* RAM size set in linker script */ /* * Need to "allocate" the memory for the RTEMS Workspace and diff --git a/c/src/lib/libbsp/m68k/uC5282/ChangeLog b/c/src/lib/libbsp/m68k/uC5282/ChangeLog index 8a0bf1117a..df45db074a 100644 --- a/c/src/lib/libbsp/m68k/uC5282/ChangeLog +++ b/c/src/lib/libbsp/m68k/uC5282/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Joel Sherrill + + * startup/bspstart.c: Eliminate the interrupt_vector_table field in the + m68k CPU Table since it is never read. + 2007-11-26 Eric Norum * network/network.c: Fix LED configuration to match uCDIMM. diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c index 9d8756829f..1cfc9c6602 100644 --- a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c @@ -276,57 +276,56 @@ void bsp_start( void ) extern void _BSP_Thread_Idle_body(void); Cpu_table.idle_task = _BSP_Thread_Idle_body; } - Cpu_table.interrupt_vector_table = (m68k_isr *)0; /* vectors at start of RAM */ - /* - * Invalidate the cache and disable it - */ - m68k_set_acr0(mcf5282_acr0_mode); - m68k_set_acr1(mcf5282_acr1_mode); - m68k_set_cacr_nop(MCF5XXX_CACR_CINV); + /* + * Invalidate the cache and disable it + */ + m68k_set_acr0(mcf5282_acr0_mode); + m68k_set_acr1(mcf5282_acr1_mode); + m68k_set_cacr_nop(MCF5XXX_CACR_CINV); - /* - * Cache SDRAM - */ - mcf5282_acr0_mode = MCF5XXX_ACR_AB((uint32_t)_RamBase) | - MCF5XXX_ACR_AM((uint32_t)_RamSize-1) | - MCF5XXX_ACR_EN | - MCF5XXX_ACR_BWE | - MCF5XXX_ACR_SM_IGNORE; - m68k_set_acr0(mcf5282_acr0_mode); + /* + * Cache SDRAM + */ + mcf5282_acr0_mode = MCF5XXX_ACR_AB((uint32_t)_RamBase) | + MCF5XXX_ACR_AM((uint32_t)_RamSize-1) | + MCF5XXX_ACR_EN | + MCF5XXX_ACR_BWE | + MCF5XXX_ACR_SM_IGNORE; + m68k_set_acr0(mcf5282_acr0_mode); - /* - * Enable the cache - */ - m68k_set_cacr(mcf5282_cacr_mode); + /* + * Enable the cache + */ + m68k_set_cacr(mcf5282_cacr_mode); - /* - * Set up CS* space (fake 'VME') - * Two A24/D16 spaces, supervisor data acces - */ - MCF5282_CS1_CSAR = MCF5282_CS_CSAR_BA(VME_ONE_BASE); - MCF5282_CS1_CSMR = MCF5282_CS_CSMR_BAM_16M | - MCF5282_CS_CSMR_CI | - MCF5282_CS_CSMR_SC | - MCF5282_CS_CSMR_UC | - MCF5282_CS_CSMR_UD | - MCF5282_CS_CSMR_V; - MCF5282_CS1_CSCR = MCF5282_CS_CSCR_PS_16; - MCF5282_CS2_CSAR = MCF5282_CS_CSAR_BA(VME_TWO_BASE); - MCF5282_CS2_CSMR = MCF5282_CS_CSMR_BAM_16M | - MCF5282_CS_CSMR_CI | - MCF5282_CS_CSMR_SC | - MCF5282_CS_CSMR_UC | - MCF5282_CS_CSMR_UD | - MCF5282_CS_CSMR_V; - MCF5282_CS2_CSCR = MCF5282_CS_CSCR_PS_16; - MCF5282_GPIO_PJPAR |= 0x06; + /* + * Set up CS* space (fake 'VME') + * Two A24/D16 spaces, supervisor data acces + */ + MCF5282_CS1_CSAR = MCF5282_CS_CSAR_BA(VME_ONE_BASE); + MCF5282_CS1_CSMR = MCF5282_CS_CSMR_BAM_16M | + MCF5282_CS_CSMR_CI | + MCF5282_CS_CSMR_SC | + MCF5282_CS_CSMR_UC | + MCF5282_CS_CSMR_UD | + MCF5282_CS_CSMR_V; + MCF5282_CS1_CSCR = MCF5282_CS_CSCR_PS_16; + MCF5282_CS2_CSAR = MCF5282_CS_CSAR_BA(VME_TWO_BASE); + MCF5282_CS2_CSMR = MCF5282_CS_CSMR_BAM_16M | + MCF5282_CS_CSMR_CI | + MCF5282_CS_CSMR_SC | + MCF5282_CS_CSMR_UC | + MCF5282_CS_CSMR_UD | + MCF5282_CS_CSMR_V; + MCF5282_CS2_CSCR = MCF5282_CS_CSCR_PS_16; + MCF5282_GPIO_PJPAR |= 0x06; } uint32_t bsp_get_CPU_clock_speed(void) { - extern char _CPUClockSpeed[]; - return( (uint32_t)_CPUClockSpeed); + extern char _CPUClockSpeed[]; + return( (uint32_t)_CPUClockSpeed); } /* @@ -335,19 +334,19 @@ uint32_t bsp_get_CPU_clock_speed(void) rtems_status_code bsp_allocate_interrupt(int level, int priority) { - static char used[7]; - rtems_interrupt_level l; - rtems_status_code ret = RTEMS_RESOURCE_IN_USE; - - if ((level < 1) || (level > 7) || (priority < 0) || (priority > 7)) - return RTEMS_INVALID_NUMBER; - rtems_interrupt_disable(l); - if ((used[level-1] & (1 << priority)) == 0) { - used[level-1] |= (1 << priority); - ret = RTEMS_SUCCESSFUL; - } - rtems_interrupt_enable(l); - return ret; + static char used[7]; + rtems_interrupt_level l; + rtems_status_code ret = RTEMS_RESOURCE_IN_USE; + + if ((level < 1) || (level > 7) || (priority < 0) || (priority > 7)) + return RTEMS_INVALID_NUMBER; + rtems_interrupt_disable(l); + if ((used[level-1] & (1 << priority)) == 0) { + used[level-1] |= (1 << priority); + ret = RTEMS_SUCCESSFUL; + } + rtems_interrupt_enable(l); + return ret; } /* @@ -361,6 +360,7 @@ do { \ } \ return (type)(ret); \ } while (0) + #define syscall_1(type,name,d1type,d1) \ type bsp_##name(d1type d1) \ { \ @@ -374,6 +374,7 @@ type bsp_##name(d1type d1) \ : "d0" ); \ syscall_return(type,ret); \ } + #define syscall_2(type,name,d1type,d1,d2type,d2) \ type bsp_##name(d1type d1, d2type d2) \ { \ @@ -389,6 +390,7 @@ type bsp_##name(d1type d1, d2type d2) \ : "d0" ); \ syscall_return(type,ret); \ } + #define syscall_3(type,name,d1type,d1,d2type,d2,d3type,d3) \ type bsp_##name(d1type d1, d2type d2, d3type d3) \ { \ @@ -406,6 +408,7 @@ type bsp_##name(d1type d1, d2type d2, d3type d3) \ : "d0" ); \ syscall_return(type,ret); \ } + #define SysCode_reset 0 /* reset */ #define SysCode_program 5 /* program flash memory */ #define SysCode_gethwaddr 12 /* get hardware address */ @@ -449,54 +452,54 @@ int BSP_disableVME_int_lvl(unsigned int level) { return 0; } #define FPGA_IRQ_INFO *((vuint16 *)(0x31000000 + 0xfffffe)) static struct handlerTab { - BSP_VME_ISR_t func; - void *arg; + BSP_VME_ISR_t func; + void *arg; } handlerTab[NVECTOR]; BSP_VME_ISR_t BSP_getVME_isr(unsigned long vector, void **pusrArg) { - if (vector >= NVECTOR) - return (BSP_VME_ISR_t)NULL; - if (pusrArg) - *pusrArg = handlerTab[vector].arg; - return handlerTab[vector].func; + if (vector >= NVECTOR) + return (BSP_VME_ISR_t)NULL; + if (pusrArg) + *pusrArg = handlerTab[vector].arg; + return handlerTab[vector].func; } static rtems_isr fpga_trampoline (rtems_vector_number v) { - /* - * Handle FPGA interrupts until all have been consumed - */ - int loopcount = 0; - while (((v = FPGA_IRQ_INFO) & 0x80) != 0) { - v = 192 + (v & 0x3f); - if (++loopcount >= 50) { - rtems_interrupt_level level; - rtems_interrupt_disable(level); - printk("\nTOO MANY FPGA INTERRUPTS (LAST WAS 0x%x) -- DISABLING ALL FPGA INTERRUPTS.\n", v & 0x3f); - MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1; - rtems_interrupt_enable(level); - return; - } - if (handlerTab[v].func) { - (*handlerTab[v].func)(handlerTab[v].arg, (unsigned long)v); - } - else { - rtems_interrupt_level level; - rtems_vector_number nv; - rtems_interrupt_disable(level); - printk("\nSPURIOUS FPGA INTERRUPT (0x%x).\n", v & 0x3f); - if ((((nv = FPGA_IRQ_INFO) & 0x80) != 0) - && ((nv & 0x3f) == (v & 0x3f))) { - printk("DISABLING ALL FPGA INTERRUPTS.\n"); - MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1; - } - rtems_interrupt_enable(level); - return; - } - } + /* + * Handle FPGA interrupts until all have been consumed + */ + int loopcount = 0; + while (((v = FPGA_IRQ_INFO) & 0x80) != 0) { + v = 192 + (v & 0x3f); + if (++loopcount >= 50) { + rtems_interrupt_level level; + rtems_interrupt_disable(level); + printk("\nTOO MANY FPGA INTERRUPTS (LAST WAS 0x%x) -- DISABLING ALL FPGA INTERRUPTS.\n", v & 0x3f); + MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1; + rtems_interrupt_enable(level); + return; + } + if (handlerTab[v].func) { + (*handlerTab[v].func)(handlerTab[v].arg, (unsigned long)v); + } + else { + rtems_interrupt_level level; + rtems_vector_number nv; + rtems_interrupt_disable(level); + printk("\nSPURIOUS FPGA INTERRUPT (0x%x).\n", v & 0x3f); + if ((((nv = FPGA_IRQ_INFO) & 0x80) != 0) + && ((nv & 0x3f) == (v & 0x3f))) { + printk("DISABLING ALL FPGA INTERRUPTS.\n"); + MCF5282_INTC0_IMRL |= MCF5282_INTC_IMRL_INT1; + } + rtems_interrupt_enable(level); + return; + } + } } static rtems_isr @@ -510,13 +513,13 @@ static void enable_irq(unsigned source) { rtems_interrupt_level level; - rtems_interrupt_disable(level); - if (source >= 32) - MCF5282_INTC0_IMRH &= ~(1 << (source - 32)); - else - MCF5282_INTC0_IMRL &= ~((1 << source) | - MCF5282_INTC_IMRL_MASKALL); - rtems_interrupt_enable(level); + rtems_interrupt_disable(level); + if (source >= 32) + MCF5282_INTC0_IMRH &= ~(1 << (source - 32)); + else + MCF5282_INTC0_IMRL &= ~((1 << source) | + MCF5282_INTC_IMRL_MASKALL); + rtems_interrupt_enable(level); } static void @@ -524,12 +527,12 @@ disable_irq(unsigned source) { rtems_interrupt_level level; - rtems_interrupt_disable(level); - if (source >= 32) - MCF5282_INTC0_IMRH |= (1 << (source - 32)); - else - MCF5282_INTC0_IMRL |= (1 << source); - rtems_interrupt_enable(level); + rtems_interrupt_disable(level); + if (source >= 32) + MCF5282_INTC0_IMRH |= (1 << (source - 32)); + else + MCF5282_INTC0_IMRL |= (1 << source); + rtems_interrupt_enable(level); } void @@ -537,9 +540,9 @@ BSP_enable_irq_at_pic(rtems_vector_number v) { int source = v - 64; - if ( source > 0 && source < 64 ) { - enable_irq(source); - } + if ( source > 0 && source < 64 ) { + enable_irq(source); + } } void @@ -547,9 +550,9 @@ BSP_disable_irq_at_pic(rtems_vector_number v) { int source = v - 64; - if ( source > 0 && source < 64 ) { - disable_irq(source); - } + if ( source > 0 && source < 64 ) { + disable_irq(source); + } } int @@ -557,12 +560,12 @@ BSP_irq_is_enabled_at_pic(rtems_vector_number v) { int source = v - 64; - if ( source > 0 && source < 64 ) { - return ! ((source >= 32) ? - MCF5282_INTC0_IMRH & (1 << (source - 32)) : - MCF5282_INTC0_IMRL & (1 << source)); - } - return -1; + if ( source > 0 && source < 64 ) { + return ! ((source >= 32) ? + MCF5282_INTC0_IMRH & (1 << (source - 32)) : + MCF5282_INTC0_IMRL & (1 << source)); + } + return -1; } @@ -597,123 +600,123 @@ rtems_interrupt_level level; *(&MCF5282_INTC0_ICR1 + (source - 1)) = MCF5282_INTC_ICR_IL(l) | MCF5282_INTC_ICR_IP(p); - enable_irq(source); + enable_irq(source); return 0; } } } return -1; } - return 0; + return 0; } int BSP_installVME_isr(unsigned long vector, BSP_VME_ISR_t handler, void *usrArg) { - rtems_isr_entry old_handler; - rtems_interrupt_level level; + rtems_isr_entry old_handler; + rtems_interrupt_level level; - /* - * Register the handler information - */ - if (vector >= NVECTOR) - return -1; - handlerTab[vector].func = handler; - handlerTab[vector].arg = usrArg; + /* + * Register the handler information + */ + if (vector >= NVECTOR) + return -1; + handlerTab[vector].func = handler; + handlerTab[vector].arg = usrArg; - /* - * If this is an external FPGA ('VME') vector set up the real IRQ. - */ - if ((vector >= 192) && (vector <= 255)) { - int i; - static volatile int setupDone; - rtems_interrupt_disable(level); - if (setupDone) { - rtems_interrupt_enable(level); - return 0; - } - MCF5282_EPORT_EPPAR &= ~FPGA_EPPAR; - MCF5282_EPORT_EPDDR &= ~FPGA_EPDDR; - MCF5282_EPORT_EPIER |= FPGA_EPIER; - MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT1 | - MCF5282_INTC_IMRL_MASKALL); - setupDone = 1; - handlerTab[vector].func = NULL; - handlerTab[vector].arg = NULL; - rtems_interrupt_catch(fpga_trampoline, FPGA_VECTOR, &old_handler); - i = init_intc0_bit(FPGA_VECTOR); - rtems_interrupt_enable(level); - return i; + /* + * If this is an external FPGA ('VME') vector set up the real IRQ. + */ + if ((vector >= 192) && (vector <= 255)) { + int i; + static volatile int setupDone; + rtems_interrupt_disable(level); + if (setupDone) { + rtems_interrupt_enable(level); + return 0; } + MCF5282_EPORT_EPPAR &= ~FPGA_EPPAR; + MCF5282_EPORT_EPDDR &= ~FPGA_EPDDR; + MCF5282_EPORT_EPIER |= FPGA_EPIER; + MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT1 | + MCF5282_INTC_IMRL_MASKALL); + setupDone = 1; + handlerTab[vector].func = NULL; + handlerTab[vector].arg = NULL; + rtems_interrupt_catch(fpga_trampoline, FPGA_VECTOR, &old_handler); + i = init_intc0_bit(FPGA_VECTOR); + rtems_interrupt_enable(level); + return i; + } - /* - * Make the connection between the interrupt and the local handler - */ - rtems_interrupt_catch(trampoline, vector, &old_handler); + /* + * Make the connection between the interrupt and the local handler + */ + rtems_interrupt_catch(trampoline, vector, &old_handler); - return init_intc0_bit(vector); + return init_intc0_bit(vector); } int BSP_removeVME_isr(unsigned long vector, BSP_VME_ISR_t handler, void *usrArg) { - if (vector >= NVECTOR) - return -1; - if ((handlerTab[vector].func != handler) + if (vector >= NVECTOR) + return -1; + if ((handlerTab[vector].func != handler) || (handlerTab[vector].arg != usrArg)) - return -1; - handlerTab[vector].func = (BSP_VME_ISR_t)NULL; - return 0; + return -1; + handlerTab[vector].func = (BSP_VME_ISR_t)NULL; + return 0; } int BSP_vme2local_adrs(unsigned am, unsigned long vmeaddr, unsigned long *plocaladdr) { - unsigned long offset; + unsigned long offset; - switch (am) { + switch (am) { default: return -1; case VME_AM_SUP_SHORT_IO: offset = 0x31FF0000; break; /* A16/D16 */ case VME_AM_STD_SUP_DATA: offset = 0x30000000; break; /* A24/D16 */ case VME_AM_EXT_SUP_DATA: offset = 0x31000000; break; /* A32/D32 */ - } - *plocaladdr = vmeaddr + offset; - return 0; + } + *plocaladdr = vmeaddr + offset; + return 0; } void rtems_bsp_reset_cause(char *buf, size_t capacity) { - int bit, rsr; - size_t i; - const char *cp; + int bit, rsr; + size_t i; + const char *cp; - if (buf == NULL) - return; - if (capacity) - buf[0] = '\0'; - rsr = MCF5282_RESET_RSR; - for (i = 0, bit = 0x80 ; bit != 0 ; bit >>= 1) { - if (rsr & bit) { - switch (bit) { - case MCF5282_RESET_RSR_LVD: cp = "Low voltage"; break; - case MCF5282_RESET_RSR_SOFT: cp = "Software reset"; break; - case MCF5282_RESET_RSR_WDR: cp = "Watchdog reset"; break; - case MCF5282_RESET_RSR_POR: cp = "Power-on reset"; break; - case MCF5282_RESET_RSR_EXT: cp = "External reset"; break; - case MCF5282_RESET_RSR_LOC: cp = "Loss of clock"; break; - case MCF5282_RESET_RSR_LOL: cp = "Loss of lock"; break; - default: cp = "??"; break; - } - i += snprintf(buf+i, capacity-i, cp); - if (i >= capacity) - break; - rsr &= ~bit; - if (rsr == 0) - break; - i += snprintf(buf+i, capacity-i, ", "); - if (i >= capacity) - break; - } + if (buf == NULL) + return; + if (capacity) + buf[0] = '\0'; + rsr = MCF5282_RESET_RSR; + for (i = 0, bit = 0x80 ; bit != 0 ; bit >>= 1) { + if (rsr & bit) { + switch (bit) { + case MCF5282_RESET_RSR_LVD: cp = "Low voltage"; break; + case MCF5282_RESET_RSR_SOFT: cp = "Software reset"; break; + case MCF5282_RESET_RSR_WDR: cp = "Watchdog reset"; break; + case MCF5282_RESET_RSR_POR: cp = "Power-on reset"; break; + case MCF5282_RESET_RSR_EXT: cp = "External reset"; break; + case MCF5282_RESET_RSR_LOC: cp = "Loss of clock"; break; + case MCF5282_RESET_RSR_LOL: cp = "Loss of lock"; break; + default: cp = "??"; break; + } + i += snprintf(buf+i, capacity-i, cp); + if (i >= capacity) + break; + rsr &= ~bit; + if (rsr == 0) + break; + i += snprintf(buf+i, capacity-i, ", "); + if (i >= capacity) + break; } + } } -- cgit v1.2.3