From 11dadd547c08a3480ea153482e99c6ae70b73415 Mon Sep 17 00:00:00 2001 From: wdenk Date: Fri, 27 Feb 2004 00:07:27 +0000 Subject: [PATCH] * Patch by Steven Scholz, 25 Feb 2004: - Timeouts in FPGA code should be based on CFG_HZ - Minor cleanup in code for Altera FPGA ACEX1K * Patch by Steven Scholz, 25 Feb 2004: Changed "Directory Hierarchy" section in README * Patch by Masami Komiya, 25 Feb 2004: Reduce copy count in nfs_read_reply() of NFS code --- CHANGELOG | 10 ++++ README | 152 +++++++++++------------------------------------------- common/ACEX1K.c | 11 ++-- common/spartan2.c | 2 +- common/virtex2.c | 6 +-- net/nfs.c | 4 +- net/nfs.h | 2 +- 7 files changed, 51 insertions(+), 136 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 64277b1..7ca03e2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,16 @@ Changes for U-Boot 1.0.2: ====================================================================== +* Patch by Steven Scholz, 25 Feb 2004: + - Timeouts in FPGA code should be based on CFG_HZ + - Minor cleanup in code for Altera FPGA ACEX1K + +* Patch by Steven Scholz, 25 Feb 2004: + Changed "Directory Hierarchy" section in README + +* Patch by Masami Komiya, 25 Feb 2004: + Reduce copy count in nfs_read_reply() of NFS code + * Patch by Markus Pietrek, 24 Feb 2004: NS9750 DevBoard added diff --git a/README b/README index b5a287c..dc9d975 100644 --- a/README +++ b/README @@ -122,135 +122,45 @@ Directory Hierarchy: - board Board dependent files - common Misc architecture independent functions - cpu CPU specific files + - 74xx_7xx Files specific to Motorola MPC74xx and 7xx CPUs + - arm720t Files specific to ARM 720 CPUs + - arm920t Files specific to ARM 920 CPUs + - arm925t Files specific to ARM 925 CPUs + - arm926ejs Files specific to ARM 926 CPUs + - at91rm9200 Files specific to Atmel AT91RM9200 CPUs + - i386 Files specific to i386 CPUs + - ixp Files specific to Intel XScale IXP CPUs + - mcf52x2 Files specific to Motorola ColdFire MCF52x2 CPUs + - mips Files specific to MIPS CPUs + - mpc5xx Files specific to Motorola MPC5xx CPUs + - mpc5xxx Files specific to Motorola MPC5xxx CPUs + - mpc8xx Files specific to Motorola MPC8xx CPUs + - mpc824x Files specific to Motorola MPC824x CPUs + - mpc8260 Files specific to Motorola MPC8260 CPUs + - mpc85xx Files specific to Motorola MPC85xx CPUs + - nios Files specific to Altera NIOS CPUs + - ppc4xx Files specific to IBM PowerPC 4xx CPUs + - pxa Files specific to Intel XScale PXA CPUs + - s3c44b0 Files specific to Samsung S3C44B0 CPUs + - sa1100 Files specific to Intel StrongARM SA1100 CPUs - disk Code for disk drive partition handling - doc Documentation (don't expect too much) - drivers Commonly used device drivers - dtt Digital Thermometer and Thermostat drivers - examples Example code for standalone applications, etc. - include Header Files -- disk Harddisk interface code +- lib_arm Files generic to ARM architecture +- lib_generic Files generic to all architectures +- lib_i386 Files generic to i386 architecture +- lib_m68k Files generic to m68k architecture +- lib_mips Files generic to MIPS architecture +- lib_nios Files generic to NIOS architecture +- lib_ppc Files generic to PowerPC architecture - net Networking code -- ppc Files generic to PowerPC architecture - post Power On Self Test -- post/arch Symlink to architecture specific Power On Self Test -- post/arch-ppc PowerPC architecture specific Power On Self Test -- post/cpu/mpc8260 MPC8260 CPU specific Power On Self Test -- post/cpu/mpc8xx MPC8xx CPU specific Power On Self Test - rtc Real Time Clock drivers - tools Tools to build S-Record or U-Boot images, etc. -- cpu/74xx_7xx Files specific to Motorola MPC74xx and 7xx CPUs -- cpu/arm925t Files specific to ARM 925 CPUs -- cpu/arm926ejs Files specific to ARM 926 CPUs -- cpu/mpc5xx Files specific to Motorola MPC5xx CPUs -- cpu/mpc8xx Files specific to Motorola MPC8xx CPUs -- cpu/mpc824x Files specific to Motorola MPC824x CPUs -- cpu/mpc8260 Files specific to Motorola MPC8260 CPU -- cpu/mpc85xx Files specific to Motorola MPC85xx CPUs -- cpu/ppc4xx Files specific to IBM 4xx CPUs - - -- board/LEOX/ Files specific to boards manufactured by The LEOX team -- board/LEOX/elpt860 Files specific to ELPT860 boards -- board/RPXClassic - Files specific to RPXClassic boards -- board/RPXlite Files specific to RPXlite boards -- board/at91rm9200dk Files specific to AT91RM9200DK boards -- board/c2mon Files specific to c2mon boards -- board/cmi Files specific to cmi boards -- board/cogent Files specific to Cogent boards - (need further configuration) - Files specific to CPCIISER4 boards -- board/cpu86 Files specific to CPU86 boards -- board/cray/ Files specific to boards manufactured by Cray -- board/cray/L1 Files specific to L1 boards -- board/cu824 Files specific to CU824 boards -- board/ebony Files specific to IBM Ebony board -- board/eric Files specific to ERIC boards -- board/esd/ Files specific to boards manufactured by ESD -- board/esd/adciop Files specific to ADCIOP boards -- board/esd/ar405 Files specific to AR405 boards -- board/esd/canbt Files specific to CANBT boards -- board/esd/cpci405 Files specific to CPCI405 boards -- board/esd/cpciiser4 Files specific to CPCIISER4 boards -- board/esd/common Common files for ESD boards -- board/esd/dasa_sim Files specific to DASA_SIM boards -- board/esd/du405 Files specific to DU405 boards -- board/esd/ocrtc Files specific to OCRTC boards -- board/esd/pci405 Files specific to PCI405 boards -- board/esteem192e - Files specific to ESTEEM192E boards -- board/etx094 Files specific to ETX_094 boards -- board/evb64260 - Files specific to EVB64260 boards -- board/fads Files specific to FADS boards -- board/flagadm Files specific to FLAGADM boards -- board/gen860t Files specific to GEN860T and GEN860T_SC boards -- board/genietv Files specific to GENIETV boards -- board/gth Files specific to GTH boards -- board/hermes Files specific to HERMES boards -- board/hymod Files specific to HYMOD boards -- board/icu862 Files specific to ICU862 boards -- board/ip860 Files specific to IP860 boards -- board/iphase4539 - Files specific to Interphase4539 boards -- board/ivm Files specific to IVMS8/IVML24 boards -- board/lantec Files specific to LANTEC boards -- board/lwmon Files specific to LWMON boards -- board/Marvell Files specific to Marvell development boards -- board/Marvell/db64360 Files specific to db64360 board -- board/Marvell/db64460 Files specific to db64460 board -- board/mbx8xx Files specific to MBX boards -- board/mpc8260ads - Files specific to MPC826xADS and PQ2FADS-ZU/VR boards -- board/mpc8540ads - Files specific to MPC8540ADS boards -- board/mpc8560ads - Files specific to MPC8560ADS boards -- board/mpl/ Files specific to boards manufactured by MPL -- board/mpl/common Common files for MPL boards -- board/mpl/pip405 Files specific to PIP405 boards -- board/mpl/mip405 Files specific to MIP405 boards -- board/mpl/vcma9 Files specific to VCMA9 boards -- board/musenki Files specific to MUSEKNI boards -- board/mvs1 Files specific to MVS1 boards -- board/nx823 Files specific to NX823 boards -- board/oxc Files specific to OXC boards -- board/omap1510inn - Files specific to OMAP 1510 Innovator boards -- board/omap1610inn - Files specific to OMAP 1610 Innovator and H2 boards -- board/pcippc2 Files specific to PCIPPC2/PCIPPC6 boards -- board/pm826 Files specific to PM826 boards -- board/ppmc8260 - Files specific to PPMC8260 boards -- board/snmc/qs850 Files specific to QS850/823 boards -- board/snmc/qs860t Files specific to QS860T boards -- board/rpxsuper - Files specific to RPXsuper boards -- board/rsdproto - Files specific to RSDproto boards -- board/sandpoint - Files specific to Sandpoint boards -- board/sbc8260 Files specific to SBC8260 boards -- board/sacsng Files specific to SACSng boards -- board/siemens Files specific to boards manufactured by Siemens AG -- board/siemens/CCM Files specific to CCM boards -- board/siemens/IAD210 Files specific to IAD210 boards -- board/siemens/SCM Files specific to SCM boards -- board/siemens/pcu_e Files specific to PCU_E boards -- board/sixnet Files specific to SIXNET boards -- board/spd8xx Files specific to SPD8xxTS boards -- board/tqm8260 Files specific to TQM8260 boards -- board/tqm8xx Files specific to TQM8xxL boards -- board/w7o Files specific to W7O boards -- board/walnut405 - Files specific to Walnut405 boards -- board/westel/ Files specific to boards manufactured by Westel Wireless -- board/westel/amx860 Files specific to AMX860 boards -- board/utx8245 Files specific to UTX8245 boards -- board/zpc1900 Files specific to Zephyr Engineering ZPC.1900 board - Software Configuration: ======================= @@ -1412,9 +1322,9 @@ The following options need to be configured: 14 common/cmd_bootm.c No initial ramdisk, no multifile, continue. 15 common/cmd_bootm.c All preparation done, transferring control to OS - -30 lib_ppc/board.c Fatal error, hang the system - -31 post/post.c POST test failed, detected by post_output_backlog() - -32 post/post.c POST test failed, detected by post_run_single() + -30 lib_ppc/board.c Fatal error, hang the system + -31 post/post.c POST test failed, detected by post_output_backlog() + -32 post/post.c POST test failed, detected by post_run_single() -1 common/cmd_doc.c Bad usage of "doc" command -1 common/cmd_doc.c No boot device diff --git a/common/ACEX1K.c b/common/ACEX1K.c index 53b2f50..2a421e2 100644 --- a/common/ACEX1K.c +++ b/common/ACEX1K.c @@ -31,17 +31,12 @@ #if (CONFIG_FPGA & (CFG_ALTERA | CFG_ACEX1K)) /* Define FPGA_DEBUG to get debug printf's */ -/* #define FPGA_DEBUG */ - #ifdef FPGA_DEBUG #define PRINTF(fmt,args...) printf (fmt ,##args) #else #define PRINTF(fmt,args...) #endif -#undef CFG_FPGA_CHECK_BUSY -#define CFG_FPGA_PROG_FEEDBACK - /* Note: The assumption is that we cannot possibly run fast enough to * overrun the device (the Slave Parallel mode can free run at 50MHz). * If there is a need to operate slower, define CONFIG_FPGA_DELAY in @@ -52,7 +47,7 @@ #endif #ifndef CFG_FPGA_WAIT -#define CFG_FPGA_WAIT 100 +#define CFG_FPGA_WAIT CFG_HZ/10 /* 100 ms */ #endif static int ACEX1K_ps_load( Altera_desc *desc, void *buf, size_t bsize ); @@ -162,7 +157,7 @@ static int ACEX1K_ps_load (Altera_desc * desc, void *buf, size_t bsize) __FUNCTION__, &fn, fn, fn->config, fn->status, fn->clk, fn->data, fn->done); #ifdef CFG_FPGA_PROG_FEEDBACK - printf ("Loading FPGA Device %d (@ %ld)...\n", cookie, ts); + printf ("Loading FPGA Device %d...", cookie); #endif /* @@ -246,7 +241,7 @@ static int ACEX1K_ps_load (Altera_desc * desc, void *buf, size_t bsize) CONFIG_FPGA_DELAY (); #ifdef CFG_FPGA_PROG_FEEDBACK - putc ('\n'); /* terminate the dotted line */ + putc (' '); /* terminate the dotted line */ #endif /* diff --git a/common/spartan2.c b/common/spartan2.c index 279a426..0fb23b6 100644 --- a/common/spartan2.c +++ b/common/spartan2.c @@ -47,7 +47,7 @@ #endif #ifndef CFG_FPGA_WAIT -#define CFG_FPGA_WAIT 10 +#define CFG_FPGA_WAIT CFG_HZ/100 /* 10 ms */ #endif static int Spartan2_sp_load( Xilinx_desc *desc, void *buf, size_t bsize ); diff --git a/common/virtex2.c b/common/virtex2.c index b519be9..bb44eaa 100644 --- a/common/virtex2.c +++ b/common/virtex2.c @@ -80,7 +80,7 @@ * an XC2V1000, if anyone can ever get ahold of one. */ #ifndef CFG_FPGA_WAIT_INIT -#define CFG_FPGA_WAIT_INIT 500 /* time in milliseconds */ +#define CFG_FPGA_WAIT_INIT CFG_HZ/2 /* 500 ms */ #endif /* @@ -89,14 +89,14 @@ * clock frequencies (i.e. 66 MHz or less), BUSY monitoring is unnecessary. */ #ifndef CFG_FPGA_WAIT_BUSY -#define CFG_FPGA_WAIT_BUSY 5 /* time in milliseconds */ +#define CFG_FPGA_WAIT_BUSY CFG_HZ/200 /* 5 ms*/ #endif /* Default timeout for waiting for FPGA to enter operational mode after * configuration data has been written. */ #ifndef CFG_FPGA_WAIT_CONFIG -#define CFG_FPGA_WAIT_CONFIG 200 /* time in milliseconds */ +#define CFG_FPGA_WAIT_CONFIG CFG_HZ/5 /* 200 ms */ #endif static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize); diff --git a/net/nfs.c b/net/nfs.c index 069f072..2363d61 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -542,7 +542,7 @@ nfs_read_reply (uchar *pkt, unsigned len) printf ("%s\n", __FUNCTION__); #endif - memcpy ((uchar *)&rpc_pkt, pkt, len); + memcpy ((uchar *)&rpc_pkt, pkt, sizeof(rpc_pkt.u.reply)); if (rpc_pkt.u.reply.rstatus || rpc_pkt.u.reply.verifier || @@ -565,7 +565,7 @@ nfs_read_reply (uchar *pkt, unsigned len) } rlen = ntohl(rpc_pkt.u.reply.data[18]); - store_block ((uchar *)&(rpc_pkt.u.reply.data[19]), nfs_offset, rlen); + store_block ((uchar *)pkt+sizeof(rpc_pkt.u.reply), nfs_offset, rlen); return rlen; } diff --git a/net/nfs.h b/net/nfs.h index ebd4266..712afa0 100644 --- a/net/nfs.h +++ b/net/nfs.h @@ -62,7 +62,7 @@ struct rpc_t { uint32_t verifier; uint32_t v2; uint32_t astatus; - uint32_t data[1]; + uint32_t data[19]; } reply; } u; };