mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
Merge commit 'u-boot/master' into for-1.3.1
Conflicts: drivers/rtc/Makefile
This commit is contained in:
commit
9caeaadf50
431 changed files with 6457 additions and 1922 deletions
13
.gitignore
vendored
Normal file
13
.gitignore
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
*.orig
|
||||
*.a
|
||||
*.o
|
||||
*.depend
|
||||
System.map
|
||||
/u-boot
|
||||
/u-boot.map
|
||||
/u-boot.bin
|
||||
/u-boot.srec
|
||||
/LOG
|
||||
/errlog
|
||||
/reloc_off
|
||||
|
2
MAKEALL
2
MAKEALL
|
@ -383,6 +383,7 @@ LIST_7xx=" \
|
|||
|
||||
LIST_ppc=" \
|
||||
${LIST_5xx} \
|
||||
${LIST_512x} \
|
||||
${LIST_5xxx} \
|
||||
${LIST_8xx} \
|
||||
${LIST_8220} \
|
||||
|
@ -559,6 +560,7 @@ LIST_mips5kc_el=""
|
|||
|
||||
LIST_au1xx0_el=" \
|
||||
dbau1550_el \
|
||||
pb1000 \
|
||||
"
|
||||
|
||||
LIST_mips_el=" \
|
||||
|
|
93
Makefile
93
Makefile
|
@ -23,8 +23,8 @@
|
|||
|
||||
VERSION = 1
|
||||
PATCHLEVEL = 3
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION = -rc3
|
||||
SUBLEVEL = 1
|
||||
EXTRAVERSION =
|
||||
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
|
||||
VERSION_FILE = $(obj)include/version_autogenerated.h
|
||||
|
||||
|
@ -205,22 +205,30 @@ LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs
|
|||
fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
|
||||
LIBS += net/libnet.a
|
||||
LIBS += disk/libdisk.a
|
||||
LIBS += rtc/librtc.a
|
||||
LIBS += dtt/libdtt.a
|
||||
LIBS += drivers/libdrivers.a
|
||||
LIBS += drivers/bios_emulator/libatibiosemu.a
|
||||
LIBS += drivers/nand/libnand.a
|
||||
LIBS += drivers/nand_legacy/libnand_legacy.a
|
||||
LIBS += drivers/onenand/libonenand.a
|
||||
LIBS += drivers/block/libblock.a
|
||||
LIBS += drivers/hwmon/libhwmon.a
|
||||
LIBS += drivers/i2c/libi2c.a
|
||||
LIBS += drivers/input/libinput.a
|
||||
LIBS += drivers/misc/libmisc.a
|
||||
LIBS += drivers/mtd/libmtd.a
|
||||
LIBS += drivers/mtd/nand/libnand.a
|
||||
LIBS += drivers/mtd/nand_legacy/libnand_legacy.a
|
||||
LIBS += drivers/mtd/onenand/libonenand.a
|
||||
LIBS += drivers/net/libnet.a
|
||||
LIBS += drivers/net/sk98lin/libsk98lin.a
|
||||
LIBS += drivers/pci/libpci.a
|
||||
LIBS += drivers/pcmcia/libpcmcia.a
|
||||
ifeq ($(CPU),mpc83xx)
|
||||
LIBS += drivers/qe/qe.a
|
||||
endif
|
||||
ifeq ($(CPU),mpc85xx)
|
||||
LIBS += drivers/qe/qe.a
|
||||
endif
|
||||
LIBS += drivers/rtc/librtc.a
|
||||
LIBS += drivers/serial/libserial.a
|
||||
LIBS += drivers/sk98lin/libsk98lin.a
|
||||
LIBS += drivers/usb/libusb.a
|
||||
LIBS += drivers/video/libvideo.a
|
||||
LIBS += post/libpost.a post/drivers/libpostdrivers.a
|
||||
LIBS += $(shell if [ -d post/lib_$(ARCH) ]; then echo \
|
||||
"post/lib_$(ARCH)/libpost$(ARCH).a"; fi)
|
||||
|
@ -323,25 +331,65 @@ env:
|
|||
depend dep: version
|
||||
for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir _depend ; done
|
||||
|
||||
TAG_SUBDIRS += include
|
||||
TAG_SUBDIRS += lib_generic board/$(BOARDDIR)
|
||||
TAG_SUBDIRS += cpu/$(CPU)
|
||||
TAG_SUBDIRS += lib_$(ARCH)
|
||||
TAG_SUBDIRS += fs/cramfs
|
||||
TAG_SUBDIRS += fs/fat
|
||||
TAG_SUBDIRS += fs/fdos
|
||||
TAG_SUBDIRS += fs/jffs2
|
||||
TAG_SUBDIRS += net
|
||||
TAG_SUBDIRS += disk
|
||||
TAG_SUBDIRS += common
|
||||
TAG_SUBDIRS += drivers/bios_emulator
|
||||
TAG_SUBDIRS += drivers/block
|
||||
TAG_SUBDIRS += drivers/hwmon
|
||||
TAG_SUBDIRS += drivers/i2c
|
||||
TAG_SUBDIRS += drivers/input
|
||||
TAG_SUBDIRS += drivers/misc
|
||||
TAG_SUBDIRS += drivers/mtd
|
||||
TAG_SUBDIRS += drivers/mtd/nand
|
||||
TAG_SUBDIRS += drivers/mtd/nand_legacy
|
||||
TAG_SUBDIRS += drivers/mtd/onenand
|
||||
TAG_SUBDIRS += drivers/net
|
||||
TAG_SUBDIRS += drivers/net/sk98lin
|
||||
TAG_SUBDIRS += drivers/pci
|
||||
TAG_SUBDIRS += drivers/pcmcia
|
||||
TAG_SUBDIRS += drivers/qe
|
||||
TAG_SUBDIRS += drivers/rtc
|
||||
TAG_SUBDIRS += drivers/serial
|
||||
TAG_SUBDIRS += drivers/usb
|
||||
TAG_SUBDIRS += drivers/video
|
||||
|
||||
tags ctags:
|
||||
ctags -w -o $(OBJTREE)/ctags `find $(SUBDIRS) include \
|
||||
lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
|
||||
fs/cramfs fs/fat fs/fdos fs/jffs2 \
|
||||
net disk rtc dtt drivers drivers/sk98lin common \
|
||||
\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
|
||||
ctags -w -o $(OBJTREE)/ctags `find $(SUBDIRS) $(TAG_SUBDIRS) \
|
||||
-name '*.[ch]' -print`
|
||||
|
||||
etags:
|
||||
etags -a -o $(OBJTREE)/etags `find $(SUBDIRS) include \
|
||||
lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
|
||||
fs/cramfs fs/fat fs/fdos fs/jffs2 \
|
||||
net disk rtc dtt drivers drivers/sk98lin common \
|
||||
\( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
|
||||
etags -a -o $(OBJTREE)/etags `find $(SUBDIRS) $(TAG_SUBDIRS) \
|
||||
-name '*.[ch]' -print`
|
||||
|
||||
$(obj)System.map: $(obj)u-boot
|
||||
@$(NM) $< | \
|
||||
grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
|
||||
sort > $(obj)System.map
|
||||
|
||||
#
|
||||
# Auto-generate the autoconf.mk file (which is included by all makefiles)
|
||||
#
|
||||
# This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
|
||||
# the dep file is only include in this top level makefile to determine when
|
||||
# to regenerate the autoconf.mk file.
|
||||
$(OBJTREE)/include/autoconf.mk: $(obj)include/config.h
|
||||
@echo Generating include/autoconf.mk
|
||||
@# Generate the dependancies
|
||||
@$(CC) -M $(HOST_CFLAGS) $(CPPFLAGS) -MQ $@ include/common.h > $@.dep
|
||||
@# Extract the config macros
|
||||
@$(CPP) $(CFLAGS) -dM include/common.h | sed -n -f tools/scripts/define2mk.sed >> $@
|
||||
|
||||
sinclude $(OBJTREE)/include/autoconf.mk.dep
|
||||
|
||||
#########################################################################
|
||||
else
|
||||
all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
|
||||
|
@ -361,7 +409,8 @@ CHANGELOG:
|
|||
|
||||
unconfig:
|
||||
@rm -f $(obj)include/config.h $(obj)include/config.mk \
|
||||
$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp
|
||||
$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
|
||||
$(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep
|
||||
|
||||
#========================================================================
|
||||
# PowerPC
|
||||
|
@ -1750,9 +1799,13 @@ M54455EVB_i66_config : unconfig
|
|||
>include/config.h ; \
|
||||
if [ "$${FLASH}" == "INTEL" ] ; then \
|
||||
echo "#undef CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
|
||||
echo "TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
|
||||
cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \
|
||||
echo "... with INTEL boot..." ; \
|
||||
else \
|
||||
echo "#define CFG_ATMEL_BOOT" >> $(obj)include/config.h ; \
|
||||
echo "TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
|
||||
cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \
|
||||
echo "... with ATMEL boot..." ; \
|
||||
fi; \
|
||||
echo "#define CFG_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
|
||||
|
|
2
README
2
README
|
@ -2123,7 +2123,7 @@ to save the current settings.
|
|||
to be a good choice since it makes it far enough from the
|
||||
start of the data area as well as from the stack pointer.
|
||||
|
||||
Please note that the environment is read-only as long as the monitor
|
||||
Please note that the environment is read-only until the monitor
|
||||
has been relocated to RAM and a RAM copy of the environment has been
|
||||
created; also, when using EEPROM you will have to use getenv_r()
|
||||
until then to read environment variables.
|
||||
|
|
|
@ -21,4 +21,4 @@
|
|||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN
|
||||
PLATFORM_CPPFLAGS += -DCONFIG_BLACKFIN -D__BLACKFIN__
|
||||
|
|
|
@ -51,6 +51,7 @@ SECTIONS
|
|||
{
|
||||
cpu/mpc512x/start.o (.text)
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
. = ALIGN(16);
|
||||
*(.rodata)
|
||||
|
|
|
@ -37,17 +37,24 @@ static void cds_pci_fixup(void *blob)
|
|||
|
||||
map = ft_get_prop(blob, "/" OF_SOC "/pci@8000/interrupt-map", &len);
|
||||
|
||||
len /= sizeof(u32);
|
||||
if (!map)
|
||||
map = ft_get_prop(blob, "/" OF_PCI "/interrupt-map", &len);
|
||||
|
||||
slot = get_pci_slot();
|
||||
if (map) {
|
||||
len /= sizeof(u32);
|
||||
|
||||
for (i=0;i<len;i+=7) {
|
||||
/* We rotate the interrupt pins so that the mapping
|
||||
* changes depending on the slot the carrier card is in.
|
||||
*/
|
||||
map[3] = ((map[3] + slot - 2) % 4) + 1;
|
||||
slot = get_pci_slot();
|
||||
|
||||
map+=7;
|
||||
for (i=0;i<len;i+=7) {
|
||||
/* We rotate the interrupt pins so that the mapping
|
||||
* changes depending on the slot the carrier card is in.
|
||||
*/
|
||||
map[3] = ((map[3] + slot - 2) % 4) + 1;
|
||||
|
||||
map+=7;
|
||||
}
|
||||
} else {
|
||||
printf("*** Warning - No PCI node found\n");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -69,7 +69,7 @@ SECTIONS
|
|||
cpu/mpc85xx/interrupts.o (.text)
|
||||
cpu/mpc85xx/cpu_init.o (.text)
|
||||
cpu/mpc85xx/cpu.o (.text)
|
||||
drivers/tsec.o (.text)
|
||||
drivers/net/tsec.o (.text)
|
||||
cpu/mpc85xx/speed.o (.text)
|
||||
cpu/mpc85xx/pci.o (.text)
|
||||
common/dlmalloc.o (.text)
|
||||
|
|
|
@ -69,7 +69,7 @@ SECTIONS
|
|||
cpu/mpc85xx/interrupts.o (.text)
|
||||
cpu/mpc85xx/cpu_init.o (.text)
|
||||
cpu/mpc85xx/cpu.o (.text)
|
||||
drivers/tsec.o (.text)
|
||||
drivers/net/tsec.o (.text)
|
||||
cpu/mpc85xx/speed.o (.text)
|
||||
common/dlmalloc.o (.text)
|
||||
lib_generic/crc32.o (.text)
|
||||
|
|
|
@ -69,7 +69,7 @@ SECTIONS
|
|||
cpu/mpc85xx/interrupts.o (.text)
|
||||
cpu/mpc85xx/cpu_init.o (.text)
|
||||
cpu/mpc85xx/cpu.o (.text)
|
||||
drivers/tsec.o (.text)
|
||||
drivers/net/tsec.o (.text)
|
||||
cpu/mpc85xx/speed.o (.text)
|
||||
cpu/mpc85xx/pci.o (.text)
|
||||
common/dlmalloc.o (.text)
|
||||
|
|
|
@ -276,7 +276,7 @@ static void ft_blob_update(void *blob, bd_t *bd)
|
|||
memory_data[0] = cpu_to_be32(bd->bi_memstart);
|
||||
memory_data[1] = cpu_to_be32(bd->bi_memsize);
|
||||
|
||||
nodeoffset = fdt_find_node_by_path (blob, "/memory");
|
||||
nodeoffset = fdt_path_offset (blob, "/memory");
|
||||
if (nodeoffset >= 0) {
|
||||
ret = fdt_setprop(blob, nodeoffset, "reg", memory_data,
|
||||
sizeof(memory_data));
|
||||
|
|
|
@ -55,6 +55,7 @@ SECTIONS
|
|||
{
|
||||
*(.text)
|
||||
common/environment.o(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
}
|
||||
_etext = .;
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <command.h>
|
||||
#include <asm/au1x00.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
long int initdram(int board_type)
|
||||
{
|
||||
|
@ -77,6 +78,9 @@ int checkboard (void)
|
|||
default:
|
||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||
}
|
||||
|
||||
set_io_port_base(0);
|
||||
|
||||
#ifdef CONFIG_IDE_PCMCIA
|
||||
/* Enable 3.3 V on slot 0 ( VCC )
|
||||
No 5V */
|
||||
|
|
|
@ -43,21 +43,22 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
_gp = ALIGN(16);
|
||||
|
||||
__got_start = .;
|
||||
.got : { *(.got) }
|
||||
__got_end = .;
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
. = .;
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
|
||||
.got : {
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
.u_boot_cmd : {
|
||||
__u_boot_cmd_start = .;
|
||||
*(.u_boot_cmd)
|
||||
__u_boot_cmd_end = .;
|
||||
}
|
||||
|
||||
uboot_end_data = .;
|
||||
num_got_entries = (__got_end - __got_start) >> 2;
|
||||
|
|
|
@ -207,13 +207,16 @@ void read_from_px_regs_altbank(int set)
|
|||
out8(PIXIS_BASE + PIXIS_VCFGEN1, tmp);
|
||||
}
|
||||
|
||||
#ifndef CFG_PIXIS_VBOOT_MASK
|
||||
#define CFG_PIXIS_VBOOT_MASK 0x40
|
||||
#endif
|
||||
|
||||
void set_altbank(void)
|
||||
{
|
||||
u8 tmp;
|
||||
|
||||
tmp = in8(PIXIS_BASE + PIXIS_VBOOT);
|
||||
tmp ^= 0x40;
|
||||
tmp ^= CFG_PIXIS_VBOOT_MASK;
|
||||
|
||||
out8(PIXIS_BASE + PIXIS_VBOOT, tmp);
|
||||
}
|
||||
|
|
|
@ -22,4 +22,6 @@
|
|||
# MA 02111-1307 USA
|
||||
#
|
||||
|
||||
TEXT_BASE = 0
|
||||
sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
|
||||
|
||||
PLATFORM_CPPFLAGS += -DTEXT_BASE=$(TEXT_BASE)
|
||||
|
|
144
board/freescale/m54455evb/u-boot.atm
Normal file
144
board/freescale/m54455evb/u-boot.atm
Normal file
|
@ -0,0 +1,144 @@
|
|||
/*
|
||||
* (C) Copyright 2000
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
OUTPUT_ARCH(m68k)
|
||||
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* 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/mcf5445x/start.o (.text)
|
||||
lib_m68k/traps.o (.text)
|
||||
lib_m68k/interrupts.o (.text)
|
||||
common/dlmalloc.o (.text)
|
||||
lib_generic/zlib.o (.text)
|
||||
|
||||
. = DEFINED(env_offset) ? env_offset : .;
|
||||
common/environment.o (.text)
|
||||
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
}
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
}
|
||||
.fini : { *(.fini) } =0
|
||||
.ctors : { *(.ctors) }
|
||||
.dtors : { *(.dtors) }
|
||||
|
||||
/* Read-write section, merged into data segment: */
|
||||
. = (. + 0x00FF) & 0xFFFFFF00;
|
||||
_erotext = .;
|
||||
PROVIDE (erotext = .);
|
||||
|
||||
.reloc :
|
||||
{
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
_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 :
|
||||
{
|
||||
_sbss = .;
|
||||
*(.sbss) *(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
_ebss = .;
|
||||
}
|
||||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
141
board/freescale/m54455evb/u-boot.int
Normal file
141
board/freescale/m54455evb/u-boot.int
Normal file
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* (C) Copyright 2000
|
||||
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
OUTPUT_ARCH(m68k)
|
||||
SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib);
|
||||
/* Do we need any of these for elf?
|
||||
__DYNAMIC = 0; */
|
||||
SECTIONS
|
||||
{
|
||||
/* 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/mcf5445x/start.o (.text)
|
||||
lib_m68k/traps.o (.text)
|
||||
lib_m68k/interrupts.o (.text)
|
||||
common/dlmalloc.o (.text)
|
||||
lib_generic/zlib.o (.text)
|
||||
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
}
|
||||
_etext = .;
|
||||
PROVIDE (etext = .);
|
||||
.rodata :
|
||||
{
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
}
|
||||
.fini : { *(.fini) } =0
|
||||
.ctors : { *(.ctors) }
|
||||
.dtors : { *(.dtors) }
|
||||
|
||||
/* Read-write section, merged into data segment: */
|
||||
. = (. + 0x00FF) & 0xFFFFFF00;
|
||||
_erotext = .;
|
||||
PROVIDE (erotext = .);
|
||||
|
||||
.reloc :
|
||||
{
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
_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 :
|
||||
{
|
||||
_sbss = .;
|
||||
*(.sbss) *(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
. = ALIGN(4);
|
||||
_ebss = .;
|
||||
}
|
||||
_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
|
@ -269,7 +269,7 @@ ft_pci_setup(void *blob, bd_t *bd)
|
|||
int err;
|
||||
int tmp[2];
|
||||
|
||||
nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");
|
||||
nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8500");
|
||||
if (nodeoffset >= 0) {
|
||||
tmp[0] = cpu_to_be32(hose[0].first_busno);
|
||||
tmp[1] = cpu_to_be32(hose[0].last_busno);
|
||||
|
|
|
@ -396,7 +396,7 @@ ft_pci_setup(void *blob, bd_t *bd)
|
|||
int err;
|
||||
int tmp[2];
|
||||
|
||||
nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");
|
||||
nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8500");
|
||||
if (nodeoffset >= 0) {
|
||||
tmp[0] = cpu_to_be32(pci_hose[0].first_busno);
|
||||
tmp[1] = cpu_to_be32(pci_hose[0].last_busno);
|
||||
|
@ -408,7 +408,7 @@ ft_pci_setup(void *blob, bd_t *bd)
|
|||
tmp, sizeof(tmp[0]));
|
||||
}
|
||||
#ifdef CONFIG_MPC83XX_PCI2
|
||||
nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8600");
|
||||
nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8600");
|
||||
if (nodeoffset >= 0) {
|
||||
tmp[0] = cpu_to_be32(pci_hose[1].first_busno);
|
||||
tmp[1] = cpu_to_be32(pci_hose[1].last_busno);
|
||||
|
|
|
@ -342,7 +342,7 @@ ft_pci_setup(void *blob, bd_t *bd)
|
|||
int err;
|
||||
int tmp[2];
|
||||
|
||||
nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");
|
||||
nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8500");
|
||||
if (nodeoffset >= 0) {
|
||||
tmp[0] = cpu_to_be32(pci_hose[0].first_busno);
|
||||
tmp[1] = cpu_to_be32(pci_hose[0].last_busno);
|
||||
|
@ -354,7 +354,7 @@ ft_pci_setup(void *blob, bd_t *bd)
|
|||
tmp, sizeof(tmp[0]));
|
||||
}
|
||||
#ifdef CONFIG_MPC83XX_PCI2
|
||||
nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");
|
||||
nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8500");
|
||||
if (nodeoffset >= 0) {
|
||||
tmp[0] = cpu_to_be32(pci_hose[1].first_busno);
|
||||
tmp[1] = cpu_to_be32(pci_hose[1].last_busno);
|
||||
|
|
|
@ -269,7 +269,7 @@ ft_pci_setup(void *blob, bd_t *bd)
|
|||
int err;
|
||||
int tmp[2];
|
||||
|
||||
nodeoffset = fdt_find_node_by_path(blob, "/" OF_SOC "/pci@8500");
|
||||
nodeoffset = fdt_path_offset(blob, "/" OF_SOC "/pci@8500");
|
||||
if (nodeoffset >= 0) {
|
||||
tmp[0] = cpu_to_be32(hose[0].first_busno);
|
||||
tmp[1] = cpu_to_be32(hose[0].last_busno);
|
||||
|
|
|
@ -227,7 +227,7 @@ pci_init_board(void)
|
|||
* Activate ULI1575 legacy chip by performing a fake
|
||||
* memory access. Needed to make ULI RTC work.
|
||||
*/
|
||||
in_be32(CFG_PCIE3_MEM_BASE);
|
||||
in_be32((u32 *)CFG_PCIE3_MEM_BASE);
|
||||
} else {
|
||||
printf (" PCIE3: disabled\n");
|
||||
}
|
||||
|
|
|
@ -26,14 +26,13 @@
|
|||
#include <asm/au1x00.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/io.h>
|
||||
#include <watchdog.h>
|
||||
|
||||
#include "ee_access.h"
|
||||
|
||||
static int wdi_status = 0;
|
||||
|
||||
unsigned long mips_io_port_base = 0;
|
||||
|
||||
#define SDRAM_SIZE ((64*1024*1024)-(12*4096))
|
||||
|
||||
|
||||
|
@ -147,6 +146,9 @@ int checkboard (void)
|
|||
default:
|
||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||
}
|
||||
|
||||
set_io_port_base(0);
|
||||
|
||||
#ifdef CONFIG_IDE_PCMCIA
|
||||
/* PCMCIA is on a 36 bit physical address.
|
||||
We need to map it into a 32 bit addresses */
|
||||
|
@ -429,7 +431,7 @@ int misc_init_r(void){
|
|||
(Rx[8] != ':') | (Rx[11] != ':') | (Rx[14] != ':')) {
|
||||
printf ("*** ethernet addr invalid, using default ***\n");
|
||||
} else {
|
||||
setenv ("ethaddr", Rx);
|
||||
setenv ("ethaddr", (char *)Rx);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
|
|
@ -413,7 +413,9 @@ noCacheJump:
|
|||
j clearmem
|
||||
nop
|
||||
|
||||
#if 0
|
||||
.globl memtest
|
||||
#endif
|
||||
memtest:
|
||||
/* Fill memory with address */
|
||||
li t0, 0x80000000
|
||||
|
@ -434,7 +436,9 @@ mt1: lw t2, 0(t0)
|
|||
bne t1, zero, mt1
|
||||
nop
|
||||
nop
|
||||
#if 0
|
||||
.globl clearmem
|
||||
#endif
|
||||
clearmem:
|
||||
/* Clear memory */
|
||||
li t0, 0x80000000
|
||||
|
|
|
@ -43,20 +43,22 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.sdata : { *(.sdata) }
|
||||
. = .;
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
|
||||
_gp = ALIGN(16);
|
||||
|
||||
__got_start = .;
|
||||
.got : { *(.got) }
|
||||
__got_end = .;
|
||||
.got : {
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
.u_boot_cmd : {
|
||||
__u_boot_cmd_start = .;
|
||||
*(.u_boot_cmd)
|
||||
__u_boot_cmd_end = .;
|
||||
}
|
||||
|
||||
uboot_end_data = .;
|
||||
num_got_entries = (__got_end - __got_start) >> 2;
|
||||
|
|
|
@ -69,6 +69,7 @@ SECTIONS
|
|||
common/environment.o(.text)
|
||||
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
}
|
||||
_etext = .;
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
#include <ioports.h>
|
||||
#include <mpc8260.h>
|
||||
|
||||
#if defined(CONFIG_OF_LIBFDT)
|
||||
#include <libfdt.h>
|
||||
#include <libfdt_env.h>
|
||||
#include <fdt_support.h>
|
||||
#endif
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/*
|
||||
|
@ -38,12 +44,12 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||
|
||||
/* Port A configuration */
|
||||
{ /* conf ppar psor pdir podr pdat */
|
||||
/* PA31 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 COL */
|
||||
/* PA30 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 CRS */
|
||||
/* PA29 */ { 0, 1, 1, 1, 0, 0 }, /* FCC1 TXER */
|
||||
/* PA28 */ { 0, 1, 1, 1, 0, 0 }, /* FCC1 TXEN */
|
||||
/* PA27 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 RXDV */
|
||||
/* PA26 */ { 0, 1, 1, 0, 0, 0 }, /* FCC1 RXER */
|
||||
/* PA31 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 COL */
|
||||
/* PA30 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 CRS */
|
||||
/* PA29 */ { 1, 1, 1, 1, 0, 0 }, /* FCC1 TXER */
|
||||
/* PA28 */ { 1, 1, 1, 1, 0, 0 }, /* FCC1 TXEN */
|
||||
/* PA27 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 RXDV */
|
||||
/* PA26 */ { 1, 1, 1, 0, 0, 0 }, /* FCC1 RXER */
|
||||
/* PA25 */ { 0, 0, 0, 0, 1, 0 }, /* 8247_P0 */
|
||||
#if defined(CONFIG_SOFT_I2C)
|
||||
/* PA24 */ { 1, 0, 0, 0, 1, 1 }, /* I2C_SDA2 */
|
||||
|
@ -53,14 +59,14 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||
/* PA23 */ { 0, 0, 0, 1, 0, 0 }, /* PA23 */
|
||||
#endif
|
||||
/* PA22 */ { 0, 0, 0, 0, 1, 0 }, /* SMC2_DCD */
|
||||
/* PA21 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD3 */
|
||||
/* PA20 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD2 */
|
||||
/* PA19 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD1 */
|
||||
/* PA18 */ { 0, 1, 0, 1, 0, 0 }, /* FCC1 TXD0 */
|
||||
/* PA17 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD0 */
|
||||
/* PA16 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD1 */
|
||||
/* PA15 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD2 */
|
||||
/* PA14 */ { 0, 1, 0, 0, 0, 0 }, /* FCC1 RXD3 */
|
||||
/* PA21 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD3 */
|
||||
/* PA20 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD2 */
|
||||
/* PA19 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD1 */
|
||||
/* PA18 */ { 1, 1, 0, 1, 0, 0 }, /* FCC1 TXD0 */
|
||||
/* PA17 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD0 */
|
||||
/* PA16 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD1 */
|
||||
/* PA15 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD2 */
|
||||
/* PA14 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 RXD3 */
|
||||
/* PA13 */ { 0, 0, 0, 1, 1, 0 }, /* SMC2_RTS */
|
||||
/* PA12 */ { 0, 0, 0, 0, 1, 0 }, /* SMC2_CTS */
|
||||
/* PA11 */ { 0, 0, 0, 1, 1, 0 }, /* SMC2_DTR */
|
||||
|
@ -79,20 +85,20 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||
|
||||
/* Port B configuration */
|
||||
{ /* conf ppar psor pdir podr pdat */
|
||||
/* PB31 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TX_ER */
|
||||
/* PB30 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_DV */
|
||||
/* PB29 */ { 1, 1, 1, 1, 0, 0 }, /* FCC2 MII TX_EN */
|
||||
/* PB28 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_ER */
|
||||
/* PB27 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII COL */
|
||||
/* PB26 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII CRS */
|
||||
/* PB25 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[3] */
|
||||
/* PB24 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[2] */
|
||||
/* PB23 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[1] */
|
||||
/* PB22 */ { 1, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[0] */
|
||||
/* PB21 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[0] */
|
||||
/* PB20 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[1] */
|
||||
/* PB19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[2] */
|
||||
/* PB18 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[3] */
|
||||
/* PB31 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TX_ER */
|
||||
/* PB30 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_DV */
|
||||
/* PB29 */ { 0, 1, 1, 1, 0, 0 }, /* FCC2 MII TX_EN */
|
||||
/* PB28 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_ER */
|
||||
/* PB27 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII COL */
|
||||
/* PB26 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII CRS */
|
||||
/* PB25 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[3] */
|
||||
/* PB24 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[2] */
|
||||
/* PB23 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[1] */
|
||||
/* PB22 */ { 0, 1, 0, 1, 0, 0 }, /* FCC2 MII TxD[0] */
|
||||
/* PB21 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[0] */
|
||||
/* PB20 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[1] */
|
||||
/* PB19 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[2] */
|
||||
/* PB18 */ { 0, 1, 0, 0, 0, 0 }, /* FCC2 MII RxD[3] */
|
||||
/* PB17 */ { 0, 0, 0, 0, 0, 0 }, /* PB17 */
|
||||
/* PB16 */ { 0, 0, 0, 0, 0, 0 }, /* PB16 */
|
||||
/* PB15 */ { 0, 0, 0, 0, 0, 0 }, /* PB15 */
|
||||
|
@ -123,8 +129,8 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||
/* PC26 */ { 0, 0, 0, 1, 0, 0 }, /* PC26 */
|
||||
/* PC25 */ { 0, 1, 1, 0, 0, 0 }, /* SYNC_IN */
|
||||
/* PC24 */ { 0, 0, 0, 1, 0, 0 }, /* PC24 */
|
||||
/* PC23 */ { 0, 1, 0, 1, 0, 0 }, /* ATMTFCLK */
|
||||
/* PC22 */ { 0, 1, 0, 0, 0, 0 }, /* ATMRFCLK */
|
||||
/* PC23 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII TX_CLK */
|
||||
/* PC22 */ { 1, 1, 0, 0, 0, 0 }, /* FCC1 MII RX_CLK */
|
||||
/* PC21 */ { 0, 1, 0, 0, 0, 0 }, /* SCC1 EN RXCLK */
|
||||
/* PC20 */ { 0, 1, 0, 0, 0, 0 }, /* SCC1 EN TXCLK */
|
||||
/* PC19 */ { 1, 1, 0, 0, 0, 0 }, /* FCC2 MII RX_CLK */
|
||||
|
@ -180,7 +186,7 @@ const iop_conf_t iop_conf_tab[4][32] = {
|
|||
/* PD10 */ { 0, 0, 0, 0, 0, 0 }, /* PD10 */
|
||||
/* PD9 */ { 0, 0, 0, 0, 0, 0 }, /* PD9 */
|
||||
/* PD8 */ { 0, 0, 0, 0, 0, 0 }, /* PD8 */
|
||||
/* PD7 */ { 0, 0, 0, 1, 0, 1 }, /* MII_MDIO */
|
||||
/* PD7 */ { 1, 0, 0, 1, 0, 1 }, /* MII_MDIO */
|
||||
/* PD6 */ { 0, 0, 0, 1, 0, 1 }, /* PD6 */
|
||||
/* PD5 */ { 0, 0, 0, 1, 0, 1 }, /* PD5 */
|
||||
/* PD4 */ { 0, 0, 0, 1, 0, 1 }, /* PD4 */
|
||||
|
@ -224,7 +230,7 @@ static long int try_init (volatile memctl8260_t * memctl, ulong sdmr,
|
|||
* mapped by the controller. That means, that the initial mapping has
|
||||
* to be (at least) twice as large as the maximum expected size.
|
||||
*/
|
||||
maxsize = (1 + (~orx | 0x7fff)) / 2;
|
||||
maxsize = (1 + (~orx | 0x7fff))/* / 2*/;
|
||||
|
||||
sdmr_ptr = &memctl->memc_psdmr;
|
||||
orx_ptr = &memctl->memc_or2;
|
||||
|
@ -315,4 +321,38 @@ nand_init (void)
|
|||
printf ("%4lu MB\n", totlen >>20);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* CFG_CMD_NAND */
|
||||
|
||||
#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT)
|
||||
/*
|
||||
* update "memory" property in the blob
|
||||
*/
|
||||
void ft_blob_update(void *blob, bd_t *bd)
|
||||
{
|
||||
int ret, nodeoffset = 0;
|
||||
ulong memory_data[2] = {0};
|
||||
|
||||
memory_data[0] = cpu_to_be32(bd->bi_memstart);
|
||||
memory_data[1] = cpu_to_be32(bd->bi_memsize);
|
||||
|
||||
nodeoffset = fdt_find_node_by_path (blob, "/memory");
|
||||
if (nodeoffset >= 0) {
|
||||
ret = fdt_setprop(blob, nodeoffset, "reg", memory_data,
|
||||
sizeof(memory_data));
|
||||
if (ret < 0)
|
||||
printf("ft_blob_update): cannot set /memory/reg "
|
||||
"property err:%s\n", fdt_strerror(ret));
|
||||
}
|
||||
else {
|
||||
/* memory node is required in dts */
|
||||
printf("ft_blob_update(): cannot find /memory node "
|
||||
"err:%s\n", fdt_strerror(nodeoffset));
|
||||
}
|
||||
}
|
||||
|
||||
void ft_board_setup(void *blob, bd_t *bd)
|
||||
{
|
||||
ft_cpu_setup( blob, bd);
|
||||
ft_blob_update(blob, bd);
|
||||
}
|
||||
#endif /* defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_OF_LIBFDT) */
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <command.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/inca-ip.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
|
||||
extern uint incaip_get_cpuclk(void);
|
||||
|
||||
|
@ -85,7 +85,6 @@ long int initdram(int board_type)
|
|||
|
||||
int checkboard (void)
|
||||
{
|
||||
|
||||
unsigned long chipid = *INCA_IP_WDT_CHIPID;
|
||||
int part_num;
|
||||
|
||||
|
@ -107,5 +106,7 @@ int checkboard (void)
|
|||
|
||||
printf("CPU Speed %d MHz\n", incaip_get_cpuclk()/1000000);
|
||||
|
||||
set_io_port_base(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -43,21 +43,22 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
_gp = ALIGN(16);
|
||||
|
||||
__got_start = .;
|
||||
.got : { *(.got) }
|
||||
__got_end = .;
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
. = .;
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
|
||||
.got : {
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
.u_boot_cmd : {
|
||||
__u_boot_cmd_start = .;
|
||||
*(.u_boot_cmd)
|
||||
__u_boot_cmd_end = .;
|
||||
}
|
||||
|
||||
uboot_end_data = .;
|
||||
num_got_entries = (__got_end - __got_start) >> 2;
|
||||
|
|
|
@ -96,6 +96,23 @@ int board_early_init_f(void)
|
|||
|
||||
gpio_write_bit(CFG_GPIO_FLASH_WP, 1);
|
||||
|
||||
/*
|
||||
* Reset PHY's:
|
||||
* The PHY's need a 2nd reset pulse, since the MDIO address is latched
|
||||
* upon reset, and with the first reset upon powerup, the addresses are
|
||||
* not latched reliable, since the IRQ line is multiplexed with an
|
||||
* MDIO address. A 2nd reset at this time will make sure, that the
|
||||
* correct address is latched.
|
||||
*/
|
||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 1);
|
||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 1);
|
||||
udelay(1000);
|
||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 0);
|
||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 0);
|
||||
udelay(1000);
|
||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 1);
|
||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -230,15 +247,6 @@ int misc_init_r(void)
|
|||
/* Write lime controller memory parameters */
|
||||
out_be32((void *)CFG_LIME_MMR, CFG_LIME_MMR_VALUE);
|
||||
|
||||
/*
|
||||
* Reset PHY's
|
||||
*/
|
||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 0);
|
||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 0);
|
||||
udelay(100);
|
||||
gpio_write_bit(CFG_GPIO_PHY0_RST, 1);
|
||||
gpio_write_bit(CFG_GPIO_PHY1_RST, 1);
|
||||
|
||||
/*
|
||||
* Init display controller
|
||||
*/
|
||||
|
|
|
@ -89,4 +89,5 @@ long int initdram (int board_type)
|
|||
/* Write to the SDRAM Mode Register */
|
||||
*(u32 *)(CFG_SDRAM_BASE + 0x400) = 0xA5A59696;
|
||||
}
|
||||
return dramsize;
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ SECTIONS
|
|||
lib_generic/crc32.o (.text)
|
||||
lib_generic/zlib.o (.text)
|
||||
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
. = ALIGN(16);
|
||||
*(.rodata)
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "../common/common_util.h"
|
||||
|
||||
#if defined(CONFIG_DRIVER_CS8900)
|
||||
#include <../drivers/cs8900.h>
|
||||
#include <../drivers/net/cs8900.h>
|
||||
|
||||
static uchar cs8900_chksum(ushort data)
|
||||
{
|
||||
|
|
|
@ -290,7 +290,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
|||
* Copy memory to flash
|
||||
*/
|
||||
|
||||
volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||
static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||
{
|
||||
vu_short *addr = (vu_short *) dest;
|
||||
ushort result;
|
||||
|
|
|
@ -128,7 +128,7 @@ typedef struct {
|
|||
} /*__attribute__((__packed__))*/ VCMA9_PLD;
|
||||
|
||||
#define VCMA9_PLD_BASE 0x2C000100
|
||||
static inline VCMA9_PLD * const VCMA9_GetBase_PLD(void)
|
||||
static inline VCMA9_PLD * VCMA9_GetBase_PLD(void)
|
||||
{
|
||||
return (VCMA9_PLD * const)VCMA9_PLD_BASE;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include <common.h>
|
||||
#include <exports.h>
|
||||
#include "../drivers/smc91111.h"
|
||||
#include "../drivers/net/smc91111.h"
|
||||
|
||||
#define SMC_BASE_ADDRESS CONFIG_SMC91111_BASE
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
|||
LIB = $(obj)lib$(BOARD).a
|
||||
|
||||
COBJS = $(BOARD).o flash.o
|
||||
SOBJS = memsetup.o
|
||||
SOBJS = lowlevel_init.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(COBJS))
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
.set noreorder
|
||||
.set mips32
|
||||
|
||||
.globl memsetup
|
||||
memsetup:
|
||||
.globl lowlevel_init
|
||||
lowlevel_init:
|
||||
/*
|
||||
* Step 1) Establish CPU endian mode.
|
||||
* NOTE: A fair amount of code is necessary on the Pb1000 to
|
|
@ -25,6 +25,7 @@
|
|||
#include <command.h>
|
||||
#include <asm/au1x00.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
long int initdram(int board_type)
|
||||
{
|
||||
|
@ -41,7 +42,9 @@ void write_one_tlb( int index, u32 pagemask, u32 hi, u32 low0, u32 low1 );
|
|||
|
||||
int checkboard (void)
|
||||
{
|
||||
#if defined(CONFIG_IDE_PCMCIA) && 0
|
||||
u16 status;
|
||||
#endif
|
||||
/* volatile u32 *pcmcia_bcsr = (u32*)(DB1000_BCSR_ADDR+0x10); */
|
||||
volatile u32 *sys_counter = (volatile u32*)SYS_COUNTER_CNTRL;
|
||||
u32 proc_id;
|
||||
|
@ -69,6 +72,9 @@ int checkboard (void)
|
|||
default:
|
||||
printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
|
||||
}
|
||||
|
||||
set_io_port_base(0);
|
||||
|
||||
#if defined(CONFIG_IDE_PCMCIA) && 0
|
||||
/* Enable 3.3 V on slot 0 ( VCC )
|
||||
No 5V */
|
||||
|
|
|
@ -43,20 +43,22 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.sdata : { *(.sdata) }
|
||||
. = .;
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
|
||||
_gp = ALIGN(16);
|
||||
|
||||
__got_start = .;
|
||||
.got : { *(.got) }
|
||||
__got_end = .;
|
||||
.got : {
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
.u_boot_cmd : {
|
||||
__u_boot_cmd_start = .;
|
||||
*(.u_boot_cmd)
|
||||
__u_boot_cmd_end = .;
|
||||
}
|
||||
|
||||
uboot_end_data = .;
|
||||
num_got_entries = (__got_end - __got_start) >> 2;
|
||||
|
|
|
@ -196,7 +196,7 @@ void flash_print_info (flash_info_t * info)
|
|||
int i;
|
||||
uchar *boottype;
|
||||
uchar *bootletter;
|
||||
uchar *fmt;
|
||||
char *fmt;
|
||||
uchar botbootletter[] = "B";
|
||||
uchar topbootletter[] = "T";
|
||||
uchar botboottype[] = "bottom boot sector";
|
||||
|
|
|
@ -299,7 +299,7 @@ void flash_print_info (flash_info_t *info)
|
|||
int i;
|
||||
uchar *boottype;
|
||||
uchar *bootletter;
|
||||
uchar *fmt;
|
||||
char *fmt;
|
||||
uchar botbootletter[] = "B";
|
||||
uchar topbootletter[] = "T";
|
||||
uchar botboottype[] = "bottom boot sector";
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <asm/inca-ip.h>
|
||||
#include <asm/regdef.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/cacheops.h>
|
||||
|
||||
|
@ -145,6 +146,8 @@ int checkboard (void)
|
|||
|
||||
printf("CPU Speed %d MHz\n", CPU_CLOCK_RATE/1000000);
|
||||
|
||||
set_io_port_base(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -53,21 +53,22 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
_gp = ALIGN(16);
|
||||
|
||||
__got_start = .;
|
||||
.got : { *(.got) }
|
||||
__got_end = .;
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
. = .;
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
|
||||
.got : {
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
.u_boot_cmd : {
|
||||
__u_boot_cmd_start = .;
|
||||
*(.u_boot_cmd)
|
||||
__u_boot_cmd_end = .;
|
||||
}
|
||||
|
||||
uboot_end_data = .;
|
||||
num_got_entries = (__got_end - __got_start) >> 2;
|
||||
|
|
|
@ -210,7 +210,7 @@ void read_RS5C372_time (struct tm *timedate)
|
|||
|
||||
#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
|
||||
|
||||
if (i2c_read (RS5C372_PPC_I2C_ADR, 0, 1, buffer, sizeof (buffer))) {
|
||||
if (! i2c_read (RS5C372_PPC_I2C_ADR, 0, 1, buffer, sizeof (buffer))) {
|
||||
timedate->tm_sec = BCD_TO_BIN (buffer[0]);
|
||||
timedate->tm_min = BCD_TO_BIN (buffer[1]);
|
||||
timedate->tm_hour = BCD_TO_BIN (buffer[2]);
|
||||
|
@ -231,7 +231,7 @@ int read_LM84_temp (int address)
|
|||
unsigned char buffer[8];
|
||||
/*int rc;*/
|
||||
|
||||
if (i2c_read (address, 0, 1, buffer, 1)) {
|
||||
if (! i2c_read (address, 0, 1, buffer, 1)) {
|
||||
return (int) buffer[0];
|
||||
} else {
|
||||
/*printf("i2c error %02x\n", rc); */
|
||||
|
|
|
@ -55,6 +55,7 @@ SECTIONS
|
|||
{
|
||||
cpu/mpc8260/start.o (.text)
|
||||
*(.text)
|
||||
*(.fixup)
|
||||
*(.got1)
|
||||
/*. = env_offset; */
|
||||
}
|
||||
|
|
|
@ -288,7 +288,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
|||
* Copy memory to flash
|
||||
*/
|
||||
|
||||
volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||
static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||
{
|
||||
vu_short *addr = (vu_short *) dest;
|
||||
ushort result;
|
||||
|
|
|
@ -290,7 +290,7 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
|
|||
* Copy memory to flash
|
||||
*/
|
||||
|
||||
volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||
static int write_hword (flash_info_t * info, ulong dest, ushort data)
|
||||
{
|
||||
vu_short *addr = (vu_short *) dest;
|
||||
ushort result;
|
||||
|
|
|
@ -13,10 +13,9 @@
|
|||
#include <command.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/inca-ip.h>
|
||||
#include <asm/io.h>
|
||||
#include <pci.h>
|
||||
|
||||
unsigned long mips_io_port_base = 0;
|
||||
|
||||
#if defined(CONFIG_PCI)
|
||||
static struct pci_controller hose;
|
||||
|
||||
|
@ -26,17 +25,17 @@ void pci_init_board (void)
|
|||
}
|
||||
#endif
|
||||
|
||||
|
||||
long int initdram(int board_type)
|
||||
{
|
||||
return get_ram_size (CFG_SDRAM_BASE, 0x8000000);
|
||||
}
|
||||
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
printf("Board: TANBAC TB0229 ");
|
||||
printf("(CPU Speed %d MHz)\n", (int)CPU_CLOCK_RATE/1000000);
|
||||
|
||||
set_io_port_base(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -43,21 +43,22 @@ SECTIONS
|
|||
. = ALIGN(4);
|
||||
.data : { *(.data) }
|
||||
|
||||
. = ALIGN(4);
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
_gp = ALIGN(16);
|
||||
|
||||
__got_start = .;
|
||||
.got : { *(.got) }
|
||||
__got_end = .;
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
. = .;
|
||||
__u_boot_cmd_start = .;
|
||||
.u_boot_cmd : { *(.u_boot_cmd) }
|
||||
__u_boot_cmd_end = .;
|
||||
_gp = ALIGN(16) + 0x7ff0;
|
||||
|
||||
.got : {
|
||||
__got_start = .;
|
||||
*(.got)
|
||||
__got_end = .;
|
||||
}
|
||||
|
||||
.sdata : { *(.sdata) }
|
||||
|
||||
.u_boot_cmd : {
|
||||
__u_boot_cmd_start = .;
|
||||
*(.u_boot_cmd)
|
||||
__u_boot_cmd_end = .;
|
||||
}
|
||||
|
||||
uboot_end_data = .;
|
||||
num_got_entries = (__got_end - __got_start) >> 2;
|
||||
|
|
|
@ -441,15 +441,23 @@ ulong post_word_load (void)
|
|||
}
|
||||
#endif /* CONFIG_POST || CONFIG_LOGBUFFER*/
|
||||
|
||||
#ifdef CONFIG_PS2MULT
|
||||
#ifdef CONFIG_BOARD_EARLY_INIT_R
|
||||
int board_early_init_r (void)
|
||||
{
|
||||
extern int usb_cpu_init(void);
|
||||
|
||||
#ifdef CONFIG_PS2MULT
|
||||
ps2mult_early_init();
|
||||
#endif /* CONFIG_PS2MULT */
|
||||
|
||||
#if defined(CONFIG_USB_OHCI_NEW) && defined(CFG_USB_OHCI_CPU_INIT)
|
||||
/* Low level USB init, required for proper kernel operation */
|
||||
usb_cpu_init();
|
||||
#endif
|
||||
|
||||
return (0);
|
||||
}
|
||||
#endif
|
||||
#endif /* CONFIG_PS2MULT */
|
||||
|
||||
#ifdef CONFIG_FO300
|
||||
int silent_boot (void)
|
||||
|
@ -585,9 +593,9 @@ int last_stage_init (void)
|
|||
disable_ctrlc(1);
|
||||
}
|
||||
#endif
|
||||
#endif /* !CONFIG_TQM5200S */
|
||||
|
||||
return 0;
|
||||
#endif /* !CONFIG_TQM5200S */
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VIDEO_SM501
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include <common.h>
|
||||
#include <exports.h>
|
||||
#include "../drivers/smc91111.h"
|
||||
#include "../drivers/net/smc91111.h"
|
||||
|
||||
#define SMC_BASE_ADDRESS CONFIG_SMC91111_BASE
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
|
||||
#if ( WEP_FLASH_BUS_WIDTH == 1 )
|
||||
# define FLASH_BUS vu_char
|
||||
# define FLASH_BUS_RET u_char
|
||||
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
||||
# define FLASH_CMD( x ) x
|
||||
# else
|
||||
|
@ -53,6 +54,7 @@
|
|||
|
||||
#elif ( WEP_FLASH_BUS_WIDTH == 2 )
|
||||
# define FLASH_BUS vu_short
|
||||
# define FLASH_BUS_RET u_short
|
||||
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
||||
# define FLASH_CMD( x ) x
|
||||
# elif ( WEP_FLASH_INTERLEAVE == 2 )
|
||||
|
@ -64,6 +66,7 @@
|
|||
|
||||
#elif ( WEP_FLASH_BUS_WIDTH == 4 )
|
||||
# define FLASH_BUS vu_long
|
||||
# define FLASH_BUS_RET u_long
|
||||
# if ( WEP_FLASH_INTERLEAVE == 1 )
|
||||
# define FLASH_CMD( x ) x
|
||||
# elif ( WEP_FLASH_INTERLEAVE == 2 )
|
||||
|
@ -81,7 +84,7 @@
|
|||
|
||||
flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
|
||||
|
||||
static FLASH_BUS flash_status_reg (void)
|
||||
static FLASH_BUS_RET flash_status_reg (void)
|
||||
{
|
||||
|
||||
FLASH_BUS *addr = (FLASH_BUS *) 0;
|
||||
|
|
131
common/Makefile
131
common/Makefile
|
@ -27,32 +27,113 @@ LIB = $(obj)libcommon.a
|
|||
|
||||
AOBJS =
|
||||
|
||||
COBJS = main.o ACEX1K.o altera.o bedbug.o circbuf.o cmd_autoscript.o \
|
||||
cmd_bdinfo.o cmd_bedbug.o cmd_bmp.o cmd_boot.o cmd_bootm.o \
|
||||
cmd_cache.o cmd_console.o \
|
||||
cmd_date.o cmd_dcr.o cmd_diag.o cmd_display.o cmd_doc.o cmd_dtt.o \
|
||||
cmd_eeprom.o cmd_elf.o cmd_ext2.o \
|
||||
cmd_fat.o cmd_fdc.o cmd_fdt.o cmd_fdos.o cmd_flash.o cmd_fpga.o \
|
||||
cmd_i2c.o cmd_ide.o cmd_immap.o cmd_itest.o cmd_jffs2.o \
|
||||
cmd_load.o cmd_log.o \
|
||||
cmd_mem.o cmd_mii.o cmd_misc.o cmd_mmc.o \
|
||||
cmd_nand.o cmd_net.o cmd_nvedit.o \
|
||||
cmd_onenand.o \
|
||||
cmd_pci.o cmd_pcmcia.o cmd_portio.o \
|
||||
cmd_reginfo.o cmd_reiser.o cmd_sata.o cmd_scsi.o cmd_spi.o \
|
||||
cmd_universe.o cmd_usb.o cmd_vfd.o \
|
||||
command.o console.o cyclon2.o devices.o dlmalloc.o docecc.o \
|
||||
environment.o env_common.o \
|
||||
env_nand.o env_dataflash.o env_flash.o env_eeprom.o \
|
||||
env_onenand.o env_nvram.o env_nowhere.o \
|
||||
exports.o \
|
||||
fdt_support.o flash.o fpga.o ft_build.o \
|
||||
hush.o kgdb.o lcd.o lists.o lynxkdi.o \
|
||||
memsize.o miiphybb.o miiphyutil.o \
|
||||
s_record.o serial.o soft_i2c.o soft_spi.o spartan2.o spartan3.o \
|
||||
usb.o usb_kbd.o usb_storage.o \
|
||||
virtex2.o xilinx.o crc16.o xyzModem.o cmd_mac.o cmd_mfsl.o
|
||||
COBJS-y += main.o
|
||||
COBJS-y += ACEX1K.o
|
||||
COBJS-y += altera.o
|
||||
COBJS-y += bedbug.o
|
||||
COBJS-y += circbuf.o
|
||||
COBJS-y += cmd_autoscript.o
|
||||
COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o
|
||||
COBJS-$(CONFIG_CMD_BEDBUG) += cmd_bedbug.o
|
||||
COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o
|
||||
COBJS-y += cmd_boot.o
|
||||
COBJS-y += cmd_bootm.o
|
||||
COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o
|
||||
COBJS-$(CONFIG_CMD_CONSOLE) += cmd_console.o
|
||||
COBJS-$(CONFIG_CMD_DATE) += cmd_date.o
|
||||
ifdef CONFIG_4xx
|
||||
COBJS-$(CONFIG_CMD_SETGETDCR) += cmd_dcr.o
|
||||
endif
|
||||
ifdef CONFIG_POST
|
||||
COBJS-$(CONFIG_CMD_DIAG) += cmd_diag.o
|
||||
endif
|
||||
COBJS-$(CONFIG_CMD_DISPLAY) += cmd_display.o
|
||||
COBJS-$(CONFIG_CMD_DOC) += cmd_doc.o
|
||||
COBJS-$(CONFIG_CMD_DTT) += cmd_dtt.o
|
||||
COBJS-y += cmd_eeprom.o
|
||||
COBJS-$(CONFIG_CMD_ELF) += cmd_elf.o
|
||||
COBJS-$(CONFIG_CMD_EXT2) += cmd_ext2.o
|
||||
COBJS-$(CONFIG_CMD_FAT) += cmd_fat.o
|
||||
COBJS-y += cmd_fdc.o
|
||||
COBJS-$(CONFIG_OF_LIBFDT) += cmd_fdt.o
|
||||
COBJS-$(CONFIG_CMD_FDOS) += cmd_fdos.o
|
||||
COBJS-$(CONFIG_CMD_FLASH) += cmd_flash.o
|
||||
ifdef CONFIG_FPGA
|
||||
COBJS-$(CONFIG_CMD_FPGA) += cmd_fpga.o
|
||||
endif
|
||||
COBJS-$(CONFIG_CMD_I2C) += cmd_i2c.o
|
||||
COBJS-$(CONFIG_CMD_IDE) += cmd_ide.o
|
||||
COBJS-$(CONFIG_CMD_IMMAP) += cmd_immap.o
|
||||
COBJS-$(CONFIG_CMD_ITEST) += cmd_itest.o
|
||||
COBJS-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o
|
||||
COBJS-y += cmd_load.o
|
||||
COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o
|
||||
COBJS-y += cmd_mem.o
|
||||
COBJS-$(CONFIG_CMD_MII) += cmd_mii.o
|
||||
COBJS-$(CONFIG_CMD_MISC) += cmd_misc.o
|
||||
COBJS-$(CONFIG_CMD_MMC) += cmd_mmc.o
|
||||
COBJS-y += cmd_nand.o
|
||||
COBJS-$(CONFIG_CMD_NET) += cmd_net.o
|
||||
COBJS-y += cmd_nvedit.o
|
||||
COBJS-y += cmd_onenand.o
|
||||
ifdef CONFIG_PCI
|
||||
COBJS-$(CONFIG_CMD_PCI) += cmd_pci.o
|
||||
endif
|
||||
COBJS-y += cmd_pcmcia.o
|
||||
COBJS-$(CONFIG_CMD_PORTIO) += cmd_portio.o
|
||||
COBJS-$(CONFIG_CMD_REGINFO) += cmd_reginfo.o
|
||||
COBJS-$(CONFIG_CMD_REISER) += cmd_reiser.o
|
||||
COBJS-y += cmd_sata.o
|
||||
COBJS-$(CONFIG_CMD_SCSI) += cmd_scsi.o
|
||||
COBJS-$(CONFIG_CMD_SPI) += cmd_spi.o
|
||||
COBJS-$(CONFIG_CMD_UNIVERSE) += cmd_universe.o
|
||||
COBJS-$(CONFIG_CMD_USB) += cmd_usb.o
|
||||
COBJS-y += cmd_vfd.o
|
||||
COBJS-y += command.o
|
||||
COBJS-y += console.o
|
||||
COBJS-y += cyclon2.o
|
||||
COBJS-y += devices.o
|
||||
COBJS-y += dlmalloc.o
|
||||
COBJS-y += docecc.o
|
||||
COBJS-y += environment.o
|
||||
COBJS-y += env_common.o
|
||||
COBJS-y += env_nand.o
|
||||
COBJS-y += env_dataflash.o
|
||||
COBJS-y += env_flash.o
|
||||
COBJS-y += env_eeprom.o
|
||||
COBJS-y += env_onenand.o
|
||||
COBJS-y += env_nvram.o
|
||||
COBJS-y += env_nowhere.o
|
||||
COBJS-y += exports.o
|
||||
COBJS-y += fdt_support.o
|
||||
COBJS-y += flash.o
|
||||
COBJS-y += fpga.o
|
||||
COBJS-y += ft_build.o
|
||||
COBJS-y += hush.o
|
||||
COBJS-y += kgdb.o
|
||||
COBJS-y += lcd.o
|
||||
COBJS-y += lists.o
|
||||
COBJS-y += lynxkdi.o
|
||||
COBJS-y += memsize.o
|
||||
COBJS-y += miiphybb.o
|
||||
COBJS-y += miiphyutil.o
|
||||
COBJS-y += s_record.o
|
||||
COBJS-y += serial.o
|
||||
COBJS-y += soft_i2c.o
|
||||
COBJS-y += soft_spi.o
|
||||
COBJS-y += spartan2.o
|
||||
COBJS-y += spartan3.o
|
||||
COBJS-y += usb.o
|
||||
COBJS-y += usb_kbd.o
|
||||
COBJS-y += usb_storage.o
|
||||
COBJS-y += virtex2.o
|
||||
COBJS-y += xilinx.o
|
||||
COBJS-y += crc16.o
|
||||
COBJS-y += xyzModem.o
|
||||
COBJS-y += cmd_mac.o
|
||||
COBJS-$(CONFIG_CMD_MFSL) += cmd_mfsl.o
|
||||
|
||||
COBJS := $(COBJS-y)
|
||||
SRCS := $(AOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(AOBJS) $(COBJS))
|
||||
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#if defined(CONFIG_CMD_BDI)
|
||||
static void print_num(const char *, ulong);
|
||||
|
||||
#ifndef CONFIG_ARM /* PowerPC and other */
|
||||
|
@ -350,4 +349,3 @@ U_BOOT_CMD(
|
|||
"bdinfo - print Board Info structure\n",
|
||||
NULL
|
||||
);
|
||||
#endif
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#if defined(CONFIG_CMD_BEDBUG)
|
||||
|
||||
#ifndef MAX
|
||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#endif
|
||||
|
@ -413,7 +411,6 @@ int do_bedbug_rdump (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
U_BOOT_CMD (rdump, 1, 1, do_bedbug_rdump,
|
||||
"rdump - Show registers.\n", " - Show registers.\n");
|
||||
/* ====================================================================== */
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
#include <asm/byteorder.h>
|
||||
#include <malloc.h>
|
||||
|
||||
#if defined(CONFIG_CMD_BMP)
|
||||
|
||||
static int bmp_info (ulong addr);
|
||||
static int bmp_display (ulong addr, int x, int y);
|
||||
|
||||
|
@ -187,5 +185,3 @@ static int bmp_display(ulong addr, int x, int y)
|
|||
# error bmp_display() requires CONFIG_LCD or CONFIG_VIDEO
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* defined(CONFIG_CMD_BMP) */
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <command.h>
|
||||
#include <devices.h>
|
||||
|
||||
#if defined(CONFIG_CMD_CONSOLE)
|
||||
|
||||
extern void _do_coninfo (void);
|
||||
int do_coninfo (cmd_tbl_t * cmd, int flag, int argc, char *argv[])
|
||||
{
|
||||
|
@ -67,5 +65,3 @@ U_BOOT_CMD(
|
|||
"coninfo - print console devices and information\n",
|
||||
""
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#if defined(CONFIG_CMD_DATE)
|
||||
|
||||
const char *weekdays[] = {
|
||||
"Sun", "Mon", "Tues", "Wednes", "Thurs", "Fri", "Satur",
|
||||
};
|
||||
|
@ -210,5 +208,3 @@ U_BOOT_CMD(
|
|||
" - with numeric argument: set the system date & time\n"
|
||||
" - with 'reset' argument: reset the RTC\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include <config.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_4xx) && defined(CONFIG_CMD_SETGETDCR)
|
||||
|
||||
unsigned long get_dcr (unsigned short);
|
||||
unsigned long set_dcr (unsigned short, unsigned long);
|
||||
|
||||
|
@ -245,5 +243,3 @@ U_BOOT_CMD(
|
|||
"setidcr - Set a register value via indirect DCR addressing\n",
|
||||
"adr_dcrn[.dat_dcrn] offset value - write offset to adr_dcrn, write value to dat_dcrn.\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <command.h>
|
||||
#include <post.h>
|
||||
|
||||
#if defined(CONFIG_CMD_DIAG) && defined(CONFIG_POST)
|
||||
|
||||
int do_diag (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
unsigned int i;
|
||||
|
@ -76,5 +74,3 @@ U_BOOT_CMD(
|
|||
"diag run [test1 [test2]]\n"
|
||||
" - run specified tests\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -24,8 +24,6 @@
|
|||
#include <common.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_DISPLAY)
|
||||
|
||||
#undef DEBUG_DISP
|
||||
|
||||
#define DISP_SIZE 8
|
||||
|
@ -78,5 +76,3 @@ U_BOOT_CMD(
|
|||
" - with <string> argument: display <string> on dot matrix display\n"
|
||||
" - without arguments: clear dot matrix display\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -11,9 +11,6 @@
|
|||
#include <command.h>
|
||||
#include <malloc.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#if defined(CONFIG_CMD_DOC)
|
||||
|
||||
#include <linux/mtd/nftl.h>
|
||||
#include <linux/mtd/doc2000.h>
|
||||
|
||||
|
@ -1607,5 +1604,3 @@ void doc_probe(unsigned long physadr)
|
|||
puts ("No DiskOnChip found\n");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -25,8 +25,6 @@
|
|||
#include <config.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_DTT)
|
||||
|
||||
#include <dtt.h>
|
||||
#include <i2c.h>
|
||||
|
||||
|
@ -60,5 +58,3 @@ U_BOOT_CMD(
|
|||
"dtt - Digital Thermometer and Thermostat\n",
|
||||
" - Read temperature from digital thermometer and thermostat.\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,8 +23,6 @@
|
|||
DECLARE_GLOBAL_DATA_PTR;
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_ELF)
|
||||
|
||||
#ifndef MAX
|
||||
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
||||
#endif
|
||||
|
@ -323,5 +321,3 @@ U_BOOT_CMD(
|
|||
"bootvx - Boot vxWorks from an ELF image\n",
|
||||
" [address] - load address of vxWorks ELF image.\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -34,8 +34,6 @@
|
|||
*/
|
||||
#include <common.h>
|
||||
#include <part.h>
|
||||
|
||||
#if defined(CONFIG_CMD_EXT2)
|
||||
#include <config.h>
|
||||
#include <command.h>
|
||||
#include <image.h>
|
||||
|
@ -259,5 +257,3 @@ U_BOOT_CMD(
|
|||
" - load binary file 'filename' from 'dev' on 'interface'\n"
|
||||
" to address 'addr' from ext2 filesystem\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,11 +30,6 @@
|
|||
#include <net.h>
|
||||
#include <ata.h>
|
||||
#include <part.h>
|
||||
|
||||
#if defined(CONFIG_CMD_FAT)
|
||||
|
||||
#undef DEBUG
|
||||
|
||||
#include <fat.h>
|
||||
|
||||
|
||||
|
@ -323,5 +318,3 @@ void hexdump (int cnt, unsigned char *data)
|
|||
}
|
||||
}
|
||||
#endif /* NOT_IMPLEMENTED_YET */
|
||||
|
||||
#endif
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
#include <command.h>
|
||||
#include <fdc.h>
|
||||
|
||||
#if defined(CONFIG_CMD_FDOS)
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
* do_fdosboot --
|
||||
*-----------------------------------------------------------------------------
|
||||
|
@ -153,5 +151,3 @@ U_BOOT_CMD(
|
|||
"fdosls - list files in a directory\n",
|
||||
"[directory]\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,9 +28,6 @@
|
|||
#include <command.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
#ifdef CONFIG_OF_LIBFDT
|
||||
|
||||
#include <asm/global_data.h>
|
||||
#include <fdt.h>
|
||||
#include <libfdt.h>
|
||||
|
@ -47,7 +44,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||
static int fdt_valid(void);
|
||||
static int fdt_parse_prop(char *pathp, char *prop, char *newval,
|
||||
char *data, int *len);
|
||||
static int fdt_print(char *pathp, char *prop, int depth);
|
||||
static int fdt_print(const char *pathp, char *prop, int depth);
|
||||
|
||||
/*
|
||||
* Flattened Device Tree command, see the help for parameter definitions.
|
||||
|
@ -78,7 +75,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
/*
|
||||
* Optional new length
|
||||
*/
|
||||
len = simple_strtoul(argv[3], NULL, 16);
|
||||
len = simple_strtoul(argv[3], NULL, 16);
|
||||
if (len < fdt_totalsize(fdt)) {
|
||||
printf ("New length %d < existing length %d, "
|
||||
"ignoring.\n",
|
||||
|
@ -165,12 +162,12 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
pathp = argv[2];
|
||||
nodep = argv[3];
|
||||
|
||||
nodeoffset = fdt_find_node_by_path (fdt, pathp);
|
||||
nodeoffset = fdt_path_offset (fdt, pathp);
|
||||
if (nodeoffset < 0) {
|
||||
/*
|
||||
* Not found or something else bad happened.
|
||||
*/
|
||||
printf ("libfdt fdt_find_node_by_path() returned %s\n",
|
||||
printf ("libfdt fdt_path_offset() returned %s\n",
|
||||
fdt_strerror(nodeoffset));
|
||||
return 1;
|
||||
}
|
||||
|
@ -205,12 +202,12 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
prop = argv[3];
|
||||
newval = argv[4];
|
||||
|
||||
nodeoffset = fdt_find_node_by_path (fdt, pathp);
|
||||
nodeoffset = fdt_path_offset (fdt, pathp);
|
||||
if (nodeoffset < 0) {
|
||||
/*
|
||||
* Not found or something else bad happened.
|
||||
*/
|
||||
printf ("libfdt fdt_find_node_by_path() returned %s\n",
|
||||
printf ("libfdt fdt_path_offset() returned %s\n",
|
||||
fdt_strerror(nodeoffset));
|
||||
return 1;
|
||||
}
|
||||
|
@ -232,6 +229,7 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
char *pathp; /* path */
|
||||
char *prop; /* property */
|
||||
int ret; /* return value */
|
||||
static char root[2] = "/";
|
||||
|
||||
/*
|
||||
* list is an alias for print, but limited to 1 level
|
||||
|
@ -244,7 +242,10 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
* Get the starting path. The root node is an oddball,
|
||||
* the offset is zero and has no name.
|
||||
*/
|
||||
pathp = argv[2];
|
||||
if (argc == 2)
|
||||
pathp = root;
|
||||
else
|
||||
pathp = argv[2];
|
||||
if (argc > 3)
|
||||
prop = argv[3];
|
||||
else
|
||||
|
@ -265,12 +266,12 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
* Get the path. The root node is an oddball, the offset
|
||||
* is zero and has no name.
|
||||
*/
|
||||
nodeoffset = fdt_find_node_by_path (fdt, argv[2]);
|
||||
nodeoffset = fdt_path_offset (fdt, argv[2]);
|
||||
if (nodeoffset < 0) {
|
||||
/*
|
||||
* Not found or something else bad happened.
|
||||
*/
|
||||
printf ("libfdt fdt_find_node_by_path() returned %s\n",
|
||||
printf ("libfdt fdt_path_offset() returned %s\n",
|
||||
fdt_strerror(nodeoffset));
|
||||
return 1;
|
||||
}
|
||||
|
@ -521,21 +522,21 @@ static void print_data(const void *data, int len)
|
|||
|
||||
switch (len) {
|
||||
case 1: /* byte */
|
||||
printf("<%02x>", (*(u8 *) data) & 0xff);
|
||||
printf("<0x%02x>", (*(u8 *) data) & 0xff);
|
||||
break;
|
||||
case 2: /* half-word */
|
||||
printf("<%04x>", be16_to_cpu(*(u16 *) data) & 0xffff);
|
||||
printf("<0x%04x>", be16_to_cpu(*(u16 *) data) & 0xffff);
|
||||
break;
|
||||
case 4: /* word */
|
||||
printf("<%08x>", be32_to_cpu(*(u32 *) data) & 0xffffffffU);
|
||||
printf("<0x%08x>", be32_to_cpu(*(u32 *) data) & 0xffffffffU);
|
||||
break;
|
||||
case 8: /* double-word */
|
||||
#if __WORDSIZE == 64
|
||||
printf("<%016llx>", be64_to_cpu(*(uint64_t *) data));
|
||||
printf("<0x%016llx>", be64_to_cpu(*(uint64_t *) data));
|
||||
#else
|
||||
printf("<%08x ", be32_to_cpu(*(u32 *) data) & 0xffffffffU);
|
||||
printf("<0x%08x ", be32_to_cpu(*(u32 *) data) & 0xffffffffU);
|
||||
data += 4;
|
||||
printf("%08x>", be32_to_cpu(*(u32 *) data) & 0xffffffffU);
|
||||
printf("0x%08x>", be32_to_cpu(*(u32 *) data) & 0xffffffffU);
|
||||
#endif
|
||||
break;
|
||||
default: /* anything else... hexdump */
|
||||
|
@ -554,25 +555,25 @@ static void print_data(const void *data, int len)
|
|||
* Recursively print (a portion of) the fdt. The depth parameter
|
||||
* determines how deeply nested the fdt is printed.
|
||||
*/
|
||||
static int fdt_print(char *pathp, char *prop, int depth)
|
||||
static int fdt_print(const char *pathp, char *prop, int depth)
|
||||
{
|
||||
static int offstack[MAX_LEVEL];
|
||||
static char tabs[MAX_LEVEL+1] =
|
||||
"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t"
|
||||
"\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
|
||||
void *nodep; /* property node pointer */
|
||||
const void *nodep; /* property node pointer */
|
||||
int nodeoffset; /* node offset from libfdt */
|
||||
int nextoffset; /* next node offset from libfdt */
|
||||
uint32_t tag; /* tag */
|
||||
int len; /* length of the property */
|
||||
int level = 0; /* keep track of nesting level */
|
||||
const struct fdt_property *fdt_prop;
|
||||
|
||||
nodeoffset = fdt_find_node_by_path (fdt, pathp);
|
||||
nodeoffset = fdt_path_offset (fdt, pathp);
|
||||
if (nodeoffset < 0) {
|
||||
/*
|
||||
* Not found or something else bad happened.
|
||||
*/
|
||||
printf ("libfdt fdt_find_node_by_path() returned %s\n",
|
||||
printf ("libfdt fdt_path_offset() returned %s\n",
|
||||
fdt_strerror(nodeoffset));
|
||||
return 1;
|
||||
}
|
||||
|
@ -602,45 +603,52 @@ static int fdt_print(char *pathp, char *prop, int depth)
|
|||
* The user passed in a node path and no property,
|
||||
* print the node and all subnodes.
|
||||
*/
|
||||
offstack[0] = nodeoffset;
|
||||
|
||||
while(level >= 0) {
|
||||
tag = fdt_next_tag(fdt, nodeoffset, &nextoffset, &pathp);
|
||||
tag = fdt_next_tag(fdt, nodeoffset, &nextoffset);
|
||||
switch(tag) {
|
||||
case FDT_BEGIN_NODE:
|
||||
if(level <= depth)
|
||||
pathp = fdt_get_name(fdt, nodeoffset, NULL);
|
||||
if (level <= depth) {
|
||||
if (pathp == NULL)
|
||||
pathp = "/* NULL pointer error */";
|
||||
if (*pathp == '\0')
|
||||
pathp = "/"; /* root is nameless */
|
||||
printf("%s%s {\n",
|
||||
&tabs[MAX_LEVEL - level], pathp);
|
||||
}
|
||||
level++;
|
||||
offstack[level] = nodeoffset;
|
||||
if (level >= MAX_LEVEL) {
|
||||
printf("Aaaiii <splat> nested too deep. "
|
||||
"Aborting.\n");
|
||||
printf("Nested too deep, aborting.\n");
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
case FDT_END_NODE:
|
||||
level--;
|
||||
if(level <= depth)
|
||||
if (level <= depth)
|
||||
printf("%s};\n", &tabs[MAX_LEVEL - level]);
|
||||
if (level == 0) {
|
||||
level = -1; /* exit the loop */
|
||||
}
|
||||
break;
|
||||
case FDT_PROP:
|
||||
nodep = fdt_getprop (fdt, offstack[level], pathp, &len);
|
||||
fdt_prop = fdt_offset_ptr(fdt, nodeoffset,
|
||||
sizeof(*fdt_prop));
|
||||
pathp = fdt_string(fdt,
|
||||
fdt32_to_cpu(fdt_prop->nameoff));
|
||||
len = fdt32_to_cpu(fdt_prop->len);
|
||||
nodep = fdt_prop->data;
|
||||
if (len < 0) {
|
||||
printf ("libfdt fdt_getprop(): %s\n",
|
||||
fdt_strerror(len));
|
||||
return 1;
|
||||
} else if (len == 0) {
|
||||
/* the property has no value */
|
||||
if(level <= depth)
|
||||
if (level <= depth)
|
||||
printf("%s%s;\n",
|
||||
&tabs[MAX_LEVEL - level],
|
||||
pathp);
|
||||
} else {
|
||||
if(level <= depth) {
|
||||
if (level <= depth) {
|
||||
printf("%s%s=",
|
||||
&tabs[MAX_LEVEL - level],
|
||||
pathp);
|
||||
|
@ -650,11 +658,12 @@ static int fdt_print(char *pathp, char *prop, int depth)
|
|||
}
|
||||
break;
|
||||
case FDT_NOP:
|
||||
printf("/* NOP */\n", &tabs[MAX_LEVEL - level]);
|
||||
break;
|
||||
case FDT_END:
|
||||
return 1;
|
||||
default:
|
||||
if(level <= depth)
|
||||
if (level <= depth)
|
||||
printf("Unknown tag 0x%08X\n", tag);
|
||||
return 1;
|
||||
}
|
||||
|
@ -692,5 +701,3 @@ U_BOOT_CMD(
|
|||
" fdt print /cpus \"#address-cells\"\n"
|
||||
" fdt set /cpus \"#address-cells\" \"[00 00 00 01]\"\n"
|
||||
);
|
||||
|
||||
#endif /* CONFIG_OF_LIBFDT */
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
#include <dataflash.h>
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_FLASH)
|
||||
|
||||
#if defined(CONFIG_CMD_JFFS2) && defined(CONFIG_JFFS2_CMDLINE)
|
||||
#include <jffs2/jffs2.h>
|
||||
|
||||
|
@ -731,5 +729,3 @@ U_BOOT_CMD(
|
|||
#undef TMP_ERASE
|
||||
#undef TMP_PROT_ON
|
||||
#undef TMP_PROT_OFF
|
||||
|
||||
#endif
|
||||
|
|
|
@ -43,8 +43,6 @@
|
|||
#define PRINTF(fmt,args...)
|
||||
#endif
|
||||
|
||||
#if defined (CONFIG_FPGA) && defined(CONFIG_CMD_FPGA)
|
||||
|
||||
/* Local functions */
|
||||
static void fpga_usage (cmd_tbl_t * cmdtp);
|
||||
static int fpga_get_op (char *opstr);
|
||||
|
@ -321,4 +319,3 @@ U_BOOT_CMD (fpga, 6, 1, do_fpga,
|
|||
"\tloadb\tLoad device from bitstream buffer (Xilinx devices only)\n"
|
||||
"\tloadmk\tLoad device generated with mkimage\n"
|
||||
"\tdump\tLoad device to memory buffer\n");
|
||||
#endif
|
||||
|
|
|
@ -86,9 +86,6 @@
|
|||
#include <i2c.h>
|
||||
#include <asm/byteorder.h>
|
||||
|
||||
#if defined(CONFIG_CMD_I2C)
|
||||
|
||||
|
||||
/* Display values from last command.
|
||||
* Memory modify remembered values are different from display memory.
|
||||
*/
|
||||
|
@ -1024,5 +1021,3 @@ U_BOOT_CMD(
|
|||
" (valid chip values 50..57)\n"
|
||||
);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -54,10 +54,6 @@
|
|||
|
||||
#ifndef __PPC__
|
||||
#include <asm/io.h>
|
||||
#ifdef __MIPS__
|
||||
/* Macros depend on this variable */
|
||||
unsigned long mips_io_port_base = 0;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IDE_8xx_DIRECT
|
||||
|
@ -72,8 +68,6 @@ DECLARE_GLOBAL_DATA_PTR;
|
|||
# define SYNC /* nothing */
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_IDE)
|
||||
|
||||
#ifdef CONFIG_IDE_8xx_DIRECT
|
||||
/* Timings for IDE Interface
|
||||
*
|
||||
|
@ -1136,9 +1130,9 @@ static void ide_ident (block_dev_desc_t *dev_desc)
|
|||
|
||||
input_swap_data (device, iobuf, ATA_SECTORWORDS);
|
||||
|
||||
ident_cpy (dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision));
|
||||
ident_cpy (dev_desc->vendor, iop->model, sizeof(dev_desc->vendor));
|
||||
ident_cpy (dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
|
||||
ident_cpy ((unsigned char*)dev_desc->revision, iop->fw_rev, sizeof(dev_desc->revision));
|
||||
ident_cpy ((unsigned char*)dev_desc->vendor, iop->model, sizeof(dev_desc->vendor));
|
||||
ident_cpy ((unsigned char*)dev_desc->product, iop->serial_no, sizeof(dev_desc->product));
|
||||
#ifdef __LITTLE_ENDIAN
|
||||
/*
|
||||
* firmware revision and model number have Big Endian Byte
|
||||
|
@ -1953,9 +1947,9 @@ static void atapi_inquiry(block_dev_desc_t * dev_desc)
|
|||
return;
|
||||
|
||||
/* copy device ident strings */
|
||||
ident_cpy(dev_desc->vendor,&iobuf[8],8);
|
||||
ident_cpy(dev_desc->product,&iobuf[16],16);
|
||||
ident_cpy(dev_desc->revision,&iobuf[32],5);
|
||||
ident_cpy((unsigned char*)dev_desc->vendor,&iobuf[8],8);
|
||||
ident_cpy((unsigned char*)dev_desc->product,&iobuf[16],16);
|
||||
ident_cpy((unsigned char*)dev_desc->revision,&iobuf[32],5);
|
||||
|
||||
dev_desc->lun=0;
|
||||
dev_desc->lba=0;
|
||||
|
@ -2085,5 +2079,3 @@ U_BOOT_CMD(
|
|||
"diskboot- boot from IDE device\n",
|
||||
"loadAddr dev:part\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,8 +28,7 @@
|
|||
#include <common.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_IMMAP) && \
|
||||
(defined(CONFIG_8xx) || defined(CONFIG_8260))
|
||||
#if defined(CONFIG_8xx) || defined(CONFIG_8260)
|
||||
|
||||
#if defined(CONFIG_8xx)
|
||||
#include <asm/8xx_immap.h>
|
||||
|
@ -41,9 +40,7 @@
|
|||
#include <asm/iopin_8260.h>
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_8xx) || defined(CONFIG_8260)
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
#endif
|
||||
|
||||
static void
|
||||
unimplemented ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
|
|
|
@ -32,8 +32,6 @@
|
|||
#include <config.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_ITEST)
|
||||
|
||||
#define EQ 0
|
||||
#define NE 1
|
||||
#define LT 2
|
||||
|
@ -197,4 +195,3 @@ U_BOOT_CMD(
|
|||
"itest\t- return true/false on integer compare\n",
|
||||
"[.b, .w, .l, .s] [*]value1 <op> [*]value2\n"
|
||||
);
|
||||
#endif
|
||||
|
|
|
@ -93,9 +93,6 @@
|
|||
#include <jffs2/jffs2.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
#if defined(CONFIG_CMD_JFFS2)
|
||||
|
||||
#include <cramfs/cramfs_fs.h>
|
||||
|
||||
#if defined(CONFIG_CMD_NAND)
|
||||
|
@ -2191,5 +2188,3 @@ U_BOOT_CMD(
|
|||
#endif /* #ifdef CONFIG_JFFS2_CMDLINE */
|
||||
|
||||
/***************************************************/
|
||||
|
||||
#endif
|
||||
|
|
|
@ -48,8 +48,6 @@
|
|||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#if defined(CONFIG_LOGBUFFER)
|
||||
|
||||
/* Local prototypes */
|
||||
static void logbuff_putc (const char c);
|
||||
static void logbuff_puts (const char *s);
|
||||
|
@ -287,5 +285,3 @@ static int logbuff_printk(const char *line)
|
|||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
#endif /* (CONFIG_LOGBUFFER) */
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include <common.h>
|
||||
#include <config.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_MFSL)
|
||||
#include <asm/asm.h>
|
||||
|
||||
int do_frd (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
||||
|
@ -413,5 +411,3 @@ U_BOOT_CMD (rspr, 3, 1, do_rspr,
|
|||
" 1 - MSR - Machine status register\n"
|
||||
" 3 - EAR - Exception address register\n"
|
||||
" 5 - ESR - Exception status register\n");
|
||||
|
||||
#endif
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_MII)
|
||||
#include <miiphy.h>
|
||||
|
||||
#ifdef CONFIG_TERSE_MII
|
||||
|
@ -112,9 +110,11 @@ int do_mii (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
"OUI = 0x%04X, "
|
||||
"Model = 0x%02X, "
|
||||
"Rev = 0x%02X, "
|
||||
"%3dbaseT, %s\n",
|
||||
"%3dbase%s, %s\n",
|
||||
j, oui, model, rev,
|
||||
miiphy_speed (devname, j),
|
||||
miiphy_is_1000base_x (devname, j)
|
||||
? "X" : "T",
|
||||
(miiphy_duplex (devname, j) == FULL)
|
||||
? "FDX" : "HDX");
|
||||
}
|
||||
|
@ -496,9 +496,11 @@ int do_mii (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
|
|||
"OUI = 0x%04X, "
|
||||
"Model = 0x%02X, "
|
||||
"Rev = 0x%02X, "
|
||||
"%3dbaseT, %s\n",
|
||||
"%3dbase%s, %s\n",
|
||||
j, oui, model, rev,
|
||||
miiphy_speed (devname, j),
|
||||
miiphy_is_1000base_x (devname, j)
|
||||
? "X" : "T",
|
||||
(miiphy_duplex (devname, j) == FULL)
|
||||
? "FDX" : "HDX");
|
||||
}
|
||||
|
@ -594,5 +596,3 @@ U_BOOT_CMD(
|
|||
);
|
||||
|
||||
#endif /* CONFIG_TERSE_MII */
|
||||
|
||||
#endif
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
#include <common.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_MISC)
|
||||
|
||||
int do_sleep (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
ulong start = get_timer(0);
|
||||
|
@ -68,5 +66,3 @@ U_BOOT_CMD(
|
|||
"N\n"
|
||||
" - delay execution for N seconds (N is _decimal_ !!!)\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -23,9 +23,6 @@
|
|||
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_MMC)
|
||||
|
||||
#include <mmc.h>
|
||||
|
||||
int do_mmc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
|
@ -42,5 +39,3 @@ U_BOOT_CMD(
|
|||
"mmcinit - init mmc card\n",
|
||||
NULL
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <command.h>
|
||||
#include <net.h>
|
||||
|
||||
#if defined(CONFIG_CMD_NET)
|
||||
|
||||
extern int do_bootm (cmd_tbl_t *, int, int, char *[]);
|
||||
|
||||
static int netboot_common (proto_t, cmd_tbl_t *, int , char *[]);
|
||||
|
@ -343,5 +341,3 @@ U_BOOT_CMD(
|
|||
"[NTP server IP]\n"
|
||||
);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -30,16 +30,11 @@
|
|||
*/
|
||||
|
||||
#include <common.h>
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
|
||||
#include <command.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/io.h>
|
||||
#include <pci.h>
|
||||
|
||||
#if defined(CONFIG_CMD_PCI)
|
||||
|
||||
extern int cmd_get_data_size(char* arg, int default_size);
|
||||
|
||||
unsigned char ShortPCIListing = 1;
|
||||
|
@ -564,7 +559,3 @@ U_BOOT_CMD(
|
|||
"pci write[.b, .w, .l] b.d.f address value\n"
|
||||
" - write to CFG address\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
|
|
|
@ -30,8 +30,6 @@
|
|||
#include <common.h>
|
||||
#include <command.h>
|
||||
|
||||
#if defined(CONFIG_CMD_PORTIO)
|
||||
|
||||
extern int cmd_get_data_size (char *arg, int default_size);
|
||||
|
||||
/* Display values from last command.
|
||||
|
@ -165,5 +163,3 @@ U_BOOT_CMD(
|
|||
"[.b, .w, .l] port\n"
|
||||
" - read datum from IO port\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -33,8 +33,6 @@
|
|||
#include <mpc5xxx.h>
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_REGINFO)
|
||||
|
||||
int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
||||
{
|
||||
#if defined(CONFIG_8xx)
|
||||
|
@ -335,9 +333,6 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/**************************************************/
|
||||
|
||||
#if ( defined(CONFIG_8xx) || defined(CONFIG_405GP) || \
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
* Reiserfs support
|
||||
*/
|
||||
#include <common.h>
|
||||
|
||||
#if defined(CONFIG_CMD_REISER)
|
||||
#include <config.h>
|
||||
#include <command.h>
|
||||
#include <image.h>
|
||||
|
@ -239,5 +237,3 @@ U_BOOT_CMD(
|
|||
" - load binary file 'filename' from 'dev' on 'interface'\n"
|
||||
" to address 'addr' from dos filesystem\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -34,8 +34,6 @@
|
|||
#include <image.h>
|
||||
#include <pci.h>
|
||||
|
||||
#if defined(CONFIG_CMD_SCSI)
|
||||
|
||||
#ifdef CONFIG_SCSI_SYM53C8XX
|
||||
#define SCSI_VEND_ID 0x1000
|
||||
#ifndef CONFIG_SCSI_DEV_ID
|
||||
|
@ -129,9 +127,12 @@ void scsi_scan(int mode)
|
|||
if((modi&0x80)==0x80) /* drive is removable */
|
||||
scsi_dev_desc[scsi_max_devs].removable=TRUE;
|
||||
/* get info for this device */
|
||||
scsi_ident_cpy(&scsi_dev_desc[scsi_max_devs].vendor[0],&tempbuff[8],8);
|
||||
scsi_ident_cpy(&scsi_dev_desc[scsi_max_devs].product[0],&tempbuff[16],16);
|
||||
scsi_ident_cpy(&scsi_dev_desc[scsi_max_devs].revision[0],&tempbuff[32],4);
|
||||
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].vendor[0],
|
||||
&tempbuff[8], 8);
|
||||
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].product[0],
|
||||
&tempbuff[16], 16);
|
||||
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].revision[0],
|
||||
&tempbuff[32], 4);
|
||||
scsi_dev_desc[scsi_max_devs].target=pccb->target;
|
||||
scsi_dev_desc[scsi_max_devs].lun=pccb->lun;
|
||||
|
||||
|
@ -608,5 +609,3 @@ U_BOOT_CMD(
|
|||
"scsiboot- boot from SCSI device\n",
|
||||
"loadAddr dev:part\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include <command.h>
|
||||
#include <spi.h>
|
||||
|
||||
#if defined(CONFIG_CMD_SPI)
|
||||
|
||||
/*-----------------------------------------------------------------------
|
||||
* Definitions
|
||||
*/
|
||||
|
@ -139,5 +137,3 @@ U_BOOT_CMD(
|
|||
"<bit_len> - Number of bits to send (base 10)\n"
|
||||
"<dout> - Hexadecimal string that gets sent\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
|
||||
#include <universe.h>
|
||||
|
||||
#if defined(CONFIG_CMD_UNIVERSE)
|
||||
|
||||
#define PCI_VENDOR PCI_VENDOR_ID_TUNDRA
|
||||
#define PCI_DEVICE PCI_DEVICE_ID_TUNDRA_CA91C042
|
||||
|
||||
|
@ -386,5 +384,3 @@ U_BOOT_CMD(
|
|||
" 02 -> D16 Data Width\n"
|
||||
" 03 -> D32 Data Width\n"
|
||||
);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -29,9 +29,6 @@
|
|||
#include <command.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <part.h>
|
||||
|
||||
#if defined(CONFIG_CMD_USB)
|
||||
|
||||
#include <usb.h>
|
||||
|
||||
#ifdef CONFIG_USB_STORAGE
|
||||
|
@ -608,12 +605,6 @@ int do_usb (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(CONFIG_CMD_USB)
|
||||
|
||||
#ifdef CONFIG_USB_STORAGE
|
||||
U_BOOT_CMD(
|
||||
usb, 5, 1, do_usb,
|
||||
|
@ -645,4 +636,3 @@ U_BOOT_CMD(
|
|||
"usb info [dev] - show available USB devices\n"
|
||||
);
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -44,6 +44,32 @@ struct fdt_header *fdt;
|
|||
|
||||
/********************************************************************/
|
||||
|
||||
/**
|
||||
* fdt_find_and_setprop: Find a node and set it's property
|
||||
*
|
||||
* @fdt: ptr to device tree
|
||||
* @node: path of node
|
||||
* @prop: property name
|
||||
* @val: ptr to new value
|
||||
* @len: length of new property value
|
||||
* @create: flag to create the property if it doesn't exist
|
||||
*
|
||||
* Convenience function to directly set a property given the path to the node.
|
||||
*/
|
||||
int fdt_find_and_setprop(void *fdt, const char *node, const char *prop,
|
||||
const void *val, int len, int create)
|
||||
{
|
||||
int nodeoff = fdt_path_offset(fdt, node);
|
||||
|
||||
if (nodeoff < 0)
|
||||
return nodeoff;
|
||||
|
||||
if ((!create) && (fdt_get_property(fdt, nodeoff, prop, 0) == NULL))
|
||||
return 0; /* create flag not set; so exit quietly */
|
||||
|
||||
return fdt_setprop(fdt, nodeoff, prop, val, len);
|
||||
}
|
||||
|
||||
int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
|
||||
{
|
||||
int nodeoffset;
|
||||
|
@ -58,34 +84,23 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
|
|||
}
|
||||
|
||||
if (initrd_start && initrd_end) {
|
||||
struct fdt_reserve_entry re;
|
||||
int used;
|
||||
int total;
|
||||
uint64_t addr, size;
|
||||
int total = fdt_num_mem_rsv(fdt);
|
||||
int j;
|
||||
|
||||
err = fdt_num_reservemap(fdt, &used, &total);
|
||||
if (err < 0) {
|
||||
printf("fdt_chosen: %s\n", fdt_strerror(err));
|
||||
return err;
|
||||
}
|
||||
if (used >= total) {
|
||||
printf("WARNING: "
|
||||
"no room in the reserved map (%d of %d)\n",
|
||||
used, total);
|
||||
return -1;
|
||||
}
|
||||
/*
|
||||
* Look for an existing entry and update it. If we don't find
|
||||
* the entry, we will j be the next available slot.
|
||||
*/
|
||||
for (j = 0; j < used; j++) {
|
||||
err = fdt_get_reservemap(fdt, j, &re);
|
||||
if (re.address == initrd_start) {
|
||||
for (j = 0; j < total; j++) {
|
||||
err = fdt_get_mem_rsv(fdt, j, &addr, &size);
|
||||
if (addr == initrd_start) {
|
||||
fdt_del_mem_rsv(fdt, j);
|
||||
break;
|
||||
}
|
||||
}
|
||||
err = fdt_replace_reservemap_entry(fdt, j,
|
||||
initrd_start, initrd_end - initrd_start + 1);
|
||||
|
||||
err = fdt_add_mem_rsv(fdt, initrd_start, initrd_end - initrd_start + 1);
|
||||
if (err < 0) {
|
||||
printf("fdt_chosen: %s\n", fdt_strerror(err));
|
||||
return err;
|
||||
|
@ -95,7 +110,7 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
|
|||
/*
|
||||
* Find the "chosen" node.
|
||||
*/
|
||||
nodeoffset = fdt_find_node_by_path (fdt, "/chosen");
|
||||
nodeoffset = fdt_path_offset (fdt, "/chosen");
|
||||
|
||||
/*
|
||||
* If we have a "chosen" node already the "force the writing"
|
||||
|
@ -182,7 +197,7 @@ int fdt_env(void *fdt)
|
|||
* See if we already have a "u-boot-env" node, delete it if so.
|
||||
* Then create a new empty node.
|
||||
*/
|
||||
nodeoffset = fdt_find_node_by_path (fdt, "/u-boot-env");
|
||||
nodeoffset = fdt_path_offset (fdt, "/u-boot-env");
|
||||
if (nodeoffset >= 0) {
|
||||
err = fdt_del_node(fdt, nodeoffset);
|
||||
if (err < 0) {
|
||||
|
@ -304,7 +319,7 @@ int fdt_bd_t(void *fdt)
|
|||
* See if we already have a "bd_t" node, delete it if so.
|
||||
* Then create a new empty node.
|
||||
*/
|
||||
nodeoffset = fdt_find_node_by_path (fdt, "/bd_t");
|
||||
nodeoffset = fdt_path_offset (fdt, "/bd_t");
|
||||
if (nodeoffset >= 0) {
|
||||
err = fdt_del_node(fdt, nodeoffset);
|
||||
if (err < 0) {
|
||||
|
@ -348,4 +363,128 @@ int fdt_bd_t(void *fdt)
|
|||
}
|
||||
#endif /* ifdef CONFIG_OF_HAS_BD_T */
|
||||
|
||||
void do_fixup_by_path(void *fdt, const char *path, const char *prop,
|
||||
const void *val, int len, int create)
|
||||
{
|
||||
#if defined(DEBUG)
|
||||
int i;
|
||||
debug("Updating property '%s/%s' = ", node, prop);
|
||||
for (i = 0; i < len; i++)
|
||||
debug(" %.2x", *(u8*)(val+i));
|
||||
debug("\n");
|
||||
#endif
|
||||
int rc = fdt_find_and_setprop(fdt, path, prop, val, len, create);
|
||||
if (rc)
|
||||
printf("Unable to update property %s:%s, err=%s\n",
|
||||
path, prop, fdt_strerror(rc));
|
||||
}
|
||||
|
||||
void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
|
||||
u32 val, int create)
|
||||
{
|
||||
val = cpu_to_fdt32(val);
|
||||
do_fixup_by_path(fdt, path, prop, &val, sizeof(val), create);
|
||||
}
|
||||
|
||||
void do_fixup_by_prop(void *fdt,
|
||||
const char *pname, const void *pval, int plen,
|
||||
const char *prop, const void *val, int len,
|
||||
int create)
|
||||
{
|
||||
int off;
|
||||
#if defined(DEBUG)
|
||||
int i;
|
||||
debug("Updating property '%s/%s' = ", node, prop);
|
||||
for (i = 0; i < len; i++)
|
||||
debug(" %.2x", *(u8*)(val+i));
|
||||
debug("\n");
|
||||
#endif
|
||||
off = fdt_node_offset_by_prop_value(fdt, -1, pname, pval, plen);
|
||||
while (off != -FDT_ERR_NOTFOUND) {
|
||||
if (create || (fdt_get_property(fdt, off, prop, 0) != NULL))
|
||||
fdt_setprop(fdt, off, prop, val, len);
|
||||
off = fdt_node_offset_by_prop_value(fdt, off, pname, pval, plen);
|
||||
}
|
||||
}
|
||||
|
||||
void do_fixup_by_prop_u32(void *fdt,
|
||||
const char *pname, const void *pval, int plen,
|
||||
const char *prop, u32 val, int create)
|
||||
{
|
||||
val = cpu_to_fdt32(val);
|
||||
do_fixup_by_prop(fdt, pname, pval, plen, prop, &val, 4, create);
|
||||
}
|
||||
|
||||
void do_fixup_by_compat(void *fdt, const char *compat,
|
||||
const char *prop, const void *val, int len, int create)
|
||||
{
|
||||
int off = -1;
|
||||
#if defined(DEBUG)
|
||||
int i;
|
||||
debug("Updating property '%s/%s' = ", node, prop);
|
||||
for (i = 0; i < len; i++)
|
||||
debug(" %.2x", *(u8*)(val+i));
|
||||
debug("\n");
|
||||
#endif
|
||||
off = fdt_node_offset_by_compatible(fdt, -1, compat);
|
||||
while (off != -FDT_ERR_NOTFOUND) {
|
||||
if (create || (fdt_get_property(fdt, off, prop, 0) != NULL))
|
||||
fdt_setprop(fdt, off, prop, val, len);
|
||||
off = fdt_node_offset_by_compatible(fdt, off, compat);
|
||||
}
|
||||
}
|
||||
|
||||
void do_fixup_by_compat_u32(void *fdt, const char *compat,
|
||||
const char *prop, u32 val, int create)
|
||||
{
|
||||
val = cpu_to_fdt32(val);
|
||||
do_fixup_by_compat(fdt, compat, prop, &val, 4, create);
|
||||
}
|
||||
|
||||
void fdt_fixup_ethernet(void *fdt, bd_t *bd)
|
||||
{
|
||||
int node;
|
||||
const char *path;
|
||||
|
||||
node = fdt_path_offset(fdt, "/aliases");
|
||||
if (node >= 0) {
|
||||
#if defined(CONFIG_HAS_ETH0)
|
||||
path = fdt_getprop(fdt, node, "ethernet0", NULL);
|
||||
if (path) {
|
||||
do_fixup_by_path(fdt, path, "mac-address",
|
||||
bd->bi_enetaddr, 6, 0);
|
||||
do_fixup_by_path(fdt, path, "local-mac-address",
|
||||
bd->bi_enetaddr, 6, 1);
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_HAS_ETH1)
|
||||
path = fdt_getprop(fdt, node, "ethernet1", NULL);
|
||||
if (path) {
|
||||
do_fixup_by_path(fdt, path, "mac-address",
|
||||
bd->bi_enet1addr, 6, 0);
|
||||
do_fixup_by_path(fdt, path, "local-mac-address",
|
||||
bd->bi_enet1addr, 6, 1);
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_HAS_ETH2)
|
||||
path = fdt_getprop(fdt, node, "ethernet2", NULL);
|
||||
if (path) {
|
||||
do_fixup_by_path(fdt, path, "mac-address",
|
||||
bd->bi_enet2addr, 6, 0);
|
||||
do_fixup_by_path(fdt, path, "local-mac-address",
|
||||
bd->bi_enet2addr, 6, 1);
|
||||
}
|
||||
#endif
|
||||
#if defined(CONFIG_HAS_ETH3)
|
||||
path = fdt_getprop(fdt, node, "ethernet3", NULL);
|
||||
if (path) {
|
||||
do_fixup_by_path(fdt, path, "mac-address",
|
||||
bd->bi_enet3addr, 6, 0);
|
||||
do_fixup_by_path(fdt, path, "local-mac-address",
|
||||
bd->bi_enet3addr, 6, 1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* CONFIG_OF_LIBFDT */
|
||||
|
|
|
@ -49,10 +49,10 @@
|
|||
struct mii_dev {
|
||||
struct list_head link;
|
||||
char *name;
|
||||
int (* read)(char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short *value);
|
||||
int (* write)(char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short value);
|
||||
int (*read) (char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short *value);
|
||||
int (*write) (char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short value);
|
||||
};
|
||||
|
||||
static struct list_head mii_devs;
|
||||
|
@ -62,21 +62,21 @@ static struct mii_dev *current_mii;
|
|||
*
|
||||
* Initialize global data. Need to be called before any other miiphy routine.
|
||||
*/
|
||||
void miiphy_init()
|
||||
void miiphy_init ()
|
||||
{
|
||||
INIT_LIST_HEAD(&mii_devs);
|
||||
current_mii = NULL;
|
||||
INIT_LIST_HEAD (&mii_devs);
|
||||
current_mii = NULL;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Register read and write MII access routines for the device <name>.
|
||||
*/
|
||||
void miiphy_register(char *name,
|
||||
int (* read)(char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short *value),
|
||||
int (* write)(char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short value))
|
||||
void miiphy_register (char *name,
|
||||
int (*read) (char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short *value),
|
||||
int (*write) (char *devname, unsigned char addr,
|
||||
unsigned char reg, unsigned short value))
|
||||
{
|
||||
struct list_head *entry;
|
||||
struct mii_dev *new_dev;
|
||||
|
@ -84,63 +84,64 @@ void miiphy_register(char *name,
|
|||
unsigned int name_len;
|
||||
|
||||
/* check if we have unique name */
|
||||
list_for_each(entry, &mii_devs) {
|
||||
miidev = list_entry(entry, struct mii_dev, link);
|
||||
if (strcmp(miidev->name, name) == 0) {
|
||||
printf("miiphy_register: non unique device name '%s'\n",
|
||||
name);
|
||||
list_for_each (entry, &mii_devs) {
|
||||
miidev = list_entry (entry, struct mii_dev, link);
|
||||
if (strcmp (miidev->name, name) == 0) {
|
||||
printf ("miiphy_register: non unique device name "
|
||||
"'%s'\n", name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* allocate memory */
|
||||
name_len = strlen(name);
|
||||
new_dev = (struct mii_dev *)malloc(sizeof(struct mii_dev) + name_len + 1);
|
||||
name_len = strlen (name);
|
||||
new_dev =
|
||||
(struct mii_dev *)malloc (sizeof (struct mii_dev) + name_len + 1);
|
||||
|
||||
if(new_dev == NULL) {
|
||||
printf("miiphy_register: cannot allocate memory for '%s'\n",
|
||||
name);
|
||||
if (new_dev == NULL) {
|
||||
printf ("miiphy_register: cannot allocate memory for '%s'\n",
|
||||
name);
|
||||
return;
|
||||
}
|
||||
memset(new_dev, 0, sizeof(struct mii_dev) + name_len);
|
||||
memset (new_dev, 0, sizeof (struct mii_dev) + name_len);
|
||||
|
||||
/* initalize mii_dev struct fields */
|
||||
INIT_LIST_HEAD(&new_dev->link);
|
||||
INIT_LIST_HEAD (&new_dev->link);
|
||||
new_dev->read = read;
|
||||
new_dev->write = write;
|
||||
new_dev->name = (char *)(new_dev + 1);
|
||||
strncpy(new_dev->name, name, name_len);
|
||||
strncpy (new_dev->name, name, name_len);
|
||||
new_dev->name[name_len] = '\0';
|
||||
|
||||
debug("miiphy_register: added '%s', read=0x%08lx, write=0x%08lx\n",
|
||||
new_dev->name, new_dev->read, new_dev->write);
|
||||
debug ("miiphy_register: added '%s', read=0x%08lx, write=0x%08lx\n",
|
||||
new_dev->name, new_dev->read, new_dev->write);
|
||||
|
||||
/* add it to the list */
|
||||
list_add_tail(&new_dev->link, &mii_devs);
|
||||
list_add_tail (&new_dev->link, &mii_devs);
|
||||
|
||||
if (!current_mii)
|
||||
current_mii = new_dev;
|
||||
}
|
||||
|
||||
int miiphy_set_current_dev(char *devname)
|
||||
int miiphy_set_current_dev (char *devname)
|
||||
{
|
||||
struct list_head *entry;
|
||||
struct mii_dev *dev;
|
||||
|
||||
list_for_each(entry, &mii_devs) {
|
||||
dev = list_entry(entry, struct mii_dev, link);
|
||||
list_for_each (entry, &mii_devs) {
|
||||
dev = list_entry (entry, struct mii_dev, link);
|
||||
|
||||
if (strcmp(devname, dev->name) == 0) {
|
||||
if (strcmp (devname, dev->name) == 0) {
|
||||
current_mii = dev;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
printf("No such device: %s\n", devname);
|
||||
printf ("No such device: %s\n", devname);
|
||||
return 1;
|
||||
}
|
||||
|
||||
char *miiphy_get_current_dev()
|
||||
char *miiphy_get_current_dev ()
|
||||
{
|
||||
if (current_mii)
|
||||
return current_mii->name;
|
||||
|
@ -156,8 +157,8 @@ char *miiphy_get_current_dev()
|
|||
* Returns:
|
||||
* 0 on success
|
||||
*/
|
||||
int miiphy_read(char *devname, unsigned char addr, unsigned char reg,
|
||||
unsigned short *value)
|
||||
int miiphy_read (char *devname, unsigned char addr, unsigned char reg,
|
||||
unsigned short *value)
|
||||
{
|
||||
struct list_head *entry;
|
||||
struct mii_dev *dev;
|
||||
|
@ -165,22 +166,22 @@ int miiphy_read(char *devname, unsigned char addr, unsigned char reg,
|
|||
int read_ret = 0;
|
||||
|
||||
if (!devname) {
|
||||
printf("NULL device name!\n");
|
||||
printf ("NULL device name!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
list_for_each(entry, &mii_devs) {
|
||||
dev = list_entry(entry, struct mii_dev, link);
|
||||
list_for_each (entry, &mii_devs) {
|
||||
dev = list_entry (entry, struct mii_dev, link);
|
||||
|
||||
if (strcmp(devname, dev->name) == 0) {
|
||||
if (strcmp (devname, dev->name) == 0) {
|
||||
found_dev = 1;
|
||||
read_ret = dev->read(devname, addr, reg, value);
|
||||
read_ret = dev->read (devname, addr, reg, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found_dev == 0)
|
||||
printf("No such device: %s\n", devname);
|
||||
printf ("No such device: %s\n", devname);
|
||||
|
||||
return ((found_dev) ? read_ret : 1);
|
||||
}
|
||||
|
@ -193,8 +194,8 @@ int miiphy_read(char *devname, unsigned char addr, unsigned char reg,
|
|||
* Returns:
|
||||
* 0 on success
|
||||
*/
|
||||
int miiphy_write(char *devname, unsigned char addr, unsigned char reg,
|
||||
unsigned short value)
|
||||
int miiphy_write (char *devname, unsigned char addr, unsigned char reg,
|
||||
unsigned short value)
|
||||
{
|
||||
struct list_head *entry;
|
||||
struct mii_dev *dev;
|
||||
|
@ -202,22 +203,22 @@ int miiphy_write(char *devname, unsigned char addr, unsigned char reg,
|
|||
int write_ret = 0;
|
||||
|
||||
if (!devname) {
|
||||
printf("NULL device name!\n");
|
||||
printf ("NULL device name!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
list_for_each(entry, &mii_devs) {
|
||||
dev = list_entry(entry, struct mii_dev, link);
|
||||
list_for_each (entry, &mii_devs) {
|
||||
dev = list_entry (entry, struct mii_dev, link);
|
||||
|
||||
if (strcmp(devname, dev->name) == 0) {
|
||||
if (strcmp (devname, dev->name) == 0) {
|
||||
found_dev = 1;
|
||||
write_ret = dev->write(devname, addr, reg, value);
|
||||
write_ret = dev->write (devname, addr, reg, value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found_dev == 0)
|
||||
printf("No such device: %s\n", devname);
|
||||
printf ("No such device: %s\n", devname);
|
||||
|
||||
return ((found_dev) ? write_ret : 1);
|
||||
}
|
||||
|
@ -226,23 +227,22 @@ int miiphy_write(char *devname, unsigned char addr, unsigned char reg,
|
|||
*
|
||||
* Print out list of registered MII capable devices.
|
||||
*/
|
||||
void miiphy_listdev(void)
|
||||
void miiphy_listdev (void)
|
||||
{
|
||||
struct list_head *entry;
|
||||
struct mii_dev *dev;
|
||||
|
||||
puts("MII devices: ");
|
||||
list_for_each(entry, &mii_devs) {
|
||||
dev = list_entry(entry, struct mii_dev, link);
|
||||
printf("'%s' ", dev->name);
|
||||
puts ("MII devices: ");
|
||||
list_for_each (entry, &mii_devs) {
|
||||
dev = list_entry (entry, struct mii_dev, link);
|
||||
printf ("'%s' ", dev->name);
|
||||
}
|
||||
puts("\n");
|
||||
puts ("\n");
|
||||
|
||||
if (current_mii)
|
||||
printf("Current device: '%s'\n", current_mii->name);
|
||||
printf ("Current device: '%s'\n", current_mii->name);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Read the OUI, manufacture's model number, and revision number.
|
||||
|
@ -254,9 +254,7 @@ void miiphy_listdev(void)
|
|||
* Returns:
|
||||
* 0 on success
|
||||
*/
|
||||
int miiphy_info (char *devname,
|
||||
unsigned char addr,
|
||||
unsigned int *oui,
|
||||
int miiphy_info (char *devname, unsigned char addr, unsigned int *oui,
|
||||
unsigned char *model, unsigned char *rev)
|
||||
{
|
||||
unsigned int reg = 0;
|
||||
|
@ -288,13 +286,12 @@ int miiphy_info (char *devname,
|
|||
#ifdef DEBUG
|
||||
printf ("PHY_PHYIDR[1,2] @ 0x%x = 0x%08x\n", addr, reg);
|
||||
#endif
|
||||
*oui = ( reg >> 10);
|
||||
*model = (unsigned char) ((reg >> 4) & 0x0000003F);
|
||||
*rev = (unsigned char) ( reg & 0x0000000F);
|
||||
*oui = (reg >> 10);
|
||||
*model = (unsigned char)((reg >> 4) & 0x0000003F);
|
||||
*rev = (unsigned char)(reg & 0x0000000F);
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Reset the PHY.
|
||||
|
@ -345,104 +342,138 @@ int miiphy_reset (char *devname, unsigned char addr)
|
|||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Determine the ethernet speed (10/100).
|
||||
* Determine the ethernet speed (10/100/1000). Return 10 on error.
|
||||
*/
|
||||
int miiphy_speed (char *devname, unsigned char addr)
|
||||
{
|
||||
unsigned short reg;
|
||||
u16 bmcr, anlpar;
|
||||
|
||||
#if defined(CONFIG_PHY_GIGE)
|
||||
if (miiphy_read (devname, addr, PHY_1000BTSR, ®)) {
|
||||
printf ("PHY 1000BT Status read failed\n");
|
||||
} else {
|
||||
if (reg != 0xFFFF) {
|
||||
if ((reg & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD)) !=0) {
|
||||
return (_1000BASET);
|
||||
}
|
||||
}
|
||||
u16 btsr;
|
||||
|
||||
/*
|
||||
* Check for 1000BASE-X. If it is supported, then assume that the speed
|
||||
* is 1000.
|
||||
*/
|
||||
if (miiphy_is_1000base_x (devname, addr)) {
|
||||
return _1000BASET;
|
||||
}
|
||||
/*
|
||||
* No 1000BASE-X, so assume 1000BASE-T/100BASE-TX/10BASE-T register set.
|
||||
*/
|
||||
/* Check for 1000BASE-T. */
|
||||
if (miiphy_read (devname, addr, PHY_1000BTSR, &btsr)) {
|
||||
printf ("PHY 1000BT status");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
if (btsr != 0xFFFF &&
|
||||
(btsr & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD))) {
|
||||
return _1000BASET;
|
||||
}
|
||||
#endif /* CONFIG_PHY_GIGE */
|
||||
|
||||
/* Check Basic Management Control Register first. */
|
||||
if (miiphy_read (devname, addr, PHY_BMCR, ®)) {
|
||||
puts ("PHY speed read failed, assuming 10bT\n");
|
||||
return (_10BASET);
|
||||
if (miiphy_read (devname, addr, PHY_BMCR, &bmcr)) {
|
||||
printf ("PHY speed");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
/* Check if auto-negotiation is on. */
|
||||
if ((reg & PHY_BMCR_AUTON) != 0) {
|
||||
if (bmcr & PHY_BMCR_AUTON) {
|
||||
/* Get auto-negotiation results. */
|
||||
if (miiphy_read (devname, addr, PHY_ANLPAR, ®)) {
|
||||
puts ("PHY AN speed read failed, assuming 10bT\n");
|
||||
return (_10BASET);
|
||||
}
|
||||
if ((reg & PHY_ANLPAR_100) != 0) {
|
||||
return (_100BASET);
|
||||
} else {
|
||||
return (_10BASET);
|
||||
if (miiphy_read (devname, addr, PHY_ANLPAR, &anlpar)) {
|
||||
printf ("PHY AN speed");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
return (anlpar & PHY_ANLPAR_100) ? _100BASET : _10BASET;
|
||||
}
|
||||
/* Get speed from basic control settings. */
|
||||
else if (reg & PHY_BMCR_100MB) {
|
||||
return (_100BASET);
|
||||
} else {
|
||||
return (_10BASET);
|
||||
}
|
||||
return (bmcr & PHY_BMCR_100MB) ? _100BASET : _10BASET;
|
||||
|
||||
miiphy_read_failed:
|
||||
printf (" read failed, assuming 10BASE-T\n");
|
||||
return _10BASET;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Determine full/half duplex.
|
||||
* Determine full/half duplex. Return half on error.
|
||||
*/
|
||||
int miiphy_duplex (char *devname, unsigned char addr)
|
||||
{
|
||||
unsigned short reg;
|
||||
u16 bmcr, anlpar;
|
||||
|
||||
#if defined(CONFIG_PHY_GIGE)
|
||||
if (miiphy_read (devname, addr, PHY_1000BTSR, ®)) {
|
||||
printf ("PHY 1000BT Status read failed\n");
|
||||
} else {
|
||||
if ( (reg != 0xFFFF) &&
|
||||
(reg & (PHY_1000BTSR_1000FD | PHY_1000BTSR_1000HD)) ) {
|
||||
if ((reg & PHY_1000BTSR_1000FD) !=0) {
|
||||
return (FULL);
|
||||
} else {
|
||||
return (HALF);
|
||||
}
|
||||
u16 btsr;
|
||||
|
||||
/* Check for 1000BASE-X. */
|
||||
if (miiphy_is_1000base_x (devname, addr)) {
|
||||
/* 1000BASE-X */
|
||||
if (miiphy_read (devname, addr, PHY_ANLPAR, &anlpar)) {
|
||||
printf ("1000BASE-X PHY AN duplex");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* No 1000BASE-X, so assume 1000BASE-T/100BASE-TX/10BASE-T register set.
|
||||
*/
|
||||
/* Check for 1000BASE-T. */
|
||||
if (miiphy_read (devname, addr, PHY_1000BTSR, &btsr)) {
|
||||
printf ("PHY 1000BT status");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
if (btsr != 0xFFFF) {
|
||||
if (btsr & PHY_1000BTSR_1000FD) {
|
||||
return FULL;
|
||||
} else if (btsr & PHY_1000BTSR_1000HD) {
|
||||
return HALF;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_PHY_GIGE */
|
||||
|
||||
/* Check Basic Management Control Register first. */
|
||||
if (miiphy_read (devname, addr, PHY_BMCR, ®)) {
|
||||
puts ("PHY duplex read failed, assuming half duplex\n");
|
||||
return (HALF);
|
||||
if (miiphy_read (devname, addr, PHY_BMCR, &bmcr)) {
|
||||
puts ("PHY duplex");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
/* Check if auto-negotiation is on. */
|
||||
if ((reg & PHY_BMCR_AUTON) != 0) {
|
||||
if (bmcr & PHY_BMCR_AUTON) {
|
||||
/* Get auto-negotiation results. */
|
||||
if (miiphy_read (devname, addr, PHY_ANLPAR, ®)) {
|
||||
puts ("PHY AN duplex read failed, assuming half duplex\n");
|
||||
return (HALF);
|
||||
}
|
||||
|
||||
if ((reg & (PHY_ANLPAR_10FD | PHY_ANLPAR_TXFD)) != 0) {
|
||||
return (FULL);
|
||||
} else {
|
||||
return (HALF);
|
||||
if (miiphy_read (devname, addr, PHY_ANLPAR, &anlpar)) {
|
||||
puts ("PHY AN duplex");
|
||||
goto miiphy_read_failed;
|
||||
}
|
||||
return (anlpar & (PHY_ANLPAR_10FD | PHY_ANLPAR_TXFD)) ?
|
||||
FULL : HALF;
|
||||
}
|
||||
/* Get speed from basic control settings. */
|
||||
else if (reg & PHY_BMCR_DPLX) {
|
||||
return (FULL);
|
||||
} else {
|
||||
return (HALF);
|
||||
}
|
||||
return (bmcr & PHY_BMCR_DPLX) ? FULL : HALF;
|
||||
|
||||
miiphy_read_failed:
|
||||
printf (" read failed, assuming half duplex\n");
|
||||
return HALF;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
* Return 1 if PHY supports 1000BASE-X, 0 if PHY supports 10BASE-T/100BASE-TX/
|
||||
* 1000BASE-T, or on error.
|
||||
*/
|
||||
int miiphy_is_1000base_x (char *devname, unsigned char addr)
|
||||
{
|
||||
#if defined(CONFIG_PHY_GIGE)
|
||||
u16 exsr;
|
||||
|
||||
if (miiphy_read (devname, addr, PHY_EXSR, &exsr)) {
|
||||
printf ("PHY extended status read failed, assuming no "
|
||||
"1000BASE-X\n");
|
||||
return 0;
|
||||
}
|
||||
return 0 != (exsr & (PHY_EXSR_1000XF | PHY_EXSR_1000XH));
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef CFG_FAULT_ECHO_LINK_DOWN
|
||||
|
@ -455,7 +486,7 @@ int miiphy_link (char *devname, unsigned char addr)
|
|||
unsigned short reg;
|
||||
|
||||
/* dummy read; needed to latch some phys */
|
||||
(void)miiphy_read(devname, addr, PHY_BMSR, ®);
|
||||
(void)miiphy_read (devname, addr, PHY_BMSR, ®);
|
||||
if (miiphy_read (devname, addr, PHY_BMSR, ®)) {
|
||||
puts ("PHY_BMSR read failed, assuming no link\n");
|
||||
return (0);
|
||||
|
@ -469,5 +500,4 @@ int miiphy_link (char *devname, unsigned char addr)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_MII */
|
||||
|
|
|
@ -516,7 +516,7 @@ static int Spartan2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
|
|||
(*fn->clk) (FALSE, TRUE, cookie);
|
||||
CONFIG_FPGA_DELAY ();
|
||||
/* Write data */
|
||||
(*fn->wr) ((val < 0), TRUE, cookie);
|
||||
(*fn->wr) ((val & 0x80), TRUE, cookie);
|
||||
CONFIG_FPGA_DELAY ();
|
||||
/* Assert the clock */
|
||||
(*fn->clk) (TRUE, TRUE, cookie);
|
||||
|
|
|
@ -521,7 +521,7 @@ static int Spartan3_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
|
|||
(*fn->clk) (FALSE, TRUE, cookie);
|
||||
CONFIG_FPGA_DELAY ();
|
||||
/* Write data */
|
||||
(*fn->wr) ((val < 0), TRUE, cookie);
|
||||
(*fn->wr) ((val & 0x80), TRUE, cookie);
|
||||
CONFIG_FPGA_DELAY ();
|
||||
/* Assert the clock */
|
||||
(*fn->clk) (TRUE, TRUE, cookie);
|
||||
|
|
|
@ -257,7 +257,7 @@ static int usb_kbd_translate(unsigned char scancode,unsigned char modifier,int p
|
|||
repeat_delay=REPEAT_DELAY;
|
||||
}
|
||||
keycode=0;
|
||||
if((scancode>3) && (scancode<0x1d)) { /* alpha numeric values */
|
||||
if((scancode>3) && (scancode<=0x1d)) { /* alpha numeric values */
|
||||
keycode=scancode-4 + 0x61;
|
||||
if(caps_lock)
|
||||
keycode&=~CAPITAL_MASK; /* switch to capital Letters */
|
||||
|
|
|
@ -1195,7 +1195,7 @@ int usb_stor_get_info(struct usb_device *dev,struct us_data *ss,block_dev_desc_t
|
|||
dev_desc->product[16] = 0;
|
||||
dev_desc->revision[4] = 0;
|
||||
#ifdef CONFIG_USB_BIN_FIXUP
|
||||
usb_bin_fixup(dev->descriptor, dev_desc->vendor, dev_desc->product);
|
||||
usb_bin_fixup(dev->descriptor, (uchar *)dev_desc->vendor, (uchar *)dev_desc->product);
|
||||
#endif /* CONFIG_USB_BIN_FIXUP */
|
||||
USB_STOR_PRINTF("ISO Vers %X, Response Data %X\n",usb_stor_buf[2],usb_stor_buf[3]);
|
||||
if(usb_test_unit_ready(pccb,ss)) {
|
||||
|
|
|
@ -69,10 +69,6 @@ PLATFORM_CPPFLAGS+= -D__ARM__
|
|||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),blackfin)
|
||||
PLATFORM_CPPFLAGS+= -D__BLACKFIN__
|
||||
endif
|
||||
|
||||
ifdef ARCH
|
||||
sinclude $(TOPDIR)/$(ARCH)_config.mk # include architecture dependend rules
|
||||
endif
|
||||
|
@ -91,6 +87,9 @@ ifdef BOARD
|
|||
sinclude $(TOPDIR)/board/$(BOARDDIR)/config.mk # include board specific rules
|
||||
endif
|
||||
|
||||
# Load generated board configuration
|
||||
sinclude $(OBJTREE)/include/autoconf.mk
|
||||
|
||||
#########################################################################
|
||||
|
||||
CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
|
||||
|
|
|
@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
|||
LIB = $(obj)lib$(SOC).a
|
||||
|
||||
COBJS = i2c.o interrupts.o serial.o speed.o \
|
||||
usb.o
|
||||
usb.o usb_ohci.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue