Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Librem5
uboot-imx
Commits
31193c2c
Commit
31193c2c
authored
Dec 16, 2004
by
stroese
Browse files
HUB405 board update
parent
ab379df3
Changes
2
Hide whitespace changes
Inline
Side-by-side
board/esd/hub405/Makefile
View file @
31193c2c
...
...
@@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
LIB
=
lib
$(BOARD)
.a
OBJS
=
$(BOARD)
.o flash.o
OBJS
=
$(BOARD)
.o flash.o
../common/misc.o
$(LIB)
:
$(OBJS) $(SOBJS)
$(AR)
crv
$@
$(OBJS)
...
...
board/esd/hub405/hub405.c
View file @
31193c2c
...
...
@@ -26,7 +26,8 @@
#include <command.h>
#include <malloc.h>
/* ------------------------------------------------------------------------- */
extern
void
lxt971_no_sleep
(
void
);
int
board_early_init_f
(
void
)
...
...
@@ -60,8 +61,6 @@ int board_early_init_f (void)
}
/* ------------------------------------------------------------------------- */
int
misc_init_f
(
void
)
{
return
0
;
/* dummy implementation */
...
...
@@ -74,14 +73,10 @@ int misc_init_r (void)
volatile
unsigned
char
*
duart1_mcr
=
(
unsigned
char
*
)((
ulong
)
DUART1_BA
+
4
);
volatile
unsigned
char
*
duart2_mcr
=
(
unsigned
char
*
)((
ulong
)
DUART2_BA
+
4
);
volatile
unsigned
char
*
duart3_mcr
=
(
unsigned
char
*
)((
ulong
)
DUART3_BA
+
4
);
/*
* Reset external DUARTs
*/
out32
(
GPIO0_OR
,
in32
(
GPIO0_OR
)
|
CFG_DUART_RST
);
/* set reset to high */
udelay
(
10
);
/* wait 10us */
out32
(
GPIO0_OR
,
in32
(
GPIO0_OR
)
&
~
CFG_DUART_RST
);
/* set reset to low */
udelay
(
1000
);
/* wait 1ms */
volatile
unsigned
char
*
led_reg
=
(
unsigned
char
*
)((
ulong
)
DUART0_BA
+
0x20
);
unsigned
long
val
;
int
delay
,
flashcnt
;
char
*
str
;
/*
* Enable interrupts in exar duart mcr[3]
...
...
@@ -91,12 +86,70 @@ int misc_init_r (void)
*
duart2_mcr
=
0x08
;
*
duart3_mcr
=
0x08
;
/*
* Set RS232/RS422 control (RS232 = high on GPIO)
*/
val
=
in32
(
GPIO0_OR
);
val
&=
~
(
CFG_UART2_RS232
|
CFG_UART3_RS232
|
CFG_UART4_RS232
|
CFG_UART5_RS232
);
str
=
getenv
(
"phys0"
);
if
(
!
str
||
(
str
&&
(
str
[
0
]
==
'0'
)))
val
|=
CFG_UART2_RS232
;
str
=
getenv
(
"phys1"
);
if
(
!
str
||
(
str
&&
(
str
[
0
]
==
'0'
)))
val
|=
CFG_UART3_RS232
;
str
=
getenv
(
"phys2"
);
if
(
!
str
||
(
str
&&
(
str
[
0
]
==
'0'
)))
val
|=
CFG_UART4_RS232
;
str
=
getenv
(
"phys3"
);
if
(
!
str
||
(
str
&&
(
str
[
0
]
==
'0'
)))
val
|=
CFG_UART5_RS232
;
out32
(
GPIO0_OR
,
val
);
/*
* Set NAND-FLASH GPIO signals to default
*/
out32
(
GPIO0_OR
,
in32
(
GPIO0_OR
)
&
~
(
CFG_NAND_CLE
|
CFG_NAND_ALE
));
out32
(
GPIO0_OR
,
in32
(
GPIO0_OR
)
|
CFG_NAND_CE
);
/*
* check board type and setup AP power
*/
str
=
getenv
(
"bd_type"
);
/* this is only set on non prototype hardware */
if
(
str
!=
NULL
)
{
if
((
strcmp
(
str
,
"swch405"
)
==
0
)
||
(
strcmp
(
str
,
"hub405"
)
==
0
))
{
unsigned
char
led_reg_default
=
0
;
str
=
getenv
(
"ap_pwr"
);
if
(
!
str
||
(
str
&&
(
str
[
0
]
==
'1'
)))
led_reg_default
=
0x04
|
0x02
;
/* U2_LED | AP_PWR */
/*
* Flash LEDs on SWCH405
*/
for
(
flashcnt
=
0
;
flashcnt
<
3
;
flashcnt
++
)
{
*
led_reg
=
led_reg_default
;
/* LED_A..D off */
for
(
delay
=
0
;
delay
<
100
;
delay
++
)
udelay
(
1000
);
*
led_reg
=
led_reg_default
|
0xf0
;
/* LED_A..D on */
for
(
delay
=
0
;
delay
<
50
;
delay
++
)
udelay
(
1000
);
}
*
led_reg
=
led_reg_default
;
}
}
/*
* Reset external DUARTs
*/
out32
(
GPIO0_OR
,
in32
(
GPIO0_OR
)
|
CFG_DUART_RST
);
/* set reset to high */
udelay
(
10
);
/* wait 10us */
out32
(
GPIO0_OR
,
in32
(
GPIO0_OR
)
&
~
CFG_DUART_RST
);
/* set reset to low */
udelay
(
1000
);
/* wait 1ms */
return
(
0
);
}
...
...
@@ -104,7 +157,6 @@ int misc_init_r (void)
/*
* Check Board Identity:
*/
int
checkboard
(
void
)
{
unsigned
char
str
[
64
];
...
...
@@ -120,10 +172,14 @@ int checkboard (void)
putc
(
'\n'
);
/*
* Disable sleep mode in LXT971
*/
lxt971_no_sleep
();
return
0
;
}
/* ------------------------------------------------------------------------- */
long
int
initdram
(
int
board_type
)
{
...
...
@@ -140,7 +196,6 @@ long int initdram (int board_type)
return
(
4
*
1024
*
1024
<<
((
val
&
0x000e0000
)
>>
17
));
}
/* ------------------------------------------------------------------------- */
int
testdram
(
void
)
{
...
...
@@ -150,7 +205,6 @@ int testdram (void)
return
(
0
);
}
/* ------------------------------------------------------------------------- */
#if (CONFIG_COMMANDS & CFG_CMD_NAND)
#include <linux/mtd/nand.h>
...
...
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