提交 f7c602ac 编写于 作者: W Wolfgang Denk
...@@ -81,7 +81,7 @@ phys_size_t initdram(int board_type) ...@@ -81,7 +81,7 @@ phys_size_t initdram(int board_type)
unmap_physmem(sdram_base, EBI_SDRAM_SIZE); unmap_physmem(sdram_base, EBI_SDRAM_SIZE);
if (expected_size != actual_size) if (expected_size != actual_size)
printf("Warning: Only %u of %u MiB SDRAM is working\n", printf("Warning: Only %lu of %lu MiB SDRAM is working\n",
actual_size >> 20, expected_size >> 20); actual_size >> 20, expected_size >> 20);
return actual_size; return actual_size;
......
...@@ -104,7 +104,7 @@ phys_size_t initdram(int board_type) ...@@ -104,7 +104,7 @@ phys_size_t initdram(int board_type)
unmap_physmem(sdram_base, EBI_SDRAM_SIZE); unmap_physmem(sdram_base, EBI_SDRAM_SIZE);
if (expected_size != actual_size) if (expected_size != actual_size)
printf("Warning: Only %u of %u MiB SDRAM is working\n", printf("Warning: Only %lu of %lu MiB SDRAM is working\n",
actual_size >> 20, expected_size >> 20); actual_size >> 20, expected_size >> 20);
return actual_size; return actual_size;
......
...@@ -70,7 +70,7 @@ unsigned long flash_init(void) ...@@ -70,7 +70,7 @@ unsigned long flash_init(void)
void flash_print_info(flash_info_t *info) void flash_print_info(flash_info_t *info)
{ {
printf("Flash: Vendor ID: 0x%02x, Product ID: 0x%02x\n", printf("Flash: Vendor ID: 0x%02lx, Product ID: 0x%02lx\n",
info->flash_id >> 16, info->flash_id & 0xffff); info->flash_id >> 16, info->flash_id & 0xffff);
printf("Size: %ld MB in %d sectors\n", printf("Size: %ld MB in %d sectors\n",
info->size >> 10, info->sector_count); info->size >> 10, info->sector_count);
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
* (C) Copyright 2002,2003, Motorola,Inc. * (C) Copyright 2002,2003, Motorola,Inc.
* Xianghua Xiao, X.Xiao@motorola.com. * Xianghua Xiao, X.Xiao@motorola.com.
* *
* Copyright 2008 Freescale Semiconductor, Inc.
*
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
* *
...@@ -26,16 +28,6 @@ OUTPUT_ARCH(powerpc) ...@@ -26,16 +28,6 @@ OUTPUT_ARCH(powerpc)
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -62,17 +54,6 @@ SECTIONS ...@@ -62,17 +54,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
cpu/mpc85xx/speed.o (.text)
cpu/mpc85xx/pci.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -134,6 +115,18 @@ SECTIONS ...@@ -134,6 +115,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -142,6 +135,8 @@ SECTIONS ...@@ -142,6 +135,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
/* /*
* Copyright 2004 Freescale Semiconductor. * Copyright 2004, 2008 Freescale Semiconductor.
* *
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc) ...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc)
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -61,18 +51,6 @@ SECTIONS ...@@ -61,18 +51,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
drivers/net/tsec.o (.text)
cpu/mpc85xx/speed.o (.text)
cpu/mpc85xx/pci.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -134,6 +112,18 @@ SECTIONS ...@@ -134,6 +112,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -142,6 +132,8 @@ SECTIONS ...@@ -142,6 +132,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
/* /*
* Copyright 2007 Freescale Semiconductor, Inc. * Copyright 2007-2008 Freescale Semiconductor, Inc.
* *
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc) ...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc)
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -61,17 +51,6 @@ SECTIONS ...@@ -61,17 +51,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
cpu/mpc85xx/speed.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
drivers/bios_emulator/atibios.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -133,6 +112,18 @@ SECTIONS ...@@ -133,6 +112,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -141,6 +132,8 @@ SECTIONS ...@@ -141,6 +132,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
/* /*
* Copyright 2004, 2007 Freescale Semiconductor. * Copyright 2004, 2007-2008 Freescale Semiconductor, Inc.
* *
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc) ...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc)
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -61,17 +51,6 @@ SECTIONS ...@@ -61,17 +51,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
drivers/net/tsec.o (.text)
cpu/mpc85xx/speed.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -133,6 +112,18 @@ SECTIONS ...@@ -133,6 +112,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -141,6 +132,8 @@ SECTIONS ...@@ -141,6 +132,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
/* /*
* Copyright 2004 Freescale Semiconductor. * Copyright 2004, 2008 Freescale Semiconductor, Inc.
* *
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc) ...@@ -25,16 +25,6 @@ OUTPUT_ARCH(powerpc)
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -61,18 +51,6 @@ SECTIONS ...@@ -61,18 +51,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
drivers/net/tsec.o (.text)
cpu/mpc85xx/speed.o (.text)
cpu/mpc85xx/pci.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -134,6 +112,18 @@ SECTIONS ...@@ -134,6 +112,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -142,6 +132,8 @@ SECTIONS ...@@ -142,6 +132,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
/* /*
* (C) Copyright 2002,2003,Motorola,Inc. * (C) Copyright 2002,2003, Motorola,Inc.
* Xianghua Xiao, X.Xiao@motorola.com. * Xianghua Xiao, X.Xiao@motorola.com.
* *
* Copyright 2008 Freescale Semiconductor, Inc.
*
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
* *
...@@ -26,16 +28,6 @@ OUTPUT_ARCH(powerpc) ...@@ -26,16 +28,6 @@ OUTPUT_ARCH(powerpc)
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
.resetvec 0xFFFFFFFC :
{
*(.resetvec)
} = 0xffff
.bootpg 0xFFFFF000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -62,20 +54,6 @@ SECTIONS ...@@ -62,20 +54,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/commproc.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/serial_scc.o (.text)
cpu/mpc85xx/ether_fcc.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
cpu/mpc85xx/speed.o (.text)
cpu/mpc85xx/spd_sdram.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -137,6 +115,18 @@ SECTIONS ...@@ -137,6 +115,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -145,6 +135,8 @@ SECTIONS ...@@ -145,6 +135,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
/* /*
* Copyright 2004-2007 Freescale Semiconductor. * Copyright 2004-2008 Freescale Semiconductor, Inc.
* *
* See file CREDITS for list of people who contributed to this * See file CREDITS for list of people who contributed to this
* project. * project.
...@@ -23,21 +23,8 @@ ...@@ -23,21 +23,8 @@
OUTPUT_ARCH(powerpc) OUTPUT_ARCH(powerpc)
/* Do we need any of these for elf? /* Do we need any of these for elf?
__DYNAMIC = 0; */ __DYNAMIC = 0; */
SECTIONS SECTIONS
{ {
/* ELIOR - From RAM: From FLASH: 0xFFFFFFFC*/
.resetvec 0xFFFFFFFC:
{
*(.resetvec)
} = 0xffff
/*(ELIOR - From RAM: From FLASH: 0xFFFFF000*/
.bootpg 0xFFFFF000:
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
/* Read-only sections, merged into text segment: */ /* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS; . = + SIZEOF_HEADERS;
.interp : { *(.interp) } .interp : { *(.interp) }
...@@ -64,17 +51,6 @@ SECTIONS ...@@ -64,17 +51,6 @@ SECTIONS
.plt : { *(.plt) } .plt : { *(.plt) }
.text : .text :
{ {
cpu/mpc85xx/start.o (.text)
cpu/mpc85xx/traps.o (.text)
cpu/mpc85xx/interrupts.o (.text)
cpu/mpc85xx/cpu_init.o (.text)
cpu/mpc85xx/cpu.o (.text)
cpu/mpc85xx/speed.o (.text)
cpu/mpc85xx/pci.o (.text)
common/dlmalloc.o (.text)
lib_generic/crc32.o (.text)
lib_ppc/extable.o (.text)
lib_generic/zlib.o (.text)
*(.text) *(.text)
*(.fixup) *(.fixup)
*(.got1) *(.got1)
...@@ -136,6 +112,18 @@ SECTIONS ...@@ -136,6 +112,18 @@ SECTIONS
. = ALIGN(256); . = ALIGN(256);
__init_end = .; __init_end = .;
.bootpg ADDR(.text) + 0x7f000 :
{
cpu/mpc85xx/start.o (.bootpg)
} = 0xffff
.resetvec ADDR(.text) + 0x7fffc :
{
*(.resetvec)
} = 0xffff
. = ADDR(.text) + 0x80000;
__bss_start = .; __bss_start = .;
.bss (NOLOAD) : .bss (NOLOAD) :
{ {
...@@ -144,6 +132,8 @@ SECTIONS ...@@ -144,6 +132,8 @@ SECTIONS
*(.bss) *(.bss)
*(COMMON) *(COMMON)
} }
. = ALIGN(4);
_end = . ; _end = . ;
PROVIDE (end = .); PROVIDE (end = .);
} }
...@@ -29,6 +29,12 @@ ...@@ -29,6 +29,12 @@
#include "errors.h" #include "errors.h"
#include "dtt.h" #include "dtt.h"
/* for LM75 DTT POST test */
#define DTT_READ_TEMP 0x0
#define DTT_CONFIG 0x1
#define DTT_TEMP_HYST 0x2
#define DTT_TEMP_SET 0x3
#if defined(CONFIG_RTC_M48T35A) #if defined(CONFIG_RTC_M48T35A)
void rtctest(void) void rtctest(void)
{ {
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
#include <lmb.h> #include <lmb.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#if (CONFIG_CMD_USB) #if defined(CONFIG_CMD_USB)
#include <usb.h> #include <usb.h>
#endif #endif
...@@ -217,7 +217,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) ...@@ -217,7 +217,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
*/ */
iflag = disable_interrupts(); iflag = disable_interrupts();
#if (CONFIG_CMD_USB) #if defined(CONFIG_CMD_USB)
/* /*
* turn off USB to prevent the host controller from writing to the * turn off USB to prevent the host controller from writing to the
* SDRAM while Linux is booting. This could happen (at least for OHCI * SDRAM while Linux is booting. This could happen (at least for OHCI
......
...@@ -1457,7 +1457,7 @@ typedef struct malloc_chunk* mbinptr; ...@@ -1457,7 +1457,7 @@ typedef struct malloc_chunk* mbinptr;
indexing, maintain locality, and avoid some initialization tests. indexing, maintain locality, and avoid some initialization tests.
*/ */
#define top (bin_at(0)->fd) /* The topmost chunk */ #define top (av_[2]) /* The topmost chunk */
#define last_remainder (bin_at(1)) /* remainder from last split */ #define last_remainder (bin_at(1)) /* remainder from last split */
...@@ -1552,13 +1552,14 @@ void malloc_bin_reloc (void) ...@@ -1552,13 +1552,14 @@ void malloc_bin_reloc (void)
#define BINBLOCKWIDTH 4 /* bins per block */ #define BINBLOCKWIDTH 4 /* bins per block */
#define binblocks (bin_at(0)->size) /* bitvector of nonempty blocks */ #define binblocks_r ((INTERNAL_SIZE_T)av_[1]) /* bitvector of nonempty blocks */
#define binblocks_w (av_[1])
/* bin<->block macros */ /* bin<->block macros */
#define idx2binblock(ix) ((unsigned)1 << (ix / BINBLOCKWIDTH)) #define idx2binblock(ix) ((unsigned)1 << (ix / BINBLOCKWIDTH))
#define mark_binblock(ii) (binblocks |= idx2binblock(ii)) #define mark_binblock(ii) (binblocks_w = (mbinptr)(binblocks_r | idx2binblock(ii)))
#define clear_binblock(ii) (binblocks &= ~(idx2binblock(ii))) #define clear_binblock(ii) (binblocks_w = (mbinptr)(binblocks_r & ~(idx2binblock(ii))))
...@@ -2250,17 +2251,17 @@ Void_t* mALLOc(bytes) size_t bytes; ...@@ -2250,17 +2251,17 @@ Void_t* mALLOc(bytes) size_t bytes;
search for best fitting chunk by scanning bins in blockwidth units. search for best fitting chunk by scanning bins in blockwidth units.
*/ */
if ( (block = idx2binblock(idx)) <= binblocks) if ( (block = idx2binblock(idx)) <= binblocks_r)
{ {
/* Get to the first marked block */ /* Get to the first marked block */
if ( (block & binblocks) == 0) if ( (block & binblocks_r) == 0)
{ {
/* force to an even block boundary */ /* force to an even block boundary */
idx = (idx & ~(BINBLOCKWIDTH - 1)) + BINBLOCKWIDTH; idx = (idx & ~(BINBLOCKWIDTH - 1)) + BINBLOCKWIDTH;
block <<= 1; block <<= 1;
while ((block & binblocks) == 0) while ((block & binblocks_r) == 0)
{ {
idx += BINBLOCKWIDTH; idx += BINBLOCKWIDTH;
block <<= 1; block <<= 1;
...@@ -2315,7 +2316,7 @@ Void_t* mALLOc(bytes) size_t bytes; ...@@ -2315,7 +2316,7 @@ Void_t* mALLOc(bytes) size_t bytes;
{ {
if ((startidx & (BINBLOCKWIDTH - 1)) == 0) if ((startidx & (BINBLOCKWIDTH - 1)) == 0)
{ {
binblocks &= ~block; av_[1] = (mbinptr)(binblocks_r & ~block);
break; break;
} }
--startidx; --startidx;
...@@ -2324,9 +2325,9 @@ Void_t* mALLOc(bytes) size_t bytes; ...@@ -2324,9 +2325,9 @@ Void_t* mALLOc(bytes) size_t bytes;
/* Get to the next possibly nonempty block */ /* Get to the next possibly nonempty block */
if ( (block <<= 1) <= binblocks && (block != 0) ) if ( (block <<= 1) <= binblocks_r && (block != 0) )
{ {
while ((block & binblocks) == 0) while ((block & binblocks_r) == 0)
{ {
idx += BINBLOCKWIDTH; idx += BINBLOCKWIDTH;
block <<= 1; block <<= 1;
......
...@@ -162,6 +162,30 @@ int get_clocks (void) ...@@ -162,6 +162,30 @@ int get_clocks (void)
gd->cpu_clk = clkin; gd->cpu_clk = clkin;
} }
#ifdef CONFIG_PCI
gd->pci_clk = clkin;
if (sccr & SCCR_PCI_MODE) {
uint pci_div;
uint pcidf = (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT;
if (sccr & SCCR_PCI_MODCK) {
pci_div = 2;
if (pcidf == 9) {
pci_div *= 5;
} else if (pcidf == 0xB) {
pci_div *= 6;
} else {
pci_div *= (pcidf + 1);
}
} else {
pci_div = pcidf + 1;
}
gd->pci_clk = (gd->cpm_clk * 2) / pci_div;
}
#endif
return (0); return (0);
} }
...@@ -220,26 +244,9 @@ int prt_8260_clks (void) ...@@ -220,26 +244,9 @@ int prt_8260_clks (void)
printf (" - cpu_clk %10ld, cpm_clk %10ld, bus_clk %10ld\n", printf (" - cpu_clk %10ld, cpm_clk %10ld, bus_clk %10ld\n",
gd->cpu_clk, gd->cpm_clk, gd->bus_clk); gd->cpu_clk, gd->cpm_clk, gd->bus_clk);
#ifdef CONFIG_PCI
if (sccr & SCCR_PCI_MODE) { printf (" - pci_clk %10ld\n", gd->pci_clk);
uint pci_div; #endif
uint pcidf = (sccr & SCCR_PCIDF_MSK) >> SCCR_PCIDF_SHIFT;
if (sccr & SCCR_PCI_MODCK) {
pci_div = 2;
if (pcidf == 9) {
pci_div *= 5;
} else if (pcidf == 0xB) {
pci_div *= 6;
} else {
pci_div *= (pcidf + 1);
}
} else {
pci_div = pcidf + 1;
}
printf (" - pci_clk %10ld\n", (gd->cpm_clk * 2) / pci_div);
}
putc ('\n'); putc ('\n');
return (0); return (0);
......
...@@ -173,12 +173,11 @@ i2c_init(int speed, int slaveadd) ...@@ -173,12 +173,11 @@ i2c_init(int speed, int slaveadd)
static __inline__ int static __inline__ int
i2c_wait4bus(void) i2c_wait4bus(void)
{ {
ulong timeval = get_timer(0); unsigned long long timeval = get_ticks();
while (readb(&i2c_dev[i2c_bus_num]->sr) & I2C_SR_MBB) { while (readb(&i2c_dev[i2c_bus_num]->sr) & I2C_SR_MBB) {
if (get_timer(timeval) > I2C_TIMEOUT) { if ((get_ticks() - timeval) > usec2ticks(I2C_TIMEOUT))
return -1; return -1;
}
} }
return 0; return 0;
...@@ -188,7 +187,7 @@ static __inline__ int ...@@ -188,7 +187,7 @@ static __inline__ int
i2c_wait(int write) i2c_wait(int write)
{ {
u32 csr; u32 csr;
ulong timeval = get_timer(0); unsigned long long timeval = get_ticks();
do { do {
csr = readb(&i2c_dev[i2c_bus_num]->sr); csr = readb(&i2c_dev[i2c_bus_num]->sr);
...@@ -213,7 +212,7 @@ i2c_wait(int write) ...@@ -213,7 +212,7 @@ i2c_wait(int write)
} }
return 0; return 0;
} while (get_timer (timeval) < I2C_TIMEOUT); } while ((get_ticks() - timeval) < usec2ticks(I2C_TIMEOUT));
debug("i2c_wait: timed out\n"); debug("i2c_wait: timed out\n");
return -1; return -1;
......
...@@ -135,10 +135,10 @@ mmc_cmd(unsigned long cmd, unsigned long arg, ...@@ -135,10 +135,10 @@ mmc_cmd(unsigned long cmd, unsigned long arg,
status = mmci_readl(SR); status = mmci_readl(SR);
} while (!(status & MMCI_BIT(CMDRDY))); } while (!(status & MMCI_BIT(CMDRDY)));
pr_debug("mmc: status 0x%08lx\n", status); pr_debug("mmc: status 0x%08x\n", status);
if (status & error_flags) { if (status & error_flags) {
printf("mmc: command %lu failed (status: 0x%08lx)\n", printf("mmc: command %lu failed (status: 0x%08x)\n",
cmd, status); cmd, status);
return -EIO; return -EIO;
} }
...@@ -245,7 +245,7 @@ out: ...@@ -245,7 +245,7 @@ out:
read_error: read_error:
mmc_cmd(MMC_CMD_SEND_STATUS, mmc_rca << 16, &card_status, R1 | NCR); mmc_cmd(MMC_CMD_SEND_STATUS, mmc_rca << 16, &card_status, R1 | NCR);
printf("mmc: bread failed, status = %08x, card status = %08x\n", printf("mmc: bread failed, status = %08x, card status = %08lx\n",
status, card_status); status, card_status);
goto out; goto out;
} }
...@@ -284,13 +284,13 @@ static void sd_parse_cid(struct mmc_cid *cid, unsigned long *resp) ...@@ -284,13 +284,13 @@ static void sd_parse_cid(struct mmc_cid *cid, unsigned long *resp)
static void mmc_dump_cid(const struct mmc_cid *cid) static void mmc_dump_cid(const struct mmc_cid *cid)
{ {
printf("Manufacturer ID: %02lX\n", cid->mid); printf("Manufacturer ID: %02X\n", cid->mid);
printf("OEM/Application ID: %04lX\n", cid->oid); printf("OEM/Application ID: %04X\n", cid->oid);
printf("Product name: %s\n", cid->pnm); printf("Product name: %s\n", cid->pnm);
printf("Product Revision: %lu.%lu\n", printf("Product Revision: %u.%u\n",
cid->prv >> 4, cid->prv & 0x0f); cid->prv >> 4, cid->prv & 0x0f);
printf("Product Serial Number: %lu\n", cid->psn); printf("Product Serial Number: %lu\n", cid->psn);
printf("Manufacturing Date: %02lu/%02lu\n", printf("Manufacturing Date: %02u/%02u\n",
cid->mdt >> 4, cid->mdt & 0x0f); cid->mdt >> 4, cid->mdt & 0x0f);
} }
...@@ -501,7 +501,7 @@ int mmc_init(int verbose) ...@@ -501,7 +501,7 @@ int mmc_init(int verbose)
mmc_blkdev.part_type = PART_TYPE_DOS; mmc_blkdev.part_type = PART_TYPE_DOS;
mmc_blkdev.block_read = mmc_bread; mmc_blkdev.block_read = mmc_bread;
sprintf((char *)mmc_blkdev.vendor, sprintf((char *)mmc_blkdev.vendor,
"Man %02x%04x Snr %08x", "Man %02x%04x Snr %08lx",
cid.mid, cid.oid, cid.psn); cid.mid, cid.oid, cid.psn);
strncpy((char *)mmc_blkdev.product, cid.pnm, strncpy((char *)mmc_blkdev.product, cid.pnm,
sizeof(mmc_blkdev.product)); sizeof(mmc_blkdev.product));
......
...@@ -205,7 +205,7 @@ static int dataflash_write_at45(struct spi_flash *flash, ...@@ -205,7 +205,7 @@ static int dataflash_write_at45(struct spi_flash *flash,
byte_addr = 0; byte_addr = 0;
} }
debug("SF: AT45: Successfully programmed %u bytes @ 0x%x\n", debug("SF: AT45: Successfully programmed %zu bytes @ 0x%x\n",
len, offset); len, offset);
ret = 0; ret = 0;
...@@ -268,7 +268,7 @@ int dataflash_erase_at45(struct spi_flash *flash, u32 offset, size_t len) ...@@ -268,7 +268,7 @@ int dataflash_erase_at45(struct spi_flash *flash, u32 offset, size_t len)
page_addr++; page_addr++;
} }
debug("SF: AT45: Successfully erased %u bytes @ 0x%x\n", debug("SF: AT45: Successfully erased %zu bytes @ 0x%x\n",
len, offset); len, offset);
ret = 0; ret = 0;
...@@ -351,7 +351,7 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode) ...@@ -351,7 +351,7 @@ struct spi_flash *spi_flash_probe_atmel(struct spi_slave *spi, u8 *idcode)
* params->blocks_per_sector * params->blocks_per_sector
* params->nr_sectors; * params->nr_sectors;
debug("SF: Detected %s with page size %u, total %u bytes\n", debug("SF: Detected %s with page size %lu, total %u bytes\n",
params->name, page_size, asf->flash.size); params->name, page_size, asf->flash.size);
return &asf->flash; return &asf->flash;
......
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
#ifndef __ASM_AVR32_IO_H #ifndef __ASM_AVR32_IO_H
#define __ASM_AVR32_IO_H #define __ASM_AVR32_IO_H
#include <asm/types.h>
#ifdef __KERNEL__ #ifdef __KERNEL__
/* /*
......
...@@ -273,7 +273,9 @@ ...@@ -273,7 +273,9 @@
| SYSREG_BF(name,value)) | SYSREG_BF(name,value))
/* Register access macros */ /* Register access macros */
#define sysreg_read(reg) __builtin_mfsr(SYSREG_##reg) #define sysreg_read(reg) \
#define sysreg_write(reg, value) __builtin_mtsr(SYSREG_##reg, value) ((unsigned long)__builtin_mfsr(SYSREG_##reg))
#define sysreg_write(reg, value) \
__builtin_mtsr(SYSREG_##reg, value)
#endif /* __ASM_AVR32_SYSREG_H__ */ #endif /* __ASM_AVR32_SYSREG_H__ */
...@@ -51,6 +51,9 @@ typedef struct global_data { ...@@ -51,6 +51,9 @@ typedef struct global_data {
unsigned long cpm_clk; unsigned long cpm_clk;
unsigned long scc_clk; unsigned long scc_clk;
unsigned long brg_clk; unsigned long brg_clk;
#ifdef CONFIG_PCI
unsigned long pci_clk;
#endif
#endif #endif
unsigned long mem_clk; unsigned long mem_clk;
#if defined(CONFIG_MPC83XX) #if defined(CONFIG_MPC83XX)
......
...@@ -103,14 +103,6 @@ ...@@ -103,14 +103,6 @@
*/ */
#define CONFIG_SERIAL1 1 /* UART1 on H4 */ #define CONFIG_SERIAL1 1 /* UART1 on H4 */
/*
* I2C configuration
*/
#define CONFIG_HARD_I2C
#define CFG_I2C_SPEED 100000
#define CFG_I2C_SLAVE 1
#define CONFIG_DRIVER_OMAP24XX_I2C
/* allow to overwrite serial and ethaddr */ /* allow to overwrite serial and ethaddr */
#define CONFIG_ENV_OVERWRITE #define CONFIG_ENV_OVERWRITE
#define CONFIG_CONS_INDEX 1 #define CONFIG_CONS_INDEX 1
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册