Index: u-boot-1.1.4/board/barco/barco.c =================================================================== --- u-boot-1.1.4.orig/board/barco/barco.c 2005-12-16 17:39:27.000000000 +0100 +++ u-boot-1.1.4/board/barco/barco.c 2006-04-10 06:01:49.594293328 +0200 @@ -1,37 +1,6 @@ /******************************************************************** * - * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms - * - * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/barco.c,v $ - * $Revision: 1.4 $ - * $Author: mleeman $ - * $Date: 2005/03/02 16:40:20 $ - * - * Last ChangeLog Entry - * $Log: barco.c,v $ - * Revision 1.4 2005/03/02 16:40:20 mleeman - * remove empty labels (3.4 complains) - * - * Revision 1.3 2005/02/21 12:48:58 mleeman - * update of copyright years (feedback wd) - * - * Revision 1.2 2005/02/21 10:10:53 mleeman - * - split up switch statement to a function call (Linux kernel coding guidelines) - * ( feedback wd) - * - * Revision 1.1 2005/02/14 09:31:07 mleeman - * renaming of files - * - * Revision 1.1 2005/02/14 09:23:46 mleeman - * - moved 'barcohydra' directory to a more generic barco; since we will be - * supporting and adding multiple boards - * - * Revision 1.3 2005/02/10 13:57:32 mleeman - * fixed flash corruption: I should exit from the moment I find the correct value - * - * Revision 1.2 2005/02/09 12:56:23 mleeman - * add generic header to track changes in sources - * + * Unless otherwise specified, Copyright (C) 2004-2006 Barco Control Rooms * *******************************************************************/ @@ -62,11 +31,36 @@ #include #include "config.h" -#include "barco_svc.h" + +#include +#include + +/* Defines for the bcd8245g1 firmware */ +#ifndef CFG_FLASH_ERASE_SECTOR_LENGTH +#define CFG_FLASH_ERASE_SECTOR_LENGTH (0x10000) +#endif + +#ifndef CFG_DEFAULT_KERNEL_ADDRESS +#define CFG_DEFAULT_KERNEL_ADDRESS (CFG_FLASH_BASE + 0x30000) +#endif + +#ifndef CFG_WORKING_KERNEL_ADDRESS +#define CFG_WORKING_KERNEL_ADDRESS (0xFFE00000) +#endif + +/* Prototypes */ +int checkboard(void); +long int initdram(int board_type); +void pci_init_board(void); +void check_flash(void); +int write_flash(char *addr, char value); +unsigned find_boot_info(void); +void final_boot(void); #define TRY_WORKING (3) #define BOOT_DEFAULT (2) #define BOOT_WORKING (1) +#define BOOT_SCRIPT (0) int checkboard (void) { @@ -109,7 +103,7 @@ * Initialize PCI Devices, report devices found. */ #ifndef CONFIG_PCI_PNP -static struct pci_config_table pci_barcohydra_config_table[] = { +static struct pci_config_table pci_bcd8245g1_config_table[] = { { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x0f, PCI_ANY_ID, pci_cfgfunc_config_device, { PCI_ENET0_IOADDR, PCI_ENET0_MEMADDR, @@ -124,7 +118,7 @@ struct pci_controller hose = { #ifndef CONFIG_PCI_PNP - config_table: pci_barcohydra_config_table, + config_table: pci_bcd8245g1_config_table, #endif }; @@ -172,130 +166,206 @@ unsigned update_flash (unsigned char *buf) { switch ((*buf) & 0x3) { + case BOOT_SCRIPT: + return BOOT_SCRIPT; case TRY_WORKING: printf ("found 3 and converted it to 2\n"); write_flash ((char *)buf, (*buf) & 0xFE); *((unsigned char *)0xFF800000) = 0xF0; udelay (100); printf ("buf [%#010x] %#010x\n", buf, (*buf)); - /* XXX - fall through??? */ + /* We adjusted the "TRY_WORKING" to "DEFAULT" and now + * we boot the working. If something goes wrong, we return + * to the working default - fall through. */ case BOOT_WORKING : return BOOT_WORKING; } return BOOT_DEFAULT; } -unsigned scan_flash (void) +char* find_section(char* section, char** endp) { - char section[] = "kernel"; - int cfgFileLen = (CFG_FLASH_ERASE_SECTOR_LENGTH >> 1); - int sectionPtr = 0; - int foundItem = 0; /* 0: None, 1: section found, 2: "=" found */ - int bufPtr; + int config_len = (CFG_FLASH_ERASE_SECTOR_LENGTH >> 1); + char *startp; unsigned char *buf; + unsigned i; buf = (unsigned char*)(CFG_FLASH_RANGE_BASE + CFG_FLASH_RANGE_SIZE \ - CFG_FLASH_ERASE_SECTOR_LENGTH); - for (bufPtr = 0; bufPtr < cfgFileLen; ++bufPtr) { - if ((buf[bufPtr]==0xFF) && (*(int*)(buf+bufPtr)==0xFFFFFFFF)) { - return BOOT_DEFAULT; - } - /* This is the scanning loop, we try to find a particular - * quoted value - */ - switch (foundItem) { - case 0: - if ((section[sectionPtr] == 0)) { - ++foundItem; - } else if (buf[bufPtr] == section[sectionPtr]) { - ++sectionPtr; - } else { - sectionPtr = 0; + startp = buf; + + /* side effect: if endp is not set; look for it and return it */ + if(!(*endp)) { + for(i = 0; i < config_len; i++) { + /* look for end of written flash (raw). note that we + * always assume that at least one word is empty in flash */ + if ((buf[i]==0xFF) && (*(int*)(buf+i)==0xFFFFFFFF)) { + *endp = &buf[i]; } + } + } + + while(startp < *endp) { + if(!strncmp(startp, section, strlen(section))) { + /* found the section, + * postion the pointer at the end of the section + * inc 1 for the '=' sign */ + return startp + strlen (section)+1; + } + else{ + startp++; + } + } + + /* oopsie, nothing found */ + return NULL; +} + +unsigned scan_flash_bootimage (void) +{ + char *p, *endp = NULL; + + if (! (p = find_section("kernel",&endp))) { + return BOOT_DEFAULT; + } + + if (*p != '"') { + return BOOT_DEFAULT; + } + else{ + p++; + return update_flash (p); + } +} + +char* scan_flash_bootcommand (void) +{ + char* bootcommand; + char *endp = NULL, *curp; + char *string; + + if (!(bootcommand = find_section("bootloader", &endp))){ + return NULL; + } + /* we now have the start pointer, we skip the first " char and + * look for the next one. everything in between can be the parameters + * to use for booting the board */ + if(*bootcommand != '"') { + return NULL; + } + else{ + bootcommand++; + } + + curp = bootcommand; + while(curp < endp) { + if(*curp == '"') { break; - case 1: - ++foundItem; - break; - case 2: - ++foundItem; - break; - case 3: - default: - return update_flash (&buf[bufPtr - 1]); + } + else{ + curp++; } } - printf ("Failed to read %s\n",section); - return BOOT_DEFAULT; + string = (char*)malloc((curp - bootcommand) * sizeof(char)); + strncpy(string,bootcommand,curp-bootcommand); + string[curp-bootcommand-1]='\0'; + + return string; } -TSBootInfo* find_boot_info (void) +unsigned find_boot_info (void) { - unsigned bootimage = scan_flash (); - TSBootInfo* info = (TSBootInfo*)malloc (sizeof(TSBootInfo)); + unsigned bootimage = scan_flash_bootimage (); + unsigned address = 0x0; + char *command = NULL; switch (bootimage) { + case BOOT_SCRIPT: + /* this should result in scanning the flash for a custom + * command instead of the hardcoded factory and upgrade + * addresses */ + command = scan_flash_bootcommand(); + if(!command) { + /* no command was found, do not break backwardward + * compatibility */ + setenv("bootargs", "noinitrd ip=bootp root=/dev/nfs rw"); + address = CFG_WORKING_KERNEL_ADDRESS; + } + else{ + /* Replace cr/lf with ' ' */ + unsigned i = 0; + + while (command[i] != 0) { + if ((command[i] == '\r') || (command[i] == '\n')) { + command[i] = ' '; + } + i++; + } + + /* we got a valid command; we execute this before + * continuing */ + run_command(command,0); + address = simple_strtoul(getenv("bootaddr"),NULL,16); + } + printf("Script to pass to bootloader:\n>>%s<<\n",command); + break; case TRY_WORKING: - info->address = CFG_WORKING_KERNEL_ADDRESS; + setenv("bootargs", "noinitrd root=/dev/mtdblock1 rw"); + address = CFG_WORKING_KERNEL_ADDRESS; break; case BOOT_WORKING : - info->address = CFG_WORKING_KERNEL_ADDRESS; + setenv("bootargs", "noinitrd root=/dev/mtdblock1 rw"); + address = CFG_WORKING_KERNEL_ADDRESS; break; case BOOT_DEFAULT: default: - info->address= CFG_DEFAULT_KERNEL_ADDRESS; + setenv("bootargs", "noinitrd root=/dev/mtdblock0 ro"); + address= CFG_DEFAULT_KERNEL_ADDRESS; + + } + /* We need to keep this 8 bytes due to Benoit's userspace mess, + * too large of an install base this is removed in newer board + * configurations. */ + unsigned *maskptr = (unsigned*)address; + maskptr++; + if(*maskptr == 0x55555555){ + printf ("Dirty kernel image at %#10x, adjusting.\n", address); + address += 8; } - info->size = *((unsigned int *)(info->address )); - return info; + return address; } void barcobcd_boot (void) { - TSBootInfo* start; char *bootm_args[2]; - char *buf; - int cnt; extern int do_bootm (cmd_tbl_t *, int, int, char *[]); + unsigned boot_address = 0x0; - buf = (char *)(0x00800000); - /* make certain there are enough chars to print the command line here! - */ + /* initialise RAM memory */ + *((unsigned int *)0xFEC00000) = 0x00141A98; + + /* make certain there are enough chars to print the command line + * here */ bootm_args[0] = (char *)malloc (16*sizeof(char)); bootm_args[1] = (char *)malloc (16*sizeof(char)); - start = find_boot_info (); + boot_address = find_boot_info (); - printf ("Booting kernel at address %#10x with size %#10x\n", - start->address, start->size); + printf ("Booting kernel at address %#10x\n", boot_address); /* give length of the kernel image to bootm */ - sprintf (bootm_args[0],"%x",start->size); + sprintf (bootm_args[0],"%x", 0); /* give address of the kernel image to bootm */ - sprintf (bootm_args[1],"%x",buf); - - printf ("flash address: %#10x\n",start->address+8); - printf ("buf address: %#10x\n",buf); + sprintf (bootm_args[1],"%x",boot_address); - /* aha, we reserve 8 bytes here... */ - for (cnt = 0; cnt < start->size ; cnt++) { - buf[cnt] = ((char *)start->address)[cnt+8]; - } - - /* initialise RAM memory */ - *((unsigned int *)0xFEC00000) = 0x00141A98; do_bootm (NULL,0,2,bootm_args); } int barcobcd_boot_image (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { -#if 0 - if (argc > 1) { - printf ("Usage:\n (%d) %s\n", argc, cmdtp->usage); - return 1; - } -#endif barcobcd_boot (); return 0; @@ -321,6 +391,7 @@ " boot_default - check flash value and boot the appropriate image\n", "\n" ); + /* * We are not using serial communication, so just provide empty functions */ Index: u-boot-1.1.4/include/configs/barco.h =================================================================== --- u-boot-1.1.4.orig/include/configs/barco.h 2005-12-16 17:39:27.000000000 +0100 +++ u-boot-1.1.4/include/configs/barco.h 2006-04-10 06:01:49.768266880 +0200 @@ -1,23 +1,6 @@ /******************************************************************** * - * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms - * - * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/include/configs/barco.h,v $ - * $Revision: 1.2 $ - * $Author: mleeman $ - * $Date: 2005/02/21 12:48:58 $ - * - * Last ChangeLog Entry - * $Log: barco.h,v $ - * Revision 1.2 2005/02/21 12:48:58 mleeman - * update of copyright years (feedback wd) - * - * Revision 1.1 2005/02/14 09:29:25 mleeman - * moved barcohydra.h to barco.h - * - * Revision 1.4 2005/02/09 12:56:23 mleeman - * add generic header to track changes in sources - * + * Unless otherwise specified, Copyright (C) 2004-2006 Barco Control Rooms * *******************************************************************/ @@ -60,47 +43,57 @@ #define CONFIG_MPC824X 1 #define CONFIG_MPC8245 1 -#define CONFIG_BARCOBCD_STREAMING 1 - -#undef USE_DINK32 +#define CONFIG_BARCO_BCD8245G1 1 -#define CONFIG_CONS_INDEX 3 /* set to '3' for on-chip DUART */ -#define CONFIG_BAUDRATE 9600 +#define CONFIG_CONS_INDEX 3 /* set to '3' for on-chip DUART */ +#define CONFIG_BAUDRATE 115200 #define CONFIG_DRAM_SPEED 100 /* MHz */ -#define CONFIG_BOOTARGS "mem=32M" /* Add support for a few extra bootp options like: * - File size * - DNS */ #define CONFIG_BOOTP_MASK (CONFIG_BOOTP_DEFAULT | \ - CONFIG_BOOTP_BOOTFILESIZE | \ - CONFIG_BOOTP_DNS) - -#define CONFIG_COMMANDS ( CONFIG_CMD_DFL | \ - CFG_CMD_ELF | \ - CFG_CMD_I2C | \ - CFG_CMD_EEPROM | \ - CFG_CMD_PCI ) + CONFIG_BOOTP_SUBNETMASK | \ + CONFIG_BOOTP_GATEWAY | \ + CONFIG_BOOTP_BOOTFILESIZE \ + ) + +#define CONFIG_COMMANDS ( CONFIG_CMD_EEPROM |\ + CFG_CMD_NET | \ + CFG_CMD_PCI | \ + CFG_CMD_DHCP ) /* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ #include #define CONFIG_HUSH_PARSER 1 /* use "hush" command parser */ #define CONFIG_BOOTDELAY 1 -#define CONFIG_BOOTCOMMAND "boot_default" +#undef CONFIG_BOOTARGS /* the boot command sets the bootargs */ +#if 0 +#define CONFIG_BOOTCOMMAND \ + "bootp; " \ + "setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " \ + "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \ + "bootm; " +#else +#define CONFIG_BOOTCOMMAND "boot_default" +#endif + +#define CONFIG_NET_RETRY_COUNT (1) /* * Miscellaneous configurable options */ #define CFG_LONGHELP 1 /* undef to save memory */ +#undef CFG_LONGHELP #define CFG_PROMPT "=> " /* Monitor Command Prompt */ #define CFG_CBSIZE 256 /* Console I/O Buffer Size */ #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ #define CFG_MAXARGS 16 /* max number of command args */ #define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ -#define CFG_LOAD_ADDR 0x00100000 /* default load address */ +#define CFG_LOAD_ADDR 0x00400000 /* default load address */ #define CFG_HZ 1000 /* decrementer freq: 1 ms ticks */ @@ -109,8 +102,9 @@ *----------------------------------------------------------------------- */ #define CONFIG_PCI /* include pci support */ -#undef CONFIG_PCI_PNP -#undef CFG_CMD_NET +#define CONFIG_PCI_PNP +#define CONFIG_NET_MULTI +#define CONFIG_EEPRO100 #define PCI_ENET0_IOADDR 0x80000000 #define PCI_ENET0_MEMADDR 0x80000000 @@ -135,16 +129,6 @@ #define CFG_RESET_ADDRESS 0xFFF00100 -#if defined (USE_DINK32) -#define CFG_MONITOR_LEN 0x00030000 -#define CFG_MONITOR_BASE 0x00090000 -#define CFG_RAMBOOT 1 -#define CFG_INIT_RAM_ADDR (CFG_MONITOR_BASE + CFG_MONITOR_LEN) -#define CFG_INIT_RAM_END 0x10000 -#define CFG_GBL_DATA_SIZE 256 /* size in bytes reserved for initial data */ -#define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) -#define CFG_INIT_SP_OFFSET CFG_GBL_DATA_OFFSET -#else #undef CFG_RAMBOOT #define CFG_MONITOR_LEN 0x00030000 #define CFG_MONITOR_BASE TEXT_BASE @@ -155,8 +139,6 @@ #define CFG_INIT_RAM_END 0x1000 #define CFG_GBL_DATA_OFFSET (CFG_INIT_RAM_END - CFG_GBL_DATA_SIZE) -#endif - #define CFG_FLASH_BASE 0xFFF00000 #define CFG_FLASH_SIZE (8 * 1024 * 1024) /* Unity has onboard 1MByte flash */ #define CFG_ENV_IS_IN_FLASH 1 Index: u-boot-1.1.4/board/barco/barco_svc.h =================================================================== --- u-boot-1.1.4.orig/board/barco/barco_svc.h 2005-12-16 17:39:27.000000000 +0100 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,68 +0,0 @@ -/******************************************************************** - * - * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms - * - * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/barco_svc.h,v $ - * $Revision: 1.2 $ - * $Author: mleeman $ - * $Date: 2005/02/21 12:48:58 $ - * - * Last ChangeLog Entry - * $Log: barco_svc.h,v $ - * Revision 1.2 2005/02/21 12:48:58 mleeman - * update of copyright years (feedback wd) - * - * Revision 1.1 2005/02/14 09:31:07 mleeman - * renaming of files - * - * Revision 1.1 2005/02/14 09:23:46 mleeman - * - moved 'barcohydra' directory to a more generic barco; since we will be - * supporting and adding multiple boards - * - * Revision 1.1 2005/02/08 15:40:19 mleeman - * modified and added platform files - * - * Revision 1.2 2005/01/25 08:05:04 mleeman - * more cleanup of the code - * - * Revision 1.1 2004/07/20 08:49:55 mleeman - * Working version of the default and nfs kernel booting. - * - * - *******************************************************************/ - -#ifndef _LOCAL_BARCOHYDRA_H_ -#define _LOCAL_BARCOHYDRA_H_ - -#include -#include - -/* Defines for the barcohydra board */ -#ifndef CFG_FLASH_ERASE_SECTOR_LENGTH -#define CFG_FLASH_ERASE_SECTOR_LENGTH (0x10000) -#endif - -#ifndef CFG_DEFAULT_KERNEL_ADDRESS -#define CFG_DEFAULT_KERNEL_ADDRESS (CFG_FLASH_BASE + 0x30000) -#endif - -#ifndef CFG_WORKING_KERNEL_ADDRESS -#define CFG_WORKING_KERNEL_ADDRESS (0xFFE00000) -#endif - - -typedef struct SBootInfo { - unsigned int address; - unsigned int size; - unsigned char state; -}TSBootInfo; - -/* barcohydra.c */ -int checkboard(void); -long int initdram(int board_type); -void pci_init_board(void); -void check_flash(void); -int write_flash(char *addr, char value); -TSBootInfo* find_boot_info(void); -void final_boot(void); -#endif Index: u-boot-1.1.4/board/barco/README =================================================================== --- u-boot-1.1.4.orig/board/barco/README 2005-12-16 17:39:27.000000000 +0100 +++ u-boot-1.1.4/board/barco/README 2006-04-10 06:01:49.929242408 +0200 @@ -3,6 +3,8 @@ - Streaming Video Card (SVC) - Sample Compress Network (SCN) + - Source Capture Unit (SCU) + - Hydra Display Graphical Unit Card (H-DGUC) For more information, see http://www.barcocontrolrooms.com/ Index: u-boot-1.1.4/board/barco/flash.c =================================================================== --- u-boot-1.1.4.orig/board/barco/flash.c 2005-12-16 17:39:27.000000000 +0100 +++ u-boot-1.1.4/board/barco/flash.c 2006-04-10 06:01:50.061222344 +0200 @@ -1,30 +1,3 @@ -/******************************************************************** - * - * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms - * - * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/flash.c,v $ - * $Revision: 1.3 $ - * $Author: mleeman $ - * $Date: 2005/02/21 12:48:58 $ - * - * Last ChangeLog Entry - * $Log: flash.c,v $ - * Revision 1.3 2005/02/21 12:48:58 mleeman - * update of copyright years (feedback wd) - * - * Revision 1.2 2005/02/21 11:04:04 mleeman - * remove dead code and Coding style (feedback wd) - * - * Revision 1.1 2005/02/14 09:23:46 mleeman - * - moved 'barcohydra' directory to a more generic barco; since we will be - * supporting and adding multiple boards - * - * Revision 1.2 2005/02/09 12:56:23 mleeman - * add generic header to track changes in sources - * - * - *******************************************************************/ - /* * (C) Copyright 2000 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. Index: u-boot-1.1.4/board/barco/speed.h =================================================================== --- u-boot-1.1.4.orig/board/barco/speed.h 2005-12-16 17:39:27.000000000 +0100 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,78 +0,0 @@ -/******************************************************************** - * - * Unless otherwise specified, Copyright (C) 2004-2005 Barco Control Rooms - * - * $Source: /home/services/cvs/firmware/ppc/u-boot-1.1.2/board/barco/speed.h,v $ - * $Revision: 1.2 $ - * $Author: mleeman $ - * $Date: 2005/02/21 12:48:58 $ - * - * Last ChangeLog Entry - * $Log: speed.h,v $ - * Revision 1.2 2005/02/21 12:48:58 mleeman - * update of copyright years (feedback wd) - * - * Revision 1.1 2005/02/14 09:23:46 mleeman - * - moved 'barcohydra' directory to a more generic barco; since we will be - * supporting and adding multiple boards - * - * Revision 1.2 2005/02/09 12:56:23 mleeman - * add generic header to track changes in sources - * - * - *******************************************************************/ - -/* - * (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 - */ - -/*----------------------------------------------------------------------- - * Timer value for timer 2, ICLK = 10 - * - * SPEED_FCOUNT2 = GCLK / (16 * (TIMER_TMR_PS + 1)) - * SPEED_TMR3_PS = (GCLK / (16 * SPEED_FCOUNT3)) - 1 - * - * SPEED_FCOUNT2 timer 2 counting frequency - * GCLK CPU clock - * SPEED_TMR2_PS prescaler - */ -#define SPEED_TMR2_PS (250 - 1) /* divide by 250 */ - -/*----------------------------------------------------------------------- - * Timer value for PIT - * - * PIT_TIME = SPEED_PITC / PITRTCLK - * PITRTCLK = 8192 - */ -#define SPEED_PITC (82 << 16) /* start counting from 82 */ - -/* - * The new value for PTA is calculated from - * - * PTA = (gclk * Trefresh) / (2 ^ (2 * DFBRG) * PTP * NCS) - * - * gclk CPU clock (not bus clock !) - * Trefresh Refresh cycle * 4 (four word bursts used) - * DFBRG For normal mode (no clock reduction) always 0 - * PTP Prescaler (already adjusted for no. of banks and 4K / 8K refresh) - * NCS Number of SDRAM banks (chip selects) on this UPM. - */ Index: u-boot-1.1.4/board/barco/u-boot.lds =================================================================== --- u-boot-1.1.4.orig/board/barco/u-boot.lds 2005-12-16 17:39:27.000000000 +0100 +++ u-boot-1.1.4/board/barco/u-boot.lds 2006-04-10 11:13:38.049534528 +0200 @@ -101,11 +101,13 @@ _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 = .;