Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
10717741
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
10717741
编写于
7月 06, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge master.kernel.org:/home/rmk/linux-2.6-arm
上级
07bbeaf1
450008b5
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
198 addition
and
17 deletion
+198
-17
arch/arm/kernel/armksyms.c
arch/arm/kernel/armksyms.c
+3
-0
arch/arm/mach-ixp4xx/common-pci.c
arch/arm/mach-ixp4xx/common-pci.c
+2
-2
arch/arm/mach-ixp4xx/coyote-setup.c
arch/arm/mach-ixp4xx/coyote-setup.c
+15
-12
arch/arm/mach-ixp4xx/ixdp425-setup.c
arch/arm/mach-ixp4xx/ixdp425-setup.c
+2
-1
arch/arm/mm/proc-v6.S
arch/arm/mm/proc-v6.S
+1
-1
include/asm-arm/arch-ixp4xx/io.h
include/asm-arm/arch-ixp4xx/io.h
+175
-1
未找到文件。
arch/arm/kernel/armksyms.c
浏览文件 @
10717741
...
@@ -41,7 +41,10 @@ extern void fp_enter(void);
...
@@ -41,7 +41,10 @@ extern void fp_enter(void);
* This has a special calling convention; it doesn't
* This has a special calling convention; it doesn't
* modify any of the usual registers, except for LR.
* modify any of the usual registers, except for LR.
*/
*/
#define EXPORT_CRC_ALIAS(sym) __CRC_SYMBOL(sym, "")
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
#define EXPORT_SYMBOL_ALIAS(sym,orig) \
EXPORT_CRC_ALIAS(sym) \
const struct kernel_symbol __ksymtab_##sym \
const struct kernel_symbol __ksymtab_##sym \
__attribute__((section("__ksymtab"))) = \
__attribute__((section("__ksymtab"))) = \
{ (unsigned long)&orig, #sym };
{ (unsigned long)&orig, #sym };
...
...
arch/arm/mach-ixp4xx/common-pci.c
浏览文件 @
10717741
...
@@ -453,8 +453,8 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
...
@@ -453,8 +453,8 @@ int ixp4xx_setup(int nr, struct pci_sys_data *sys)
local_write_config
(
PCI_COMMAND
,
2
,
PCI_COMMAND_MASTER
|
PCI_COMMAND_MEMORY
);
local_write_config
(
PCI_COMMAND
,
2
,
PCI_COMMAND_MASTER
|
PCI_COMMAND_MEMORY
);
res
[
0
].
name
=
"PCI I/O Space"
;
res
[
0
].
name
=
"PCI I/O Space"
;
res
[
0
].
start
=
0x0000
1
000
;
res
[
0
].
start
=
0x0000
0
000
;
res
[
0
].
end
=
0x
ffff0000
;
res
[
0
].
end
=
0x
0000ffff
;
res
[
0
].
flags
=
IORESOURCE_IO
;
res
[
0
].
flags
=
IORESOURCE_IO
;
res
[
1
].
name
=
"PCI Memory Space"
;
res
[
1
].
name
=
"PCI Memory Space"
;
...
...
arch/arm/mach-ixp4xx/coyote-setup.c
浏览文件 @
10717741
...
@@ -56,21 +56,24 @@ static struct resource coyote_uart_resource = {
...
@@ -56,21 +56,24 @@ static struct resource coyote_uart_resource = {
.
flags
=
IORESOURCE_MEM
,
.
flags
=
IORESOURCE_MEM
,
};
};
static
struct
plat_serial8250_port
coyote_uart_data
=
{
static
struct
plat_serial8250_port
coyote_uart_data
[]
=
{
.
mapbase
=
IXP4XX_UART2_BASE_PHYS
,
{
.
membase
=
(
char
*
)
IXP4XX_UART2_BASE_VIRT
+
REG_OFFSET
,
.
mapbase
=
IXP4XX_UART2_BASE_PHYS
,
.
irq
=
IRQ_IXP4XX_UART2
,
.
membase
=
(
char
*
)
IXP4XX_UART2_BASE_VIRT
+
REG_OFFSET
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
irq
=
IRQ_IXP4XX_UART2
,
.
iotype
=
UPIO_MEM
,
.
flags
=
UPF_BOOT_AUTOCONF
,
.
regshift
=
2
,
.
iotype
=
UPIO_MEM
,
.
uartclk
=
IXP4XX_UART_XTAL
,
.
regshift
=
2
,
.
uartclk
=
IXP4XX_UART_XTAL
,
},
{
},
};
};
static
struct
platform_device
coyote_uart
=
{
static
struct
platform_device
coyote_uart
=
{
.
name
=
"serial8250"
,
.
name
=
"serial8250"
,
.
id
=
0
,
.
id
=
0
,
.
dev
=
{
.
dev
=
{
.
platform_data
=
&
coyote_uart_data
,
.
platform_data
=
coyote_uart_data
,
},
},
.
num_resources
=
1
,
.
num_resources
=
1
,
.
resource
=
&
coyote_uart_resource
,
.
resource
=
&
coyote_uart_resource
,
...
@@ -87,10 +90,10 @@ static void __init coyote_init(void)
...
@@ -87,10 +90,10 @@ static void __init coyote_init(void)
*
IXP4XX_EXP_CS1
=
*
IXP4XX_EXP_CS0
;
*
IXP4XX_EXP_CS1
=
*
IXP4XX_EXP_CS0
;
if
(
machine_is_ixdpg425
())
{
if
(
machine_is_ixdpg425
())
{
coyote_uart_data
.
membase
=
coyote_uart_data
[
0
]
.
membase
=
(
char
*
)(
IXP4XX_UART1_BASE_VIRT
+
REG_OFFSET
);
(
char
*
)(
IXP4XX_UART1_BASE_VIRT
+
REG_OFFSET
);
coyote_uart_data
.
mapbase
=
IXP4XX_UART1_BASE_PHYS
;
coyote_uart_data
[
0
]
.
mapbase
=
IXP4XX_UART1_BASE_PHYS
;
coyote_uart_data
.
irq
=
IRQ_IXP4XX_UART1
;
coyote_uart_data
[
0
]
.
irq
=
IRQ_IXP4XX_UART1
;
}
}
...
...
arch/arm/mach-ixp4xx/ixdp425-setup.c
浏览文件 @
10717741
...
@@ -95,7 +95,8 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
...
@@ -95,7 +95,8 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
.
iotype
=
UPIO_MEM
,
.
iotype
=
UPIO_MEM
,
.
regshift
=
2
,
.
regshift
=
2
,
.
uartclk
=
IXP4XX_UART_XTAL
,
.
uartclk
=
IXP4XX_UART_XTAL
,
}
},
{
},
};
};
static
struct
platform_device
ixdp425_uart
=
{
static
struct
platform_device
ixdp425_uart
=
{
...
...
arch/arm/mm/proc-v6.S
浏览文件 @
10717741
...
@@ -200,7 +200,7 @@ __v6_setup:
...
@@ -200,7 +200,7 @@ __v6_setup:
mcr
p15
,
0
,
r4
,
c2
,
c0
,
1
@
load
TTB1
mcr
p15
,
0
,
r4
,
c2
,
c0
,
1
@
load
TTB1
#ifdef CONFIG_VFP
#ifdef CONFIG_VFP
mrc
p15
,
0
,
r0
,
c1
,
c0
,
2
mrc
p15
,
0
,
r0
,
c1
,
c0
,
2
orr
r0
,
r0
,
#(
3
<<
20
)
orr
r0
,
r0
,
#(
0xf
<<
20
)
mcr
p15
,
0
,
r0
,
c1
,
c0
,
2
@
Enable
full
access
to
VFP
mcr
p15
,
0
,
r0
,
c1
,
c0
,
2
@
Enable
full
access
to
VFP
#endif
#endif
mrc
p15
,
0
,
r0
,
c1
,
c0
,
0
@
read
control
register
mrc
p15
,
0
,
r0
,
c1
,
c0
,
0
@
read
control
register
...
...
include/asm-arm/arch-ixp4xx/io.h
浏览文件 @
10717741
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
*
*
* Author: Deepak Saxena <dsaxena@plexity.net>
* Author: Deepak Saxena <dsaxena@plexity.net>
*
*
* Copyright (C) 2002-200
4
MontaVista Software, Inc.
* Copyright (C) 2002-200
5
MontaVista Software, Inc.
*
*
* This program is free software; you can redistribute it and/or modify
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
...
@@ -383,6 +383,180 @@ __ixp4xx_insl(u32 io_addr, u32 *vaddr, u32 count)
...
@@ -383,6 +383,180 @@ __ixp4xx_insl(u32 io_addr, u32 *vaddr, u32 count)
*
vaddr
++
=
inl
(
io_addr
);
*
vaddr
++
=
inl
(
io_addr
);
}
}
#define __is_io_address(p) (((unsigned long)p >= 0x0) && \
((unsigned long)p <= 0x0000ffff))
static
inline
unsigned
int
__ixp4xx_ioread8
(
void
__iomem
*
port
)
{
if
(
__is_io_address
(
port
))
return
(
unsigned
int
)
__ixp4xx_inb
((
unsigned
int
)
port
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
return
(
unsigned
int
)
__raw_readb
((
u32
)
port
);
#else
return
(
unsigned
int
)
__ixp4xx_readb
((
u32
)
port
);
#endif
}
static
inline
void
__ixp4xx_ioread8_rep
(
u32
port
,
u8
*
vaddr
,
u32
count
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_insb
(
port
,
vaddr
,
count
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_readsb
((
void
__iomem
*
)
port
,
vaddr
,
count
);
#else
__ixp4xx_readsb
(
port
,
vaddr
,
count
);
#endif
}
static
inline
unsigned
int
__ixp4xx_ioread16
(
void
__iomem
*
port
)
{
if
(
__is_io_address
(
port
))
return
(
unsigned
int
)
__ixp4xx_inw
((
unsigned
int
)
port
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
return
le16_to_cpu
(
__raw_readw
((
u32
)
port
));
#else
return
(
unsigned
int
)
__ixp4xx_readw
((
u32
)
port
);
#endif
}
static
inline
void
__ixp4xx_ioread16_rep
(
u32
port
,
u16
*
vaddr
,
u32
count
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_insw
(
port
,
vaddr
,
count
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_readsw
((
void
__iomem
*
)
port
,
vaddr
,
count
);
#else
__ixp4xx_readsw
(
port
,
vaddr
,
count
);
#endif
}
static
inline
unsigned
int
__ixp4xx_ioread32
(
void
__iomem
*
port
)
{
if
(
__is_io_address
(
port
))
return
(
unsigned
int
)
__ixp4xx_inl
((
unsigned
int
)
port
);
else
{
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
return
le32_to_cpu
(
__raw_readl
((
u32
)
port
));
#else
return
(
unsigned
int
)
__ixp4xx_readl
((
u32
)
port
);
#endif
}
}
static
inline
void
__ixp4xx_ioread32_rep
(
u32
port
,
u32
*
vaddr
,
u32
count
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_insl
(
port
,
vaddr
,
count
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_readsl
((
void
__iomem
*
)
port
,
vaddr
,
count
);
#else
__ixp4xx_readsl
(
port
,
vaddr
,
count
);
#endif
}
static
inline
void
__ixp4xx_iowrite8
(
u8
value
,
void
__iomem
*
port
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_outb
(
value
,
(
unsigned
int
)
port
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_writeb
(
value
,
(
u32
)
port
);
#else
__ixp4xx_writeb
(
value
,
(
u32
)
port
);
#endif
}
static
inline
void
__ixp4xx_iowrite8_rep
(
u32
port
,
u8
*
vaddr
,
u32
count
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_outsb
(
port
,
vaddr
,
count
);
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_writesb
((
void
__iomem
*
)
port
,
vaddr
,
count
);
#else
__ixp4xx_writesb
(
port
,
vaddr
,
count
);
#endif
}
static
inline
void
__ixp4xx_iowrite16
(
u16
value
,
void
__iomem
*
port
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_outw
(
value
,
(
unsigned
int
)
port
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_writew
(
cpu_to_le16
(
value
),
(
u32
)
port
);
#else
__ixp4xx_writew
(
value
,
(
u32
)
port
);
#endif
}
static
inline
void
__ixp4xx_iowrite16_rep
(
u32
port
,
u16
*
vaddr
,
u32
count
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_outsw
(
port
,
vaddr
,
count
);
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_readsw
((
void
__iomem
*
)
port
,
vaddr
,
count
);
#else
__ixp4xx_writesw
(
port
,
vaddr
,
count
);
#endif
}
static
inline
void
__ixp4xx_iowrite32
(
u32
value
,
void
__iomem
*
port
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_outl
(
value
,
(
unsigned
int
)
port
);
else
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_writel
(
cpu_to_le32
(
value
),
(
u32
)
port
);
#else
__ixp4xx_writel
(
value
,
(
u32
)
port
);
#endif
}
static
inline
void
__ixp4xx_iowrite32_rep
(
u32
port
,
u32
*
vaddr
,
u32
count
)
{
if
(
__is_io_address
(
port
))
__ixp4xx_outsl
(
port
,
vaddr
,
count
);
#ifndef CONFIG_IXP4XX_INDIRECT_PCI
__raw_readsl
((
void
__iomem
*
)
port
,
vaddr
,
count
);
#else
__ixp4xx_outsl
(
port
,
vaddr
,
count
);
#endif
}
#define ioread8(p) __ixp4xx_ioread8(p)
#define ioread16(p) __ixp4xx_ioread16(p)
#define ioread32(p) __ixp4xx_ioread32(p)
#define ioread8_rep(p, v, c) __ixp4xx_ioread8_rep(p, v, c)
#define ioread16_rep(p, v, c) __ixp4xx_ioread16_rep(p, v, c)
#define ioread32_rep(p, v, c) __ixp4xx_ioread32_rep(p, v, c)
#define iowrite8(v,p) __ixp4xx_iowrite8(v,p)
#define iowrite16(v,p) __ixp4xx_iowrite16(v,p)
#define iowrite32(v,p) __ixp4xx_iowrite32(v,p)
#define iowrite8_rep(p, v, c) __ixp4xx_iowrite8_rep(p, v, c)
#define iowrite16_rep(p, v, c) __ixp4xx_iowrite16_rep(p, v, c)
#define iowrite32_rep(p, v, c) __ixp4xx_iowrite32_rep(p, v, c)
#define ioport_map(port, nr) ((void __iomem*)port)
#define ioport_unmap(addr)
#endif // __ASM_ARM_ARCH_IO_H
#endif // __ASM_ARM_ARCH_IO_H
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录