|
楼主 |
发表于 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] |
|