Skip to content

Commit 5568e61

Browse files
committed
Add support for Prodrive P3P440 board:
- Added onboard PPC440 DDR autodetection in cpu/ppc/sdram.c - CFG_FLASH_QUIET_TEST added to use the common CFI driver for bank autodetection Patch by Stefan Roese, 22 Nov 2005
1 parent fe126d8 commit 5568e61

File tree

16 files changed

+1092
-7
lines changed

16 files changed

+1092
-7
lines changed

CHANGELOG

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
Changes for U-Boot 1.1.4:
33
======================================================================
44

5+
* Add support for Prodrive P3P440 board:
6+
- Added onboard PPC440 DDR autodetection in cpu/ppc/sdram.c
7+
- CFG_FLASH_QUIET_TEST added to use the common CFI driver
8+
for bank autodetection
9+
Patch by Stefan Roese, 22 Nov 2005
10+
511
* Change all '$(...)' variable references into '${...}'
612
which makes the environment compatible with the hush shell.
713
WARNING: Support for the old '$(...)' syntax will be

MAKEALL

+4-4
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ LIST_4xx=" \
7070
HH405 HUB405 JSE KAREF \
7171
METROBOX MIP405 MIP405T ML2 \
7272
ml300 ocotea OCRTC ORSG \
73-
PCI405 PIP405 PLU405 PMC405 \
74-
PPChameleonEVB sbc405 VOH405 VOM405 \
75-
W7OLMC W7OLMG walnut WUH405 \
76-
XPEDITE1K yellowstone yosemite \
73+
p3p440 PCI405 PIP405 PLU405 \
74+
PMC405 PPChameleonEVB sbc405 VOH405 \
75+
VOM405 W7OLMC W7OLMG walnut \
76+
WUH405 XPEDITE1K yellowstone yosemite \
7777
"
7878

7979
#########################################################################

Makefile

+3
Original file line numberDiff line numberDiff line change
@@ -839,6 +839,9 @@ OCRTC_config \
839839
ORSG_config: unconfig
840840
@./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd
841841

842+
p3p440_config: unconfig
843+
@./mkconfig $(@:_config=) ppc ppc4xx p3p440 prodrive
844+
842845
PCI405_config: unconfig
843846
@./mkconfig $(@:_config=) ppc ppc4xx pci405 esd
844847

README

+6
Original file line numberDiff line numberDiff line change
@@ -1766,6 +1766,12 @@ Configuration Settings:
17661766
This option also enables the building of the cfi_flash driver
17671767
in the drivers directory
17681768

1769+
- CFG_FLASH_QUIET_TEST
1770+
If this option is defined, the common CFI flash doesn't
1771+
print it's warning upon not recognized FLASH banks. This
1772+
is useful, if some of the configured banks are only
1773+
optionally available.
1774+
17691775
- CFG_RX_ETH_BUFFER:
17701776
Defines the number of ethernet receive buffers. On some
17711777
ethernet controllers it is recommended to set this value

board/prodrive/p3p440/Makefile

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#
2+
# (C) Copyright 2002
3+
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4+
#
5+
# See file CREDITS for list of people who contributed to this
6+
# project.
7+
#
8+
# This program is free software; you can redistribute it and/or
9+
# modify it under the terms of the GNU General Public License as
10+
# published by the Free Software Foundation; either version 2 of
11+
# the License, or (at your option) any later version.
12+
#
13+
# This program is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
# GNU General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU General Public License
19+
# along with this program; if not, write to the Free Software
20+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21+
# MA 02111-1307 USA
22+
#
23+
24+
include $(TOPDIR)/config.mk
25+
26+
LIB = lib$(BOARD).a
27+
28+
OBJS = $(BOARD).o
29+
SOBJS = init.o
30+
31+
$(LIB): $(OBJS) $(SOBJS)
32+
$(AR) crv $@ $(OBJS)
33+
34+
clean:
35+
rm -f $(SOBJS) $(OBJS)
36+
37+
distclean: clean
38+
rm -f $(LIB) core *.bak .depend
39+
40+
#########################################################################
41+
42+
.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
43+
$(CC) -M $(CFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
44+
45+
sinclude .depend
46+
47+
#########################################################################

board/prodrive/p3p440/config.mk

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#
2+
# (C) Copyright 2002
3+
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4+
#
5+
# See file CREDITS for list of people who contributed to this
6+
# project.
7+
#
8+
# This program is free software; you can redistribute it and/or
9+
# modify it under the terms of the GNU General Public License as
10+
# published by the Free Software Foundation; either version 2 of
11+
# the License, or (at your option) any later version.
12+
#
13+
# This program is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
# GNU General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU General Public License
19+
# along with this program; if not, write to the Free Software
20+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21+
# MA 02111-1307 USA
22+
#
23+
24+
#
25+
# esd ADCIOP boards
26+
#
27+
28+
#TEXT_BASE = 0xFFFE0000
29+
30+
ifeq ($(ramsym),1)
31+
TEXT_BASE = 0x07FD0000
32+
else
33+
TEXT_BASE = 0xFFFC0000
34+
endif
35+
36+
PLATFORM_CPPFLAGS += -DCONFIG_440=1
37+
38+
ifeq ($(debug),1)
39+
PLATFORM_CPPFLAGS += -DDEBUG
40+
endif
41+
42+
ifeq ($(dbcr),1)
43+
PLATFORM_CPPFLAGS += -DCFG_INIT_DBCR=0x8cff0000
44+
endif

board/prodrive/p3p440/init.S

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
/*
2+
* (C) Copyright 2005
3+
* Stefan Roese, DENX Software Engineering, sr@denx.de.
4+
*
5+
* Copyright (C) 2002 Scott McNutt <smcnutt@artesyncp.com>
6+
*
7+
* See file CREDITS for list of people who contributed to this
8+
* project.
9+
*
10+
* This program is free software; you can redistribute it and/or
11+
* modify it under the terms of the GNU General Public License as
12+
* published by the Free Software Foundation; either version 2 of
13+
* the License, or (at your option) any later version.
14+
*
15+
* This program is distributed in the hope that it will be useful,
16+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
* GNU General Public License for more details.
19+
*
20+
* You should have received a copy of the GNU General Public License
21+
* along with this program; if not, write to the Free Software
22+
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
23+
* MA 02111-1307 USA
24+
*/
25+
26+
#include <ppc_asm.tmpl>
27+
#include <config.h>
28+
29+
/* General */
30+
#define TLB_VALID 0x00000200
31+
32+
/* Supported page sizes */
33+
34+
#define SZ_1K 0x00000000
35+
#define SZ_4K 0x00000010
36+
#define SZ_16K 0x00000020
37+
#define SZ_64K 0x00000030
38+
#define SZ_256K 0x00000040
39+
#define SZ_1M 0x00000050
40+
#define SZ_16M 0x00000070
41+
#define SZ_256M 0x00000090
42+
43+
/* Storage attributes */
44+
#define SA_W 0x00000800 /* Write-through */
45+
#define SA_I 0x00000400 /* Caching inhibited */
46+
#define SA_M 0x00000200 /* Memory coherence */
47+
#define SA_G 0x00000100 /* Guarded */
48+
#define SA_E 0x00000080 /* Endian */
49+
50+
/* Access control */
51+
#define AC_X 0x00000024 /* Execute */
52+
#define AC_W 0x00000012 /* Write */
53+
#define AC_R 0x00000009 /* Read */
54+
55+
/* Some handy macros */
56+
57+
#define EPN(e) ((e) & 0xfffffc00)
58+
#define TLB0(epn,sz) ( (EPN((epn)) | (sz) | TLB_VALID ) )
59+
#define TLB1(rpn,erpn) ( ((rpn)&0xfffffc00) | (erpn) )
60+
#define TLB2(a) ( (a)&0x00000fbf )
61+
62+
#define tlbtab_start\
63+
mflr r1 ;\
64+
bl 0f ;
65+
66+
#define tlbtab_end\
67+
.long 0, 0, 0 ; \
68+
0: mflr r0 ; \
69+
mtlr r1 ; \
70+
blr ;
71+
72+
#define tlbentry(epn,sz,rpn,erpn,attr)\
73+
.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr)
74+
75+
76+
/**************************************************************************
77+
* TLB TABLE
78+
*
79+
* This table is used by the cpu boot code to setup the initial tlb
80+
* entries. Rather than make broad assumptions in the cpu source tree,
81+
* this table lets each board set things up however they like.
82+
*
83+
* Pointer to the table is returned in r1
84+
*
85+
*************************************************************************/
86+
87+
.section .bootpg,"ax"
88+
.globl tlbtab
89+
90+
tlbtab:
91+
tlbtab_start
92+
tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I)
93+
tlbentry( CFG_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I)
94+
tlbentry( CFG_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_R|AC_W|AC_X )
95+
tlbentry( CFG_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_R|AC_W|AC_X )
96+
tlbentry( CFG_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I )
97+
tlbentry( CFG_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I )
98+
tlbentry( CFG_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I )
99+
tlbtab_end

0 commit comments

Comments
 (0)