Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
card10
openocd
Commits
040e2542
Commit
040e2542
authored
Apr 24, 2008
by
ntfreak
Browse files
- added svn props for newly added files
git-svn-id:
svn://svn.berlios.de/openocd/trunk@615
b42882b7-edfa-0310-969c-e2dbd0fdcd60
parent
6ef27f45
Changes
18
Expand all
Hide whitespace changes
Inline
Side-by-side
src/flash/ocl.c
View file @
040e2542
This diff is collapsed.
Click to expand it.
src/flash/ocl.h
View file @
040e2542
/***************************************************************************
* Copyright (C) 2007 by Pavel Chromy *
* chromy@asix.cz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef OCL_H
#define OCL_H
/* command/response mask */
#define OCL_CMD_MASK 0xFFFF0000L
/* commads */
#define OCL_FLASH_BLOCK 0x0CFB0000L
#define OCL_ERASE_BLOCK 0x0CEB0000L
#define OCL_ERASE_ALL 0x0CEA0000L
#define OCL_PROBE 0x0CBE0000L
/* responses */
#define OCL_CMD_DONE 0x0ACD0000L
#define OCL_CMD_ERR 0x0ACE0000L
#define OCL_CHKS_FAIL 0x0ACF0000L
#define OCL_BUFF_OVER 0x0AB00000L
#define OCL_CHKS_INIT 0xC100CD0CL
#endif
/* OCL_H */
/***************************************************************************
* Copyright (C) 2007 by Pavel Chromy *
* chromy@asix.cz *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#ifndef OCL_H
#define OCL_H
/* command/response mask */
#define OCL_CMD_MASK 0xFFFF0000L
/* commads */
#define OCL_FLASH_BLOCK 0x0CFB0000L
#define OCL_ERASE_BLOCK 0x0CEB0000L
#define OCL_ERASE_ALL 0x0CEA0000L
#define OCL_PROBE 0x0CBE0000L
/* responses */
#define OCL_CMD_DONE 0x0ACD0000L
#define OCL_CMD_ERR 0x0ACE0000L
#define OCL_CHKS_FAIL 0x0ACF0000L
#define OCL_BUFF_OVER 0x0AB00000L
#define OCL_CHKS_INIT 0xC100CD0CL
#endif
/* OCL_H */
src/flash/ocl/at91sam7x/at91sam7x_ocl_flash.script
View file @
040e2542
soft_reset_halt
load_image at91sam7x_ocl.bin 0x200000
resume 0x200000
flash probe 0
soft_reset_halt
load_image at91sam7x_ocl.bin 0x200000
resume 0x200000
flash probe 0
src/flash/ocl/at91sam7x/at91sam7x_ram.ld
View file @
040e2542
/****************************************************************************
* Copyright (c) 2006 by Michael Fischer. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the author nor the names of its contributors may
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
****************************************************************************
*
* History:
*
* 30.03.06 mifi First Version
****************************************************************************/
ENTRY(ResetHandler)
SEARCH_DIR(.)
/*
* Define stack size here
*/
FIQ_STACK_SIZE = 0x0100;
IRQ_STACK_SIZE = 0x0100;
ABT_STACK_SIZE = 0x0100;
UND_STACK_SIZE = 0x0100;
SVC_STACK_SIZE = 0x0100;
MEMORY
{
ram : org = 0x00200000, len = 64k
}
/*
* Do not change the next code
*/
SECTIONS
{
.text :
{
*(.vectors);
. = ALIGN(4);
*(.init);
. = ALIGN(4);
*(.text);
. = ALIGN(4);
*(.rodata);
. = ALIGN(4);
*(.rodata*);
. = ALIGN(4);
*(.glue_7t);
. = ALIGN(4);
*(.glue_7);
. = ALIGN(4);
etext = .;
} > ram
.data :
{
PROVIDE (__data_start = .);
*(.data)
. = ALIGN(4);
edata = .;
_edata = .;
PROVIDE (__data_end = .);
} > ram
.bss :
{
PROVIDE (__bss_start = .);
*(.bss)
*(COMMON)
. = ALIGN(4);
PROVIDE (__bss_end = .);
. = ALIGN(256);
PROVIDE (__stack_start = .);
PROVIDE (__stack_fiq_start = .);
. += FIQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_fiq_end = .);
PROVIDE (__stack_irq_start = .);
. += IRQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_irq_end = .);
PROVIDE (__stack_abt_start = .);
. += ABT_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_abt_end = .);
PROVIDE (__stack_und_start = .);
. += UND_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_und_end = .);
PROVIDE (__stack_svc_start = .);
. += SVC_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_svc_end = .);
PROVIDE (__stack_end = .);
PROVIDE (__heap_start = .);
} > ram
}
/*** EOF ***/
/****************************************************************************
* Copyright (c) 2006 by Michael Fischer. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the author nor the names of its contributors may
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
****************************************************************************
*
* History:
*
* 30.03.06 mifi First Version
****************************************************************************/
ENTRY(ResetHandler)
SEARCH_DIR(.)
/*
* Define stack size here
*/
FIQ_STACK_SIZE = 0x0100;
IRQ_STACK_SIZE = 0x0100;
ABT_STACK_SIZE = 0x0100;
UND_STACK_SIZE = 0x0100;
SVC_STACK_SIZE = 0x0100;
MEMORY
{
ram : org = 0x00200000, len = 64k
}
/*
* Do not change the next code
*/
SECTIONS
{
.text :
{
*(.vectors);
. = ALIGN(4);
*(.init);
. = ALIGN(4);
*(.text);
. = ALIGN(4);
*(.rodata);
. = ALIGN(4);
*(.rodata*);
. = ALIGN(4);
*(.glue_7t);
. = ALIGN(4);
*(.glue_7);
. = ALIGN(4);
etext = .;
} > ram
.data :
{
PROVIDE (__data_start = .);
*(.data)
. = ALIGN(4);
edata = .;
_edata = .;
PROVIDE (__data_end = .);
} > ram
.bss :
{
PROVIDE (__bss_start = .);
*(.bss)
*(COMMON)
. = ALIGN(4);
PROVIDE (__bss_end = .);
. = ALIGN(256);
PROVIDE (__stack_start = .);
PROVIDE (__stack_fiq_start = .);
. += FIQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_fiq_end = .);
PROVIDE (__stack_irq_start = .);
. += IRQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_irq_end = .);
PROVIDE (__stack_abt_start = .);
. += ABT_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_abt_end = .);
PROVIDE (__stack_und_start = .);
. += UND_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_und_end = .);
PROVIDE (__stack_svc_start = .);
. += SVC_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_svc_end = .);
PROVIDE (__stack_end = .);
PROVIDE (__heap_start = .);
} > ram
}
/*** EOF ***/
src/flash/ocl/at91sam7x/crt.s
View file @
040e2542
/****************************************************************************
*
Copyright
(
c
)
2006
by
Michael
Fischer
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
*
are
met
:
*
*
1.
Redistributions
of
source
code
must
retain
the
above
copyright
*
notice
,
this
list
of
conditions
and
the
following
disclaimer
.
*
2.
Redistributions
in
binary
form
must
reproduce
the
above
copyright
*
notice
,
this
list
of
conditions
and
the
following
disclaimer
in
the
*
documentation
and
/
or
other
materials
provided
with
the
distribution
.
*
3.
Neither
the
name
of
the
author
nor
the
names
of
its
contributors
may
*
be
used
to
endorse
or
promote
products
derived
from
this
software
*
without
specific
prior
written
permission
.
*
*
THIS
SOFTWARE
IS
PROVIDED
BY
THE
COPYRIGHT
HOLDERS
AND
CONTRIBUTORS
*
"
AS
IS
" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
*
LIMITED
TO
,
THE
IMPLIED
WARRANTIES
OF
MERCHANTABILITY
AND
FITNESS
*
FOR
A
PARTICULAR
PURPOSE
ARE
DISCLAIMED
.
IN
NO
EVENT
SHALL
*
THE
COPYRIGHT
OWNER
OR
CONTRIBUTORS
BE
LIABLE
FOR
ANY
DIRECT
,
INDIRECT
,
*
INCIDENTAL
,
SPECIAL
,
EXEMPLARY
,
OR
CONSEQUENTIAL
DAMAGES
(
INCLUDING
,
*
BUT
NOT
LIMITED
TO
,
PROCUREMENT
OF
SUBSTITUTE
GOODS
OR
SERVICES
; LOSS
*
OF
USE
,
DATA
,
OR
PROFITS
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
*
AND
ON
ANY
THEORY
OF
LIABILITY
,
WHETHER
IN
CONTRACT
,
STRICT
LIABILITY
,
*
OR
TORT
(
INCLUDING
NEGLIGENCE
OR
OTHERWISE
)
ARISING
IN
ANY
WAY
OUT
OF
*
THE
USE
OF
THIS
SOFTWARE
,
EVEN
IF
ADVISED
OF
THE
POSSIBILITY
OF
*
SUCH
DAMAGE
.
*
****************************************************************************
*
*
History
:
*
*
18.12.06
mifi
First
Version
*
The
hardware
initialization
is
based
on
the
startup
file
*
crtat91sam7x256_rom
.
S
from
NutOS
4
.2.1.
*
Therefore
partial
copyright
by
egnite
Software
GmbH
.
****************************************************************************/
/*
*
Some
defines
for
the
program
status
registers
*/
ARM_MODE_USER
=
0x10
/*
Normal
User
Mode
*/
ARM_MODE_FIQ
=
0x11
/*
FIQ
Fast
Interrupts
Mode
*/
ARM_MODE_IRQ
=
0x12
/*
IRQ
Standard
Interrupts
Mode
*/
ARM_MODE_SVC
=
0x13
/*
Supervisor
Interrupts
Mode
*/
ARM_MODE_ABORT
=
0x17
/*
Abort
Processing
memory
Faults
Mode
*/
ARM_MODE_UNDEF
=
0x1B
/*
Undefined
Instructions
Mode
*/
ARM_MODE_SYS
=
0x1F
/*
System
Running
in
Priviledged
Operating
Mode
*/
ARM_MODE_MASK
=
0x1F
I_BIT
=
0x80
/*
disable
IRQ
when
I
bit
is
set
*/
F_BIT
=
0x40
/*
disable
IRQ
when
I
bit
is
set
*/
/*
*
Register
Base
Address
*/
AIC_BASE
=
0xFFFFF000
AIC_EOICR_OFF
=
0x130
AIC_IDCR_OFF
=
0x124
RSTC_MR
=
0xFFFFFD08
RSTC_KEY
=
0xA5000000
RSTC_URSTEN
=
0x00000001
WDT_BASE
=
0xFFFFFD40
WDT_MR_OFF
=
0x00000004
WDT_WDDIS
=
0x00008000
MC_BASE
=
0xFFFFFF00
MC_FMR_OFF
=
0x00000060
MC_FWS_1FWS
=
0x00480100
.
section
.
vectors
,
"ax"
.
code
32
/****************************************************************************/
/*
Vector
table
and
reset
entry
*/
/****************************************************************************/
_vectors
:
ldr
pc
,
ResetAddr
/*
Reset
*/
ldr
pc
,
UndefAddr
/*
Undefined
instruction
*/
ldr
pc
,
SWIAddr
/*
Software
interrupt
*/
ldr
pc
,
PAbortAddr
/*
Prefetch
abort
*/
ldr
pc
,
DAbortAddr
/*
Data
abort
*/
ldr
pc
,
ReservedAddr
/*
Reserved
*/
ldr
pc
,
IRQAddr
/*
IRQ
interrupt
*/
ldr
pc
,
FIQAddr
/*
FIQ
interrupt
*/
ResetAddr
:
.
word
ResetHandler
UndefAddr
:
.
word
UndefHandler
SWIAddr
:
.
word
SWIHandler
PAbortAddr
:
.
word
PAbortHandler
DAbortAddr
:
.
word
DAbortHandler
ReservedAddr
:
.
word
0
IRQAddr
:
.
word
IRQHandler
FIQAddr
:
.
word
FIQHandler
.
ltorg
.
section
.
init
,
"ax"
.
code
32
.
global
ResetHandler
.
global
ExitFunction
.
extern
main
/****************************************************************************/
/*
Reset
handler
*/
/****************************************************************************/
ResetHandler
:
/*
*
The
watchdog
is
enabled
after
processor
reset
.
Disable
it
.
*/
ldr
r1
,
=
WDT_BASE
ldr
r0
,
=
WDT_WDDIS
str
r0
,
[
r1
,
#
WDT_MR_OFF
]
/*
*
Enable
user
reset
:
assertion
length
programmed
to
1
ms
*/
ldr
r0
,
=(
RSTC_KEY
| RSTC_URSTEN |
(
4
<<
8
))
ldr
r1
,
=
RSTC_MR
str
r0
,
[
r1
,
#
0
]
/*
*
Use
2
cycles
for
flash
access
.
*/
ldr
r1
,
=
MC_BASE
ldr
r0
,
=
MC_FWS_1FWS
str
r0
,
[
r1
,
#
MC_FMR_OFF
]
/*
*
Disable
all
interrupts
.
Useful
for
debugging
w
/
o
target
reset
.
*/
ldr
r1
,
=
AIC_BASE
mvn
r0
,
#
0
str
r0
,
[
r1
,
#
AIC_EOICR_OFF
]
str
r0
,
[
r1
,
#
AIC_IDCR_OFF
]
/*
*
Setup
a
stack
for
each
mode
*/
msr
CPSR_c
,
#
ARM_MODE_UNDEF
| I_BIT |
F_BIT
/*
Undefined
Instruction
Mode
*/
ldr
sp
,
=
__stack_und_end
msr
CPSR_c
,
#
ARM_MODE_ABORT
| I_BIT |
F_BIT
/*
Abort
Mode
*/
ldr
sp
,
=
__stack_abt_end
msr
CPSR_c
,
#
ARM_MODE_FIQ
| I_BIT |
F_BIT
/*
FIQ
Mode
*/
ldr
sp
,
=
__stack_fiq_end
msr
CPSR_c
,
#
ARM_MODE_IRQ
| I_BIT |
F_BIT
/*
IRQ
Mode
*/
ldr
sp
,
=
__stack_irq_end
msr
CPSR_c
,
#
ARM_MODE_SVC
| I_BIT |
F_BIT
/*
Supervisor
Mode
*/
ldr
sp
,
=
__stack_svc_end
/*
*
Clear
.
bss
section
*/
ldr
r1
,
=
__bss_start
ldr
r2
,
=
__bss_end
ldr
r3
,
=
0
bss_clear_loop
:
cmp
r1
,
r2
strne
r3
,
[
r1
],
#+
4
bne
bss_clear_loop
/*
*
Jump
to
main
*/
mrs
r0
,
cpsr
bic
r0
,
r0
,
#
I_BIT
|
F_BIT
/*
Enable
FIQ
and
IRQ
interrupt
*/
msr
cpsr
,
r0
mov
r0
,
#
0
/*
No
arguments
*/
mov
r1
,
#
0
/*
No
arguments
*/
ldr
r2
,
=
main
mov
lr
,
pc
bx
r2
/*
And
jump
...
*/
ExitFunction
:
nop
nop
nop
b
ExitFunction
/****************************************************************************/
/*
Default
interrupt
handler
*/
/****************************************************************************/
UndefHandler
:
b
UndefHandler
SWIHandler
:
b
SWIHandler
PAbortHandler
:
b
PAbortHandler
DAbortHandler
:
b
DAbortHandler
IRQHandler
:
b
IRQHandler
FIQHandler
:
b
FIQHandler
.
weak
ExitFunction
.
weak
UndefHandler
,
PAbortHandler
,
DAbortHandler
.
weak
IRQHandler
,
FIQHandler
.
ltorg
/***
EOF
***/
Index
:
src
/
flash
/
ocl
/
at91sam7x
/
dcc.c
/****************************************************************************
*
Copyright
(
c
)
2006
by
Michael
Fischer
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
*
are
met
:
*
*
1.
Redistributions
of
source
code
must
retain
the
above
copyright
*
notice
,
this
list
of
conditions
and
the
following
disclaimer
.
*
2.
Redistributions
in
binary
form
must
reproduce
the
above
copyright
*
notice
,
this
list
of
conditions
and
the
following
disclaimer
in
the
*
documentation
and
/
or
other
materials
provided
with
the
distribution
.
*
3.
Neither
the
name
of
the
author
nor
the
names
of
its
contributors
may
*
be
used
to
endorse
or
promote
products
derived
from
this
software
*
without
specific
prior
written
permission
.
*
*
THIS
SOFTWARE
IS
PROVIDED
BY
THE
COPYRIGHT
HOLDERS
AND
CONTRIBUTORS
*
"
AS
IS
" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
*
LIMITED
TO
,
THE
IMPLIED
WARRANTIES
OF
MERCHANTABILITY
AND
FITNESS
*
FOR
A
PARTICULAR
PURPOSE
ARE
DISCLAIMED
.
IN
NO
EVENT
SHALL
*
THE
COPYRIGHT
OWNER
OR
CONTRIBUTORS
BE
LIABLE
FOR
ANY
DIRECT
,
INDIRECT
,
*
INCIDENTAL
,
SPECIAL
,
EXEMPLARY
,
OR
CONSEQUENTIAL
DAMAGES
(
INCLUDING
,
*
BUT
NOT
LIMITED
TO
,
PROCUREMENT
OF
SUBSTITUTE
GOODS
OR
SERVICES
; LOSS
*
OF
USE
,
DATA
,
OR
PROFITS
; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
*
AND
ON
ANY
THEORY
OF
LIABILITY
,
WHETHER
IN
CONTRACT
,
STRICT
LIABILITY
,
*
OR
TORT
(
INCLUDING
NEGLIGENCE
OR
OTHERWISE
)
ARISING
IN
ANY
WAY
OUT
OF
*
THE
USE
OF
THIS
SOFTWARE
,
EVEN
IF
ADVISED
OF
THE
POSSIBILITY
OF
*
SUCH
DAMAGE
.
*
****************************************************************************