Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
717b5aad
U
U-Boot.Mirror
项目概览
OS
/
U-Boot.Mirror
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
U-Boot.Mirror
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
717b5aad
编写于
4月 27, 2002
作者:
W
wdenk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Initial revision
上级
acd2fe37
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
178 addition
and
0 deletion
+178
-0
examples/Makefile
examples/Makefile
+66
-0
include/ns16550.h
include/ns16550.h
+112
-0
未找到文件。
examples/Makefile
0 → 100644
浏览文件 @
717b5aad
#
# (C) Copyright 2000
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
#
# See file CREDITS for list of people who contributed to this
# project.
#
# 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
#
LOAD_ADDR
=
0x40000
include
$(TOPDIR)/config.mk
SREC
=
hello_world.srec
# The following example is pretty 8xx specific...
ifeq
($(CPU),mpc8xx)
SREC
+=
timer.srec
endif
# Utility for resetting i82559 EEPROM
ifeq
($(BOARD),oxc)
SREC
+=
eepro100_eeprom.srec
endif
OBJS
=
$(SREC:.srec=.o)
LIB
=
libsyscall.a
LIBAOBJS
=
syscall.o
LIBCOBJS
=
LIBOBJS
=
$(LIBAOBJS)
$(LIBCOBJS)
CPPFLAGS
+=
-I
..
all
:
.depend $(LIB) $(SREC)
#########################################################################
$(LIB)
:
.depend $(LIBOBJS)
$(AR)
crv
$@
$(LIBOBJS)
%.srec
:
%.o $(LIB)
$(LD)
-g
-Ttext
$(LOAD_ADDR)
-o
$
(
<:.o
=)
-e
$
(
<:.o
=)
$<
$(LIB)
$(OBJCOPY)
-O
srec
$
(
<:.o
=)
$@
#########################################################################
.depend
:
Makefile $(OBJS:.o=.c) $(LIBCOBJS:.o=.c) $(LIBAOBJS:.o=.S)
$(CC)
-M
$(CFLAGS)
$(OBJS:.o=.c)
$(LIBCOBJS:.o=.c)
$(LIBAOBJS:.o=.S)
>
$@
sinclude
.depend
#########################################################################
include/ns16550.h
0 → 100644
浏览文件 @
717b5aad
/*
* NS16550 Serial Port
* originally from linux source (arch/ppc/boot/ns16550.h)
* modified slightly to
* have addresses as offsets from CFG_ISA_BASE
* added a few more definitions
* added prototypes for ns16550.c
* reduced no of com ports to 2
* modifications (c) Rob Taylor, Flying Pig Systems. 2000.
*/
#if (CFG_NS16550_REG_SIZE == 1)
struct
NS16550
{
unsigned
char
rbr
;
/* 0 */
unsigned
char
ier
;
/* 1 */
unsigned
char
fcr
;
/* 2 */
unsigned
char
lcr
;
/* 3 */
unsigned
char
mcr
;
/* 4 */
unsigned
char
lsr
;
/* 5 */
unsigned
char
msr
;
/* 6 */
unsigned
char
scr
;
/* 7 */
}
__attribute__
((
packed
));
#elif (CFG_NS16550_REG_SIZE == 2)
struct
NS16550
{
unsigned
short
rbr
;
/* 0 */
unsigned
short
ier
;
/* 1 */
unsigned
short
fcr
;
/* 2 */
unsigned
short
lcr
;
/* 3 */
unsigned
short
mcr
;
/* 4 */
unsigned
short
lsr
;
/* 5 */
unsigned
short
msr
;
/* 6 */
unsigned
short
scr
;
/* 7 */
}
__attribute__
((
packed
));
#elif (CFG_NS16550_REG_SIZE == 4)
struct
NS16550
{
unsigned
long
rbr
;
/* 0 */
unsigned
long
ier
;
/* 1 */
unsigned
long
fcr
;
/* 2 */
unsigned
long
lcr
;
/* 3 */
unsigned
long
mcr
;
/* 4 */
unsigned
long
lsr
;
/* 5 */
unsigned
long
msr
;
/* 6 */
unsigned
long
scr
;
/* 7 */
}
__attribute__
((
packed
));
#elif (CFG_NS16550_REG_SIZE == -4)
struct
NS16550
{
unsigned
char
rbr
;
/* 0 */
int
pad1
:
24
;
unsigned
char
ier
;
/* 1 */
int
pad2
:
24
;
unsigned
char
fcr
;
/* 2 */
int
pad3
:
24
;
unsigned
char
lcr
;
/* 3 */
int
pad4
:
24
;
unsigned
char
mcr
;
/* 4 */
int
pad5
:
24
;
unsigned
char
lsr
;
/* 5 */
int
pad6
:
24
;
unsigned
char
msr
;
/* 6 */
int
pad7
:
24
;
unsigned
char
scr
;
/* 7 */
int
pad8
:
24
;
}
__attribute__
((
packed
));
#else
#error "Please define NS16550 registers size."
#endif
#define thr rbr
#define iir fcr
#define dll rbr
#define dlm ier
typedef
volatile
struct
NS16550
*
NS16550_t
;
#define FCR_FIFO_EN 0x01
/* Fifo enable */
#define FCR_RXSR 0x02
/* Receiver soft reset */
#define FCR_TXSR 0x04
/* Transmitter soft reset */
#define MCR_DTR 0x01
#define MCR_RTS 0x02
#define MCR_DMA_EN 0x04
#define MCR_TX_DFR 0x08
#define LCR_WLS_MSK 0x03
/* character length slect mask */
#define LCR_WLS_5 0x00
/* 5 bit character length */
#define LCR_WLS_6 0x01
/* 6 bit character length */
#define LCR_WLS_7 0x02
/* 7 bit character length */
#define LCR_WLS_8 0x03
/* 8 bit character length */
#define LCR_STB 0x04
/* Number of stop Bits, off = 1, on = 1.5 or 2) */
#define LCR_PEN 0x08
/* Parity eneble */
#define LCR_EPS 0x10
/* Even Parity Select */
#define LCR_STKP 0x20
/* Stick Parity */
#define LCR_SBRK 0x40
/* Set Break */
#define LCR_BKSE 0x80
/* Bank select enable */
#define LSR_DR 0x01
/* Data ready */
#define LSR_OE 0x02
/* Overrun */
#define LSR_PE 0x04
/* Parity error */
#define LSR_FE 0x08
/* Framing error */
#define LSR_BI 0x10
/* Break */
#define LSR_THRE 0x20
/* Xmit holding register empty */
#define LSR_TEMT 0x40
/* Xmitter empty */
#define LSR_ERR 0x80
/* Error */
/* useful defaults for LCR */
#define LCR_8N1 0x03
void
NS16550_init
(
NS16550_t
com_port
,
int
baud_divisor
);
void
NS16550_putc
(
NS16550_t
com_port
,
char
c
);
char
NS16550_getc
(
NS16550_t
com_port
);
int
NS16550_tstc
(
NS16550_t
com_port
);
void
NS16550_reinit
(
NS16550_t
com_port
,
int
baud_divisor
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录