|  | 
 
 楼主|
发表于 2005-9-27 01:58:35
|
显示全部楼层 
| 源代码和u-boot.bin都已经放在服务器上。请大家帮我测试一下,我现在还不太清楚一些命令该怎么用呢,主要是关心移植问题去了。下面是我的修改列表,主要是参考前人的工作啦! [code:1]
 1.In include/asm-arm/processor.h,line 52,rename "arm;" to "Arm"
 union debug_insn {
 u32        Arm;
 u16        thumb;
 };
 
 Reason:
 Error:
 //////////////////////////////////////////////////////////////////////////////////////
 In file included from cfi_flash.c:48:
 /u/code/denx/u-boot/include/asm/processor.h:52: parse error before `1'
 /u/code/denx/u-boot/include/asm/processor.h:52: warning: no semicolon
 at end of struct or union
 /u/code/denx/u-boot/include/asm/processor.h:54: parse error before `}'
 /u/code/denx/u-boot/include/asm/processor.h:58: field `insn' has incomplete type
 ////////////////////////////////////////////////////////////////////////////////////////
 I think,  at least for that version of the toolchain,  it implicitly
 defines "arm",  and I suspect it defines it to be "1",  thus the errors
 you are seeing.  You may be able to add a -Uarm to eth build line.
 It did solve the problem. Thank you!
 
 > Would you please explain a little bit more why the toolchain
 > implicitly defines "arm"? Should or should not for a toolchain to
 > define this? Or we can simply re-name "arm" in struct debug_insn to
 > another name?
 
 Most compilers predefine a number of things to help coders port/identify
 what the code is being built for.  For example,  on a coldfire target
 __mcf5200 may be defined.  Have a look at:
 
 http://www.ucdot.org/article.pl?sid=02/10/02/035241
 
 I don't think the newer gcc's define "arm" and I cannot recall why the
 current 2.95.3 compiler does,  but if you can easily change the name of
 that field in the structure it would be the safest option IMO,
 
 Cheers,
 Davidm
 2.copy evb4510.h to lumit4510.h ,modified to add flash support for SST39VF1601 from B2.h.
 addjusted some values to suit lumit4510 board.
 /*added to support sst39vf1601, start(24Sep05,Cory)*/
 #define CFG_FLASH_WORD_SIZE                unsigned short        /* flash word size (width)        */
 #define CFG_FLASH_ADDR0                0x5555        /* 1st address for flash config cycles        */
 #define CFG_FLASH_ADDR1                0x2AAA        /* 2nd address for flash config cycles
 
 /*
 * The following defines are added for buggy IOP480 byte interface.
 * All other boards should use the standard values (CPCI405 etc.)
 */
 #define CFG_FLASH_READ0                0x0000        /* 0 is standard                        */
 #define CFG_FLASH_READ1                0x0001        /* 1 is standard                        */
 #define CFG_FLASH_READ2                0x0002        /* 2 is standard                        */
 
 #define FLASH_BASE0_PRELIM CFG_FLASH_BASE         /* FLASH bank #0        */
 /*added to support sst39vf1601, end(24Sep05,Cory)*/
 3.enabled kernel boot args.
 #define CONFIG_BOOTARGS            "console=ttyS0,19200 initrd=0x100a0040,530K root=/dev/ram0 keepinitrd"
 
 4.replaced the flash.c from evb4510 to a flash.c found at:
 http://www.linuxforum.net/forum/showflat.php?Cat=&Board=embedded&Number=569867&page=3&view=collapsed&sb=5&o=0&fpart=all
 
 5.modified some register values to suit lumit4510 board SDRAM and flash configuration in lowlevel_init.S
 according to liming's tftp bootloader for lumit4510.Thanks for his great work.
 
 [/code:1]
 | 
 |