U-Boot
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
July 2009
- 209 participants
- 698 discussions
This series moves api_examples to api/examples and moves all
lib* directories into a common lib/ directory. It also
moves the <ARCH>_config.mk files into their corresponding
lib directory.
Seeing 12 lib_<ARCH> directories and 12 <ARCH>_config.mk
files in U-Boot's top level always annoyed me, and I
finally had some time to reorganize:)
I compile tested on all PPC boards and verified an out of
tree build.
This series needs the api_examples Make cleanup applied:
http://www.mail-archive.com/u-boot@lists.denx.de/msg16032.html
Peter Tyser (9):
Move architecture specific config.mk files into subdirs
Move lib_ppc to lib/ppc
Move lib_arm to lib/arm
Move lib_i386 to lib/i386
Move lib_m68k to lib/m68k
Move remaining lib_<ARCH> to lib/<ARCH>
Move lib_generic to lib/generic
Move libfdt to lib/libfdt
Move api_examples to api/examples
Makefile | 20 ++++++++--------
README | 24 ++++++++++----------
{api_examples => api/examples}/.gitignore | 0
{api_examples => api/examples}/Makefile | 22 +++++++++---------
{api_examples => api/examples}/crt0.S | 0
{api_examples => api/examples}/demo.c | 0
{api_examples => api/examples}/glue.c | 0
{api_examples => api/examples}/glue.h | 0
{api_examples => api/examples}/libgenwrap.c | 2 +-
board/BuS/EB+MCF-EV123/u-boot.lds | 8 +++---
board/LEOX/elpt860/u-boot.lds | 18 +++++++-------
board/LEOX/elpt860/u-boot.lds.debug | 4 +-
board/RPXClassic/u-boot.lds | 8 +++---
board/RPXClassic/u-boot.lds.debug | 4 +-
board/RPXlite/u-boot.lds | 8 +++---
board/RPXlite/u-boot.lds.debug | 4 +-
board/RPXlite_dw/u-boot.lds | 8 +++---
board/RPXlite_dw/u-boot.lds.debug | 4 +-
board/RRvision/u-boot.lds | 12 +++++-----
board/actux1/u-boot.lds | 6 ++--
board/actux2/u-boot.lds | 6 ++--
board/actux3/u-boot.lds | 6 ++--
board/amirix/ap1000/u-boot.lds | 6 ++--
board/atum8548/u-boot.lds | 6 ++--
board/bf518f-ezbrd/config.mk | 2 +-
board/bf526-ezbrd/config.mk | 2 +-
board/bf527-ezkit/config.mk | 2 +-
board/bf533-ezkit/config.mk | 2 +-
board/bf533-stamp/config.mk | 2 +-
board/bf537-stamp/config.mk | 2 +-
board/bf538f-ezkit/config.mk | 2 +-
board/bf548-ezkit/config.mk | 2 +-
board/bf561-ezkit/config.mk | 2 +-
board/c2mon/u-boot.lds | 8 +++---
board/c2mon/u-boot.lds.debug | 4 +-
board/cm-bf527/config.mk | 2 +-
board/cm-bf533/config.mk | 2 +-
board/cm-bf537e/config.mk | 2 +-
board/cm-bf548/config.mk | 2 +-
board/cm-bf561/config.mk | 2 +-
board/cobra5272/u-boot.lds | 4 +-
board/cogent/u-boot.lds.debug | 4 +-
board/cray/L1/u-boot.lds | 6 ++--
board/cray/L1/u-boot.lds.debug | 6 ++--
board/csb272/u-boot.lds | 8 +++---
board/csb472/u-boot.lds | 8 +++---
board/dave/PPChameleonEVB/u-boot.lds | 6 ++--
board/eltec/mhpc/u-boot.lds.debug | 4 +-
board/emk/top860/u-boot.lds.debug | 6 ++--
board/eric/u-boot.lds | 6 ++--
board/esd/ocrtc/u-boot.lds | 6 ++--
board/esd/tasreg/u-boot.lds | 4 +-
board/esteem192e/u-boot.lds | 8 +++---
board/etx094/u-boot.lds | 4 +-
board/etx094/u-boot.lds.debug | 8 +++---
board/exbitgen/u-boot.lds | 6 ++--
board/fads/u-boot.lds.debug | 6 ++--
board/flagadm/u-boot.lds.debug | 4 +-
board/freescale/m52277evb/u-boot.spa | 4 +-
board/freescale/m5235evb/u-boot.16 | 6 ++--
board/freescale/m5235evb/u-boot.32 | 4 +-
board/freescale/m5249evb/u-boot.lds | 4 +-
board/freescale/m5253demo/u-boot.lds | 4 +-
board/freescale/m5253evbe/u-boot.lds | 4 +-
board/freescale/m5271evb/u-boot.lds | 4 +-
board/freescale/m5272c3/u-boot.lds | 4 +-
board/freescale/m5275evb/u-boot.lds | 4 +-
board/freescale/m5282evb/u-boot.lds | 6 ++--
board/freescale/m53017evb/u-boot.lds | 4 +-
board/freescale/m5329evb/u-boot.lds | 6 ++--
board/freescale/m5373evb/u-boot.lds | 6 ++--
board/freescale/m54451evb/u-boot.spa | 6 ++--
board/freescale/m54451evb/u-boot.stm | 4 +-
board/freescale/m54455evb/u-boot.atm | 6 ++--
board/freescale/m54455evb/u-boot.int | 6 ++--
board/freescale/m547xevb/u-boot.lds | 4 +-
board/freescale/m548xevb/u-boot.lds | 4 +-
board/freescale/mpc7448hpc2/tsi108_init.c | 2 +-
board/freescale/mpc8610hpcd/u-boot.lds | 6 ++--
board/freescale/mpc8641hpcn/u-boot.lds | 6 ++--
board/freescale/mx31ads/u-boot.lds | 2 +-
board/genietv/u-boot.lds | 8 +++---
board/genietv/u-boot.lds.debug | 8 +++---
board/hermes/u-boot.lds | 8 +++---
board/hermes/u-boot.lds.debug | 6 ++--
board/hymod/u-boot.lds | 8 +++---
board/hymod/u-boot.lds.debug | 4 +-
board/icu862/u-boot.lds | 8 +++---
board/icu862/u-boot.lds.debug | 6 ++--
board/idmr/u-boot.lds | 4 +-
board/ip860/u-boot.lds | 6 ++--
board/ip860/u-boot.lds.debug | 6 ++--
board/ivm/u-boot.lds.debug | 6 ++--
board/jse/jse.c | 6 ++--
board/jse/sdram.c | 2 +-
board/keymile/km8xx/u-boot.lds | 12 +++++-----
board/kup/kup4k/u-boot.lds | 8 +++---
board/kup/kup4k/u-boot.lds.debug | 4 +-
board/kup/kup4x/u-boot.lds | 8 +++---
board/kup/kup4x/u-boot.lds.debug | 4 +-
board/lantec/u-boot.lds | 8 +++---
board/lantec/u-boot.lds.debug | 4 +-
board/lwmon/u-boot.lds.debug | 6 ++--
board/mbx8xx/u-boot.lds.debug | 6 ++--
board/ml2/u-boot.lds | 6 ++--
board/ml2/u-boot.lds.debug | 6 ++--
board/mousse/u-boot.lds | 10 ++++----
board/mousse/u-boot.lds.rom | 8 +++---
board/mpc8540eval/u-boot.lds | 6 ++--
board/mpl/mip405/u-boot.lds | 6 ++--
board/mpl/pip405/u-boot.lds | 6 ++--
board/mpl/pip405/u-boot.lds.debug | 6 ++--
board/netphone/u-boot.lds | 12 +++++-----
board/netphone/u-boot.lds.debug | 4 +-
board/netstal/hcu4/hcu4.c | 2 +-
board/netstal/hcu5/README.txt | 6 ++--
board/netstal/hcu5/hcu5.c | 2 +-
board/netstal/mcu25/mcu25.c | 2 +-
board/netstar/Makefile | 4 +-
board/netta/u-boot.lds | 12 +++++-----
board/netta/u-boot.lds.debug | 4 +-
board/netta2/u-boot.lds | 12 +++++-----
board/netta2/u-boot.lds.debug | 4 +-
board/netvia/u-boot.lds | 12 +++++-----
board/netvia/u-boot.lds.debug | 4 +-
board/nx823/u-boot.lds.debug | 4 +-
board/pcs440ep/u-boot.lds | 2 +-
board/pm854/u-boot.lds | 6 ++--
board/pm856/u-boot.lds | 6 ++--
board/purple/u-boot.lds | 2 +-
board/quantum/u-boot.lds | 8 +++---
board/quantum/u-boot.lds.debug | 4 +-
board/rbc823/u-boot.lds | 8 +++---
board/rmu/u-boot.lds | 8 +++---
board/rmu/u-boot.lds.debug | 4 +-
board/sandburst/karef/u-boot.lds | 6 ++--
board/sandburst/karef/u-boot.lds.debug | 6 ++--
board/sandburst/metrobox/u-boot.lds | 6 ++--
board/sandburst/metrobox/u-boot.lds.debug | 6 ++--
board/sbc405/u-boot.lds | 6 ++--
board/sbc8548/u-boot.lds | 6 ++--
board/sbc8560/u-boot.lds | 6 ++--
board/sbc8641d/u-boot.lds | 6 ++--
board/sc3/u-boot.lds | 6 ++--
board/siemens/CCM/u-boot.lds | 8 +++---
board/siemens/CCM/u-boot.lds.debug | 4 +-
board/siemens/IAD210/u-boot.lds | 4 +-
board/siemens/pcu_e/u-boot.lds.debug | 6 ++--
board/snmc/qs850/u-boot.lds | 12 +++++-----
board/snmc/qs860t/u-boot.lds | 12 +++++-----
board/socrates/u-boot.lds | 6 ++--
board/spc1920/u-boot.lds | 12 +++++-----
board/spd8xx/u-boot.lds.debug | 6 ++--
board/stxgp3/u-boot.lds | 6 ++--
board/stxssa/stxssa.c | 2 +-
board/stxssa/u-boot.lds | 6 ++--
board/stxxtc/u-boot.lds | 12 +++++-----
board/stxxtc/u-boot.lds.debug | 4 +-
board/svm_sc8xx/u-boot.lds | 12 +++++-----
board/svm_sc8xx/u-boot.lds.debug | 4 +-
board/tcm-bf537/config.mk | 2 +-
board/tqc/tqm85xx/u-boot.lds | 6 ++--
board/tqc/tqm8xx/u-boot.lds | 10 ++++----
board/tqc/tqm8xx/u-boot.lds.debug | 4 +-
board/trab/Makefile | 6 ++--
board/trab/u-boot.lds | 8 +++---
board/uc100/u-boot.lds | 12 +++++-----
board/uc100/u-boot.lds.debug | 4 +-
board/v37/u-boot.lds | 12 +++++-----
board/voiceblue/Makefile | 2 +-
board/w7o/u-boot.lds.debug | 6 ++--
board/westel/amx860/u-boot.lds | 8 +++---
board/westel/amx860/u-boot.lds.debug | 6 ++--
board/xes/xpedite5170/u-boot.lds | 6 ++--
board/xilinx/ml300/u-boot.lds | 6 ++--
board/xilinx/ml300/u-boot.lds.debug | 6 ++--
board/xpedite1k/u-boot.lds | 6 ++--
board/xpedite1k/u-boot.lds.debug | 6 ++--
config.mk | 2 +-
cpu/mpc5xxx/u-boot-customlayout.lds | 6 ++--
doc/README.LED | 2 +-
doc/README.alaska8220 | 2 +-
doc/README.m52277evb | 12 +++++-----
doc/README.m53017evb | 12 +++++-----
doc/README.m5373evb | 12 +++++-----
doc/README.m54455evb | 12 +++++-----
doc/README.m5475evb | 10 ++++----
doc/README.mpc5xx | 6 ++--
doc/README.nios | 2 +-
doc/TODO-i386 | 2 +-
include/asm-i386/interrupt.h | 2 +-
include/asm-i386/u-boot-i386.h | 4 +-
include/common.h | 14 +++++-----
include/configs/B2.h | 2 +-
include/configs/bf533-stamp.h | 2 +-
include/configs/bf537-pnav.h | 2 +-
include/configs/bf537-stamp.h | 2 +-
include/configs/bf538f-ezkit.h | 2 +-
include/configs/bf561-ezkit.h | 4 +-
include/configs/cm-bf537e.h | 2 +-
include/configs/ibf-dsp561.h | 4 +-
include/configs/tcm-bf537.h | 2 +-
include/lzma/LzmaDecode.h | 2 +-
include/lzma/LzmaTools.h | 2 +-
include/lzma/LzmaTypes.h | 2 +-
{lib_arm => lib/arm}/Makefile | 0
{lib_arm => lib/arm}/_ashldi3.S | 0
{lib_arm => lib/arm}/_ashrdi3.S | 0
{lib_arm => lib/arm}/_divsi3.S | 0
{lib_arm => lib/arm}/_modsi3.S | 0
{lib_arm => lib/arm}/_udivsi3.S | 0
{lib_arm => lib/arm}/_umodsi3.S | 0
{lib_arm => lib/arm}/board.c | 0
{lib_arm => lib/arm}/bootm.c | 0
{lib_arm => lib/arm}/cache-cp15.c | 0
{lib_arm => lib/arm}/cache.c | 0
arm_config.mk => lib/arm/config.mk | 0
{lib_arm => lib/arm}/div0.c | 0
{lib_arm => lib/arm}/interrupts.c | 0
{lib_arm => lib/arm}/reset.c | 0
{lib_avr32 => lib/avr32}/Makefile | 0
{lib_avr32 => lib/avr32}/board.c | 0
{lib_avr32 => lib/avr32}/bootm.c | 0
avr32_config.mk => lib/avr32/config.mk | 0
{lib_avr32 => lib/avr32}/interrupts.c | 0
{lib_avr32 => lib/avr32}/memset.S | 0
{lib_blackfin => lib/blackfin}/.gitignore | 0
{lib_blackfin => lib/blackfin}/Makefile | 0
{lib_blackfin => lib/blackfin}/board.c | 0
{lib_blackfin => lib/blackfin}/boot.c | 0
{lib_blackfin => lib/blackfin}/cache.c | 0
{lib_blackfin => lib/blackfin}/clocks.c | 0
blackfin_config.mk => lib/blackfin/config.mk | 0
{lib_blackfin => lib/blackfin}/memcmp.S | 0
{lib_blackfin => lib/blackfin}/memcpy.S | 0
{lib_blackfin => lib/blackfin}/memmove.S | 0
{lib_blackfin => lib/blackfin}/memset.S | 0
{lib_blackfin => lib/blackfin}/muldi3.c | 0
{lib_blackfin => lib/blackfin}/post.c | 0
{lib_blackfin => lib/blackfin}/string.c | 0
{lib_blackfin => lib/blackfin}/tests.c | 0
{lib_blackfin => lib/blackfin}/u-boot.lds.S | 0
{lib_generic => lib/generic}/Makefile | 0
{lib_generic => lib/generic}/addr_map.c | 0
{lib_generic => lib/generic}/bzlib.c | 0
{lib_generic => lib/generic}/bzlib_crctable.c | 0
{lib_generic => lib/generic}/bzlib_decompress.c | 0
{lib_generic => lib/generic}/bzlib_huffman.c | 0
{lib_generic => lib/generic}/bzlib_private.h | 0
{lib_generic => lib/generic}/bzlib_randtable.c | 0
{lib_generic => lib/generic}/crc16.c | 0
{lib_generic => lib/generic}/crc32.c | 0
{lib_generic => lib/generic}/ctype.c | 0
{lib_generic => lib/generic}/display_options.c | 0
{lib_generic => lib/generic}/div64.c | 0
{lib_generic => lib/generic}/gunzip.c | 0
{lib_generic => lib/generic}/ldiv.c | 0
{lib_generic => lib/generic}/lmb.c | 0
{lib_generic => lib/generic}/lzma/LGPL.txt | 0
{lib_generic => lib/generic}/lzma/LzmaDecode.c | 0
{lib_generic => lib/generic}/lzma/LzmaDecode.h | 0
{lib_generic => lib/generic}/lzma/LzmaTools.c | 0
{lib_generic => lib/generic}/lzma/LzmaTools.h | 0
{lib_generic => lib/generic}/lzma/LzmaTypes.h | 0
{lib_generic => lib/generic}/lzma/Makefile | 0
{lib_generic => lib/generic}/lzma/README.txt | 0
{lib_generic => lib/generic}/lzma/history.txt | 0
.../generic}/lzma/import_lzmasdk.sh | 0
{lib_generic => lib/generic}/lzma/lzma.txt | 0
{lib_generic => lib/generic}/lzo/Makefile | 0
.../generic}/lzo/lzo1x_decompress.c | 0
{lib_generic => lib/generic}/lzo/lzodefs.h | 0
{lib_generic => lib/generic}/md5.c | 0
{lib_generic => lib/generic}/rbtree.c | 0
{lib_generic => lib/generic}/sha1.c | 0
{lib_generic => lib/generic}/sha256.c | 0
{lib_generic => lib/generic}/string.c | 0
{lib_generic => lib/generic}/strmhz.c | 0
{lib_generic => lib/generic}/vsprintf.c | 0
{lib_generic => lib/generic}/zlib.c | 0
{lib_i386 => lib/i386}/Makefile | 0
{lib_i386 => lib/i386}/bios.S | 0
{lib_i386 => lib/i386}/bios.h | 0
{lib_i386 => lib/i386}/bios_pci.S | 0
{lib_i386 => lib/i386}/bios_setup.c | 0
{lib_i386 => lib/i386}/board.c | 0
{lib_i386 => lib/i386}/bootm.c | 0
i386_config.mk => lib/i386/config.mk | 0
{lib_i386 => lib/i386}/interrupts.c | 0
{lib_i386 => lib/i386}/pcat_interrupts.c | 0
{lib_i386 => lib/i386}/pcat_timer.c | 0
{lib_i386 => lib/i386}/pci.c | 0
{lib_i386 => lib/i386}/pci_type1.c | 0
{lib_i386 => lib/i386}/realmode.c | 0
{lib_i386 => lib/i386}/realmode_switch.S | 0
{lib_i386 => lib/i386}/timer.c | 0
{lib_i386 => lib/i386}/video.c | 0
{lib_i386 => lib/i386}/video_bios.c | 0
{lib_i386 => lib/i386}/zimage.c | 0
{libfdt => lib/libfdt}/Makefile | 0
{libfdt => lib/libfdt}/README | 0
{libfdt => lib/libfdt}/fdt.c | 0
{libfdt => lib/libfdt}/fdt_ro.c | 0
{libfdt => lib/libfdt}/fdt_rw.c | 0
{libfdt => lib/libfdt}/fdt_strerror.c | 0
{libfdt => lib/libfdt}/fdt_sw.c | 0
{libfdt => lib/libfdt}/fdt_wip.c | 0
{libfdt => lib/libfdt}/libfdt_internal.h | 0
{lib_m68k => lib/m68k}/Makefile | 0
{lib_m68k => lib/m68k}/board.c | 0
{lib_m68k => lib/m68k}/bootm.c | 0
{lib_m68k => lib/m68k}/cache.c | 0
m68k_config.mk => lib/m68k/config.mk | 0
{lib_m68k => lib/m68k}/interrupts.c | 0
{lib_m68k => lib/m68k}/time.c | 0
{lib_m68k => lib/m68k}/traps.c | 0
{lib_microblaze => lib/microblaze}/Makefile | 0
{lib_microblaze => lib/microblaze}/board.c | 0
{lib_microblaze => lib/microblaze}/bootm.c | 0
{lib_microblaze => lib/microblaze}/cache.c | 0
microblaze_config.mk => lib/microblaze/config.mk | 0
{lib_microblaze => lib/microblaze}/time.c | 0
{lib_mips => lib/mips}/Makefile | 0
{lib_mips => lib/mips}/board.c | 0
{lib_mips => lib/mips}/bootm.c | 0
{lib_mips => lib/mips}/bootm_qemu_mips.c | 0
mips_config.mk => lib/mips/config.mk | 0
{lib_mips => lib/mips}/time.c | 0
{lib_nios => lib/nios}/Makefile | 0
{lib_nios => lib/nios}/board.c | 0
{lib_nios => lib/nios}/bootm.c | 0
{lib_nios => lib/nios}/cache.c | 0
nios_config.mk => lib/nios/config.mk | 0
{lib_nios => lib/nios}/divmod.c | 0
{lib_nios => lib/nios}/math.h | 0
{lib_nios => lib/nios}/mult.c | 0
{lib_nios => lib/nios}/time.c | 0
{lib_nios2 => lib/nios2}/Makefile | 0
{lib_nios2 => lib/nios2}/board.c | 0
{lib_nios2 => lib/nios2}/bootm.c | 0
{lib_nios2 => lib/nios2}/cache.S | 0
nios2_config.mk => lib/nios2/config.mk | 0
{lib_nios2 => lib/nios2}/divmod.c | 0
{lib_nios2 => lib/nios2}/math.h | 0
{lib_nios2 => lib/nios2}/mult.c | 0
{lib_nios2 => lib/nios2}/time.c | 0
{lib_ppc => lib/ppc}/Makefile | 0
{lib_ppc => lib/ppc}/bat_rw.c | 0
{lib_ppc => lib/ppc}/board.c | 0
{lib_ppc => lib/ppc}/bootm.c | 0
{lib_ppc => lib/ppc}/cache.c | 0
ppc_config.mk => lib/ppc/config.mk | 0
{lib_ppc => lib/ppc}/extable.c | 0
{lib_ppc => lib/ppc}/interrupts.c | 0
{lib_ppc => lib/ppc}/kgdb.c | 0
{lib_ppc => lib/ppc}/ppccache.S | 0
{lib_ppc => lib/ppc}/ppcstring.S | 0
{lib_ppc => lib/ppc}/ticks.S | 0
{lib_ppc => lib/ppc}/time.c | 0
{lib_sh => lib/sh}/Makefile | 0
{lib_sh => lib/sh}/board.c | 0
{lib_sh => lib/sh}/bootm.c | 0
sh_config.mk => lib/sh/config.mk | 0
{lib_sh => lib/sh}/time.c | 0
{lib_sh => lib/sh}/time_sh2.c | 0
{lib_sparc => lib/sparc}/Makefile | 0
{lib_sparc => lib/sparc}/board.c | 0
{lib_sparc => lib/sparc}/bootm.c | 0
{lib_sparc => lib/sparc}/cache.c | 0
sparc_config.mk => lib/sparc/config.mk | 0
{lib_sparc => lib/sparc}/interrupts.c | 0
{lib_sparc => lib/sparc}/time.c | 0
nand_spl/board/freescale/mpc8313erdb/Makefile | 6 ++--
nand_spl/board/sheldon/simpc8313/Makefile | 6 ++--
tools/Makefile | 12 +++++-----
tools/env/Makefile | 2 +-
tools/imls/Makefile | 14 +++++-----
377 files changed, 606 insertions(+), 606 deletions(-)
rename {api_examples => api/examples}/.gitignore (100%)
rename {api_examples => api/examples}/Makefile (80%)
rename {api_examples => api/examples}/crt0.S (100%)
rename {api_examples => api/examples}/demo.c (100%)
rename {api_examples => api/examples}/glue.c (100%)
rename {api_examples => api/examples}/glue.h (100%)
rename {api_examples => api/examples}/libgenwrap.c (96%)
rename {lib_arm => lib/arm}/Makefile (100%)
rename {lib_arm => lib/arm}/_ashldi3.S (100%)
rename {lib_arm => lib/arm}/_ashrdi3.S (100%)
rename {lib_arm => lib/arm}/_divsi3.S (100%)
rename {lib_arm => lib/arm}/_modsi3.S (100%)
rename {lib_arm => lib/arm}/_udivsi3.S (100%)
rename {lib_arm => lib/arm}/_umodsi3.S (100%)
rename {lib_arm => lib/arm}/board.c (100%)
rename {lib_arm => lib/arm}/bootm.c (100%)
rename {lib_arm => lib/arm}/cache-cp15.c (100%)
rename {lib_arm => lib/arm}/cache.c (100%)
rename arm_config.mk => lib/arm/config.mk (100%)
rename {lib_arm => lib/arm}/div0.c (100%)
rename {lib_arm => lib/arm}/interrupts.c (100%)
rename {lib_arm => lib/arm}/reset.c (100%)
rename {lib_avr32 => lib/avr32}/Makefile (100%)
rename {lib_avr32 => lib/avr32}/board.c (100%)
rename {lib_avr32 => lib/avr32}/bootm.c (100%)
rename avr32_config.mk => lib/avr32/config.mk (100%)
rename {lib_avr32 => lib/avr32}/interrupts.c (100%)
rename {lib_avr32 => lib/avr32}/memset.S (100%)
rename {lib_blackfin => lib/blackfin}/.gitignore (100%)
rename {lib_blackfin => lib/blackfin}/Makefile (100%)
rename {lib_blackfin => lib/blackfin}/board.c (100%)
rename {lib_blackfin => lib/blackfin}/boot.c (100%)
rename {lib_blackfin => lib/blackfin}/cache.c (100%)
rename {lib_blackfin => lib/blackfin}/clocks.c (100%)
rename blackfin_config.mk => lib/blackfin/config.mk (100%)
rename {lib_blackfin => lib/blackfin}/memcmp.S (100%)
rename {lib_blackfin => lib/blackfin}/memcpy.S (100%)
rename {lib_blackfin => lib/blackfin}/memmove.S (100%)
rename {lib_blackfin => lib/blackfin}/memset.S (100%)
rename {lib_blackfin => lib/blackfin}/muldi3.c (100%)
rename {lib_blackfin => lib/blackfin}/post.c (100%)
rename {lib_blackfin => lib/blackfin}/string.c (100%)
rename {lib_blackfin => lib/blackfin}/tests.c (100%)
rename {lib_blackfin => lib/blackfin}/u-boot.lds.S (100%)
rename {lib_generic => lib/generic}/Makefile (100%)
rename {lib_generic => lib/generic}/addr_map.c (100%)
rename {lib_generic => lib/generic}/bzlib.c (100%)
rename {lib_generic => lib/generic}/bzlib_crctable.c (100%)
rename {lib_generic => lib/generic}/bzlib_decompress.c (100%)
rename {lib_generic => lib/generic}/bzlib_huffman.c (100%)
rename {lib_generic => lib/generic}/bzlib_private.h (100%)
rename {lib_generic => lib/generic}/bzlib_randtable.c (100%)
rename {lib_generic => lib/generic}/crc16.c (100%)
rename {lib_generic => lib/generic}/crc32.c (100%)
rename {lib_generic => lib/generic}/ctype.c (100%)
rename {lib_generic => lib/generic}/display_options.c (100%)
rename {lib_generic => lib/generic}/div64.c (100%)
rename {lib_generic => lib/generic}/gunzip.c (100%)
rename {lib_generic => lib/generic}/ldiv.c (100%)
rename {lib_generic => lib/generic}/lmb.c (100%)
rename {lib_generic => lib/generic}/lzma/LGPL.txt (100%)
rename {lib_generic => lib/generic}/lzma/LzmaDecode.c (100%)
rename {lib_generic => lib/generic}/lzma/LzmaDecode.h (100%)
rename {lib_generic => lib/generic}/lzma/LzmaTools.c (100%)
rename {lib_generic => lib/generic}/lzma/LzmaTools.h (100%)
rename {lib_generic => lib/generic}/lzma/LzmaTypes.h (100%)
rename {lib_generic => lib/generic}/lzma/Makefile (100%)
rename {lib_generic => lib/generic}/lzma/README.txt (100%)
rename {lib_generic => lib/generic}/lzma/history.txt (100%)
rename {lib_generic => lib/generic}/lzma/import_lzmasdk.sh (100%)
rename {lib_generic => lib/generic}/lzma/lzma.txt (100%)
rename {lib_generic => lib/generic}/lzo/Makefile (100%)
rename {lib_generic => lib/generic}/lzo/lzo1x_decompress.c (100%)
rename {lib_generic => lib/generic}/lzo/lzodefs.h (100%)
rename {lib_generic => lib/generic}/md5.c (100%)
rename {lib_generic => lib/generic}/rbtree.c (100%)
rename {lib_generic => lib/generic}/sha1.c (100%)
rename {lib_generic => lib/generic}/sha256.c (100%)
rename {lib_generic => lib/generic}/string.c (100%)
rename {lib_generic => lib/generic}/strmhz.c (100%)
rename {lib_generic => lib/generic}/vsprintf.c (100%)
rename {lib_generic => lib/generic}/zlib.c (100%)
rename {lib_i386 => lib/i386}/Makefile (100%)
rename {lib_i386 => lib/i386}/bios.S (100%)
rename {lib_i386 => lib/i386}/bios.h (100%)
rename {lib_i386 => lib/i386}/bios_pci.S (100%)
rename {lib_i386 => lib/i386}/bios_setup.c (100%)
rename {lib_i386 => lib/i386}/board.c (100%)
rename {lib_i386 => lib/i386}/bootm.c (100%)
rename i386_config.mk => lib/i386/config.mk (100%)
rename {lib_i386 => lib/i386}/interrupts.c (100%)
rename {lib_i386 => lib/i386}/pcat_interrupts.c (100%)
rename {lib_i386 => lib/i386}/pcat_timer.c (100%)
rename {lib_i386 => lib/i386}/pci.c (100%)
rename {lib_i386 => lib/i386}/pci_type1.c (100%)
rename {lib_i386 => lib/i386}/realmode.c (100%)
rename {lib_i386 => lib/i386}/realmode_switch.S (100%)
rename {lib_i386 => lib/i386}/timer.c (100%)
rename {lib_i386 => lib/i386}/video.c (100%)
rename {lib_i386 => lib/i386}/video_bios.c (100%)
rename {lib_i386 => lib/i386}/zimage.c (100%)
rename {libfdt => lib/libfdt}/Makefile (100%)
rename {libfdt => lib/libfdt}/README (100%)
rename {libfdt => lib/libfdt}/fdt.c (100%)
rename {libfdt => lib/libfdt}/fdt_ro.c (100%)
rename {libfdt => lib/libfdt}/fdt_rw.c (100%)
rename {libfdt => lib/libfdt}/fdt_strerror.c (100%)
rename {libfdt => lib/libfdt}/fdt_sw.c (100%)
rename {libfdt => lib/libfdt}/fdt_wip.c (100%)
rename {libfdt => lib/libfdt}/libfdt_internal.h (100%)
rename {lib_m68k => lib/m68k}/Makefile (100%)
rename {lib_m68k => lib/m68k}/board.c (100%)
rename {lib_m68k => lib/m68k}/bootm.c (100%)
rename {lib_m68k => lib/m68k}/cache.c (100%)
rename m68k_config.mk => lib/m68k/config.mk (100%)
rename {lib_m68k => lib/m68k}/interrupts.c (100%)
rename {lib_m68k => lib/m68k}/time.c (100%)
rename {lib_m68k => lib/m68k}/traps.c (100%)
rename {lib_microblaze => lib/microblaze}/Makefile (100%)
rename {lib_microblaze => lib/microblaze}/board.c (100%)
rename {lib_microblaze => lib/microblaze}/bootm.c (100%)
rename {lib_microblaze => lib/microblaze}/cache.c (100%)
rename microblaze_config.mk => lib/microblaze/config.mk (100%)
rename {lib_microblaze => lib/microblaze}/time.c (100%)
rename {lib_mips => lib/mips}/Makefile (100%)
rename {lib_mips => lib/mips}/board.c (100%)
rename {lib_mips => lib/mips}/bootm.c (100%)
rename {lib_mips => lib/mips}/bootm_qemu_mips.c (100%)
rename mips_config.mk => lib/mips/config.mk (100%)
rename {lib_mips => lib/mips}/time.c (100%)
rename {lib_nios => lib/nios}/Makefile (100%)
rename {lib_nios => lib/nios}/board.c (100%)
rename {lib_nios => lib/nios}/bootm.c (100%)
rename {lib_nios => lib/nios}/cache.c (100%)
rename nios_config.mk => lib/nios/config.mk (100%)
rename {lib_nios => lib/nios}/divmod.c (100%)
rename {lib_nios => lib/nios}/math.h (100%)
rename {lib_nios => lib/nios}/mult.c (100%)
rename {lib_nios => lib/nios}/time.c (100%)
rename {lib_nios2 => lib/nios2}/Makefile (100%)
rename {lib_nios2 => lib/nios2}/board.c (100%)
rename {lib_nios2 => lib/nios2}/bootm.c (100%)
rename {lib_nios2 => lib/nios2}/cache.S (100%)
rename nios2_config.mk => lib/nios2/config.mk (100%)
rename {lib_nios2 => lib/nios2}/divmod.c (100%)
rename {lib_nios2 => lib/nios2}/math.h (100%)
rename {lib_nios2 => lib/nios2}/mult.c (100%)
rename {lib_nios2 => lib/nios2}/time.c (100%)
rename {lib_ppc => lib/ppc}/Makefile (100%)
rename {lib_ppc => lib/ppc}/bat_rw.c (100%)
rename {lib_ppc => lib/ppc}/board.c (100%)
rename {lib_ppc => lib/ppc}/bootm.c (100%)
rename {lib_ppc => lib/ppc}/cache.c (100%)
rename ppc_config.mk => lib/ppc/config.mk (100%)
rename {lib_ppc => lib/ppc}/extable.c (100%)
rename {lib_ppc => lib/ppc}/interrupts.c (100%)
rename {lib_ppc => lib/ppc}/kgdb.c (100%)
rename {lib_ppc => lib/ppc}/ppccache.S (100%)
rename {lib_ppc => lib/ppc}/ppcstring.S (100%)
rename {lib_ppc => lib/ppc}/ticks.S (100%)
rename {lib_ppc => lib/ppc}/time.c (100%)
rename {lib_sh => lib/sh}/Makefile (100%)
rename {lib_sh => lib/sh}/board.c (100%)
rename {lib_sh => lib/sh}/bootm.c (100%)
rename sh_config.mk => lib/sh/config.mk (100%)
rename {lib_sh => lib/sh}/time.c (100%)
rename {lib_sh => lib/sh}/time_sh2.c (100%)
rename {lib_sparc => lib/sparc}/Makefile (100%)
rename {lib_sparc => lib/sparc}/board.c (100%)
rename {lib_sparc => lib/sparc}/bootm.c (100%)
rename {lib_sparc => lib/sparc}/cache.c (100%)
rename sparc_config.mk => lib/sparc/config.mk (100%)
rename {lib_sparc => lib/sparc}/interrupts.c (100%)
rename {lib_sparc => lib/sparc}/time.c (100%)
4
19

10 Jul '09
Board support for the Guntermann & Drunck CompactCenter and
DevCon-Center.
Based on the AMCC Canyonlands board support by Stefan Roese.
Signed-off-by: Dirk Eibach <eibach(a)gdsys.de>
---
MAINTAINERS | 2 +
MAKEALL | 2 +
Makefile | 8 +
board/gdsys/compactcenter/Makefile | 52 ++++
board/gdsys/compactcenter/bootstrap.c | 196 +++++++++++++
board/gdsys/compactcenter/compactcenter.c | 326 ++++++++++++++++++++++
board/gdsys/compactcenter/config.mk | 41 +++
board/gdsys/compactcenter/init.S | 87 ++++++
board/gdsys/compactcenter/u-boot.lds | 144 ++++++++++
include/configs/compactcenter.h | 425 +++++++++++++++++++++++++++++
10 files changed, 1283 insertions(+), 0 deletions(-)
create mode 100644 board/gdsys/compactcenter/Makefile
create mode 100644 board/gdsys/compactcenter/bootstrap.c
create mode 100644 board/gdsys/compactcenter/compactcenter.c
create mode 100644 board/gdsys/compactcenter/config.mk
create mode 100644 board/gdsys/compactcenter/init.S
create mode 100644 board/gdsys/compactcenter/u-boot.lds
create mode 100644 include/configs/compactcenter.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 0041112..ea87863 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -135,6 +135,8 @@ Jon Diekema <jon.diekema(a)smiths-aerospace.com>
Dirk Eibach <eibach(a)gdsys.de>
+ compactcenter PPC460EX
+ devconcenter PPC460EX
gdppc440etx PPC440EP/GR
neo PPC405EP
diff --git a/MAKEALL b/MAKEALL
index 41f1445..84b04ce 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -183,6 +183,7 @@ LIST_4xx=" \
canyonlands \
canyonlands_nand \
CMS700 \
+ compactcenter \
CPCI2DP \
CPCI405 \
CPCI4052 \
@@ -193,6 +194,7 @@ LIST_4xx=" \
csb272 \
csb472 \
DASA_SIM \
+ devconcenter \
DP405 \
DU405 \
DU440 \
diff --git a/Makefile b/Makefile
index 2a06440..5dba5a8 100644
--- a/Makefile
+++ b/Makefile
@@ -1299,6 +1299,14 @@ CATcenter_33_config: unconfig
CMS700_config: unconfig
@$(MKCONFIG) $(@:_config=) ppc ppc4xx cms700 esd
+# Compact-Center & DevCon-Center use different U-Boot images
+compactcenter_config \
+devconcenter_config: unconfig
+ @mkdir -p $(obj)include
+ @echo "#define CONFIG_$$(echo $(subst ,,$(@:_config=)) | \
+ tr '[:lower:]' '[:upper:]')" >$(obj)include/config.h
+ @$(MKCONFIG) -n $@ -a compactcenter ppc ppc4xx compactcenter gdsys
+
CPCI2DP_config: unconfig
@$(MKCONFIG) $(@:_config=) ppc ppc4xx cpci2dp esd
diff --git a/board/gdsys/compactcenter/Makefile b/board/gdsys/compactcenter/Makefile
new file mode 100644
index 0000000..2aeead6
--- /dev/null
+++ b/board/gdsys/compactcenter/Makefile
@@ -0,0 +1,52 @@
+#
+# (C) Copyright 2008
+# Stefan Roese, DENX Software Engineering, sr(a)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
+#
+
+include $(TOPDIR)/config.mk
+
+LIB = $(obj)lib$(BOARD).a
+
+COBJS := $(BOARD).o
+COBJS += bootstrap.o
+SOBJS := init.o
+
+SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+SOBJS := $(addprefix $(obj),$(SOBJS))
+
+$(LIB): $(OBJS) $(SOBJS)
+ $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+ rm -f $(SOBJS) $(OBJS)
+
+distclean: clean
+ rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/gdsys/compactcenter/bootstrap.c b/board/gdsys/compactcenter/bootstrap.c
new file mode 100644
index 0000000..cd638c2
--- /dev/null
+++ b/board/gdsys/compactcenter/bootstrap.c
@@ -0,0 +1,196 @@
+/*
+ * (C) Copyright 2008
+ * Stefan Roese, DENX Software Engineering, sr(a)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
+ *
+ */
+
+#include <common.h>
+#include <command.h>
+#include <i2c.h>
+#include <asm/io.h>
+
+/*
+ * NOR and NAND boot options change bytes 5, 6, 8, 9, 11. The
+ * values are independent of the rest of the clock settings.
+ */
+
+#define NAND_COMPATIBLE 0x01
+#define NOR_COMPATIBLE 0x02
+
+#define I2C_EEPROM_ADDR 0x54
+
+static char *config_labels[] = {
+ "CPU: 600 PLB: 200 OPB: 100 EBC: 100",
+ "CPU: 800 PLB: 200 OPB: 100 EBC: 100",
+ "CPU:1000 PLB: 200 OPB: 100 EBC: 100",
+ "CPU:1066 PLB: 266 OPB: 88 EBC: 88",
+ NULL
+};
+
+static u8 boot_configs[][17] = {
+ {
+ (NAND_COMPATIBLE | NOR_COMPATIBLE),
+ 0x86, 0x80, 0xce, 0x1f, 0x79, 0x80, 0x00, 0xa0, 0x40, 0x08,
+ 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
+ },
+ {
+ (NAND_COMPATIBLE | NOR_COMPATIBLE),
+ 0x86, 0x80, 0xba, 0x14, 0x99, 0x80, 0x00, 0xa0, 0x40, 0x08,
+ 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
+ },
+ {
+ (NAND_COMPATIBLE | NOR_COMPATIBLE),
+ 0x86, 0x82, 0x96, 0x19, 0xb9, 0x80, 0x00, 0xa0, 0x40, 0x08,
+ 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
+ },
+ {
+ (NAND_COMPATIBLE | NOR_COMPATIBLE),
+ 0x86, 0x80, 0xb3, 0x01, 0x9d, 0x80, 0x00, 0xa0, 0x40, 0x08,
+ 0x23, 0x50, 0x0d, 0x05, 0x00, 0x00
+ },
+ {
+ 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+};
+
+/*
+ * Bytes 5,6,8,9,11 change for NAND boot
+ */
+#if 0
+/*
+ * Values for 512 page size NAND chips, not used anymore, just
+ * keep them here for reference
+ */
+static u8 nand_boot[] = {
+ 0x90, 0x01, 0xa0, 0x68, 0x58
+};
+#else
+/*
+ * Values for 2k page size NAND chips
+ */
+static u8 nand_boot[] = {
+ 0x90, 0x01, 0xa0, 0xe8, 0x58
+};
+#endif
+
+static int do_bootstrap(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ u8 *buf, b_nand;
+ int x, y, nbytes, selcfg;
+ extern char console_buffer[];
+
+ if (argc < 2) {
+ printf("Usage:\n%s\n", cmdtp->usage);
+ return 1;
+ }
+
+ if ((strcmp(argv[1], "nor") != 0) &&
+ (strcmp(argv[1], "nand") != 0)) {
+ printf("Unsupported boot-device - only nor|nand support\n");
+ return 1;
+ }
+
+ /* set the nand flag based on provided input */
+ if ((strcmp(argv[1], "nand") == 0))
+ b_nand = 1;
+ else
+ b_nand = 0;
+
+ printf("Available configurations: \n\n");
+
+ if (b_nand) {
+ for (x = 0, y = 0; boot_configs[x][0] != 0; x++) {
+ /* filter on nand compatible */
+ if (boot_configs[x][0] & NAND_COMPATIBLE) {
+ printf(" %d - %s\n", (y+1), config_labels[x]);
+ y++;
+ }
+ }
+ } else {
+ for (x = 0, y = 0; boot_configs[x][0] != 0; x++) {
+ /* filter on nor compatible */
+ if (boot_configs[x][0] & NOR_COMPATIBLE) {
+ printf(" %d - %s\n", (y+1), config_labels[x]);
+ y++;
+ }
+ }
+ }
+
+ do {
+ nbytes = readline(" Selection [1-x / quit]: ");
+
+ if (nbytes) {
+ if (strcmp(console_buffer, "quit") == 0)
+ return 0;
+ selcfg = simple_strtol(console_buffer, NULL, 10);
+ if ((selcfg < 1) || (selcfg > y))
+ nbytes = 0;
+ }
+ } while (nbytes == 0);
+
+
+ y = (selcfg - 1);
+
+ for (x = 0; boot_configs[x][0] != 0; x++) {
+ if (b_nand) {
+ if (boot_configs[x][0] & NAND_COMPATIBLE) {
+ if (y > 0)
+ y--;
+ else if (y < 1)
+ break;
+ }
+ } else {
+ if (boot_configs[x][0] & NOR_COMPATIBLE) {
+ if (y > 0)
+ y--;
+ else if (y < 1)
+ break;
+ }
+ }
+ }
+
+ buf = &boot_configs[x][1];
+
+ if (b_nand) {
+ buf[5] = nand_boot[0];
+ buf[6] = nand_boot[1];
+ buf[8] = nand_boot[2];
+ buf[9] = nand_boot[3];
+ buf[11] = nand_boot[4];
+ }
+
+ if (i2c_write(I2C_EEPROM_ADDR, 0, 1, buf, 16) != 0)
+ printf("Error writing to EEPROM at address 0x%x\n",
+ I2C_EEPROM_ADDR);
+ udelay(CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS * 1000);
+
+ printf("Done\n");
+ printf("Please power-cycle the board for the changes to take effect\n");
+
+ return 0;
+}
+
+U_BOOT_CMD(
+ bootstrap, 2, 0, do_bootstrap,
+ "bootstrap - program the I2C bootstrap EEPROM\n",
+ "<nand|nor> - strap to boot from NAND or NOR flash\n"
+ );
diff --git a/board/gdsys/compactcenter/compactcenter.c b/board/gdsys/compactcenter/compactcenter.c
new file mode 100644
index 0000000..9f1e49d
--- /dev/null
+++ b/board/gdsys/compactcenter/compactcenter.c
@@ -0,0 +1,326 @@
+/*
+ * (C) Copyright 2009
+ * Dirk Eibach, Guntermann & Drunck GmbH, eibach(a)gdsys.de
+ *
+ * Based on board/amcc/canyonlands/canyonlands.c
+ * (C) Copyright 2008
+ * Stefan Roese, DENX Software Engineering, sr(a)denx.de.
+ *
+ * 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
+ */
+
+#include <common.h>
+#include <ppc440.h>
+#include <libfdt.h>
+#include <fdt_support.h>
+#include <i2c.h>
+#include <asm/processor.h>
+#include <asm/io.h>
+#include <asm/mmu.h>
+#include <asm/4xx_pcie.h>
+#include <asm/gpio.h>
+
+extern flash_info_t flash_info[CONFIG_SYS_MAX_FLASH_BANKS];
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define CONFIG_SYS_BCSR3_PCIE 0x10
+
+int board_early_init_f(void)
+{
+ u32 pvr = get_pvr();
+
+ /*
+ * Setup the interrupt controller polarities, triggers, etc.
+ */
+ mtdcr(uic0sr, 0xffffffff); /* clear all */
+ mtdcr(uic0er, 0x00000000); /* disable all */
+ mtdcr(uic0cr, 0x00000005); /* ATI & UIC1 crit are critical */
+ mtdcr(uic0pr, 0xffffffff); /* per ref-board manual */
+ mtdcr(uic0tr, 0x00000000); /* per ref-board manual */
+ mtdcr(uic0vr, 0x00000000); /* int31 highest, base=0x000 */
+ mtdcr(uic0sr, 0xffffffff); /* clear all */
+
+ mtdcr(uic1sr, 0xffffffff); /* clear all */
+ mtdcr(uic1er, 0x00000000); /* disable all */
+ mtdcr(uic1cr, 0x00000000); /* all non-critical */
+ mtdcr(uic1pr, 0xffffffff); /* per ref-board manual */
+ mtdcr(uic1tr, 0x00000000); /* per ref-board manual */
+ mtdcr(uic1vr, 0x00000000); /* int31 highest, base=0x000 */
+ mtdcr(uic1sr, 0xffffffff); /* clear all */
+
+ mtdcr(uic2sr, 0xffffffff); /* clear all */
+ mtdcr(uic2er, 0x00000000); /* disable all */
+ mtdcr(uic2cr, 0x00000000); /* all non-critical */
+ mtdcr(uic2pr, 0xffffffff); /* per ref-board manual */
+ mtdcr(uic2tr, 0x00000000); /* per ref-board manual */
+ mtdcr(uic2vr, 0x00000000); /* int31 highest, base=0x000 */
+ mtdcr(uic2sr, 0xffffffff); /* clear all */
+
+ mtdcr(uic3sr, 0xffffffff); /* clear all */
+ mtdcr(uic3er, 0x00000000); /* disable all */
+ mtdcr(uic3cr, 0x00000000); /* all non-critical */
+ mtdcr(uic3pr, 0xffffffff); /* per ref-board manual */
+ mtdcr(uic3tr, 0x00000000); /* per ref-board manual */
+ mtdcr(uic3vr, 0x00000000); /* int31 highest, base=0x000 */
+ mtdcr(uic3sr, 0xffffffff); /* clear all */
+
+ /*
+ * Configure PFC (Pin Function Control) registers
+ * enable GPIO 49-63
+ * UART0: 4 pins
+ */
+ mtsdr(SDR0_PFC0, 0x00007fff);
+ mtsdr(SDR0_PFC1, 0x00040000);
+
+ /* Enable PCI host functionality in SDR0_PCI0 */
+ mtsdr(SDR0_PCI0, 0xe0000000);
+
+ mtsdr(SDR0_SRST1, 0); /* Pull AHB out of reset default=1 */
+
+ /* Setup PLB4-AHB bridge based on the system address map */
+ mtdcr(AHB_TOP, 0x8000004B);
+ mtdcr(AHB_BOT, 0x8000004B);
+
+ if ((pvr == PVR_460EX_RA) || (pvr == PVR_460EX_SE_RA)) {
+ /*
+ * Configure USB-STP pins as alternate and not GPIO
+ * It seems to be neccessary to configure the STP pins as GPIO
+ * input at powerup (perhaps while USB reset is asserted). So
+ * we configure those pins to their "real" function now.
+ */
+ gpio_config(16, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1);
+ gpio_config(19, GPIO_OUT, GPIO_ALT1, GPIO_OUT_1);
+ }
+
+ /* Trigger board component reset */
+ out_le16((void *)CONFIG_SYS_IO_BASE, 0xffff);
+ out_le16((void *)CONFIG_SYS_IO_BASE + 0x100, 0xffff);
+ udelay(50);
+ out_le16((void *)CONFIG_SYS_IO_BASE, 0xffbf);
+ out_le16((void *)CONFIG_SYS_IO_BASE + 0x100, 0xffbf);
+ udelay(50);
+ out_le16((void *)CONFIG_SYS_IO_BASE, 0xffff);
+ out_le16((void *)CONFIG_SYS_IO_BASE + 0x100, 0xffff);
+
+ return 0;
+}
+
+int get_cpu_num(void)
+{
+ int cpu = NA_OR_UNKNOWN_CPU;
+
+ return cpu;
+}
+
+int checkboard(void)
+{
+ char *s = getenv("serial#");
+
+#ifdef CONFIG_DEVCONCENTER
+ printf("Board: DevCon-Center");
+#else
+ printf("Board: CompactCenter");
+#endif
+
+ if (s != NULL) {
+ puts(", serial# ");
+ puts(s);
+ }
+ putc('\n');
+
+ return 0;
+}
+
+/*
+ * pci_target_init
+ *
+ * The bootstrap configuration provides default settings for the pci
+ * inbound map (PIM). But the bootstrap config choices are limited and
+ * may not be sufficient for a given board.
+ */
+#if defined(CONFIG_PCI) && defined(CONFIG_SYS_PCI_TARGET_INIT)
+void pci_target_init(struct pci_controller *hose)
+{
+ /*
+ * Disable everything
+ */
+ out_le32((void *)PCIX0_PIM0SA, 0); /* disable */
+ out_le32((void *)PCIX0_PIM1SA, 0); /* disable */
+ out_le32((void *)PCIX0_PIM2SA, 0); /* disable */
+ out_le32((void *)PCIX0_EROMBA, 0); /* disable expansion rom */
+
+ /*
+ * Map all of SDRAM to PCI address 0x0000_0000. Note that the 440
+ * strapping options to not support sizes such as 128/256 MB.
+ */
+ out_le32((void *)PCIX0_PIM0LAL, CONFIG_SYS_SDRAM_BASE);
+ out_le32((void *)PCIX0_PIM0LAH, 0);
+ out_le32((void *)PCIX0_PIM0SA, ~(gd->ram_size - 1) | 1);
+ out_le32((void *)PCIX0_BAR0, 0);
+
+ /*
+ * Program the board's subsystem id/vendor id
+ */
+ out_le16((void *)PCIX0_SBSYSVID, CONFIG_SYS_PCI_SUBSYS_VENDORID);
+ out_le16((void *)PCIX0_SBSYSID, CONFIG_SYS_PCI_SUBSYS_DEVICEID);
+
+ out_le16((void *)PCIX0_CMD, in16r(PCIX0_CMD) | PCI_COMMAND_MEMORY);
+}
+#endif /* defined(CONFIG_PCI) && defined(CONFIG_SYS_PCI_TARGET_INIT) */
+
+#if defined(CONFIG_PCI)
+/*
+ * is_pci_host
+ *
+ * This routine is called to determine if a pci scan should be
+ * performed. With various hardware environments (especially cPCI and
+ * PPMC) it's insufficient to depend on the state of the arbiter enable
+ * bit in the strap register, or generic host/adapter assumptions.
+ *
+ * Rather than hard-code a bad assumption in the general 440 code, the
+ * 440 pci code requires the board to decide at runtime.
+ *
+ * Return 0 for adapter mode, non-zero for host (monarch) mode.
+ */
+int is_pci_host(struct pci_controller *hose)
+{
+ /* Board is always configured as host. */
+ return 1;
+}
+#endif /* CONFIG_PCI */
+
+int board_early_init_r(void)
+{
+ /*
+ * CompactCenter has 64MBytes, DevCon-Center 128MBytes of NOR FLASH
+ * (Spansion 29GL512), but the boot EBC mapping only supports a maximum
+ * of 16MBytes (4.ff00.0000 - 4.ffff.ffff).
+ * To solve this problem, the FLASH has to get remapped to another
+ * EBC address which accepts bigger regions:
+ *
+ * 0xfn00.0000 -> 4.cn00.0000
+ */
+
+ u32 bxcr_bw = (CONFIG_SYS_FLASH_SIZE == 128 << 20) ?
+ EBC_BXCR_BS_128MB : EBC_BXCR_BS_64MB;
+
+ /* Remap the NOR FLASH to 0xcn00.0000 ... 0xcfff.ffff */
+ mtebc(pb0cr, CONFIG_SYS_FLASH_BASE_PHYS_L
+ | bxcr_bw
+ | EBC_BXCR_BU_RW
+ | EBC_BXCR_BW_16BIT);
+
+ /* Remove TLB entry of boot EBC mapping */
+ remove_tlb(CONFIG_SYS_BOOT_BASE_ADDR, 16 << 20);
+
+ /* Add TLB entry for 0xfn00.0000 -> 0x4.cn00.0000 */
+ program_tlb(CONFIG_SYS_FLASH_BASE_PHYS, CONFIG_SYS_FLASH_BASE,
+ CONFIG_SYS_FLASH_SIZE, TLB_WORD2_I_ENABLE);
+
+ /*
+ * Now accessing of the whole 64Mbytes of NOR FLASH at virtual address
+ * 0xfc00.0000 is possible
+ */
+
+ /*
+ * Clear potential errors resulting from auto-calibration.
+ * If not done, then we could get an interrupt later on when
+ * exceptions are enabled.
+ */
+ set_mcsr(get_mcsr());
+
+ return 0;
+}
+
+int misc_init_r(void)
+{
+ u32 sdr0_srst1 = 0;
+ u32 eth_cfg;
+ u32 pvr = get_pvr();
+
+ /*
+ * Set EMAC mode/configuration (GMII, SGMII, RGMII...).
+ * This is board specific, so let's do it here.
+ */
+ mfsdr(SDR0_ETH_CFG, eth_cfg);
+ /* disable SGMII mode */
+ eth_cfg &= ~(SDR0_ETH_CFG_SGMII2_ENABLE |
+ SDR0_ETH_CFG_SGMII1_ENABLE |
+ SDR0_ETH_CFG_SGMII0_ENABLE);
+ /* Set the for 2 RGMII mode */
+ /* GMC0 EMAC4_0, GMC0 EMAC4_1, RGMII Bridge 0 */
+ eth_cfg &= ~SDR0_ETH_CFG_GMC0_BRIDGE_SEL;
+ if ((pvr == PVR_460EX_RA) || (pvr == PVR_460EX_SE_RA))
+ eth_cfg |= SDR0_ETH_CFG_GMC1_BRIDGE_SEL;
+ else
+ eth_cfg &= ~SDR0_ETH_CFG_GMC1_BRIDGE_SEL;
+ mtsdr(SDR0_ETH_CFG, eth_cfg);
+
+ /*
+ * The AHB Bridge core is held in reset after power-on or reset
+ * so enable it now
+ */
+ mfsdr(SDR0_SRST1, sdr0_srst1);
+ sdr0_srst1 &= ~SDR0_SRST1_AHB;
+ mtsdr(SDR0_SRST1, sdr0_srst1);
+
+ return 0;
+}
+
+#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP)
+void ft_board_setup(void *blob, bd_t *bd)
+{
+ int rc;
+ int i;
+ u32 bxcr;
+ u32 ranges[EBC_NUM_BANKS * 4];
+ u32 *p = ranges;
+
+ ft_cpu_setup(blob, bd);
+
+ /* Fixup NOR mapping */
+ *p++ = 0; /* chip select number */
+ *p++ = 0; /* always 0 */
+ *p++ = CONFIG_SYS_FLASH_BASE_PHYS_L; /* we fixed up this address */
+ *p++ = gd->bd->bi_flashsize;
+
+ for (i = 1; i < EBC_NUM_BANKS; i++) {
+ mtdcr(ebccfga, EBC_BXCR(i));
+ bxcr = mfdcr(ebccfgd);
+
+ if ((bxcr & EBC_BXCR_BU_MASK) != EBC_BXCR_BU_NONE) {
+ *p++ = i;
+ *p++ = 0;
+ *p++ = bxcr & EBC_BXCR_BAS_MASK;
+ *p++ = EBC_BXCR_BANK_SIZE(bxcr);
+ }
+ }
+
+ rc = fdt_find_and_setprop(blob, "/plb/opb/ebc", "ranges", ranges,
+ (p - ranges) * sizeof(u32), 1);
+ if (rc) {
+ printf("Unable to update property EBC mappings, err=%s\n",
+ fdt_strerror(rc));
+ }
+
+ fdt_find_and_setprop(blob, "/plb/pciex@d00000000", "status",
+ "disabled", sizeof("disabled"), 1);
+
+ fdt_find_and_setprop(blob, "/plb/sata@bffd1000", "status",
+ "disabled", sizeof("disabled"), 1);
+}
+#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */
diff --git a/board/gdsys/compactcenter/config.mk b/board/gdsys/compactcenter/config.mk
new file mode 100644
index 0000000..56e397d
--- /dev/null
+++ b/board/gdsys/compactcenter/config.mk
@@ -0,0 +1,41 @@
+#
+# (C) Copyright 2008
+# Wolfgang Denk, DENX Software Engineering, wd(a)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
+#
+#
+# G&D CompactCenter
+#
+
+sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
+
+ifndef TEXT_BASE
+TEXT_BASE = 0xFFFA0000
+endif
+
+PLATFORM_CPPFLAGS += -DCONFIG_440=1
+
+ifeq ($(debug),1)
+PLATFORM_CPPFLAGS += -DDEBUG
+endif
+
+ifeq ($(dbcr),1)
+PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000
+endif
diff --git a/board/gdsys/compactcenter/init.S b/board/gdsys/compactcenter/init.S
new file mode 100644
index 0000000..ab19ca1
--- /dev/null
+++ b/board/gdsys/compactcenter/init.S
@@ -0,0 +1,87 @@
+/*
+ * (C) Copyright 2009
+ * Dirk Eibach, Guntermann & Drunck GmbH, eibach(a)gdsys.de
+ *
+ * Based on board/amcc/canyonlands/init.S
+ * (C) Copyright 2008
+ * Stefan Roese, DENX Software Engineering, sr(a)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
+ */
+
+#include <ppc_asm.tmpl>
+#include <config.h>
+#include <asm-ppc/mmu.h>
+
+/**************************************************************************
+ * TLB TABLE
+ *
+ * This table is used by the cpu boot code to setup the initial tlb
+ * entries. Rather than make broad assumptions in the cpu source tree,
+ * this table lets each board set things up however they like.
+ *
+ * Pointer to the table is returned in r1
+ *
+ *************************************************************************/
+ .section .bootpg,"ax"
+ .globl tlbtab
+
+tlbtab:
+ tlbtab_start
+
+ /*
+ * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to
+ * use the speed up boot process. It is patched after relocation to
+ * enable SA_I
+ */
+ tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_16M, CONFIG_SYS_BOOT_BASE_ADDR, 4, AC_R|AC_W|AC_X|SA_G) /* TLB 0 */
+
+ /*
+ * TLB entries for SDRAM are not needed on this platform.
+ * They are dynamically generated in the SPD DDR(2) detection
+ * routine.
+ */
+
+#ifdef CONFIG_SYS_INIT_RAM_DCACHE
+ /* TLB-entry for init-ram in dcache (SA_I must be turned off!) */
+ tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G)
+#endif
+
+ tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I)
+ tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I)
+
+ /* TLB-entry for NVRAM */
+ tlbentry(CONFIG_SYS_NVRAM_BASE, SZ_1M, CONFIG_SYS_NVRAM_BASE, 4, AC_R|AC_W|SA_G|SA_I)
+
+ /* TLB-entry for UART */
+ tlbentry(CONFIG_SYS_UART_BASE, SZ_16K, CONFIG_SYS_UART_BASE, 4, AC_R|AC_W|SA_G|SA_I)
+
+ /* TLB-entry for IO */
+ tlbentry(CONFIG_SYS_IO_BASE, SZ_16K, CONFIG_SYS_IO_BASE, 4, AC_R|AC_W|SA_G|SA_I)
+
+ /* TLB-entry for OCM */
+ tlbentry(CONFIG_SYS_OCM_BASE, SZ_1M, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I)
+
+ /* TLB-entry for Local Configuration registers => peripherals */
+ tlbentry(CONFIG_SYS_LOCAL_CONF_REGS, SZ_16M, CONFIG_SYS_LOCAL_CONF_REGS, 4, AC_R|AC_W|AC_X|SA_G|SA_I)
+
+ /* AHB: Internal USB Peripherals (USB, SATA) */
+ tlbentry(CONFIG_SYS_AHB_BASE, SZ_1M, 0xbff00000, 4, AC_R|AC_W|AC_X|SA_G|SA_I)
+
+ tlbtab_end
diff --git a/board/gdsys/compactcenter/u-boot.lds b/board/gdsys/compactcenter/u-boot.lds
new file mode 100644
index 0000000..0c95d5c
--- /dev/null
+++ b/board/gdsys/compactcenter/u-boot.lds
@@ -0,0 +1,144 @@
+/*
+ * (C) Copyright 2008
+ * Wolfgang Denk, DENX Software Engineering, wd(a)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
+ */
+
+OUTPUT_ARCH(powerpc)
+/* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+SECTIONS
+{
+ .resetvec 0xFFFFFFFC :
+ {
+ *(.resetvec)
+ } = 0xffff
+
+ .bootpg 0xFFFFF000 :
+ {
+ cpu/ppc4xx/start.o (.bootpg)
+ } = 0xffff
+
+ /* Read-only sections, merged into text segment: */
+ . = + SIZEOF_HEADERS;
+ .interp : { *(.interp) }
+ .hash : { *(.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ .rel.text : { *(.rel.text) }
+ .rela.text : { *(.rela.text) }
+ .rel.data : { *(.rel.data) }
+ .rela.data : { *(.rela.data) }
+ .rel.rodata : { *(.rel.rodata) }
+ .rela.rodata : { *(.rela.rodata) }
+ .rel.got : { *(.rel.got) }
+ .rela.got : { *(.rela.got) }
+ .rel.ctors : { *(.rel.ctors) }
+ .rela.ctors : { *(.rela.ctors) }
+ .rel.dtors : { *(.rel.dtors) }
+ .rela.dtors : { *(.rela.dtors) }
+ .rel.bss : { *(.rel.bss) }
+ .rela.bss : { *(.rela.bss) }
+ .rel.plt : { *(.rel.plt) }
+ .rela.plt : { *(.rela.plt) }
+ .init : { *(.init) }
+ .plt : { *(.plt) }
+ .text :
+ {
+ /* WARNING - the following is hand-optimized to fit within */
+ /* the sector layout of our flash chips! XXX FIXME XXX */
+
+ cpu/ppc4xx/start.o (.text)
+ board/gdsys/compactcenter/init.o (.text)
+
+ *(.text)
+ *(.fixup)
+ *(.got1)
+ }
+ _etext = .;
+ PROVIDE (etext = .);
+ .rodata :
+ {
+ *(.rodata)
+ *(.rodata1)
+ *(.rodata.str1.4)
+ }
+ .fini : { *(.fini) } =0
+ .ctors : { *(.ctors) }
+ .dtors : { *(.dtors) }
+
+ /* Read-write section, merged into data segment: */
+ . = (. + 0x00FF) & 0xFFFFFF00;
+ _erotext = .;
+ PROVIDE (erotext = .);
+ .reloc :
+ {
+ *(.got)
+ _GOT2_TABLE_ = .;
+ *(.got2)
+ _FIXUP_TABLE_ = .;
+ *(.fixup)
+ }
+ __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
+ __fixup_entries = (. - _FIXUP_TABLE_)>>2;
+
+ .data :
+ {
+ *(.data)
+ *(.data1)
+ *(.sdata)
+ *(.sdata2)
+ *(.dynamic)
+ CONSTRUCTORS
+ }
+ _edata = .;
+ PROVIDE (edata = .);
+
+ . = .;
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+
+ . = .;
+ __start___ex_table = .;
+ __ex_table : { *(__ex_table) }
+ __stop___ex_table = .;
+
+ . = ALIGN(256);
+ __init_begin = .;
+ .text.init : { *(.text.init) }
+ .data.init : { *(.data.init) }
+ . = ALIGN(256);
+ __init_end = .;
+
+ __bss_start = .;
+ .bss (NOLOAD) :
+ {
+ *(.sbss) *(.scommon)
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ . = ALIGN(4);
+ }
+
+ _end = . ;
+ PROVIDE (end = .);
+}
diff --git a/include/configs/compactcenter.h b/include/configs/compactcenter.h
new file mode 100644
index 0000000..ebee2c7
--- /dev/null
+++ b/include/configs/compactcenter.h
@@ -0,0 +1,425 @@
+/*
+ * (C) Copyright 2009
+ * Dirk Eibach, Guntermann & Drunck GmbH, eibach(a)gdsys.de
+ *
+ * Based on include/configs/canyonlands.h
+ * (C) Copyright 2008
+ * Stefan Roese, DENX Software Engineering, sr(a)denx.de.
+ *
+ * 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
+ */
+
+/************************************************************************
+ * compactcenter.h - configuration for CompactCenter (460EX)
+ ***********************************************************************/
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/*-----------------------------------------------------------------------
+ * High Level Configuration Options
+ *----------------------------------------------------------------------*/
+/*
+ * This config file is used for Canyonlands and DevCon-Center
+ */
+#define CONFIG_460EX 1 /* Specific PPC460EX */
+#ifdef CONFIG_DEVCONCENTER
+#define CONFIG_HOSTNAME devconcenter
+#define CONFIG_IDENT_STRING " devconcenter 0.02"
+#else
+#define CONFIG_HOSTNAME compactcenter
+#define CONFIG_IDENT_STRING " compactcenter 0.02"
+#endif
+#define CONFIG_440 1
+#define CONFIG_4xx 1 /* ... PPC4xx family */
+
+/*
+ * Include common defines/options for all AMCC eval boards
+ */
+#include "amcc-common.h"
+
+#define CONFIG_SYS_CLK_FREQ 66666667 /* external freq to pll */
+
+#define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */
+#define CONFIG_BOARD_EARLY_INIT_R 1 /* Call board_early_init_r */
+#define CONFIG_MISC_INIT_R 1 /* Call misc_init_r */
+#define CONFIG_BOARD_TYPES 1 /* support board types */
+#define CONFIG_FIT
+#define CFG_ALT_MEMTEST
+
+/*-----------------------------------------------------------------------
+ * Base addresses -- Note these are effective addresses where the
+ * actual resources get mapped (not physical addresses)
+ *----------------------------------------------------------------------*/
+#define CONFIG_SYS_PCI_MEMBASE 0x80000000 /* mapped PCI memory */
+#define CONFIG_SYS_PCI_BASE 0xd0000000 /* internal PCI regs */
+#define CONFIG_SYS_PCI_TARGBASE CONFIG_SYS_PCI_MEMBASE
+
+/* EBC stuff */
+#ifdef CONFIG_DEVCONCENTER /* Devcon-Center has 128 MB of flash */
+#define CONFIG_SYS_FLASH_BASE 0xF8000000 /* later mapped to this addr */
+#define CONFIG_SYS_FLASH_SIZE (128 << 20)
+#else
+#define CONFIG_SYS_FLASH_BASE 0xFC000000 /* later mapped to this addr */
+#define CONFIG_SYS_FLASH_SIZE (64 << 20)
+#endif
+
+#define CONFIG_SYS_NVRAM_BASE 0xE0000000
+#define CONFIG_SYS_UART_BASE 0xE0100000
+#define CONFIG_SYS_IO_BASE 0xE0200000
+
+#define CONFIG_SYS_BOOT_BASE_ADDR 0xFF000000 /* EBC Boot Space: 0xFF000000 */
+#define CONFIG_SYS_FLASH_BASE_PHYS_H 0x4
+#ifdef CONFIG_DEVCONCENTER /* Devcon-Center has 128 MB of flash */
+#define CONFIG_SYS_FLASH_BASE_PHYS_L 0xC8000000
+#else
+#define CONFIG_SYS_FLASH_BASE_PHYS_L 0xCC000000
+#endif
+#define CONFIG_SYS_FLASH_BASE_PHYS (((u64)CONFIG_SYS_FLASH_BASE_PHYS_H << 32) | \
+ (u64)CONFIG_SYS_FLASH_BASE_PHYS_L)
+
+#define CONFIG_SYS_OCM_BASE 0xE3000000 /* OCM: 64k */
+#define CONFIG_SYS_SRAM_BASE 0xE8000000 /* SRAM: 256k */
+#define CONFIG_SYS_LOCAL_CONF_REGS 0xEF000000
+
+#define CONFIG_SYS_PERIPHERAL_BASE 0xEF600000 /* internal peripherals */
+
+#define CONFIG_SYS_AHB_BASE 0xE2000000 /* internal AHB peripherals */
+
+/*-----------------------------------------------------------------------
+ * Initial RAM & stack pointer (placed in OCM)
+ *----------------------------------------------------------------------*/
+#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_SYS_OCM_BASE /* OCM */
+#define CONFIG_SYS_INIT_RAM_END (4 << 10)
+#define CONFIG_SYS_GBL_DATA_SIZE 256 /* num bytes initial data */
+#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_END - CONFIG_SYS_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET
+
+/*-----------------------------------------------------------------------
+ * Serial Port
+ *----------------------------------------------------------------------*/
+#undef CONFIG_UART1_CONSOLE /* define this if you want console on UART1 */
+
+/*-----------------------------------------------------------------------
+ * Environment
+ *----------------------------------------------------------------------*/
+/*
+ * Define here the location of the environment variables (FLASH).
+ */
+#define CONFIG_ENV_IS_IN_FLASH 1 /* use FLASH for environment vars */
+
+/*-----------------------------------------------------------------------
+ * FLASH related
+ *----------------------------------------------------------------------*/
+#define CONFIG_SYS_FLASH_CFI /* The flash is CFI compatible */
+#define CONFIG_FLASH_CFI_DRIVER /* Use common CFI driver */
+#define CONFIG_SYS_FLASH_CFI_AMD_RESET 1 /* Use AMD (Spansion) reset cmd */
+
+#define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE}
+#define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */
+#ifdef CONFIG_DEVCONCENTER
+#define CONFIG_SYS_MAX_FLASH_SECT 1024 /* max number of sectors on one chip */
+#else
+#define CONFIG_SYS_MAX_FLASH_SECT 512 /* max number of sectors on one chip */
+#endif
+
+#define CONFIG_SYS_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */
+#define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */
+
+#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 /* use buffered writes (20x faster) */
+#define CONFIG_SYS_FLASH_EMPTY_INFO /* print 'E' for empty sector on flinfo */
+
+#ifdef CONFIG_ENV_IS_IN_FLASH
+#define CONFIG_ENV_SECT_SIZE 0x20000 /* size of one complete sector */
+#define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE)
+#define CONFIG_ENV_SIZE 0x4000 /* Total Size of Environment Sector */
+
+/* Address and size of Redundant Environment Sector */
+#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR - CONFIG_ENV_SECT_SIZE)
+#define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE)
+#endif /* CONFIG_ENV_IS_IN_FLASH */
+
+/*------------------------------------------------------------------------------
+ * DDR SDRAM
+ *----------------------------------------------------------------------------*/
+
+#define CONFIG_AUTOCALIB "silent\0" /* default is non-verbose */
+
+#define CONFIG_PPC4xx_DDR_AUTOCALIBRATION /* IBM DDR autocalibration */
+#define DEBUG_PPC4xx_DDR_AUTOCALIBRATION /* dynamic DDR autocal debug */
+#undef CONFIG_PPC4xx_DDR_METHOD_A
+
+/* DDR1/2 SDRAM Device Control Register Data Values */
+/* Memory Queue */
+#define CONFIG_SYS_SDRAM_R0BAS 0x0000f800
+#define CONFIG_SYS_SDRAM_R1BAS 0x00000000
+#define CONFIG_SYS_SDRAM_R2BAS 0x00000000
+#define CONFIG_SYS_SDRAM_R3BAS 0x00000000
+#define CONFIG_SYS_SDRAM_PLBADDULL 0x00000000
+#define CONFIG_SYS_SDRAM_PLBADDUHB 0x00000008
+#define CONFIG_SYS_SDRAM_CONF1LL 0x80001C80
+#define CONFIG_SYS_SDRAM_CONF1HB 0x80001C80
+#define CONFIG_SYS_SDRAM_CONFPATHB 0x10a68000
+
+/* SDRAM Controller */
+#define CONFIG_SYS_SDRAM0_MB0CF 0x00000201
+#define CONFIG_SYS_SDRAM0_MB1CF 0x00000000
+#define CONFIG_SYS_SDRAM0_MB2CF 0x00000000
+#define CONFIG_SYS_SDRAM0_MB3CF 0x00000000
+#define CONFIG_SYS_SDRAM0_MCOPT1 0x05122000
+#define CONFIG_SYS_SDRAM0_MCOPT2 0x00000000
+#define CONFIG_SYS_SDRAM0_MODT0 0x00000000
+#define CONFIG_SYS_SDRAM0_MODT1 0x00000000
+#define CONFIG_SYS_SDRAM0_MODT2 0x00000000
+#define CONFIG_SYS_SDRAM0_MODT3 0x00000000
+#define CONFIG_SYS_SDRAM0_CODT 0x00000020
+#define CONFIG_SYS_SDRAM0_RTR 0x06180000
+#define CONFIG_SYS_SDRAM0_INITPLR0 0xA8380000
+#define CONFIG_SYS_SDRAM0_INITPLR1 0x81900400
+#define CONFIG_SYS_SDRAM0_INITPLR2 0x81020000
+#define CONFIG_SYS_SDRAM0_INITPLR3 0x81030000
+#define CONFIG_SYS_SDRAM0_INITPLR4 0x81010000
+#define CONFIG_SYS_SDRAM0_INITPLR5 0xE4000542
+#define CONFIG_SYS_SDRAM0_INITPLR6 0x81900400
+#define CONFIG_SYS_SDRAM0_INITPLR7 0x8A880000
+#define CONFIG_SYS_SDRAM0_INITPLR8 0x8A880000
+#define CONFIG_SYS_SDRAM0_INITPLR9 0x8A880000
+#define CONFIG_SYS_SDRAM0_INITPLR10 0x8A880000
+#define CONFIG_SYS_SDRAM0_INITPLR11 0x81000442
+#define CONFIG_SYS_SDRAM0_INITPLR12 0x81010380
+#define CONFIG_SYS_SDRAM0_INITPLR13 0x81010000
+#define CONFIG_SYS_SDRAM0_INITPLR14 0x00000000
+#define CONFIG_SYS_SDRAM0_INITPLR15 0x00000000
+#define CONFIG_SYS_SDRAM0_RQDC 0x80000038
+#define CONFIG_SYS_SDRAM0_RFDC 0x003F0000
+#define CONFIG_SYS_SDRAM0_RDCC 0x80000000
+#define CONFIG_SYS_SDRAM0_DLCR 0x00000000
+#define CONFIG_SYS_SDRAM0_CLKTR 0x40000000
+#define CONFIG_SYS_SDRAM0_WRDTR 0x84000800
+#define CONFIG_SYS_SDRAM0_SDTR1 0x80201000
+#define CONFIG_SYS_SDRAM0_SDTR2 0x32204232
+#define CONFIG_SYS_SDRAM0_SDTR3 0x090B0D15
+#define CONFIG_SYS_SDRAM0_MMODE 0x00000442
+#define CONFIG_SYS_SDRAM0_MEMODE 0x00000000
+
+#define CONFIG_SYS_MBYTES_SDRAM 256 /* 256MB */
+
+/*-----------------------------------------------------------------------
+ * I2C
+ *----------------------------------------------------------------------*/
+#define CONFIG_SYS_I2C_SPEED 400000 /* I2C speed */
+
+#define CONFIG_SYS_I2C_MULTI_EEPROMS
+#define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1)
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10
+
+/* I2C SYSMON */
+#define CONFIG_DTT_LM63 1 /* National LM63 */
+#define CONFIG_DTT_SENSORS { 0 } /* Sensor addresses */
+#define CONFIG_DTT_PWM_LOOKUPTABLE \
+ { { 40, 10 }, { 50, 20 }, { 60, 40 } }
+#define CONFIG_DTT_TACH_LIMIT 0xa10
+
+/* RTC configuration */
+#define CONFIG_RTC_DS1337 1
+#define CONFIG_SYS_I2C_RTC_ADDR 0x68
+
+/*-----------------------------------------------------------------------
+ * Ethernet
+ *----------------------------------------------------------------------*/
+#define CONFIG_IBM_EMAC4_V4 1
+
+#define CONFIG_HAS_ETH0
+#define CONFIG_HAS_ETH1
+
+#define CONFIG_PHY_ADDR 2 /* PHY address, See schematics */
+#define CONFIG_PHY1_ADDR 3
+
+#define CONFIG_PHY_RESET 1 /* reset phy upon startup */
+#define CONFIG_PHY_GIGE 1 /* Include GbE speed/duplex detection */
+#define CONFIG_PHY_DYNAMIC_ANEG 1
+
+/*-----------------------------------------------------------------------
+ * USB-OHCI
+ *----------------------------------------------------------------------*/
+#define CONFIG_USB_OHCI_NEW
+#define CONFIG_USB_STORAGE
+#undef CONFIG_SYS_OHCI_BE_CONTROLLER /* 460EX has little endian descriptors */
+#define CONFIG_SYS_OHCI_SWAP_REG_ACCESS /* 460EX has little endian register */
+#define CONFIG_SYS_OHCI_USE_NPS /* force NoPowerSwitching mode */
+#define CONFIG_SYS_USB_OHCI_REGS_BASE (CONFIG_SYS_AHB_BASE | 0xd0000)
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME "ppc440"
+#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS 15
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_AMCC_DEF_ENV \
+ CONFIG_AMCC_DEF_ENV_POWERPC \
+ CONFIG_AMCC_DEF_ENV_NOR_UPD \
+ "kernel_addr=fc000000\0" \
+ "fdt_addr=fc1e0000\0" \
+ "ramdisk_addr=fc200000\0" \
+ "pciconfighost=1\0" \
+ "pcie_mode=RP:RP\0" \
+ ""
+
+/*
+ * Commands additional to the ones defined in amcc-common.h
+ */
+#define CONFIG_CMD_DATE
+#define CONFIG_CMD_DTT
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_PCI
+#define CONFIG_CMD_SDRAM
+#define CONFIG_CMD_SNTP
+#define CONFIG_CMD_USB
+
+/* Partitions */
+#define CONFIG_MAC_PARTITION
+#define CONFIG_DOS_PARTITION
+#define CONFIG_ISO_PARTITION
+
+/*-----------------------------------------------------------------------
+ * PCI stuff
+ *----------------------------------------------------------------------*/
+/* General PCI */
+#define CONFIG_PCI /* include pci support */
+#define CONFIG_PCI_PNP /* do pci plug-and-play */
+#define CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
+#define CONFIG_PCI_CONFIG_HOST_BRIDGE
+#define CONFIG_PCI_DISABLE_PCIE
+
+/* Board-specific PCI */
+#define CONFIG_SYS_PCI_TARGET_INIT /* let board init pci target */
+#undef CONFIG_SYS_PCI_MASTER_INIT
+
+#define CONFIG_SYS_PCI_SUBSYS_VENDORID 0x1014 /* IBM */
+#define CONFIG_SYS_PCI_SUBSYS_DEVICEID 0xcafe /* Whatever */
+
+
+/*-----------------------------------------------------------------------
+ * External Bus Controller (EBC) Setup
+ *----------------------------------------------------------------------*/
+
+/*
+ * CompactCenter has 64MBytes of NOR FLASH (Spansion 29GL512), but the
+ * boot EBC mapping only supports a maximum of 16MBytes
+ * (4.ff00.0000 - 4.ffff.ffff).
+ * To solve this problem, the FLASH has to get remapped to another
+ * EBC address which accepts bigger regions:
+ *
+ * 0xfc00.0000 -> 4.cc00.0000
+ */
+
+
+/* Memory Bank 0 (NOR-FLASH) initialization */
+#define CONFIG_SYS_EBC_PB0AP 0x10055e00
+#define CONFIG_SYS_EBC_PB0CR (CONFIG_SYS_BOOT_BASE_ADDR | 0x9a000)
+
+/* Memory Bank 1 (NVRAM) initialization */
+#define CONFIG_SYS_EBC_PB1AP 0x02815480
+#define CONFIG_SYS_EBC_PB1CR (CONFIG_SYS_NVRAM_BASE | 0x18000) /* BAS=NVRAM,BS=1MB,BU=R/W,BW=8bit*/
+
+/* Memory Bank 2 (UART) initialization */
+#define CONFIG_SYS_EBC_PB2AP 0x02815480
+#define CONFIG_SYS_EBC_PB2CR (CONFIG_SYS_UART_BASE | 0x1A000) /* BAS=UART,BS=1MB,BU=R/W,BW=16bit*/
+
+/* Memory Bank 3 (IO) initialization */
+#define CONFIG_SYS_EBC_PB3AP 0x02815480
+#define CONFIG_SYS_EBC_PB3CR (CONFIG_SYS_IO_BASE | 0x1A000) /* BAS=IO,BS=1MB,BU=R/W,BW=16bit*/
+
+/*
+ * PPC4xx GPIO Configuration
+ */
+/* 460EX: Use USB configuration */
+#define CONFIG_SYS_4xx_GPIO_TABLE { /* Out GPIO Alternate1 Alternate2 Alternate3 */ \
+{ \
+/* GPIO Core 0 */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO0 GMC1TxD(0) USB2HostD(0) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO1 GMC1TxD(1) USB2HostD(1) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO2 GMC1TxD(2) USB2HostD(2) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO3 GMC1TxD(3) USB2HostD(3) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO4 GMC1TxD(4) USB2HostD(4) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO5 GMC1TxD(5) USB2HostD(5) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO6 GMC1TxD(6) USB2HostD(6) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO7 GMC1TxD(7) USB2HostD(7) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO8 GMC1RxD(0) USB2OTGD(0) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO9 GMC1RxD(1) USB2OTGD(1) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO10 GMC1RxD(2) USB2OTGD(2) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO11 GMC1RxD(3) USB2OTGD(3) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO12 GMC1RxD(4) USB2OTGD(4) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO13 GMC1RxD(5) USB2OTGD(5) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO14 GMC1RxD(6) USB2OTGD(6) */ \
+{GPIO0_BASE, GPIO_BI , GPIO_ALT1, GPIO_OUT_0}, /* GPIO15 GMC1RxD(7) USB2OTGD(7) */ \
+{GPIO0_BASE, GPIO_IN , GPIO_SEL, GPIO_OUT_0}, /* GPIO16 GMC1TxER USB2HostStop */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO17 GMC1CD USB2HostNext */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO18 GMC1RxER USB2HostDir */ \
+{GPIO0_BASE, GPIO_IN, GPIO_SEL, GPIO_OUT_0}, /* GPIO19 GMC1TxEN USB2OTGStop */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO20 GMC1CRS USB2OTGNext */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO21 GMC1RxDV USB2OTGDir */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO22 NFRDY */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO23 NFREN */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO24 NFWEN */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO25 NFCLE */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO26 NFALE */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO27 IRQ(0) */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO28 IRQ(1) */ \
+{GPIO0_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO29 IRQ(2) */ \
+{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO30 PerPar0 DMAReq2 IRQ(7)*/ \
+{GPIO0_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO31 PerPar1 DMAAck2 IRQ(8)*/ \
+}, \
+{ \
+/* GPIO Core 1 */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO32 PerPar2 EOT2/TC2 IRQ(9)*/ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO33 PerPar3 DMAReq3 IRQ(4)*/ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT3, GPIO_OUT_1}, /* GPIO34 UART0_DCD_N UART1_DSR_CTS_N UART2_SOUT*/ \
+{GPIO1_BASE, GPIO_IN , GPIO_ALT3, GPIO_OUT_0}, /* GPIO35 UART0_8PIN_DSR_N UART1_RTS_DTR_N UART2_SIN*/ \
+{GPIO1_BASE, GPIO_IN , GPIO_ALT3, GPIO_OUT_0}, /* GPIO36 UART0_8PIN_CTS_N DMAAck3 UART3_SIN*/ \
+{GPIO1_BASE, GPIO_BI , GPIO_ALT2, GPIO_OUT_0}, /* GPIO37 UART0_RTS_N EOT3/TC3 UART3_SOUT*/ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT2, GPIO_OUT_1}, /* GPIO38 UART0_DTR_N UART1_SOUT */ \
+{GPIO1_BASE, GPIO_IN , GPIO_ALT2, GPIO_OUT_0}, /* GPIO39 UART0_RI_N UART1_SIN */ \
+{GPIO1_BASE, GPIO_IN , GPIO_ALT1, GPIO_OUT_0}, /* GPIO40 IRQ(3) */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO41 CS(1) */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO42 CS(2) */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO43 CS(3) DMAReq1 IRQ(10)*/ \
+{GPIO1_BASE, GPIO_IN , GPIO_ALT3, GPIO_OUT_0}, /* GPIO44 CS(4) DMAAck1 IRQ(11)*/ \
+{GPIO1_BASE, GPIO_IN , GPIO_ALT3, GPIO_OUT_0}, /* GPIO45 CS(5) EOT/TC1 IRQ(12)*/ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO46 PerAddr(5) DMAReq0 IRQ(13)*/ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO47 PerAddr(6) DMAAck0 IRQ(14)*/ \
+{GPIO1_BASE, GPIO_OUT, GPIO_ALT1, GPIO_OUT_0}, /* GPIO48 PerAddr(7) EOT/TC0 IRQ(15)*/ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO49 Unselect via TraceSelect Bit */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO50 USB_SERVICE_SUSPEND_N */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO51 SPI_CSS_N */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO52 FPGA_PROGRAM_UC_N */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO53 FPGA_INIT_UC_N */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO54 WD_STROBE */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO55 LED_2_OUT */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO56 LED_1_OUT */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO57 Unselect via TraceSelect Bit */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO58 Unselect via TraceSelect Bit */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO59 Unselect via TraceSelect Bit */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO60 Unselect via TraceSelect Bit */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_0}, /* GPIO61 STARTUP_FINISHED_N */ \
+{GPIO1_BASE, GPIO_OUT, GPIO_SEL , GPIO_OUT_1}, /* GPIO62 STARTUP_FINISHED */ \
+{GPIO1_BASE, GPIO_IN , GPIO_SEL , GPIO_OUT_0}, /* GPIO63 SERVICE_PORT_ACTIVE */ \
+} \
+}
+
+#endif /* __CONFIG_H */
--
1.5.6.5
2
1
Dear Richard,
In message <E1MHHUe-00046l-SR(a)fencepost.gnu.org> you wrote:
>
> Have you considered moving U-boot to "GPLv3-or-later"?
I apologize for the late reply, but I have been on vacation and
completely offline for more than two weeks. But as I saw you got well
involved in the discussion on the U-Boot mailing list that resulted
from my forwarding your question to the list, trying to get an
understanding what the U-Boot community is thinking.
Now about your question: yes, I have considered moving U-boot to
GPLv3. I have to admit that I don't understand all the consequences
of GPLv3 yet; I am not a lawyer, and it took me long enough to get a
somewhat thorough understanding of what GPLv2 means - the basic
ideas, it's application in real live including it's interpretation by
layers in different (US and German) legal systems, and some of it's
deficiencies. It will take me some time to get equally familiar with
GPLv3. Fact is, that I don't like the idea that somebody can take the
code I've been developing as Free Software for the last 9 years and
use it in a device in such a way that I cannot modify my own code any
more even when the vendor strictly complies with the license (GPLv2).
This fact alone is reason enough for me to strive for moving U-Boot
to a license that prevents such usage models - i. e. going GPLv3.
But let's first have a little look at the discussion of this topic on
the U-Boot mailing list - it must be one of the longest threads we
ever had:
Discussion on U-Boot Mailing list
from: Thu, 18 Jun 2009 16:51:28 CEST
through: Sun, 5 Jul 2009 12:14:18 CEST
= 17 days
References:
http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/61801
http://lists.denx.de/pipermail/u-boot/2009-June/054540.html
Total postings:
(including initial posting): 143
Number of different posters
(including initial posting): 21
Current number of subscribers: 1712
Posters, Number of Postings, Percentage, and Total:
------------------------------------------------------
Richard Stallman : 32 = 22.4% [ 22.4%]
Detlev Zundel : 24 = 16.8% [ 39.2%]
Mike Frysinger : 23 = 16.1% [ 55.2%]
Robin Getz : 10 = 7.0% [ 62.2%]
ksi(a)koi8.net : 7 = 4.9% [ 67.1%]
Thomas Doerfler : 7 = 4.9% [ 72.0%]
Scott Wood : 6 = 4.2% [ 76.2%]
Jean-Christophe PLAGNIOL-VILLARD: 6 = 4.2% [ 80.4%]
Jean-Christian de Rivaz : 6 = 4.2% [ 84.6%]
Jon Smirl : 5 = 3.5% [ 88.1%]
Jerry Van Baren : 5 = 3.5% [ 91.6%]
Pink Boy : 2 = 1.4% [ 93.0%]
Grant Likely : 2 = 1.4% [ 94.4%]
Wolfgang Denk : 1 = 0.7% [ 95.1%]
Matthew Lear : 1 = 0.7% [ 95.8%]
Larry Johnson : 1 = 0.7% [ 96.5%]
Graeme Russ : 1 = 0.7% [ 97.2%]
Frank Svendsbøe : 1 = 0.7% [ 97.9%]
Eric Nelson : 1 = 0.7% [ 98.6%]
Chris Morgan : 1 = 0.7% [ 99.3%]
Arno Fischer : 1 = 0.7% [100.0%]
More than 50% of all postings - 3 posters
More than 60% of all postings - 4 posters
More than 70% of all postings - 6 posters
More than 80% of all postings - 8 posters
More than 90% of all postings - 11 posters
Posters, Vote, Role (commits since 2006-01-01), Reasoning:
[Total commits since 2006-01-01: 5845 by 314 Authors]
Richard Stallman : pro
software freedom activist
defend users' freedom
Detlev Zundel : pro
developer (38)
defend users' freedom
Mike Frysinger : con
developer, custodian (311)
Some customers don't want to let users run modified code.
Robin Getz : con
developer (1)
Many organizations which require this,
some from a legal standpoint,
some from a certification standpoint
ksi(a)koi8.net : con
developer (5)
sometimes regulations require secure boot
Thomas Doerfler : no clear statement - con
lurker, never showed up before (0)
fears that GPLv3 would prevent use in
"many possible applications"
Scott Wood : no clear statement - con
developer, custodian (48)
fears that GPLv3 would result in a fork
Jean-Christophe PLAGNIOL-VILLARD: con
developer, custodian (320)
"I've the same opinion as Linus Torvalds"
Jean-Christian de Rivaz : no clear statement - pro
lurker, never showed up before (0)
some arguments pro GPLv3
Jon Smirl : no statement
developer (5)
fears the amount of effort needed to go GPLv3
Jerry Van Baren : no clear statement - pro
developer (56)
points out the current situation and the effort needed
Pink Boy : pro
mostly lurker, 15 postings before this thread (0)
none of the people involved in product safety care about GPL
Grant Likely : con
developer (63)
"Personally not interested.
I don't want to license my code under GPLv3"
Wolfgang Denk : pro (*)
project maintainer (635)
defend users' freedom
Matthew Lear : no clear statement - con?
developer? (0)
fears that publication of security features might result in
"a rather large security flaw"
Larry Johnson : no statement
developer (38)
-
Graeme Russ : no clear statement - con?
developer (21)
"there are cases where GPL3 went just a little too far"
Frank Svendsbøe : pro
developer (1)
Keep fighting for freedom
Eric Nelson : no statement
developer? (0)
-
Chris Morgan : no statement
developer? (0)
-
Arno Fischer : con
developer? (0)
just agrees with another con-posting,
no own reasons
(*) I did not participate in this discussion yet - mostly because I
was on vacation and strictly abstinent from any Internet access,
but also because I wanted to get an uninfluenced picture of the
situation.
So here goes my statement: if I own a device that is running any
Free Software, and I decide I want to hack it, I want to able to
do this. I accept all the arguments about safety and
certifications and such, but in my opinion this has actually
nothing to do with allowing me to change the code or not. If it's
based on Free Software, that software must remain free. I don't
want to see my own code, which I released under a Free Software
license, being used in a device such that I cannot even fix my
own bugs any more.
I am definitely _pro_ going for GPLv3. I am also realizing the
efforts and the time this will take.
Observations:
=============
1) If we take into consideration that you are not subscribed to the
list, only 20 out of 1712 subscribers (less than 1.2%) bothered to
comment at all.
2) Some of these 20 posters did not take a firm stand whether they
are pro or con moving to GPLv3; an unweighted count gives 6 more
or less clear votes pro GPLv3 versus 10 votes against such a move.
3) It seems reasonable to me to add some weight to these votes,
taking into consideration how much the posters actually
contributed to the U-Boot project.
Since Jan 01, 2006 we had a total of 5845 commits by 314 authors.
The "pro"-voters add up to a total of 730 commits (12.5%), while
the "con"-voters have 769 commits (13.2%).
4) There is a repeating pattern in the arguments against GPLv3: some
customers/vendors intentionally want to lock down their users, and
moving U-Boot to GPLv3 might mean that we lose these customers.
Various reasons are listed, but usually they boil down to legal
requirements [which usually translates into guidelines issued by
the business management], security and certification requirements.
In all these cases, little or no seizable facts are provided.
Current Status:
===============
It is a known fact, that we have not always been careful enough to
check licensing terms of all contributed code. In the result, the
current U-Boot code base contains a number files with licenses that
are incompatible with the GPLv2 (or later) which is the intended
license for current U-Boot versions. This has been addressed with
commit 78237df5, see "doc/feature-removal-schedule.txt":
---------------------------
What: GPL cleanup
When: August 2009
Why: Over time, a couple of files have sneaked in into the U-Boot
source code that are either missing a valid GPL license
header or that carry a license that is incompatible with the
GPL.
Such files shall be removed from the U-Boot source tree.
See
http://www.denx.de/wiki/pub/U-Boot/TaskGplCleanup/u-boot-1.1.2-files
for an old and probably incomplete list of such files.
Who: Wolfgang Denk <wd(a)denx.de> and board maintainers
---------------------------
Checking the code base using the Open Source License Checker V.3 (see
http://forge.ow2.org/projects/oslcv3/) gives this result:
-> java -jar oslc.jar -x /home/wd/git/u-boot/master/.git -s /home/wd/git/u-boot/master
Source files: 4117
License files: 1
All files: 6178
Distinct licenses: 11
Conflicts (ref): 435
Conflicts (global): 34
License Count Incompatible with
all_rights_reserved-f 285 apache-1.1 apache-2.0-s gpl-2.0-l gpl-2.0-only-s gpl-2.0-s lgpl-2.1-s mpl-1.1-s nokos-1.0a-s
apache-1.1 163 all_rights_reserved-f gpl-2.0-l gpl-2.0-only-s gpl-2.0-s lgpl-2.1-s mpl-1.0-s mpl-1.1-s nokos-1.0a-s
apache-2.0-s 1 all_rights_reserved-f gpl-2.0-l gpl-2.0-only-s gpl-2.0-s lgpl-2.1-s mpl-1.0-s mpl-1.1-s nokos-1.0a-s
bsd 170
gpl-2.0-l 1 all_rights_reserved-f apache-1.1 apache-2.0-s mpl-1.0-s mpl-1.1-s nokos-1.0a-s
gpl-2.0-only-s 196 all_rights_reserved-f apache-1.1 apache-2.0-s mpl-1.0-s mpl-1.1-s nokos-1.0a-s
gpl-2.0-s 3007 all_rights_reserved-f apache-1.1 apache-2.0-s mpl-1.0-s mpl-1.1-s nokos-1.0a-s
lgpl-2.1-s 16 all_rights_reserved-f apache-1.1 apache-2.0-s mpl-1.0-s mpl-1.1-s nokos-1.0a-s
mpl-1.0-s 2 apache-1.1 apache-2.0-s gpl-2.0-l gpl-2.0-only-s gpl-2.0-s lgpl-2.1-s
mpl-1.1-s 5 all_rights_reserved-f apache-1.1 apache-2.0-s gpl-2.0-l gpl-2.0-only-s gpl-2.0-s lgpl-2.1-s
nokos-1.0a-s 5 all_rights_reserved-f apache-1.1 apache-2.0-s gpl-2.0-l gpl-2.0-only-s gpl-2.0-s lgpl-2.1-s
->
We have a lot of files with licenses which conflict with GPLv2 (and
later); if the OSLC results are correct, there are 461 such files
(7.5% of all files) - these must be cleaned up in any case.
Compared to that, the 196 "GPLv2 only" files (3.2% of all files) seem
to be an easier task, but this may be a delusion - most of the con-
flicting files above are strictly board-specific code, and the worst
thing that can happen is that we just remove these files (if the
respective board maintainers cannot or do not want to provide fixes),
which would result in a number of boards breaking, without any signi-
ficant impact on the majority of the supported boards. The "GPLv2
only" files are mostly global code that is related to important
features of U-Boot, so just dropping these is not an attractive
solution. On the other hand, it should not be that hard to analyze
which features are affected, and eventually isolate these. Then we
might evaluate what we'd lose when going GPLv3 anyway.
So it seems we can set up something like a plan:
Short term goal:
Clean up the existing license conflicts in U-Boot. This is a
task that is completely independent of the GPLv2 versus GPLv3
discussion - it must be done in any case.
Medium term goal:
Analyze which parts of U-Boot are implemented by GPLv2-only
code, and evaluate options to convert these into GPLv2+later.
Long term goal:
Move U-Boot to GPLv3.
All in all I must say that the whole discussion reminds me pretty
much to the situation back 10 years ago when I started trying to use
GNU/Linux for embedded systems. By then, it usually took long
discussions and lots of convincing both on engineering and especially
on management levels to get a Linux based solution accepted for a
real-life industrial project. The arguments then were pretty much the
same we hear today: systems would be less secure when everybody can
read the code, intellectual property would get lost to competitors,
it would be impossible to get the required certifications, and so on
and on.
And what happened? Today we see GNU/Linux systems everywhere, inclu-
ding safety-critical applications that require certifications, and
including communication devices (like mobile phones) that need to
pass approval procedures, homologation testing etc.
I am convinced that time will work for GPLv3 acceptance.
Thanks a lot, Richard, for bringing up this topic.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd(a)denx.de
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty not safety." - Benjamin Franklin, 1759
11
20

10 Jul '09
Hi there,
I met this compiling error, any idea?
/common/env_flash.c:312: undefined reference to `flash_sect_protect'
/common/env_flash.c:316: undefined reference to `flash_sect_erase'
/common/env_flash.c:329: undefined reference to `flash_sect_protect'
make: *** [u-boot] Error 1
Regards,
Johnson Yu
2
4

10 Jul '09
Current code only sets the PCI vendor id to 0x1014 and
leaved device id to 0x0000.
Ths patch ....
a) uses the correct PCI_VENDOR_ID_IBM macro for this
b) sets the default device ID as stated in the UM to 0x0156
by using PCI_DEVICE_ID_IBM_405GP for this.
Signed-off-by: Matthias Fuchs <matthias.fuchs(a)esd.eu>
---
cpu/ppc4xx/4xx_pci.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/cpu/ppc4xx/4xx_pci.c b/cpu/ppc4xx/4xx_pci.c
index 33dd743..4b5d636 100644
--- a/cpu/ppc4xx/4xx_pci.c
+++ b/cpu/ppc4xx/4xx_pci.c
@@ -337,8 +337,15 @@ void pci_405gp_init(struct pci_controller *hose)
}
#endif
-#if defined(CONFIG_405EP) /* on ppc405ep vendor id is not set */
- pci_write_config_word(PCIDEVID_405GP, PCI_VENDOR_ID, 0x1014); /* IBM */
+#if defined(CONFIG_405EP)
+ /*
+ * on ppc405ep vendor/device id is not set
+ * The user manual says 0x1014 (IBM) / 0x0156 (405GP!)
+ * are the correct values.
+ */
+ pci_write_config_word(PCIDEVID_405GP, PCI_VENDOR_ID, PCI_VENDOR_ID_IBM);
+ pci_write_config_word(PCIDEVID_405GP,
+ PCI_DEVICE_ID, PCI_DEVICE_ID_IBM_405GP);
#endif
/*
--
1.6.1
2
1

[U-Boot] [PATCH] ppc4xx: Move 405EP pci code from cpu_init_f() to __pci_pre_init()
by Matthias Fuchs 10 Jul '09
by Matthias Fuchs 10 Jul '09
10 Jul '09
This patch moves some basic PCI initialisation from the 4xx cpu_init_f()
to cpu/ppc4xx/4xx_pci.c.
The original cpu_init_f() function enabled the 405EP's internal arbiter
in all situations. Also the HCE bit in cpc0_pci is always set.
The first is not really wanted for PCI adapter designs and the latter
is a general bug for PCI adapter U-Boots. Because it enables
PCI configuration by the system CPU even when the PCI configuration has
not been setup by the 405EP. The one and only correct place is
in pci_405gp_init() (see "Set HCE bit" comment).
So for compatibility reasons the arbiter is still enabled in any case,
but from weak pci_pre_init() so that it can be replaced by board specific
code.
Signed-off-by: Matthias Fuchs <matthias.fuchs(a)esd.eu>
---
cpu/ppc4xx/4xx_pci.c | 14 ++++++++++++++
cpu/ppc4xx/cpu_init.c | 5 -----
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/cpu/ppc4xx/4xx_pci.c b/cpu/ppc4xx/4xx_pci.c
index 31ca85d..33dd743 100644
--- a/cpu/ppc4xx/4xx_pci.c
+++ b/cpu/ppc4xx/4xx_pci.c
@@ -87,6 +87,20 @@ DECLARE_GLOBAL_DATA_PTR;
*/
int __pci_pre_init(struct pci_controller *hose)
{
+#if defined (CONFIG_405EP)
+ /*
+ * Enable the internal PCI arbiter by default.
+ *
+ * On 405EP CPUs the internal arbiter can be controlled
+ * by the I2C strapping EEPROM. If you want to do so
+ * or if you want to disable the arbiter pci_pre_init()
+ * must be reimplemented without enabling the arbiter.
+ * The arbiter is enabled in this place because of
+ * compatibility reasons.
+ */
+ mtdcr(cpc0_pci, mfdcr(cpc0_pci) | CPC0_PCI_ARBIT_EN);
+#endif /* CONFIG_405EP */
+
return 1;
}
int pci_pre_init(struct pci_controller *hose) __attribute__((weak, alias("__pci_pre_init")));
diff --git a/cpu/ppc4xx/cpu_init.c b/cpu/ppc4xx/cpu_init.c
index 577d33f..bbd795d 100644
--- a/cpu/ppc4xx/cpu_init.c
+++ b/cpu/ppc4xx/cpu_init.c
@@ -174,11 +174,6 @@ cpu_init_f (void)
* Set EMAC noise filter bits
*/
mtdcr(cpc0_epctl, CPC0_EPRCSR_E0NFE | CPC0_EPRCSR_E1NFE);
-
- /*
- * Enable the internal PCI arbiter
- */
- mtdcr(cpc0_pci, mfdcr(cpc0_pci) | CPC0_PCI_HOST_CFG_EN | CPC0_PCI_ARBIT_EN);
#endif /* CONFIG_405EP */
#if defined(CONFIG_SYS_4xx_GPIO_TABLE)
--
1.6.1
2
1

[U-Boot] [PATCH] ppc4xx: Make is_pci_host() available for all 440 and 405 CPUs
by Matthias Fuchs 10 Jul '09
by Matthias Fuchs 10 Jul '09
10 Jul '09
Signed-off-by: Matthias Fuchs <matthias.fuchs(a)esd.eu>
---
include/common.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/common.h b/include/common.h
index ff4f821..1fe2043 100644
--- a/include/common.h
+++ b/include/common.h
@@ -275,7 +275,8 @@ void pci_init_board(void);
void pciinfo (int, int);
#if defined(CONFIG_PCI) && (defined(CONFIG_4xx) && !defined(CONFIG_AP1000))
- int pci_pre_init (struct pci_controller * );
+ int pci_pre_init (struct pci_controller *);
+ int is_pci_host (struct pci_controller *);
#endif
#if defined(CONFIG_PCI) && (defined(CONFIG_440) || defined(CONFIG_405EX))
@@ -285,7 +286,6 @@ void pciinfo (int, int);
# if defined(CONFIG_SYS_PCI_MASTER_INIT)
void pci_master_init (struct pci_controller *);
# endif
- int is_pci_host (struct pci_controller *);
#if defined(CONFIG_440SPE) || \
defined(CONFIG_460EX) || defined(CONFIG_460GT) || \
defined(CONFIG_405EX)
--
1.6.1
2
1

[U-Boot] [PATCH 3/5]P2020RDB Added support of Vitesse PHYs VSC8641(RGMII) and VSC8221(SGMII)
by Poonam Aggrwal 10 Jul '09
by Poonam Aggrwal 10 Jul '09
10 Jul '09
These PHYs are on P2020RDB platform.
Also revamped Freescale copyright message in drivers/net/tsec.c.
Signed-off-by: Poonam Aggrwal <poonam.aggrwal(a)freescale.com>
---
drivers/net/tsec.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 51 insertions(+), 1 deletions(-)
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index 63fc02e..f618be5 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -5,7 +5,7 @@
* terms of the GNU Public License, Version 2, incorporated
* herein by reference.
*
- * Copyright 2004, 2007 Freescale Semiconductor, Inc.
+ * Copyright (C) 2004-2009 Freescale Semiconductor, Inc. All rights reserved.
* (C) Copyright 2003, Motorola, Inc.
* author Andy Fleming
*
@@ -1426,6 +1426,54 @@ struct phy_info phy_info_VSC8244 = {
},
};
+struct phy_info phy_info_VSC8641 = {
+ 0x7043,
+ "Vitesse VSC8641",
+ 4,
+ (struct phy_cmd[]){ /* config */
+ /* Configure some basic stuff */
+ {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
+ {miim_end,}
+ },
+ (struct phy_cmd[]){ /* startup */
+ /* Read the Status (2x to make sure link is right) */
+ {MIIM_STATUS, miim_read, NULL},
+ /* Auto-negotiate */
+ {MIIM_STATUS, miim_read, &mii_parse_sr},
+ /* Read the status */
+ {MIIM_VSC8244_AUX_CONSTAT, miim_read,
+ &mii_parse_vsc8244},
+ {miim_end,}
+ },
+ (struct phy_cmd[]){ /* shutdown */
+ {miim_end,}
+ },
+};
+
+struct phy_info phy_info_VSC8221 = {
+ 0xfc55,
+ "Vitesse VSC8221",
+ 4,
+ (struct phy_cmd[]){ /* config */
+ /* Configure some basic stuff */
+ {MIIM_CONTROL, MIIM_CONTROL_INIT, &mii_cr_init},
+ {miim_end,}
+ },
+ (struct phy_cmd[]){ /* startup */
+ /* Read the Status (2x to make sure link is right) */
+ {MIIM_STATUS, miim_read, NULL},
+ /* Auto-negotiate */
+ {MIIM_STATUS, miim_read, &mii_parse_sr},
+ /* Read the status */
+ {MIIM_VSC8244_AUX_CONSTAT, miim_read,
+ &mii_parse_vsc8244},
+ {miim_end,}
+ },
+ (struct phy_cmd[]){ /* shutdown */
+ {miim_end,}
+ },
+};
+
struct phy_info phy_info_VSC8601 = {
0x00007042,
"Vitesse VSC8601",
@@ -1663,6 +1711,8 @@ struct phy_info *phy_info[] = {
&phy_info_VSC8211,
&phy_info_VSC8244,
&phy_info_VSC8601,
+ &phy_info_VSC8641,
+ &phy_info_VSC8221,
&phy_info_dp83865,
&phy_info_rtl8211b,
&phy_info_generic, /* must be last; has ID 0 and 32 bit mask */
--
1.5.6.3
3
2
eth_halt() function in the smc911x drivers used to call the
smc911x_reset() function. eth_halt() used to be called after
tftp transfers. This used to put the ethernet chip in reset
while the linux boots up resulting in the ethernet driver
not coming up. NFS boot used to fail as a result.
This patch calls smc911x_shutdown() instead of smc911x_reset().
Some comments received has also been fixed.
Signed-off-by: Manikandan Pillai <mani.pillai(a)ti.com>
---
drivers/net/smc911x.c | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 1ded8f0..5bc3914 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -116,6 +116,27 @@ static int smc911x_phy_reset(void)
return 0;
}
+static void smc911x_shutdown(void)
+{
+ unsigned int cr;
+
+ /* Turn of Rx and TX */
+ cr = smc911x_get_mac_csr(MAC_CR);
+ cr &= ~(MAC_CR_TXEN | MAC_CR_RXEN | MAC_CR_HBDIS);
+ smc911x_set_mac_csr(MAC_CR, cr);
+
+ /* Stop Transmission */
+ cr = smc911x_get_mac_csr(TX_CFG);
+ cr &= ~(TX_CFG_STOP_TX);
+ smc911x_set_mac_csr(TX_CFG, cr);
+ /* Stop receiving packets */
+ cr = smc911x_get_mac_csr(RX_CFG);
+ cr &= ~(RX_CFG_RXDOFF);
+ smc911x_set_mac_csr(RX_CFG, cr);
+
+}
+
+
static void smc911x_phy_configure(void)
{
int timeout;
@@ -224,7 +245,7 @@ int eth_send(volatile void *packet, int length)
void eth_halt(void)
{
- smc911x_reset();
+ smc911x_shutdown();
}
int eth_rx(void)
--
1.6.0.3
5
9
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro(a)renesas.com>
CC: Nobuhiro Iwamatsu <iwamatsu(a)nigauri.org>
---
drivers/net/sh_eth.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index f24ded2..86cc324 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -546,7 +546,7 @@ static int sh_eth_config(struct sh_eth_dev *eth, bd_t *bd)
/* Configure phy */
ret = sh_eth_phy_config(eth);
if (ret) {
- printf(SHETHER_NAME ":i phy config timeout\n");
+ printf(SHETHER_NAME ": phy config timeout\n");
goto err_phy_cfg;
}
/* Read phy status to finish configuring the e-mac */
--
1.6.3.1
2
1