Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
47050253
Commit
47050253
authored
Jun 13, 2003
by
Paul Mundt
Committed by
Linus Torvalds
Jun 13, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] toplevel SH update
This gets the toplevel arch/sh stuff in sync with the current SH 2.5 tree.
parent
57069b8f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
538 additions
and
286 deletions
+538
-286
arch/sh/Kconfig
arch/sh/Kconfig
+408
-200
arch/sh/Makefile
arch/sh/Makefile
+85
-39
arch/sh/boot/compressed/Makefile
arch/sh/boot/compressed/Makefile
+18
-24
arch/sh/vmlinux.lds.S
arch/sh/vmlinux.lds.S
+27
-23
No files found.
arch/sh/Kconfig
View file @
47050253
...
@@ -12,11 +12,7 @@ config SUPERH
...
@@ -12,11 +12,7 @@ config SUPERH
The
SuperH
is
a
RISC
processor
targeted
for
use
in
embedded
systems
The
SuperH
is
a
RISC
processor
targeted
for
use
in
embedded
systems
and
consumer
electronics
;
it
was
also
used
in
the
Sega
Dreamcast
and
consumer
electronics
;
it
was
also
used
in
the
Sega
Dreamcast
gaming
console
.
The
SuperH
port
has
a
home
page
at
gaming
console
.
The
SuperH
port
has
a
home
page
at
<
http
://
www
.
sh
-
linux
.
org
/>.
<
http
://
www
.
linux
-
sh
.
org
/>.
config
MMU
bool
default
y
config
UID16
config
UID16
bool
bool
...
@@ -33,60 +29,18 @@ config GENERIC_ISA_DMA
...
@@ -33,60 +29,18 @@ config GENERIC_ISA_DMA
bool
bool
default
y
default
y
config
VARIABLE_CLOCK_TICK_RATE
bool
default
y
source
"init/Kconfig"
source
"init/Kconfig"
menu
"
Processor type and features
"
menu
"
System type
"
choice
choice
prompt
"SuperH system type"
prompt
"SuperH system type"
default
SH_GENERIC
default
SH_UNKNOWN
config
SH_GENERIC
bool
"Generic"
---
help
---
Select
Generic
if
configuring
for
a
generic
SuperH
system
.
The
"generic"
option
compiles
in
*
all
*
the
possible
hardware
support
and
relies
on
the
sh_mv
=
kernel
commandline
option
to
choose
at
runtime
which
routines
to
use
.
"MV"
stands
for
"machine vector"
;
each
of
the
machines
below
is
described
by
a
machine
vector
.
Select
SolutionEngine
if
configuring
for
a
Hitachi
SH7709
or
SH7750
/
7750
S
evalutation
board
.
Select
Overdrive
if
configuring
for
a
ST407750
Overdrive
board
.
More
information
at
<
http
://
linuxsh
.
sourceforge
.
net
/
docs
/
7750
overdrive
.
php3
>.
Select
HP620
if
configuring
for
a
HP
Jornada
HP620
.
More
information
(
hardware
only
)
at
<
http
://
www
.
hp
.
com
/
jornada
/>.
Select
HP680
if
configuring
for
a
HP
Jornada
HP680
.
More
information
(
hardware
only
)
at
<
http
://
www
.
hp
.
com
/
jornada
/
products
/
680
/>.
Select
HP690
if
configuring
for
a
HP
Jornada
HP690
.
More
information
(
hardware
only
)
at
<
http
://
www
.
hp
.
com
/
jornada
/
products
/
680
/>.
Select
CqREEK
if
configuring
for
a
CqREEK
SH7708
or
SH7750
.
More
information
at
<
http
://
sources
.
redhat
.
com
/
ecos
/
hardware
.
html
#
SuperH
>.
Select
DMIDA
if
configuring
for
a
DataMyte
4000
Industrial
Digital
Assistant
.
More
information
at
<
http
://
www
.
dmida
.
com
/>.
Select
EC3104
if
configuring
for
a
system
with
an
Eclipse
International
EC3104
chip
,
e
.
g
.
the
Harris
AD2000
or
Compaq
Aero
8000.
Select
Dreamcast
if
configuring
for
a
SEGA
Dreamcast
.
More
information
at
<
http
://
www
.
m17n
.
org
/
linux
-
sh
/
dreamcast
/>.
There
is
a
Dreamcast
project
is
at
<
http
://
linuxdc
.
sourceforge
.
net
/>.
Select
BareCPU
if
you
know
what
this
means
,
and
it
applies
to
your
system
.
config
SH_SOLUTION_ENGINE
config
SH_SOLUTION_ENGINE
bool
"SolutionEngine"
bool
"SolutionEngine"
...
@@ -146,6 +100,9 @@ config SH_EC3104
...
@@ -146,6 +100,9 @@ config SH_EC3104
Select
EC3104
if
configuring
for
a
system
with
an
Eclipse
Select
EC3104
if
configuring
for
a
system
with
an
Eclipse
International
EC3104
chip
,
e
.
g
.
the
Harris
AD2000
.
International
EC3104
chip
,
e
.
g
.
the
Harris
AD2000
.
config
SH_SATURN
bool
"Saturn"
config
SH_DREAMCAST
config
SH_DREAMCAST
bool
"Dreamcast"
bool
"Dreamcast"
help
help
...
@@ -162,10 +119,19 @@ config SH_BIGSUR
...
@@ -162,10 +119,19 @@ config SH_BIGSUR
config
SH_SH2000
config
SH_SH2000
bool
"SH2000"
bool
"SH2000"
help
SH
-
2000
is
a
single
-
board
computer
based
around
SH7709A
chip
intended
for
embedded
applications
.
It
has
an
Ethernet
interface
(
CS8900A
),
direct
connected
Compact
Flash
socket
,
three
serial
ports
and
PC
-
104
bus
.
More
information
at
<
http
://
sh2000
.
sh
-
linux
.
org
>.
config
SH_ADX
config
SH_ADX
bool
"ADX"
bool
"ADX"
config
SH_MPC1211
bool
"MPC1211"
config
SH_UNKNOWN
config
SH_UNKNOWN
bool
"BareCPU"
bool
"BareCPU"
help
help
...
@@ -180,6 +146,119 @@ config SH_UNKNOWN
...
@@ -180,6 +146,119 @@ config SH_UNKNOWN
endchoice
endchoice
config MMU
bool "Support for memory management hardware"
depends on !CPU_SH2
default y
help
Early SH processors (such as the SH7604) lack an MMU. In order to
boot on these systems, this option must not be set.
On other systems (such as the SH-3 and 4) where an MMU exists,
turning this off will boot the kernel on these machines with the
MMU implicitly switched off.
config CMDLINE_BOOL
bool "Default bootloader kernel arguments"
config CMDLINE
string "Initial kernel command string"
depends on CMDLINE_BOOL
default "console=ttySC1,115200"
# Platform-specific memory start and size definitions
config MEMORY_START
hex "Physical memory start address" if !MEMORY_SET || MEMORY_OVERRIDE
default "08000000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || SH_MPC1211
default "0c000000" if !MEMORY_OVERRIDE && (SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE)
---help---
Computers built with Hitachi SuperH processors always
map the ROM starting at address zero. But the processor
does not specify the range that RAM takes.
The physical memory (RAM) start address will be automatically
set to 08000000, unless you selected one of the following
processor types: SolutionEngine, Overdrive, HP620, HP680, HP690,
in which case the start address will be set to 0c000000.
Tweak this only when porting to a new machine which is not already
known by the config system. Changing it from the known correct
value on any of the known systems will only lead to disaster.
config MEMORY_SIZE
hex "Physical memory size" if !MEMORY_SET || MEMORY_OVERRIDE
default "00400000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || !MEMORY_OVERRIDE && (SH_HP600 || SH_BIGSUR || SH_SH2000)
default "01000000" if !MEMORY_OVERRIDE && SH_DREAMCAST
default "04000000" if !MEMORY_OVERRIDE && SH_7751_SOLUTION_ENGINE
default "02000000" if !MEMORY_OVERRIDE && SH_SOLUTION_ENGINE
default "08000000" if SH_MPC1211
help
This sets the default memory size assumed by your SH kernel. It can
be overridden as normal by the '
mem
=
' argument on the kernel command
line. If unsure, consult your board specifications or just leave it
as 0x00400000 which was the default value before this became
configurable.
config MEMORY_SET
bool
depends on !MEMORY_OVERRIDE && (SH_MPC1211 || SH_ADX || SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE)
default y
help
This is an option about which you will never be asked a question.
Therefore, I conclude that you do not exist - go away.
There is a grue here.
# If none of the above have set memory start/size, ask the user.
config MEMORY_OVERRIDE
bool "Override default load address and memory size"
# XXX: break these out into the board-specific configs below
config CF_ENABLER
bool "Compact Flash Enabler support"
depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701
---help---
Compact Flash is a small, removable mass storage device introduced
in 1994 originally as a PCMCIA device. If you say `Y'
here
,
you
compile
in
support
for
Compact
Flash
devices
directly
connected
to
a
SuperH
processor
.
A
Compact
Flash
FAQ
is
available
at
<
http
://
www
.
compactflash
.
org
/
faqs
/
faq
.
htm
>.
If
your
board
has
"Directly Connected"
CompactFlash
at
area
5
or
6
,
you
may
want
to
enable
this
option
.
Then
,
you
can
use
CF
as
primary
IDE
drive
(
only
tested
for
SanDisk
).
If
in
doubt
,
select
'N'
.
choice
prompt
"Compact Flash Connection Area"
depends
on
CF_ENABLER
default
CF_AREA6
config
CF_AREA5
bool
"Area5"
help
If
your
board
has
"Directly Connected"
CompactFlash
,
You
should
select
the
area
where
your
CF
is
connected
to
.
-
"Area5"
if
CompactFlash
is
connected
to
Area
5
(
0x14000000
)
-
"Area6"
if
it
is
connected
to
Area
6
(
0x18000000
)
"Area6"
will
work
for
most
boards
.
For
ADX
,
select
"Area5"
.
config
CF_AREA6
bool
"Area6"
endchoice
config
CF_BASE_ADDR
hex
depends
on
CF_ENABLER
default
"b8000000"
if
CF_AREA6
default
"b4000000"
if
CF_AREA5
endmenu
#
The
SH7750
RTC
module
is
disabled
in
the
Dreamcast
#
The
SH7750
RTC
module
is
disabled
in
the
Dreamcast
config
SH_RTC
config
SH_RTC
bool
bool
...
@@ -191,21 +270,50 @@ config SH_RTC
...
@@ -191,21 +270,50 @@ config SH_RTC
If unsure, say N.
If unsure, say N.
# This is also board-specific
config PCI_AUTO
bool
config SH_HP600
config SH_HP600
bool
bool
depends on SH_HP620 || SH_HP680 || SH_HP690
depends on SH_HP620 || SH_HP680 || SH_HP690
default y
default y
config DISCONTIGMEM
bool
depends on SH_HP690
default y
help
Say Y to upport efficient handling of discontiguous physical memory,
for architectures which are either NUMA (Non-Uniform Memory Access)
or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more.
menu "Processor type and features"
#
# Ick, get rid of all this CPU_SUBTYPE nonsense. Just probe it, fill in
# cpu_data, and leave it alone. (Feasible for SH-4 at least, and some
# SH-3). ++paulm
#
choice
choice
prompt "Processor type"
prompt "Processor type"
default CPU_SUBTYPE_SH7708
default CPU_SUBTYPE_SH7708
config CPU_SUBTYPE_SH7604
bool "SH7604"
help
Select SH7604 if you have SH7604
config CPU_SUBTYPE_SH7707
config CPU_SUBTYPE_SH7707
bool "SH7707"
bool "SH7707"
---help---
---help---
Select the type of SuperH processor you have. This information is
Select the type of SuperH processor you have. This information is
used for optimizing and configuration purposes.
used for optimizing and configuration purposes.
Select SH7604 if you have a SH-2 CPU.
Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU.
Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or
...
@@ -237,174 +345,188 @@ config CPU_SUBTYPE_SH7750
...
@@ -237,174 +345,188 @@ config CPU_SUBTYPE_SH7750
config CPU_SUBTYPE_SH7751
config CPU_SUBTYPE_SH7751
bool "SH7751"
bool "SH7751"
help
Select SH7750 if you have a 166 Mhz SH-4 HD6417751 CPU.
config CPU_SUBTYPE_ST40STB1
config CPU_SUBTYPE_ST40STB1
bool "ST40STB1"
bool "ST40STB1"
help
Select ST40STB1 if you have a ST40STB1 CPU.
endchoice
endchoice
config CPU_SH2
bool
depends on CPU_SUBTYPE_SH7604
default y
config CPU_SH3
config CPU_SH3
bool
bool
depends
on
CPU_SUBTYPE_SH7709
||
CPU_SUBTYPE_SH7708
||
CPU_SUBTYPE_SH7707
depends on
!CPU_SH2 && (CPU_SUBTYPE_SH7707 || CPU_SUBTYPE_SH7708 || CPU_SUBTYPE_SH7709)
default y
default y
config CPU_SH4
config CPU_SH4
bool
bool
depends
on
CPU_SUBTYPE_ST40STB1
||
CPU_SUBTYPE_SH7751
||
CPU_SUBTYPE_SH7750
depends on
!CPU_SH3 && !CPU_SH2 && (CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_ST40STB1)
default y
default y
config
CPU_LITTLE_ENDIAN
config ZERO_PAGE_OFFSET
bool
"Little Endian"
hex "Zero page offset"
default "00001000" if !SH_MPC1211
default "00004000" if SH_MPC1211
help
help
Some
MIPS
machines
can
be
configured
for
either
little
or
big
endian
This sets the default offset of zero page.
byte
order
.
These
modes
require
different
kernels
.
Say
Y
if
your
machine
is
little
endian
,
N
if
it
's a big endian machine.
# Platform-specific memory start and size definitions
config MEMORY_START
hex "Physical memory start address" if !MEMORY_SET
default "08000000" if !MEMORY_SET || SH_ADX || CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default "0c000000" if SH_HP600 || SH_BIGSUR || SH_DREAMCAST || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE
---help---
Computers built with Hitachi SuperH processors always
map the ROM starting at address zero. But the processor
does not specify the range that RAM takes.
The physical memory (RAM) start address will be automatically
# XXX: needs to lose subtype for system type
set to 08000000, unless you selected one of the following
config ST40_LMI_MEMORY
processor types: SolutionEngine, Overdrive, HP620, HP680, HP690,
bool "Memory on LMI"
in which case the start address will be set to 0c000000.
depends on CPU_SUBTYPE_ST40STB1
Tweak this only when porting to a new machine which is not already
config MEMORY_START
known by the config system. Changing it from the known correct
hex
value on any of the known systems will only lead to disaster.
depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default "08000000"
config MEMORY_SIZE
config MEMORY_SIZE
hex "Physical memory size" if !MEMORY_SET
hex
default "00400000" if !MEMORY_SET || SH_ADX || CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY || SH_HP600 || SH_BIGSUR || SH_DREAMCAST || SH_SH2000
depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default "04000000" if SH_7751_SOLUTION_ENGINE
default "00400000"
default "02000000" if SH_SOLUTION_ENGINE
help
This sets the default memory size assumed by your SH kernel. It can
be overridden as normal by the '
mem
=
' argument on the kernel command
line. If unsure, consult your board specifications or just leave it
as 0x00400000 which was the default value before this became
configurable.
config MEMORY_SET
config MEMORY_SET
bool
bool
depends on
SH_ADX || CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY || SH_HP600 || SH_BIGSUR || SH_DREAMCAST || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE
depends on
CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY
default y
default y
config CPU_LITTLE_ENDIAN
bool "Little Endian"
help
help
This is an option about which you will never be asked a question.
Some SuperH machines can be configured for either little or big
Therefore, I conclude that you do not exist - go away.
endian byte order. These modes require different kernels. Say Y if
your machine is little endian, N if it'
s
a
big
endian
machine
.
There is a grue here.
config
PREEMPT
bool
"Preemptible Kernel (EXPERIMENTAL)"
depends
on
EXPERIMENTAL
config ST40_LMI_MEMORY
config
UBC_WAKEUP
bool "Memory on LMI"
bool
"Wakeup UBC on startup"
depends on CPU_SUBTYPE_ST40STB1
help
Selecting
this
option
will
wakeup
the
User
Break
Controller
(
UBC
)
on
startup
.
Although
the
UBC
is
left
in
an
awake
state
when
the
processor
comes
up
,
some
boot
loaders
misbehave
by
putting
the
UBC
to
sleep
in
a
power
saving
state
,
which
causes
issues
with
things
like
ptrace
().
# If none of the above have set memory start/size, ask the user.
If
unsure
,
say
N
.
endmenu
config DISCONTIGMEM
config
SH_WRITETHROUGH
bool
bool
"Use write-through caching"
depends on SH_HP690
default
y
if
CPU_SH2
default y
help
help
Say Y to upport efficient handling of discontiguous physical memory,
Selecting
this
option
will
configure
the
caches
in
write
-
through
for architectures which are either NUMA (Non-Uniform Memory Access)
mode
,
as
opposed
to
the
default
write
-
back
configuration
.
or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more.
Since
there
's sill some aliasing issues on SH-4, this option will
unfortunately still require the majority of flushing functions to
be implemented to deal with aliasing.
menu "General setup"
If unsure, say N.
# Even on SuperH devices which don'
t
have
an
ISA
bus
,
config SH_OCRAM
#
this
variable
helps
the
PCMCIA
modules
handle
bool "Operand Cache RAM (OCRAM) support"
#
IRQ
requesting
properly
--
Greg
Banks
.
config
ISA
bool
default
y
help
help
Find
out
whether
you
have
ISA
slots
on
your
motherboard
.
ISA
is
the
Selecting this option will automatically tear down the number of
name
of
a
bus
system
,
i
.
e
.
the
way
the
CPU
talks
to
the
other
stuff
sets in the dcache by half, which in turn exposes a memory range.
inside
your
box
.
Other
bus
systems
are
PCI
,
EISA
,
MicroChannel
(
MCA
)
or
VESA
.
ISA
is
an
older
system
,
now
being
displaced
by
PCI
;
newer
boards
don
't support it. If you have ISA, say Y, otherwise N.
config EISA
The addresses for the OC RAM base will vary according to the
bool
processor version. Consult vendor documentation for specifics.
---help---
The Extended Industry Standard Architecture (EISA) bus was
developed as an open alternative to the IBM MicroChannel bus.
The EISA bus provided some of the features of the IBM MicroChannel
If unsure, say N.
bus while maintaining backward compatibility with cards made for
the older ISA bus. The EISA bus saw limited use between 1988 and
1995 when it was made obsolete by the PCI bus.
Say Y here if you are building a kernel for an EISA-based machine.
config SMP
bool "Symmetric multi-processing support"
---help---
This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N. If
you have a system with more than one CPU, say Y.
If you say N here, the kernel will run on single and multiprocessor
machines, but will use only one CPU of a multiprocessor machine. If
you say Y here, the kernel will run on many, but not all,
singleprocessor machines. On a singleprocessor machine, the kernel
will run faster if you say N here.
People using multiprocessor machines who say Y here should also say
Y to "Enhanced Real Time Clock Support", below.
See also the <file:Documentation/smp.tex>,
<file:Documentation/smp.txt>, <file:Documentation/nmi_watchdog.txt>
and the SMP-HOWTO available at
<http://www.tldp.org/docs.html#howto>.
Otherwis
e, say N.
If you don'
t
know
what
to
do
her
e
,
say
N
.
config MCA
config
NR_CPUS
bool
int
"Maximum number of CPUs (2-32)"
depends
on
SMP
default
"2"
help
help
MicroChannel Architecture is found in some IBM PS/2 machines and
This
allows
you
to
specify
the
maximum
number
of
CPUs
which
this
laptops. It is a bus system similar to PCI or ISA. See
kernel
will
support
.
The
maximum
supported
value
is
32
and
the
<file:Documentation/mca.txt> (and especially the web page given
minimum
value
which
makes
sense
is
2.
there) before attempting to build an MCA bus kernel.
config SBUS
This
is
purely
to
save
memory
-
each
supported
CPU
adds
bool
approximately
eight
kilobytes
to
the
kernel
image
.
config CF_ENABLER
config
SH_DMA
bool "Compact Flash Enabler support"
bool
"DMA controller (DMAC) support"
depends on SH_GENERIC || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_ADX
help
---help---
Selecting
this
option
will
provide
same
API
as
PC
's Direct Memory
Compact Flash is a small, removable mass storage device introduced
Access Controller(8237A) for SuperH DMAC.
in 1994 originally as a PCMCIA device. If you say `Y'
here
,
you
compile
in
support
for
Compact
Flash
devices
directly
connected
to
a
SuperH
processor
.
A
Compact
Flash
FAQ
is
available
at
<
http
://
www
.
compactflash
.
org
/
faqs
/
faq
.
htm
>.
If
your
board
has
"Directly Connected"
CompactFlash
at
area
5
or
6
,
If unsure, say N.
you
may
want
to
enable
this
option
.
Then
,
you
can
use
CF
as
primary
IDE
drive
(
only
tested
for
SanDisk
).
If
in
doubt
,
select
'N'
.
config CPU_FREQ
bool "CPU Frequency scaling"
help
CPU clock scaling allows you to change the clock speed of the
running CPU on the fly.
choice
For details, take a look at <file:Documentation/cpufreq>.
prompt
"Compact Flash Connection Area"
depends
on
CF_ENABLER
default
CF_AREA6
config
CF_AREA5
If unsure, say N.
bool
"Area5"
config CPU_FREQ_TABLE
tristate "CPU frequency table helpers"
depends on CPU_FREQ
default y
help
help
If
your
board
has
"Directly Connected"
CompactFlash
,
You
should
Many cpufreq drivers use these helpers, so only say N here if
select
the
area
where
your
CF
is
connected
to
.
the cpufreq driver of your choice doesn'
t
need
these
helpers
.
-
"Area5"
if
CompactFlash
is
connected
to
Area
5
(
0x14000000
)
If
unsure
,
say
Y
.
-
"Area6"
if
it
is
connected
to
Area
6
(
0x18000000
)
"Area6"
will
work
for
most
boards
.
For
ADX
,
select
"Area5"
.
config
SH_CPU_FREQ
tristate
"SuperH CPU Frequency driver"
depends
on
CPU_FREQ
help
This
adds
the
cpufreq
driver
for
SuperH
.
At
present
,
only
the
SH
-
4
is
supported
.
config
CF_AREA6
For
details
,
take
a
look
at
<
file
:
Documentation
/
cpufreq
>.
bool
"Area6"
endchoice
If
unsure
,
say
N
.
config
CF_BASE_ADDR
source
"drivers/cpufreq/Kconfig"
hex
depends
on
CF_ENABLER
#
A
board
must
have
defined
HD6446X_SERIES
in
order
to
see
these
default
"b8000000"
if
CF_AREA6
choice
default
"b4000000"
if
CF_AREA5
prompt
"HD6446x options"
depends
HD6446X_SERIES
default
HD64461
config
HD64461
config
HD64461
bool
"Hitachi HD64461 companion chip support"
bool
"Hitachi HD64461 companion chip support"
depends
on
CPU_SUBTYPE_SH7709
---
help
---
---
help
---
The
Hitachi
HD64461
provides
an
interface
for
The
Hitachi
HD64461
provides
an
interface
for
the
SH7709
CPU
,
supporting
a
LCD
controller
,
the
SH7709
CPU
,
supporting
a
LCD
controller
,
...
@@ -417,6 +539,24 @@ config HD64461
...
@@ -417,6 +539,24 @@ config HD64461
Say
Y
if
you
want
support
for
the
HD64461
.
Say
Y
if
you
want
support
for
the
HD64461
.
Otherwise
,
say
N
.
Otherwise
,
say
N
.
config
HD64465
bool
"Hitachi HD64465 companion chip support"
depends
on
CPU_SUBTYPE_SH7750
---
help
---
The
Hitachi
HD64465
provides
an
interface
for
the
SH7750
CPU
,
supporting
a
LCD
controller
,
CRT
color
controller
,
IrDA
,
USB
,
PCMCIA
,
keyboard
controller
,
and
a
printer
interface
.
More
information
is
available
at
<
http
://
global
.
hitachi
.
com
/
New
/
cnews
/
E
/
1998
/
981019
B
.
html
>.
Say
Y
if
you
want
support
for
the
HD64465
.
Otherwise
,
say
N
.
endchoice
#
These
will
also
be
split
into
the
Kconfig
's below
config HD64461_IRQ
config HD64461_IRQ
int "HD64461 IRQ"
int "HD64461 IRQ"
depends on HD64461
depends on HD64461
...
@@ -434,19 +574,6 @@ config HD64461_ENABLER
...
@@ -434,19 +574,6 @@ config HD64461_ENABLER
via the HD64461 companion chip.
via the HD64461 companion chip.
Otherwise, say N.
Otherwise, say N.
config
HD64465
bool
"Hitachi HD64465 companion chip support"
---
help
---
The
Hitachi
HD64465
provides
an
interface
for
the
SH7750
CPU
,
supporting
a
LCD
controller
,
CRT
color
controller
,
IrDA
,
USB
,
PCMCIA
,
keyboard
controller
,
and
a
printer
interface
.
More
information
is
available
at
<
http
://
global
.
hitachi
.
com
/
New
/
cnews
/
E
/
1998
/
981019
B
.
html
>.
Say
Y
if
you
want
support
for
the
HD64465
.
Otherwise
,
say
N
.
config HD64465_IOBASE
config HD64465_IOBASE
hex "HD64465 start address"
hex "HD64465 start address"
...
@@ -466,13 +593,49 @@ config HD64465_IRQ
...
@@ -466,13 +593,49 @@ config HD64465_IRQ
Do not change this unless you know what you are doing.
Do not change this unless you know what you are doing.
config
SH_DMA
endmenu
bool
"DMA controller (DMAC) support"
menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
# Even on SuperH devices which don'
t
have
an
ISA
bus
,
#
this
variable
helps
the
PCMCIA
modules
handle
#
IRQ
requesting
properly
--
Greg
Banks
.
config
ISA
bool
default
y
help
help
Selecting
this
option
will
provide
same
API
as
PC
's Direct Memory
Find
out
whether
you
have
ISA
slots
on
your
motherboard
.
ISA
is
the
Access Controller(8237A) for SuperH DMAC.
name
of
a
bus
system
,
i
.
e
.
the
way
the
CPU
talks
to
the
other
stuff
inside
your
box
.
Other
bus
systems
are
PCI
,
EISA
,
MicroChannel
(
MCA
)
or
VESA
.
ISA
is
an
older
system
,
now
being
displaced
by
PCI
;
newer
boards
don
't support it. If you have ISA, say Y, otherwise N.
If unsure, say N.
config EISA
bool
---help---
The Extended Industry Standard Architecture (EISA) bus was
developed as an open alternative to the IBM MicroChannel bus.
The EISA bus provided some of the features of the IBM MicroChannel
bus while maintaining backward compatibility with cards made for
the older ISA bus. The EISA bus saw limited use between 1988 and
1995 when it was made obsolete by the PCI bus.
Say Y here if you are building a kernel for an EISA-based machine.
Otherwise, say N.
config MCA
bool
help
MicroChannel Architecture is found in some IBM PS/2 machines and
laptops. It is a bus system similar to PCI or ISA. See
<file:Documentation/mca.txt> (and especially the web page given
there) before attempting to build an MCA bus kernel.
config SBUS
bool
config PCI
config PCI
bool "PCI support"
bool "PCI support"
...
@@ -559,6 +722,13 @@ config HOTPLUG
...
@@ -559,6 +722,13 @@ config HOTPLUG
source
"drivers/pcmcia/Kconfig"
source
"drivers/pcmcia/Kconfig"
source
"drivers/hotplug/Kconfig"
endmenu
menu
"Executable file formats"
choice
choice
prompt
"Kernel core (/proc/kcore) format"
prompt
"Kernel core (/proc/kcore) format"
depends
on
PROC_FS
depends
on
PROC_FS
...
@@ -622,6 +792,9 @@ config BINFMT_ELF
...
@@ -622,6 +792,9 @@ config BINFMT_ELF
will
be
called
binfmt_elf
.
Saying
M
or
N
here
is
dangerous
because
will
be
called
binfmt_elf
.
Saying
M
or
N
here
is
dangerous
because
some
crucial
programs
on
your
system
might
be
in
ELF
format
.
some
crucial
programs
on
your
system
might
be
in
ELF
format
.
config
BINFMT_FLAT
tristate
"Kernel support for FLAT binaries"
config
BINFMT_MISC
config
BINFMT_MISC
tristate
"Kernel support for MISC binaries"
tristate
"Kernel support for MISC binaries"
---
help
---
---
help
---
...
@@ -647,15 +820,13 @@ config BINFMT_MISC
...
@@ -647,15 +820,13 @@ config BINFMT_MISC
you have use for it; the module is called binfmt_misc. If you
you have use for it; the module is called binfmt_misc. If you
don'
t
know
what
to
answer
at
this
point
,
say
Y
.
don'
t
know
what
to
answer
at
this
point
,
say
Y
.
source
"drivers/parport/Kconfig"
endmenu
endmenu
source
"drivers/mtd/Kconfig"
source
"drivers/mtd/Kconfig"
source
"drivers/
block
/Kconfig"
source
"drivers/
parport
/Kconfig"
source
"drivers/
md
/Kconfig"
source
"drivers/
block
/Kconfig"
menu
"ATA/ATAPI/MFM/RLL support"
menu
"ATA/ATAPI/MFM/RLL support"
...
@@ -711,10 +882,10 @@ source "drivers/ide/Kconfig"
...
@@ -711,10 +882,10 @@ source "drivers/ide/Kconfig"
endmenu
endmenu
menu
"SCSI support"
menu
"SCSI
device
support"
config
SCSI
config
SCSI
tristate
"SCSI support"
tristate
"SCSI
device
support"
---
help
---
---
help
---
If
you
want
to
use
a
SCSI
hard
disk
,
SCSI
tape
drive
,
SCSI
CD
-
ROM
or
If
you
want
to
use
a
SCSI
hard
disk
,
SCSI
tape
drive
,
SCSI
CD
-
ROM
or
any
other
SCSI
device
under
Linux
,
say
Y
and
make
sure
that
you
know
any
other
SCSI
device
under
Linux
,
say
Y
and
make
sure
that
you
know
...
@@ -737,9 +908,6 @@ source "drivers/scsi/Kconfig"
...
@@ -737,9 +908,6 @@ source "drivers/scsi/Kconfig"
endmenu
endmenu
source
"drivers/ieee1394/Kconfig"
source
"net/Kconfig"
menu
"Old CD-ROM drivers (not SCSI, not IDE)"
menu
"Old CD-ROM drivers (not SCSI, not IDE)"
...
@@ -776,8 +944,22 @@ source "drivers/cdrom/Kconfig"
...
@@ -776,8 +944,22 @@ source "drivers/cdrom/Kconfig"
endmenu
endmenu
source "drivers/md/Kconfig"
source "drivers/ieee1394/Kconfig"
source "net/Kconfig"
source "net/ax25/Kconfig"
source "net/irda/Kconfig"
source "drivers/isdn/Kconfig"
source "drivers/telephony/Kconfig"
#
#
# input
before char - char
/joystick depends on it. As does USB.
# input
- input
/joystick depends on it. As does USB.
#
#
source "drivers/input/Kconfig"
source "drivers/input/Kconfig"
...
@@ -837,6 +1019,11 @@ config VT_CONSOLE
...
@@ -837,6 +1019,11 @@ config VT_CONSOLE
If
unsure
,
say
Y
.
If
unsure
,
say
Y
.
config
HW_CONSOLE
bool
depends
on
VT
&&
!S390 && !UM
default
y
config
SERIAL
config
SERIAL
tristate
"Serial (8250, 16450, 16550 or compatible) support"
tristate
"Serial (8250, 16450, 16550 or compatible) support"
---
help
---
---
help
---
...
@@ -948,7 +1135,7 @@ config UNIX98_PTY_COUNT
...
@@ -948,7 +1135,7 @@ config UNIX98_PTY_COUNT
config
HEARTBEAT
config
HEARTBEAT
bool
"Heartbeat LED"
bool
"Heartbeat LED"
depends
on
SH_
GENERIC
||
SH_CAT68701
||
SH_STB1_HARP
||
SH_STB1_OVERDRIVE
||
SH_BIGSUR
||
SH_7751_SOLUTION_ENGINE
||
SH_SOLUTION_ENGINE
depends
on
SH_
MPC1211
||
SH_CAT68701
||
SH_STB1_HARP
||
SH_STB1_OVERDRIVE
||
SH_BIGSUR
||
SH_7751_SOLUTION_ENGINE
||
SH_SOLUTION_ENGINE
help
help
Use
the
power
-
on
LED
on
your
machine
as
a
load
meter
.
The
exact
Use
the
power
-
on
LED
on
your
machine
as
a
load
meter
.
The
exact
behavior
is
platform
-
dependent
,
but
normally
the
flash
frequency
is
behavior
is
platform
-
dependent
,
but
normally
the
flash
frequency
is
...
@@ -971,7 +1158,6 @@ comment "Input core support is required for Maple input peripherals"
...
@@ -971,7 +1158,6 @@ comment "Input core support is required for Maple input peripherals"
endmenu
endmenu
#
source
drivers
/
char
/
joystick
/
Config
.
in
config
PRINTER
config
PRINTER
tristate
"Parallel printer support"
tristate
"Parallel printer support"
depends
on
PARPORT
depends
on
PARPORT
...
@@ -1095,12 +1281,18 @@ config WATCHDOG_NOWAYOUT
...
@@ -1095,12 +1281,18 @@ config WATCHDOG_NOWAYOUT
it
has
been
started
.
it
has
been
started
.
config
SH_WDT
config
SH_WDT
tristate
"S
H 3/4
Watchdog"
tristate
"S
uperH
Watchdog"
depends
on
WATCHDOG
depends
on
WATCHDOG
help
help
This
driver
adds
watchdog
support
for
the
integrated
watchdog
in
the
This
driver
adds
watchdog
support
for
the
integrated
watchdog
in
the
SuperH
3
and
4
processors
.
If
you
have
one
of
these
processors
,
say
Y
,
SuperH
processors
.
If
you
have
one
of
these
processors
and
wish
otherwise
say
N
.
to
have
watchdog
support
enabled
,
say
Y
,
otherwise
say
N
.
As
a
side
note
,
saying
Y
here
will
automatically
boost
HZ
to
1000
so
that
the
timer
has
a
chance
to
clear
the
overflow
counter
.
On
slower
systems
(
such
as
the
SH
-
2
and
SH
-
3
)
this
will
likely
yield
some
performance
issues
.
As
such
,
the
WDT
should
be
avoided
here
unless
it
is
absolutely
necessary
.
This
driver
is
also
available
as
a
module
(
=
code
which
can
be
This
driver
is
also
available
as
a
module
(
=
code
which
can
be
inserted
in
and
removed
from
the
running
kernel
whenever
you
want
).
inserted
in
and
removed
from
the
running
kernel
whenever
you
want
).
...
@@ -1138,6 +1330,10 @@ config RTC
...
@@ -1138,6 +1330,10 @@ config RTC
source
"drivers/char/pcmcia/Kconfig"
source
"drivers/char/pcmcia/Kconfig"
source
"drivers/serial/Kconfig"
source
"drivers/i2c/Kconfig"
endmenu
endmenu
source
"fs/Kconfig"
source
"fs/Kconfig"
...
@@ -1182,6 +1378,10 @@ source "sound/Kconfig"
...
@@ -1182,6 +1378,10 @@ source "sound/Kconfig"
endmenu
endmenu
source "drivers/usb/Kconfig"
source "net/bluetooth/Kconfig"
menu "Kernel hacking"
menu "Kernel hacking"
...
@@ -1198,6 +1398,14 @@ config MAGIC_SYSRQ
...
@@ -1198,6 +1398,14 @@ config MAGIC_SYSRQ
keys are documented in <file:Documentation/sysrq.txt>. Don'
t
say
Y
keys are documented in <file:Documentation/sysrq.txt>. Don'
t
say
Y
unless
you
really
know
what
this
hack
does
.
unless
you
really
know
what
this
hack
does
.
config
DEBUG_SPINLOCK
bool
"Spinlock debugging"
help
Say
Y
here
and
build
SMP
to
catch
missing
spinlock
initialization
and
certain
other
kinds
of
spinlock
errors
commonly
made
.
This
is
best
used
in
conjunction
with
the
NMI
watchdog
so
that
spinlock
deadlocks
are
also
debuggable
.
config
SH_STANDARD_BIOS
config
SH_STANDARD_BIOS
bool
"Use LinuxSH standard BIOS"
bool
"Use LinuxSH standard BIOS"
help
help
...
...
arch/sh/Makefile
View file @
47050253
# $Id: Makefile,v 1.
6 2000/06/10 03:03:52 gniibe
Exp $
# $Id: Makefile,v 1.
17 2003/05/20 03:12:54 lethal
Exp $
#
#
# This file is subject to the terms and conditions of the GNU General Public
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# License. See the file "COPYING" in the main directory of this archive
# for more details.
# for more details.
#
#
# Copyright (C) 1999 Kaz Kojima
# Copyright (C) 1999 Kaz Kojima
# Copyright (C) 2002, 2003 Paul Mundt
# Copyright (C) 2002 M. R. Brown
#
#
# This file is included by the global makefile so that you can add your own
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
# architecture-specific flags and dependencies. Remember to do have actions
...
@@ -12,72 +14,116 @@
...
@@ -12,72 +14,116 @@
# this architecture
# this architecture
#
#
ifdef
CONFIG_CPU_LITTLE_ENDIAN
#
CFLAGS
+=
-ml
# We don't necessarily agree with the top-level Makefile with regards to what
AFLAGS
+=
-ml
# does and does not qualify as a noconfig_targets rule. In this case, we're
# LDFLAGS_vmlinux += -EL
# still dependant on .config settings in order for core-y (machdir-y in
LDFLAGS
:=
-EL
# particular) to resolve the proper directory. So we just manually include it
else
# if it hasn't been already..
CFLAGS
+=
-mb
#
AFLAGS
+=
-mb
ifndef
include_config
# LDFLAGS_vmlinux += -EB
-include
.config
LDFLAGS
:=
-EB
endif
endif
OBJCOPYFLAGS
:=
-O
binary
-R
.note
-R
.comment
-R
.stab
-R
.stabstr
-S
cpu-y
:=
-mb
cpu-$(CONFIG_CPU_LITTLE_ENDIAN)
:=
-ml
MODFLAGS
+=
#
cpu-$(CONFIG_CPU_SH2)
+=
-m2
#
cpu-$(CONFIG_CPU_SH3)
+=
-m3
cpu-$(CONFIG_CPU_SH4)
+=
-m4
-mno-implicit-fp
ifdef
CONFIG_CPU_SH3
ifdef
CONFIG_SH_KGDB
CFLAGS
+=
-m3
CFLAGS
:=
$
(
CFLAGS:-fomit-frame-pointer
=)
-g
AFLAGS
+=
-m3
AFLAGS
+=
-g
ifdef
CONFIG_KGDB_MORE
CFLAGS
+=
$(
shell
echo
$(CONFIG_KGDB_OPTIONS)
|
sed
-e
's/"//g'
)
endif
endif
ifdef
CONFIG_CPU_SH4
CFLAGS
+=
-m4
-mno-implicit-fp
AFLAGS
+=
-m4
-mno-implicit-fp
endif
endif
OBJCOPYFLAGS
:=
-O
binary
-R
.note
-R
.comment
-R
.stab
-R
.stabstr
-S
#
#
# Choosing incompatible machines durings configuration will result in
# Choosing incompatible machines durings configuration will result in
# error messages during linking.
# error messages during linking.
#
#
LDFLAGS_vmlinux
+=
-e
_stext
LDFLAGS_vmlinux
+=
-e
_stext
ifdef
LOADADDR
ifdef
CONFIG_CPU_LITTLE_ENDIAN
LDFLAGS_vmlinux
+=
-Ttext
$(
word
1,
$(LOADADDR)
)
LDFLAGS_vmlinux
+=
--defsym
'jiffies=jiffies_64'
-EL
LDFLAGS_BLOB
:=
--format
binary
--oformat
elf32-sh-linux
else
LDFLAGS_vmlinux
+=
--defsym
'jiffies=jiffies_64+4'
-EB
LDFLAGS_BLOB
:=
--format
binary
--oformat
elf32-shbig-linux
endif
endif
#
CFLAGS
+=
-pipe
$
(
cpu-y
)
CFLAGS
+=
-pipe
AFLAGS
+=
$
(
cpu-y
)
head-y
:=
arch
/sh/kernel/head.o
arch
/sh/kernel/init_task.o
head-y
:=
arch
/sh/kernel/head.o
arch
/sh/kernel/init_task.o
LIBGCC
:=
$(
shell
$(CC)
$(CFLAGS)
-print-libgcc-file-name
)
LIBGCC
:=
$(
shell
$(CC)
$(CFLAGS)
-print-libgcc-file-name
)
core-y
+=
arch
/sh/kernel/
arch
/sh/mm/
core-y
+=
arch
/sh/kernel/
arch
/sh/mm/
core-$(CONFIG_SH_GENERIC)
+=
arch
/sh/stboards/
core-$(CONFIG_SH_STB1_HARP)
+=
arch
/sh/stboards/
# Boards
core-$(CONFIG_SH_STB1_OVERDRIVE)
+=
arch
/sh/stboards/
machdir-$(CONFIG_SH_SOLUTION_ENGINE)
:=
se/770x
machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE)
:=
se/7751
machdir-$(CONFIG_SH_STB1_HARP)
:=
harp
machdir-$(CONFIG_SH_STB1_OVERDRIVE)
:=
overdrive
machdir-$(CONFIG_SH_HP620)
:=
hp6xx/hp620
machdir-$(CONFIG_SH_HP680)
:=
hp6xx/hp680
machdir-$(CONFIG_SH_HP690)
:=
hp6xx/hp690
machdir-$(CONFIG_SH_CQREEK)
:=
cqreek
machdir-$(CONFIG_SH_DMIDA)
:=
dmida
machdir-$(CONFIG_SH_EC3104)
:=
ec3104
machdir-$(CONFIG_SH_SATURN)
:=
saturn
machdir-$(CONFIG_SH_DREAMCAST)
:=
dreamcast
machdir-$(CONFIG_SH_CAT68701)
:=
cat68701
machdir-$(CONFIG_SH_BIGSUR)
:=
bigsur
machdir-$(CONFIG_SH_SH2000)
:=
sh2000
machdir-$(CONFIG_SH_ADX)
:=
adx
machdir-$(CONFIG_SH_MPC1211)
:=
mpc1211
machdir-$(CONFIG_SH_UNKNOWN)
:=
unknown
incdir-y
:=
$
(
machdir-y
)
incdir-$(CONFIG_SH_SOLUTION_ENGINE)
:=
se
incdir-$(CONFIG_SH_7751_SOLUTION_ENGINE)
:=
se7751
incdir-$(CONFIG_SH_HP600)
:=
hp6xx
core-y
+=
arch
/sh/boards/
$
(
machdir-y
)
/
# Companion chips
core-$(CONFIG_HD64461)
+=
arch
/sh/cchips/hd6446x/hd64461/
core-$(CONFIG_HD64465)
+=
arch
/sh/cchips/hd6446x/hd64465/
cpuincdir-$(CONFIG_CPU_SH2)
:=
cpu-sh2
cpuincdir-$(CONFIG_CPU_SH3)
:=
cpu-sh3
cpuincdir-$(CONFIG_CPU_SH4)
:=
cpu-sh4
libs-y
+=
arch
/sh/lib/
$(LIBGCC)
libs-y
+=
arch
/sh/lib/
$(LIBGCC)
MAKEBOOT
=
$(MAKE)
-C
arch
/
$(ARCH)
/boot
boot
:=
arch
/sh
/boot
AFLAGS_vmlinux.lds.o
:=
-traditional
AFLAGS_vmlinux.lds.o
:=
-traditional
prepare
:
target_links
.PHONY
:
target_links FORCE
target_links
:
@
echo
' Making asm-sh/cpu -> asm-sh/$(cpuincdir-y) link'
@
ln
-sf
$
(
cpuincdir-y
)
include/asm-sh/cpu
@echo
' Making asm-sh/mach -> asm-sh/$(incdir-y) link'
@ln
-sf
$(incdir-y)
include/asm-sh/mach
$(Q)$(MAKE)
$(build)
=
arch
/sh/tools include/asm-sh/machtypes.h
BOOTIMAGE
=
arch
/sh/boot/zImage
zImage
:
vmlinux
zImage
:
vmlinux
@
$(MAKEBOOT)
zImage
$(Q)$(MAKE)
$(build)
=
$(boot)
$(BOOTIMAGE)
compressed
:
zImage
compressed
:
zImage
zdisk
:
vmlinux
@
$(MAKEBOOT)
zdisk
archclean
:
archclean
:
@
$(MAKEBOOT)
clean
$(Q)$(MAKE)
$(clean)
=
$(boot)
$(MAKE)
-C
arch
/
$(ARCH)
/kernel clean
$(MAKE)
-C
arch
/
$(ARCH)
/stboards clean
# $(MAKE) -C arch/$(ARCH)/tools clean
arch/sh/boot/compressed/Makefile
View file @
47050253
...
@@ -4,40 +4,34 @@
...
@@ -4,40 +4,34 @@
# create a compressed vmlinux image from the original vmlinux
# create a compressed vmlinux image from the original vmlinux
#
#
HEAD
=
head
.o
targets
:=
vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy
.o
SYSTEM
=
$(TOPDIR)
/vmlinux
EXTRA_AFLAGS
:=
-traditional
OBJECTS
=
$(
HEAD)
misc.o
OBJECTS
=
$(
obj)
/head.o
$(obj)
/
misc.o
ifdef
CONFIG_SH_STANDARD_BIOS
ifdef
CONFIG_SH_STANDARD_BIOS
OBJECTS
+=
../../kernel/sh_bios.o
OBJECTS
+=
$(obj)
/
../../kernel/sh_bios.o
endif
endif
ZLDFLAGS
=
-e
startup
-T
$(TOPDIR)
/arch/sh/vmlinux.lds
#
#
#
Z
IMAGE_OFFSET is the load offset of the compression loader
# IMAGE_OFFSET is the load offset of the compression loader
#
#
Z
IMAGE_OFFSET
=
$(
shell
printf
"0x%8x"
$$
[
0x80000000+0x
$(CONFIG_MEMORY_START)
+0x200000+0x10000]
)
IMAGE_OFFSET
=
$(
shell
printf
"0x%8x"
$$
[
0x80000000+0x
$(CONFIG_MEMORY_START)
+0x200000+0x10000]
)
ZLINKFLAGS
=
-Ttext
$(ZIMAGE_OFFSET)
$(ZLDFLAGS)
LDFLAGS_vmlinux
:=
-Ttext
$(IMAGE_OFFSET)
-e
startup
-T
$(obj)
/../../vmlinux.lds.s
all
:
vmlinux
$(obj)/vmlinux
:
$(OBJECTS) $(obj)/piggy.o FORCE
$(
call
if_changed,ld
)
@
:
vmlinux
:
piggy.o $(OBJECTS)
$(obj)/vmlinux.bin
:
vmlinux FORCE
$(
LD)
$(LDFLAGS)
$(ZLINKFLAGS)
-o
vmlinux
$(OBJECTS)
piggy.o
$(
call
if_changed,objcopy
)
head.o
:
head.S
$(obj)/vmlinux.bin.gz
:
$(obj)/vmlinux.bin FORCE
$(
CC)
$(AFLAGS)
-traditional
-c
head.S
$(
call
if_changed,gzip
)
piggy.o
:
$(SYSTEM)
LDFLAGS_piggy.o
:=
-r
--format
binary
--oformat
elf32-sh-linux
-T
tmppiggy
=
_tmp_
$$$$
piggy
;
\
OBJCOPYFLAGS
+=
-R
.empty_zero_page
rm
-f
$$
tmppiggy
$$
tmppiggy.gz
$$
tmppiggy.lnk
;
\
$(OBJCOPY)
$(OBJCOPYFLAGS)
-R
.empty_zero_page
$(SYSTEM)
$$
tmppiggy
;
\
gzip
-f
-9
<
$$
tmppiggy
>
$$
tmppiggy.gz
;
\
echo
"SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; *(.data) input_data_end = .; }}"
>
$$
tmppiggy.lnk
;
\
$(LD)
$(LDFLAGS)
-r
-o
piggy.o
-b
binary
$$
tmppiggy.gz
-b
elf32-sh-linux
-T
$$
tmppiggy.lnk
;
\
rm
-f
$$
tmppiggy
$$
tmppiggy.gz
$$
tmppiggy.lnk
clean
:
$(obj)/piggy.o
:
$(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
rm
-f
vmlinux _tmp_
*
$(
call
if_changed,ld
)
arch/sh/vmlinux.lds.S
View file @
47050253
/*
$Id
:
vmlinux
.
lds
.
in
,
v
1
.5
2001
/
07
/
27
11
:
45
:
55
gniibe
Exp
$
/*
$Id
:
vmlinux
.
lds
.
S
,
v
1
.8
2003
/
05
/
16
17
:
18
:
14
lethal
Exp
$
*
ld
script
to
make
SuperH
Linux
kernel
*
ld
script
to
make
SuperH
Linux
kernel
*
Written
by
Niibe
Yutaka
*
Written
by
Niibe
Yutaka
*/
*/
...
@@ -7,16 +7,14 @@
...
@@ -7,16 +7,14 @@
#ifdef CONFIG_CPU_LITTLE_ENDIAN
#ifdef CONFIG_CPU_LITTLE_ENDIAN
OUTPUT_FORMAT
("
elf32
-
sh
-
linux
",
"
elf32
-
sh
-
linux
",
"elf32-sh-linux"
)
OUTPUT_FORMAT
("
elf32
-
sh
-
linux
",
"
elf32
-
sh
-
linux
",
"elf32-sh-linux"
)
jiffies
=
jiffies_64
;
#else
#else
OUTPUT_FORMAT
("
elf32
-
shbig
-
linux
",
"
elf32
-
shbig
-
linux
",
"elf32-shbig-linux"
)
OUTPUT_FORMAT
("
elf32
-
shbig
-
linux
",
"
elf32
-
shbig
-
linux
",
"elf32-shbig-linux"
)
jiffies
=
jiffies_64
+
4
;
#endif
#endif
OUTPUT_ARCH
(
sh
)
OUTPUT_ARCH
(
sh
)
ENTRY
(
_start
)
ENTRY
(
_start
)
SECTIONS
SECTIONS
{
{
.
=
0x80000000
+
CONFIG_MEMORY_START
+
0x1000
;
.
=
0x80000000
+
CONFIG_MEMORY_START
+
CONFIG_ZERO_PAGE_OFFSET
;
_text
=
.
; /* Text and read-only data */
_text
=
.
; /* Text and read-only data */
text
=
.
; /* Text and read-only data */
text
=
.
; /* Text and read-only data */
.
empty_zero_page
:
{
.
empty_zero_page
:
{
...
@@ -42,6 +40,15 @@ SECTIONS
...
@@ -42,6 +40,15 @@ SECTIONS
CONSTRUCTORS
CONSTRUCTORS
}
}
.
=
ALIGN
(
4096
)
;
.
data.
page_aligned
:
{
*(
.
data
.
idt
)
}
.
=
ALIGN
(
32
)
;
__per_cpu_start
=
.
;
.
data.percpu
:
{
*(
.
data
.
percpu
)
}
__per_cpu_end
=
.
;
.
data.
cacheline_aligned
:
{
*(
.
data
.
cacheline_aligned
)
}
_edata
=
.
; /* End of data section */
_edata
=
.
; /* End of data section */
.
=
ALIGN
(
8192
)
; /* init_task */
.
=
ALIGN
(
8192
)
; /* init_task */
...
@@ -51,12 +58,17 @@ SECTIONS
...
@@ -51,12 +58,17 @@ SECTIONS
.
=
ALIGN
(
4096
)
; /* Init code and data */
.
=
ALIGN
(
4096
)
; /* Init code and data */
__init_begin
=
.
;
__init_begin
=
.
;
.
text.init
:
{
*(
.
text
.
init
)
}
_sinittext
=
.
;
.
data.init
:
{
*(
.
data
.
init
)
}
.
init.text
:
{
*(
.
init
.
text
)
}
_einittext
=
.
;
.
init.data
:
{
*(
.
init
.
data
)
}
.
=
ALIGN
(
16
)
;
.
=
ALIGN
(
16
)
;
__setup_start
=
.
;
__setup_start
=
.
;
.
setup.init
:
{
*(
.
setup
.
init
)
}
.
init.setup
:
{
*(
.
init
.
setup
)
}
__setup_end
=
.
;
__setup_end
=
.
;
__start___param
=
.
;
__param
:
{
*(
__param
)
}
__stop___param
=
.
;
__initcall_start
=
.
;
__initcall_start
=
.
;
.
initcall.init
:
{
.
initcall.init
:
{
*(.
initcall1.init
)
*(.
initcall1.init
)
...
@@ -72,27 +84,19 @@ SECTIONS
...
@@ -72,27 +84,19 @@ SECTIONS
.
con_initcall
.
init
:
{
*(
.
con_initcall
.
init
)
}
.
con_initcall
.
init
:
{
*(
.
con_initcall
.
init
)
}
__con_initcall_end
=
.
;
__con_initcall_end
=
.
;
SECURITY_INIT
SECURITY_INIT
__initramfs_start
=
.
;
.
init.ramfs
:
{
*(
.
init
.
ramfs
)
}
__initramfs_end
=
.
;
__machvec_start
=
.
;
__machvec_start
=
.
;
.
machvec.init
:
{
*(
.
machvec
.
init
)
}
.
init.machvec
:
{
*(
.
init
.
machvec
)
}
__machvec_end
=
.
;
__machvec_end
=
.
;
.
=
ALIGN
(
4096
)
;
.
=
ALIGN
(
4096
)
;
__init_end
=
.
;
__init_end
=
.
;
.
=
ALIGN
(
4096
)
;
.
data.
page_aligned
:
{
*(
.
data
.
idt
)
}
#ifdef CONFIG_CPU_SH3
.
=
ALIGN
(
16
)
;
#else
.
=
ALIGN
(
32
)
;
#endif
.
data.
cacheline_aligned
:
{
*(
.
data
.
cacheline_aligned
)
}
.
=
ALIGN
(
4
)
;
.
=
ALIGN
(
4
)
;
__bss_start
=
.
; /* BSS */
__bss_start
=
.
; /* BSS */
.
bss
:
{
.
bss
:
{
*(
.
bss
)
}
*(.
bss
)
}
.
=
ALIGN
(
4
)
;
.
=
ALIGN
(
4
)
;
_end
=
.
;
_end
=
.
;
...
@@ -102,8 +106,8 @@ SECTIONS
...
@@ -102,8 +106,8 @@ SECTIONS
*
it
's a module.
*
it
's a module.
*/
*/
/
DISCARD
/
:
{
/
DISCARD
/
:
{
*(.
text.exi
t
)
*(.
exit.tex
t
)
*(.
data.exit
)
*(.
exit.data
)
*(.
exitcall.exit
)
*(.
exitcall.exit
)
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment