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
Kirill Smelkov
linux
Commits
99470cd2
Commit
99470cd2
authored
Jun 09, 2004
by
Keith M. Wesolowski
Browse files
Options
Browse Files
Download
Plain Diff
Merge foobazco.org:/sources/2.5-bk
into foobazco.org:/sources/2.5-sparc-todave
parents
981a1ad3
20fd1c34
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
165 additions
and
186 deletions
+165
-186
arch/sparc/defconfig
arch/sparc/defconfig
+34
-40
arch/sparc/kernel/init_task.c
arch/sparc/kernel/init_task.c
+1
-1
arch/sparc/kernel/ioport.c
arch/sparc/kernel/ioport.c
+1
-1
arch/sparc/kernel/setup.c
arch/sparc/kernel/setup.c
+0
-1
arch/sparc/mm/io-unit.c
arch/sparc/mm/io-unit.c
+1
-0
arch/sparc/mm/iommu.c
arch/sparc/mm/iommu.c
+1
-0
arch/sparc/mm/nosrmmu.c
arch/sparc/mm/nosrmmu.c
+2
-5
arch/sparc/mm/srmmu.c
arch/sparc/mm/srmmu.c
+29
-35
arch/sparc/mm/sun4c.c
arch/sparc/mm/sun4c.c
+0
-4
drivers/sbus/sbus.c
drivers/sbus/sbus.c
+4
-0
include/asm-sparc/bug.h
include/asm-sparc/bug.h
+1
-1
include/asm-sparc/dma-mapping.h
include/asm-sparc/dma-mapping.h
+1
-0
include/asm-sparc/dma.h
include/asm-sparc/dma.h
+43
-0
include/asm-sparc/highmem.h
include/asm-sparc/highmem.h
+2
-2
include/asm-sparc/pci.h
include/asm-sparc/pci.h
+6
-0
include/asm-sparc/pgtable.h
include/asm-sparc/pgtable.h
+6
-68
include/asm-sparc/pgtsrmmu.h
include/asm-sparc/pgtsrmmu.h
+15
-20
include/asm-sparc/pgtsun4.h
include/asm-sparc/pgtsun4.h
+16
-3
include/asm-sparc/pgtsun4c.h
include/asm-sparc/pgtsun4c.h
+0
-3
include/asm-sparc/sun4prom.h
include/asm-sparc/sun4prom.h
+1
-1
include/asm-sparc/viking.h
include/asm-sparc/viking.h
+1
-1
No files found.
arch/sparc/defconfig
View file @
99470cd2
...
...
@@ -19,18 +19,22 @@ CONFIG_BROKEN_ON_SMP=y
#
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_HOTPLUG is not set
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
#
...
...
@@ -171,7 +175,6 @@ CONFIG_CHR_DEV_SG=m
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_REPORT_LUNS=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
...
...
@@ -190,11 +193,11 @@ CONFIG_SCSI_SPI_ATTRS=m
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
...
...
@@ -203,6 +206,7 @@ CONFIG_SCSI_SPI_ATTRS=m
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
...
...
@@ -263,8 +267,6 @@ CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_TUNNEL=m
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
# CONFIG_NETFILTER is not set
CONFIG_XFRM=y
CONFIG_XFRM_USER=m
...
...
@@ -279,7 +281,9 @@ CONFIG_SCTP_DBG_OBJCNT=y
# CONFIG_SCTP_HMAC_SHA1 is not set
CONFIG_SCTP_HMAC_MD5=y
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
...
...
@@ -300,18 +304,23 @@ CONFIG_SCTP_HMAC_MD5=y
# Network testing
#
CONFIG_NET_PKTGEN=m
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_ETHERTAP is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# Ethernet (10 or 100Mbit)
#
...
...
@@ -342,7 +351,6 @@ CONFIG_SUNQE=m
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
...
...
@@ -350,46 +358,29 @@ CONFIG_SUNQE=m
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
# CONFIG_S2IO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
# CONFIG_RCPCI is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
# Wireless LAN (non-hamradio)
#
# CONFIG_
IRDA
is not set
# CONFIG_
NET_RADIO
is not set
#
#
Bluetooth support
#
Wan interfaces
#
# CONFIG_BT is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
#
# Unix98 PTY support
...
...
@@ -486,6 +477,7 @@ CONFIG_ISO9660_FS=m
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
CONFIG_DEVPTS_FS_XATTR=y
# CONFIG_DEVPTS_FS_SECURITY is not set
...
...
@@ -527,9 +519,9 @@ CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_INTERMEZZO_FS is not set
CONFIG_AFS_FS=m
CONFIG_RXRPC=m
...
...
@@ -641,11 +633,13 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
# CONFIG_CRYPTO_TEST is not set
#
# Library routines
#
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=y
arch/sparc/kernel/init_task.c
View file @
99470cd2
...
...
@@ -22,6 +22,6 @@ EXPORT_SYMBOL(init_task);
* in etrap.S which assumes it.
*/
union
thread_union
init_thread_union
__attribute__
((
section
(
".text"
)))
__attribute__
((
section
(
".text
,#alloc
"
)))
__attribute__
((
aligned
(
THREAD_SIZE
)))
=
{
INIT_THREAD_INFO
(
init_task
)
};
arch/sparc/kernel/ioport.c
View file @
99470cd2
...
...
@@ -41,7 +41,7 @@
#include <asm/oplib.h>
#include <asm/page.h>
#include <asm/pgalloc.h>
#include <asm/
pgtable
.h>
#include <asm/
dma
.h>
#define mmu_inval_dma_area(p, l)
/* Anton pulled it out for 2.4.0-xx */
...
...
arch/sparc/kernel/setup.c
View file @
99470cd2
...
...
@@ -233,7 +233,6 @@ extern void sun4c_probe_vac(void);
extern
char
cputypval
;
extern
unsigned
long
start
,
end
;
extern
void
panic_setup
(
char
*
,
int
*
);
extern
void
srmmu_end_memory
(
unsigned
long
,
unsigned
long
*
);
extern
unsigned
short
root_flags
;
extern
unsigned
short
root_dev
;
...
...
arch/sparc/mm/io-unit.c
View file @
99470cd2
...
...
@@ -22,6 +22,7 @@
#include <asm/bitops.h>
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
#include <asm/dma.h>
/* #define IOUNIT_DEBUG */
#ifdef IOUNIT_DEBUG
...
...
arch/sparc/mm/iommu.c
View file @
99470cd2
...
...
@@ -25,6 +25,7 @@
#include <asm/tlbflush.h>
#include <asm/bitext.h>
#include <asm/iommu.h>
#include <asm/dma.h>
/*
* This can be sized dynamically, but we will do this
...
...
arch/sparc/mm/nosrmmu.c
View file @
99470cd2
...
...
@@ -9,10 +9,12 @@
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/mbus.h>
#include <asm/sbus.h>
static
char
shouldnothappen
[]
__initdata
=
"SUN4 kernel can only run on SUN4
\n
"
;
enum
mbus_module
srmmu_modtype
;
void
*
srmmu_nocache_pool
;
int
vac_cache_size
=
0
;
...
...
@@ -46,11 +48,6 @@ void srmmu_unmapioaddr(unsigned long virt_addr)
{
}
void
__init
srmmu_end_memory
(
unsigned
long
memory_size
,
unsigned
long
*
mem_end_p
)
{
return
0
;
}
__u32
iounit_map_dma_init
(
struct
sbus_bus
*
sbus
,
int
size
)
{
return
0
;
...
...
arch/sparc/mm/srmmu.c
View file @
99470cd2
...
...
@@ -174,7 +174,7 @@ static inline int srmmu_pmd_present(pmd_t pmd)
static
inline
void
srmmu_pmd_clear
(
pmd_t
*
pmdp
)
{
int
i
;
for
(
i
=
0
;
i
<
SRMMU_PTRS_PER_PTE_SOFT
/
SRMMU
_PTRS_PER_PTE
;
i
++
)
for
(
i
=
0
;
i
<
PTRS_PER_PTE
/
SRMMU_REAL
_PTRS_PER_PTE
;
i
++
)
srmmu_set_pte
((
pte_t
*
)
&
pmdp
->
pmdv
[
i
],
__pte
(
0
));
}
...
...
@@ -234,9 +234,9 @@ static void srmmu_pmd_set(pmd_t *pmdp, pte_t *ptep)
int
i
;
ptp
=
__nocache_pa
((
unsigned
long
)
ptep
)
>>
4
;
for
(
i
=
0
;
i
<
SRMMU_PTRS_PER_PTE_SOFT
/
SRMMU
_PTRS_PER_PTE
;
i
++
)
{
for
(
i
=
0
;
i
<
PTRS_PER_PTE
/
SRMMU_REAL
_PTRS_PER_PTE
;
i
++
)
{
srmmu_set_pte
((
pte_t
*
)
&
pmdp
->
pmdv
[
i
],
SRMMU_ET_PTD
|
ptp
);
ptp
+=
(
SRMMU_PTRS_PER_PTE
*
sizeof
(
pte_t
)
>>
4
);
ptp
+=
(
SRMMU_
REAL_
PTRS_PER_PTE
*
sizeof
(
pte_t
)
>>
4
);
}
}
...
...
@@ -246,9 +246,9 @@ static void srmmu_pmd_populate(pmd_t *pmdp, struct page *ptep)
int
i
;
ptp
=
page_to_pfn
(
ptep
)
<<
(
PAGE_SHIFT
-
4
);
/* watch for overflow */
for
(
i
=
0
;
i
<
SRMMU_PTRS_PER_PTE_SOFT
/
SRMMU
_PTRS_PER_PTE
;
i
++
)
{
for
(
i
=
0
;
i
<
PTRS_PER_PTE
/
SRMMU_REAL
_PTRS_PER_PTE
;
i
++
)
{
srmmu_set_pte
((
pte_t
*
)
&
pmdp
->
pmdv
[
i
],
SRMMU_ET_PTD
|
ptp
);
ptp
+=
(
SRMMU_PTRS_PER_PTE
*
sizeof
(
pte_t
)
>>
4
);
ptp
+=
(
SRMMU_
REAL_
PTRS_PER_PTE
*
sizeof
(
pte_t
)
>>
4
);
}
}
...
...
@@ -263,7 +263,7 @@ extern inline pgd_t *srmmu_pgd_offset(struct mm_struct * mm, unsigned long addre
static
inline
pmd_t
*
srmmu_pmd_offset
(
pgd_t
*
dir
,
unsigned
long
address
)
{
return
(
pmd_t
*
)
srmmu_pgd_page
(
*
dir
)
+
((
address
>>
SRMMU_PMD_SHIFT_SOFT
)
&
(
SRMMU_PTRS_PER_PMD_SOFT
-
1
));
((
address
>>
PMD_SHIFT
)
&
(
PTRS_PER_PMD
-
1
));
}
/* Find an entry in the third-level page table.. */
...
...
@@ -273,7 +273,7 @@ static inline pte_t *srmmu_pte_offset(pmd_t * dir, unsigned long address)
pte
=
__nocache_va
((
dir
->
pmdv
[
0
]
&
SRMMU_PTD_PMASK
)
<<
4
);
return
(
pte_t
*
)
pte
+
((
address
>>
PAGE_SHIFT
)
&
(
SRMMU_PTRS_PER_PTE_SOFT
-
1
));
((
address
>>
PAGE_SHIFT
)
&
(
PTRS_PER_PTE
-
1
));
}
static
unsigned
long
srmmu_swp_type
(
swp_entry_t
entry
)
...
...
@@ -487,7 +487,7 @@ static void srmmu_pmd_free(pmd_t * pmd)
static
pte_t
*
srmmu_pte_alloc_one_kernel
(
struct
mm_struct
*
mm
,
unsigned
long
address
)
{
return
(
pte_t
*
)
srmmu_get_nocache
(
SRMMU_PTE_SZ_SOFT
,
SRMMU_PTE_SZ_SOFT
);
return
(
pte_t
*
)
srmmu_get_nocache
(
PTE_SIZE
,
PTE_SIZE
);
}
static
struct
page
*
...
...
@@ -502,7 +502,7 @@ srmmu_pte_alloc_one(struct mm_struct *mm, unsigned long address)
static
void
srmmu_free_pte_fast
(
pte_t
*
pte
)
{
srmmu_free_nocache
((
unsigned
long
)
pte
,
SRMMU_PTE_SZ_SOFT
);
srmmu_free_nocache
((
unsigned
long
)
pte
,
PTE_SIZE
);
}
static
void
srmmu_pte_free
(
struct
page
*
pte
)
...
...
@@ -514,7 +514,7 @@ static void srmmu_pte_free(struct page *pte)
BUG
();
p
=
page_to_pfn
(
pte
)
<<
PAGE_SHIFT
;
/* Physical address */
p
=
(
unsigned
long
)
__nocache_va
(
p
);
/* Nocached virtual */
srmmu_free_nocache
(
p
,
SRMMU_PTE_SZ_SOFT
);
srmmu_free_nocache
(
p
,
PTE_SIZE
);
}
/*
...
...
@@ -829,7 +829,7 @@ static void cypress_flush_cache_range(struct vm_area_struct *vma, unsigned long
a
=
0x20
;
b
=
0x40
;
c
=
0x60
;
d
=
0x80
;
e
=
0xa0
;
f
=
0xc0
;
g
=
0xe0
;
start
&=
SRMMU_PMD_MASK
;
start
&=
SRMMU_
REAL_
PMD_MASK
;
while
(
start
<
end
)
{
faddr
=
(
start
+
(
0x10000
-
0x100
));
goto
inside
;
...
...
@@ -849,7 +849,7 @@ static void cypress_flush_cache_range(struct vm_area_struct *vma, unsigned long
"r"
(
a
),
"r"
(
b
),
"r"
(
c
),
"r"
(
d
),
"r"
(
e
),
"r"
(
f
),
"r"
(
g
));
}
while
(
faddr
!=
start
);
start
+=
SRMMU_PMD_SIZE
;
start
+=
SRMMU_
REAL_
PMD_SIZE
;
}
srmmu_set_context
(
octx
);
local_irq_restore
(
flags
);
...
...
@@ -1067,16 +1067,15 @@ void __init srmmu_early_allocate_ptable_skeleton(unsigned long start, unsigned l
}
pmdp
=
srmmu_pmd_offset
(
__nocache_fix
(
pgdp
),
start
);
if
(
srmmu_pmd_none
(
*
(
pmd_t
*
)
__nocache_fix
(
pmdp
)))
{
ptep
=
(
pte_t
*
)
__srmmu_get_nocache
(
SRMMU_PTE_SZ_SOFT
,
SRMMU_PTE_SZ_SOFT
);
ptep
=
(
pte_t
*
)
__srmmu_get_nocache
(
PTE_SIZE
,
PTE_SIZE
);
if
(
ptep
==
NULL
)
early_pgtable_allocfail
(
"pte"
);
memset
(
__nocache_fix
(
ptep
),
0
,
SRMMU_PTE_SZ_SOFT
);
memset
(
__nocache_fix
(
ptep
),
0
,
PTE_SIZE
);
srmmu_pmd_set
(
__nocache_fix
(
pmdp
),
ptep
);
}
if
(
start
>
(
0xffffffffUL
-
SRMMU_PMD_SIZE_SOFT
))
if
(
start
>
(
0xffffffffUL
-
PMD_SIZE
))
break
;
start
=
(
start
+
SRMMU_PMD_SIZE_SOFT
)
&
SRMMU_PMD_MASK_SOFT
;
start
=
(
start
+
PMD_SIZE
)
&
PMD_MASK
;
}
}
...
...
@@ -1097,16 +1096,16 @@ void __init srmmu_allocate_ptable_skeleton(unsigned long start, unsigned long en
}
pmdp
=
srmmu_pmd_offset
(
pgdp
,
start
);
if
(
srmmu_pmd_none
(
*
pmdp
))
{
ptep
=
(
pte_t
*
)
__srmmu_get_nocache
(
SRMMU_PTE_SZ_SOFT
,
SRMMU_PTE_SZ_SOFT
);
ptep
=
(
pte_t
*
)
__srmmu_get_nocache
(
PTE_SIZE
,
PTE_SIZE
);
if
(
ptep
==
NULL
)
early_pgtable_allocfail
(
"pte"
);
memset
(
ptep
,
0
,
SRMMU_PTE_SZ_SOFT
);
memset
(
ptep
,
0
,
PTE_SIZE
);
srmmu_pmd_set
(
pmdp
,
ptep
);
}
if
(
start
>
(
0xffffffffUL
-
SRMMU_PMD_SIZE_SOFT
))
if
(
start
>
(
0xffffffffUL
-
PMD_SIZE
))
break
;
start
=
(
start
+
SRMMU_PMD_SIZE_SOFT
)
&
SRMMU_PMD_MASK_SOFT
;
start
=
(
start
+
PMD_SIZE
)
&
PMD_MASK
;
}
}
...
...
@@ -1136,8 +1135,8 @@ void __init srmmu_inherit_prom_mappings(unsigned long start,unsigned long end)
/* A red snapper, see what it really is. */
what
=
0
;
if
(
!
(
start
&
~
(
SRMMU_PMD_MASK
)))
{
if
(
srmmu_hwprobe
((
start
-
PAGE_SIZE
)
+
SRMMU_PMD_SIZE
)
==
prompte
)
if
(
!
(
start
&
~
(
SRMMU_
REAL_
PMD_MASK
)))
{
if
(
srmmu_hwprobe
((
start
-
PAGE_SIZE
)
+
SRMMU_
REAL_
PMD_SIZE
)
==
prompte
)
what
=
1
;
}
...
...
@@ -1162,11 +1161,11 @@ void __init srmmu_inherit_prom_mappings(unsigned long start,unsigned long end)
}
pmdp
=
srmmu_pmd_offset
(
__nocache_fix
(
pgdp
),
start
);
if
(
srmmu_pmd_none
(
*
(
pmd_t
*
)
__nocache_fix
(
pmdp
)))
{
ptep
=
(
pte_t
*
)
__srmmu_get_nocache
(
SRMMU_PTE_SZ_SOFT
,
SRMMU_PTE_SZ_SOFT
);
ptep
=
(
pte_t
*
)
__srmmu_get_nocache
(
PTE_SIZE
,
PTE_SIZE
);
if
(
ptep
==
NULL
)
early_pgtable_allocfail
(
"pte"
);
memset
(
__nocache_fix
(
ptep
),
0
,
SRMMU_PTE_SZ_SOFT
);
memset
(
__nocache_fix
(
ptep
),
0
,
PTE_SIZE
);
srmmu_pmd_set
(
__nocache_fix
(
pmdp
),
ptep
);
}
if
(
what
==
1
)
{
...
...
@@ -1176,9 +1175,9 @@ void __init srmmu_inherit_prom_mappings(unsigned long start,unsigned long end)
* good hardware PTE piece. Alternatives seem worse.
*/
unsigned
int
x
;
/* Index of HW PMD in soft cluster */
x
=
(
start
>>
SRMMU_
PMD_SHIFT
)
&
15
;
x
=
(
start
>>
PMD_SHIFT
)
&
15
;
*
(
unsigned
long
*
)
__nocache_fix
(
&
pmdp
->
pmdv
[
x
])
=
prompte
;
start
+=
SRMMU_PMD_SIZE
;
start
+=
SRMMU_
REAL_
PMD_SIZE
;
continue
;
}
ptep
=
srmmu_pte_offset
(
__nocache_fix
(
pmdp
),
start
);
...
...
@@ -2139,16 +2138,11 @@ void __init ld_mmu_srmmu(void)
extern
void
ld_mmu_iounit
(
void
);
extern
void
___xchg32_sun4md
(
void
);
BTFIXUPSET_SIMM13
(
pmd_shift
,
SRMMU_PMD_SHIFT_SOFT
);
BTFIXUPSET_SETHI
(
pmd_size
,
SRMMU_PMD_SIZE_SOFT
);
BTFIXUPSET_SETHI
(
pmd_mask
,
SRMMU_PMD_MASK_SOFT
);
BTFIXUPSET_SIMM13
(
pgdir_shift
,
SRMMU_PGDIR_SHIFT
);
BTFIXUPSET_SETHI
(
pgdir_size
,
SRMMU_PGDIR_SIZE
);
BTFIXUPSET_SETHI
(
pgdir_mask
,
SRMMU_PGDIR_MASK
);
BTFIXUPSET_SIMM13
(
ptrs_per_pte
,
SRMMU_PTRS_PER_PTE_SOFT
);
BTFIXUPSET_SIMM13
(
ptrs_per_pmd
,
SRMMU_PTRS_PER_PMD_SOFT
);
BTFIXUPSET_SIMM13
(
ptrs_per_pmd
,
SRMMU_PTRS_PER_PMD
);
BTFIXUPSET_SIMM13
(
ptrs_per_pgd
,
SRMMU_PTRS_PER_PGD
);
BTFIXUPSET_INT
(
page_none
,
pgprot_val
(
SRMMU_PAGE_NONE
));
...
...
arch/sparc/mm/sun4c.c
View file @
99470cd2
...
...
@@ -2137,14 +2137,10 @@ void __init ld_mmu_sun4c(void)
printk
(
"Loading sun4c MMU routines
\n
"
);
/* First the constants */
BTFIXUPSET_SIMM13
(
pmd_shift
,
SUN4C_PMD_SHIFT
);
BTFIXUPSET_SETHI
(
pmd_size
,
SUN4C_PMD_SIZE
);
BTFIXUPSET_SETHI
(
pmd_mask
,
SUN4C_PMD_MASK
);
BTFIXUPSET_SIMM13
(
pgdir_shift
,
SUN4C_PGDIR_SHIFT
);
BTFIXUPSET_SETHI
(
pgdir_size
,
SUN4C_PGDIR_SIZE
);
BTFIXUPSET_SETHI
(
pgdir_mask
,
SUN4C_PGDIR_MASK
);
BTFIXUPSET_SIMM13
(
ptrs_per_pte
,
SUN4C_PTRS_PER_PTE
);
BTFIXUPSET_SIMM13
(
ptrs_per_pmd
,
SUN4C_PTRS_PER_PMD
);
BTFIXUPSET_SIMM13
(
ptrs_per_pgd
,
SUN4C_PTRS_PER_PGD
);
BTFIXUPSET_SIMM13
(
user_ptrs_per_pgd
,
KERNBASE
/
SUN4C_PGDIR_SIZE
);
...
...
drivers/sbus/sbus.c
View file @
99470cd2
...
...
@@ -309,6 +309,10 @@ static void __init sbus_fixup_all_regs(struct sbus_dev *first_sdev)
extern
void
register_proc_sparc_ioport
(
void
);
extern
void
firetruck_init
(
void
);
#ifdef CONFIG_SUN4
extern
void
sun4_dvma_init
(
void
);
#endif
static
int
__init
sbus_init
(
void
)
{
int
nd
,
this_sbus
,
sbus_devs
,
topnd
,
iommund
;
...
...
include/asm-sparc/bug.h
View file @
99470cd2
...
...
@@ -8,7 +8,7 @@
*/
#if (__GNUC__ > 3) || \
(__GNUC__ == 3 && __GNUC_MINOR__ > 3) || \
(__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >=
1
)
(__GNUC__ == 3 && __GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ >=
4
)
#define __bug_trap() __builtin_trap()
#else
#define __bug_trap() \
...
...
include/asm-sparc/dma-mapping.h
View file @
99470cd2
...
...
@@ -2,6 +2,7 @@
#define _ASM_SPARC_DMA_MAPPING_H
#include <linux/config.h>
#include <linux/device.h>
#ifdef CONFIG_PCI
#include <asm-generic/dma-mapping.h>
...
...
include/asm-sparc/dma.h
View file @
99470cd2
...
...
@@ -19,6 +19,7 @@
#include <asm/io.h>
#include <linux/spinlock.h>
struct
page
;
extern
spinlock_t
dma_spin_lock
;
static
__inline__
unsigned
long
claim_dma_lock
(
void
)
...
...
@@ -244,4 +245,46 @@ extern int isa_dma_bridge_buggy;
#define isa_dma_bridge_buggy (0)
#endif
/* Routines for data transfer buffers. */
BTFIXUPDEF_CALL
(
char
*
,
mmu_lockarea
,
char
*
,
unsigned
long
)
BTFIXUPDEF_CALL
(
void
,
mmu_unlockarea
,
char
*
,
unsigned
long
)
#define mmu_lockarea(vaddr,len) BTFIXUP_CALL(mmu_lockarea)(vaddr,len)
#define mmu_unlockarea(vaddr,len) BTFIXUP_CALL(mmu_unlockarea)(vaddr,len)
/* These are implementations for sbus_map_sg/sbus_unmap_sg... collapse later */
BTFIXUPDEF_CALL
(
__u32
,
mmu_get_scsi_one
,
char
*
,
unsigned
long
,
struct
sbus_bus
*
sbus
)
BTFIXUPDEF_CALL
(
void
,
mmu_get_scsi_sgl
,
struct
scatterlist
*
,
int
,
struct
sbus_bus
*
sbus
)
BTFIXUPDEF_CALL
(
void
,
mmu_release_scsi_one
,
__u32
,
unsigned
long
,
struct
sbus_bus
*
sbus
)
BTFIXUPDEF_CALL
(
void
,
mmu_release_scsi_sgl
,
struct
scatterlist
*
,
int
,
struct
sbus_bus
*
sbus
)
#define mmu_get_scsi_one(vaddr,len,sbus) BTFIXUP_CALL(mmu_get_scsi_one)(vaddr,len,sbus)
#define mmu_get_scsi_sgl(sg,sz,sbus) BTFIXUP_CALL(mmu_get_scsi_sgl)(sg,sz,sbus)
#define mmu_release_scsi_one(vaddr,len,sbus) BTFIXUP_CALL(mmu_release_scsi_one)(vaddr,len,sbus)
#define mmu_release_scsi_sgl(sg,sz,sbus) BTFIXUP_CALL(mmu_release_scsi_sgl)(sg,sz,sbus)
/*
* mmu_map/unmap are provided by iommu/iounit; Invalid to call on IIep.
*
* The mmu_map_dma_area establishes two mappings in one go.
* These mappings point to pages normally mapped at 'va' (linear address).
* First mapping is for CPU visible address at 'a', uncached.
* This is an alias, but it works because it is an uncached mapping.
* Second mapping is for device visible address, or "bus" address.
* The bus address is returned at '*pba'.
*
* These functions seem distinct, but are hard to split. On sun4c,
* at least for now, 'a' is equal to bus address, and retured in *pba.
* On sun4m, page attributes depend on the CPU type, so we have to
* know if we are mapping RAM or I/O, so it has to be an additional argument
* to a separate mapping function for CPU visible mappings.
*/
BTFIXUPDEF_CALL
(
int
,
mmu_map_dma_area
,
dma_addr_t
*
,
unsigned
long
,
unsigned
long
,
int
len
)
BTFIXUPDEF_CALL
(
struct
page
*
,
mmu_translate_dvma
,
unsigned
long
busa
)
BTFIXUPDEF_CALL
(
void
,
mmu_unmap_dma_area
,
unsigned
long
busa
,
int
len
)
#define mmu_map_dma_area(pba,va,a,len) BTFIXUP_CALL(mmu_map_dma_area)(pba,va,a,len)
#define mmu_unmap_dma_area(ba,len) BTFIXUP_CALL(mmu_unmap_dma_area)(ba,len)
#define mmu_translate_dvma(ba) BTFIXUP_CALL(mmu_translate_dvma)(ba)
#endif
/* !(_ASM_SPARC_DMA_H) */
include/asm-sparc/highmem.h
View file @
99470cd2
...
...
@@ -24,7 +24,7 @@
#include <asm/fixmap.h>
#include <asm/vaddrs.h>
#include <asm/kmap_types.h>
#include <asm/pgt
srmmu
.h>
#include <asm/pgt
able
.h>
/* declarations for highmem.c */
extern
unsigned
long
highstart_pfn
,
highend_pfn
;
...
...
@@ -43,7 +43,7 @@ extern void kmap_init(void) __init;
*/
#define LAST_PKMAP 1024
#define PKMAP_SIZE (LAST_PKMAP << PAGE_SHIFT)
#define PKMAP_BASE
SRMMU_PMD_ALIGN_SOFT
(SRMMU_NOCACHE_VADDR + (SRMMU_MAX_NOCACHE_PAGES << PAGE_SHIFT))
#define PKMAP_BASE
PMD_ALIGN
(SRMMU_NOCACHE_VADDR + (SRMMU_MAX_NOCACHE_PAGES << PAGE_SHIFT))
#define LAST_PKMAP_MASK (LAST_PKMAP - 1)
#define PKMAP_NR(virt) ((virt - PKMAP_BASE) >> PAGE_SHIFT)
...
...
include/asm-sparc/pci.h
View file @
99470cd2
...
...
@@ -87,6 +87,12 @@ extern dma_addr_t pci_map_page(struct pci_dev *hwdev, struct page *page,
extern
void
pci_unmap_page
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_address
,
size_t
size
,
int
direction
);
/* map_page and map_single cannot fail */
static
inline
int
pci_dma_mapping_error
(
dma_addr_t
dma_addr
)
{
return
0
;
}
/* Map a set of buffers described by scatterlist in streaming
* mode for DMA. This is the scather-gather version of the
* above pci_map_single interface. Here the scatter gather list
...
...
include/asm-sparc/pgtable.h
View file @
99470cd2
...
...
@@ -21,7 +21,6 @@
#include <asm/pgtsrmmu.h>
#include <asm/vac-ops.h>
#include <asm/oplib.h>
#include <asm/sbus.h>
#include <asm/btfixup.h>
#include <asm/system.h>
...
...
@@ -33,71 +32,10 @@ struct page;
extern
void
load_mmu
(
void
);
extern
unsigned
long
calc_highpages
(
void
);
/* Routines for data transfer buffers. */
BTFIXUPDEF_CALL
(
char
*
,
mmu_lockarea
,
char
*
,
unsigned
long
)
BTFIXUPDEF_CALL
(
void
,
mmu_unlockarea
,
char
*
,
unsigned
long
)
#define mmu_lockarea(vaddr,len) BTFIXUP_CALL(mmu_lockarea)(vaddr,len)
#define mmu_unlockarea(vaddr,len) BTFIXUP_CALL(mmu_unlockarea)(vaddr,len)
/* These are implementations for sbus_map_sg/sbus_unmap_sg... collapse later */
BTFIXUPDEF_CALL
(
__u32
,
mmu_get_scsi_one
,
char
*
,
unsigned
long
,
struct
sbus_bus
*
sbus
)
BTFIXUPDEF_CALL
(
void
,
mmu_get_scsi_sgl
,
struct
scatterlist
*
,
int
,
struct
sbus_bus
*
sbus
)
BTFIXUPDEF_CALL
(
void
,
mmu_release_scsi_one
,
__u32
,
unsigned
long
,
struct
sbus_bus
*
sbus
)
BTFIXUPDEF_CALL
(
void
,
mmu_release_scsi_sgl
,
struct
scatterlist
*
,
int
,
struct
sbus_bus
*
sbus
)
#define mmu_get_scsi_one(vaddr,len,sbus) BTFIXUP_CALL(mmu_get_scsi_one)(vaddr,len,sbus)
#define mmu_get_scsi_sgl(sg,sz,sbus) BTFIXUP_CALL(mmu_get_scsi_sgl)(sg,sz,sbus)
#define mmu_release_scsi_one(vaddr,len,sbus) BTFIXUP_CALL(mmu_release_scsi_one)(vaddr,len,sbus)
#define mmu_release_scsi_sgl(sg,sz,sbus) BTFIXUP_CALL(mmu_release_scsi_sgl)(sg,sz,sbus)
/*
* mmu_map/unmap are provided by iommu/iounit; Invalid to call on IIep.
*
* The mmu_map_dma_area establishes two mappings in one go.
* These mappings point to pages normally mapped at 'va' (linear address).
* First mapping is for CPU visible address at 'a', uncached.
* This is an alias, but it works because it is an uncached mapping.
* Second mapping is for device visible address, or "bus" address.
* The bus address is returned at '*pba'.
*
* These functions seem distinct, but are hard to split. On sun4c,
* at least for now, 'a' is equal to bus address, and retured in *pba.
* On sun4m, page attributes depend on the CPU type, so we have to
* know if we are mapping RAM or I/O, so it has to be an additional argument
* to a separate mapping function for CPU visible mappings.
*/
BTFIXUPDEF_CALL
(
int
,
mmu_map_dma_area
,
dma_addr_t
*
,
unsigned
long
,
unsigned
long
,
int
len
)
BTFIXUPDEF_CALL
(
struct
page
*
,
mmu_translate_dvma
,
unsigned
long
busa
)
BTFIXUPDEF_CALL
(
void
,
mmu_unmap_dma_area
,
unsigned
long
busa
,
int
len
)
#define mmu_map_dma_area(pba,va,a,len) BTFIXUP_CALL(mmu_map_dma_area)(pba,va,a,len)
#define mmu_unmap_dma_area(ba,len) BTFIXUP_CALL(mmu_unmap_dma_area)(ba,len)
#define mmu_translate_dvma(ba) BTFIXUP_CALL(mmu_translate_dvma)(ba)
/*
*/
BTFIXUPDEF_SIMM13
(
pmd_shift
)
BTFIXUPDEF_SETHI
(
pmd_size
)
BTFIXUPDEF_SETHI
(
pmd_mask
)
extern
unsigned
int
pmd_align
(
unsigned
int
addr
)
__attribute_const__
;
extern
__inline__
unsigned
int
pmd_align
(
unsigned
int
addr
)
{
return
((
addr
+
~
BTFIXUP_SETHI
(
pmd_mask
))
&
BTFIXUP_SETHI
(
pmd_mask
));
}
BTFIXUPDEF_SIMM13
(
pgdir_shift
)
BTFIXUPDEF_SETHI
(
pgdir_size
)
BTFIXUPDEF_SETHI
(
pgdir_mask
)
extern
unsigned
int
pgdir_align
(
unsigned
int
addr
)
__attribute_const__
;
extern
__inline__
unsigned
int
pgdir_align
(
unsigned
int
addr
)
{
return
((
addr
+
~
BTFIXUP_SETHI
(
pgdir_mask
))
&
BTFIXUP_SETHI
(
pgdir_mask
));
}
BTFIXUPDEF_SIMM13
(
ptrs_per_pte
)
BTFIXUPDEF_SIMM13
(
ptrs_per_pmd
)
BTFIXUPDEF_SIMM13
(
ptrs_per_pgd
)
BTFIXUPDEF_SIMM13
(
user_ptrs_per_pgd
)
...
...
@@ -112,19 +50,19 @@ BTFIXUPDEF_INT(page_copy)
BTFIXUPDEF_INT
(
page_readonly
)
BTFIXUPDEF_INT
(
page_kernel
)
#define PMD_SHIFT
BTFIXUP_SIMM13(pmd_shift)
#define PMD_SIZE
BTFIXUP_SETHI(pmd_size
)
#define PMD_MASK
BTFIXUP_SETHI(pmd_mask
)
#define PMD_ALIGN(
addr) pmd_align(addr
)
#define PMD_SHIFT
SUN4C_PMD_SHIFT
#define PMD_SIZE
(1UL << PMD_SHIFT
)
#define PMD_MASK
(~(PMD_SIZE-1)
)
#define PMD_ALIGN(
__addr) (((__addr) + ~PMD_MASK) & PMD_MASK
)
#define PGDIR_SHIFT BTFIXUP_SIMM13(pgdir_shift)
#define PGDIR_SIZE BTFIXUP_SETHI(pgdir_size)
#define PGDIR_MASK BTFIXUP_SETHI(pgdir_mask)
#define PGDIR_ALIGN pgdir_align(addr)
#define PTRS_PER_PTE BTFIXUP_SIMM13(ptrs_per_pte)
#define PTRS_PER_PTE 1024
#define PTRS_PER_PMD BTFIXUP_SIMM13(ptrs_per_pmd)
#define PTRS_PER_PGD BTFIXUP_SIMM13(ptrs_per_pgd)
#define USER_PTRS_PER_PGD BTFIXUP_SIMM13(user_ptrs_per_pgd)
#define FIRST_USER_PGD_NR 0
#define PTE_SIZE (PTRS_PER_PTE*4)
#define PAGE_NONE __pgprot(BTFIXUP_INT(page_none))
#define PAGE_SHARED __pgprot(BTFIXUP_INT(page_shared))
...
...
include/asm-sparc/pgtsrmmu.h
View file @
99470cd2
...
...
@@ -17,10 +17,10 @@
#define SRMMU_MAX_CONTEXTS 65536
/* PMD_SHIFT determines the size of the area a second-level page table entry can map */
#define SRMMU_
PMD_SHIFT
18
#define SRMMU_
PMD_SIZE (1UL << SRMMU
_PMD_SHIFT)
#define SRMMU_
PMD_MASK (~(SRMMU
_PMD_SIZE-1))
/* #define SRMMU_PMD_ALIGN(addr) (((addr)+SRMMU_PMD_SIZE-1)&SRMMU_PMD_MASK) */
#define SRMMU_
REAL_PMD_SHIFT
18
#define SRMMU_
REAL_PMD_SIZE (1UL << SRMMU_REAL
_PMD_SHIFT)
#define SRMMU_
REAL_PMD_MASK (~(SRMMU_REAL
_PMD_SIZE-1))
#define SRMMU_REAL_PMD_ALIGN(__addr) (((__addr)+SRMMU_REAL_PMD_SIZE-1)&SRMMU_REAL_PMD_MASK)
/* PGDIR_SHIFT determines what a third-level page table entry can map */
#define SRMMU_PGDIR_SHIFT 24
...
...
@@ -28,13 +28,13 @@
#define SRMMU_PGDIR_MASK (~(SRMMU_PGDIR_SIZE-1))
#define SRMMU_PGDIR_ALIGN(addr) (((addr)+SRMMU_PGDIR_SIZE-1)&SRMMU_PGDIR_MASK)
#define SRMMU_
PTRS_PER_PTE
64
#define SRMMU_
PTRS_PER_PMD
64
#define SRMMU_PTRS_PER_PGD
256
#define SRMMU_
REAL_PTRS_PER_PTE
64
#define SRMMU_
REAL_PTRS_PER_PMD
64
#define SRMMU_PTRS_PER_PGD
256
#define SRMMU_
PTE_TABLE_SIZE 0x100
/* 64 entries, 4 bytes a piece */
#define SRMMU_PMD_TABLE_SIZE
0x100
/* 64 entries, 4 bytes a piece */
#define SRMMU_PGD_TABLE_SIZE
0x400
/* 256 entries, 4 bytes a piece */
#define SRMMU_
REAL_PTE_TABLE_SIZE (SRMMU_REAL_PTRS_PER_PTE*4)
#define SRMMU_PMD_TABLE_SIZE
(SRMMU_REAL_PTRS_PER_PMD*4)
#define SRMMU_PGD_TABLE_SIZE
(SRMMU_PTRS_PER_PGD*4)
/*
* To support pagetables in highmem, Linux introduces APIs which
...
...
@@ -44,16 +44,11 @@
* software tables.
*
* PMD_SHIFT determines the size of the area a second-level page table entry
* can map, and our pmd_t is 16 times larger than normal.
* can map, and our pmd_t is 16 times larger than normal. The values which
* were once defined here are now generic for 4c and srmmu, so they're
* found in pgtable.h.
*/
#define SRMMU_PTRS_PER_PTE_SOFT (PAGE_SIZE/4)
/* 16 hard tables per 4K page */
#define SRMMU_PTRS_PER_PMD_SOFT 4
/* Each pmd_t contains 16 hard PTPs */
#define SRMMU_PTE_SZ_SOFT PAGE_SIZE
/* same as above, in bytes */
#define SRMMU_PMD_SHIFT_SOFT 22
#define SRMMU_PMD_SIZE_SOFT (1UL << SRMMU_PMD_SHIFT_SOFT)
#define SRMMU_PMD_MASK_SOFT (~(SRMMU_PMD_SIZE_SOFT-1))
#define SRMMU_PMD_ALIGN_SOFT(addr) (((addr)+SRMMU_PMD_SIZE_SOFT-1)&SRMMU_PMD_MASK_SOFT)
#define SRMMU_PTRS_PER_PMD 4
/* Definition of the values in the ET field of PTD's and PTE's */
#define SRMMU_ET_MASK 0x3
...
...
@@ -255,7 +250,7 @@ extern __inline__ void srmmu_flush_tlb_region(unsigned long addr)
extern
__inline__
void
srmmu_flush_tlb_segment
(
unsigned
long
addr
)
{
addr
&=
SRMMU_PMD_MASK
;
addr
&=
SRMMU_
REAL_
PMD_MASK
;
__asm__
__volatile__
(
"sta %%g0, [%0] %1
\n\t
"
:
:
"r"
(
addr
|
0x100
),
/* Flush TLB segment.. */
"i"
(
ASI_M_FLUSH_PROBE
)
:
"memory"
);
...
...
include/asm-sparc/pgtsun4.h
View file @
99470cd2
...
...
@@ -11,9 +11,6 @@
/* PMD_SHIFT determines the size of the area a second-level page table can map */
#define SUN4C_PMD_SHIFT 23
#define SUN4C_PMD_SIZE (1UL << SUN4C_PMD_SHIFT)
#define SUN4C_PMD_MASK (~(SUN4C_PMD_SIZE-1))
#define SUN4C_PMD_ALIGN(addr) (((addr)+SUN4C_PMD_SIZE-1)&SUN4C_PMD_MASK)
/* PGDIR_SHIFT determines what a third-level page table entry can map */
#define SUN4C_PGDIR_SHIFT 23
...
...
@@ -54,6 +51,7 @@
#define _SUN4C_PAGE_NOCACHE 0x10000000
/* non-cacheable page */
#define _SUN4C_PAGE_PRESENT 0x08000000
/* implemented in software */
#define _SUN4C_PAGE_IO 0x04000000
/* I/O page */
#define _SUN4C_PAGE_FILE 0x02000000
/* implemented in software */
#define _SUN4C_PAGE_READ 0x00800000
/* implemented in software */
#define _SUN4C_PAGE_WRITE 0x00400000
/* implemented in software */
#define _SUN4C_PAGE_ACCESSED 0x00200000
/* implemented in software */
...
...
@@ -74,6 +72,21 @@
#define SUN4C_PAGE_KERNEL __pgprot(_SUN4C_READABLE|_SUN4C_WRITEABLE|\
_SUN4C_PAGE_DIRTY|_SUN4C_PAGE_PRIV)
/* SUN4C swap entry encoding
*
* We use 5 bits for the type and 19 for the offset. This gives us
* 32 swapfiles of 4GB each. Encoding looks like:
*
* RRRRRRRRooooooooooooooooooottttt
* fedcba9876543210fedcba9876543210
*
* The top 8 bits are reserved for protection and status bits, especially
* FILE and PRESENT.
*/
#define SUN4C_SWP_TYPE_MASK 0x1f
#define SUN4C_SWP_OFF_MASK 0x7ffff
#define SUN4C_SWP_OFF_SHIFT 5
#ifndef __ASSEMBLY__
static
inline
unsigned
long
sun4c_get_synchronous_error
(
void
)
...
...
include/asm-sparc/pgtsun4c.h
View file @
99470cd2
...
...
@@ -10,9 +10,6 @@
/* PMD_SHIFT determines the size of the area a second-level page table can map */
#define SUN4C_PMD_SHIFT 22
#define SUN4C_PMD_SIZE (1UL << SUN4C_PMD_SHIFT)
#define SUN4C_PMD_MASK (~(SUN4C_PMD_SIZE-1))
#define SUN4C_PMD_ALIGN(addr) (((addr)+SUN4C_PMD_SIZE-1)&SUN4C_PMD_MASK)
/* PGDIR_SHIFT determines what a third-level page table entry can map */
#define SUN4C_PGDIR_SHIFT 22
...
...
include/asm-sparc/sun4prom.h
View file @
99470cd2
...
...
@@ -25,7 +25,7 @@ typedef struct {
unsigned
char
(
*
getchar
)(
void
);
/* Get char from input device */
void
(
*
putchar
)(
char
);
/* Put char to output device */
int
(
*
mayget
)(
void
);
/* Maybe get char, or -1 */
int
(
*
mayput
)(
void
);
/* Maybe put char, or -1 */
int
(
*
mayput
)(
int
);
/* Maybe put char, or -1 */
unsigned
char
*
echo
;
/* Should getchar echo? */
unsigned
char
*
insource
;
/* Input source selector */
unsigned
char
*
outsink
;
/* Output sink selector */
...
...
include/asm-sparc/viking.h
View file @
99470cd2
...
...
@@ -236,7 +236,7 @@ static inline unsigned long viking_hwprobe(unsigned long vaddr)
:
"=r"
(
val
)
:
"r"
(
vaddr
|
0x100
),
"i"
(
ASI_M_FLUSH_PROBE
));
if
((
val
&
SRMMU_ET_MASK
)
==
SRMMU_ET_PTE
)
{
vaddr
&=
~
SRMMU_PMD_MASK
;
vaddr
&=
~
SRMMU_
REAL_
PMD_MASK
;
vaddr
>>=
PAGE_SHIFT
;
return
val
|
(
vaddr
<<
8
);
}
...
...
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