[U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
Scott Wood
scottwood at freescale.com
Fri Dec 11 21:51:08 CET 2009
Bob Winslow wrote:
> I guess I don't understand TEXT_BASE very well.. and how it relates to
> the boot location:
>
> From the manual:
> 4.4.3.3 Boot ROM Location
> The MPC8568E defines the default boot ROM address range
> to be 8 Mbytes at address 0x0_FF80_0000
> to 0x0_FFFF_FFFF. However, which peripheral interface
> handles these boot ROM accesses can be
> selected at power on.
>
> What do I need to change to get a uboot image for the rom of reasonable
> size(say 512k instead of the 4meg)??? I have tried to change
> the value of TEXT_BASE to (xFFF8_0000) in the config.mk file(and other
> entries) but I must not be doing something else right..
What specifically happened when you tried changing TEXT_BASE?
> Any
> suggestions/help would
> be greatly appreciated!! Am I writng the u-boot.bin to the wrong
> location in the flash when it is 512k?
You should write it to the end of flash.
> Below is the relevant info from the files I think:
>
> Thanks for your help in advance!
>
> Bob
>
>
> *********** config.mk file
>
> TEXT_BASE = 0xffc00000
The size of your image is going to be RESET_VECTOR_ADDRESS - TEXT_BASE +
4. Note that TEXT_BASE/RESET_VECTOR_ADDRESS should be set to the
appropriate offset from where u-boot puts the flash. This isn't
necessarily where the hardware maps the flash on power-on, though from
your board config it doesn't look like you move it.
> ********** from the include/configs/sevis8567.h file
>
> /*
> * Base addresses -- Note these are effective addresses where the
> * actual resources get mapped (not physical addresses)
> */
> #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 /* CCSRBAR
> Default */
> #define CONFIG_SYS_CCSRBAR 0xe0000000 /* relocated
> CCSRBAR */
> #define CONFIG_SYS_CCSRBAR_PHYS CONFIG_SYS_CCSRBAR /* physical addr
> of CCSRBAR */
> #define CONFIG_SYS_IMMR CONFIG_SYS_CCSRBAR /* PQII uses
> CONFIG_SYS_IMMR */
> #define CONFIG_SYS_DDR_SDRAM_BASE 0x00000000 /* DDR is system
> memory*/
> #define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE
> #define CONFIG_SYS_FLASH_BASE 0xfe000000 /* start of
> FLASH 8M */
4M flash or 8M?
> #define CONFIG_SYS_LBC_FLASH_BASE CONFIG_SYS_FLASH_BASE
>
> /*Chip select 0 - Flash*/
> #define CONFIG_SYS_BR0_PRELIM 0xfe001001
> #define CONFIG_SYS_OR0_PRELIM 0xfe006ff7
This is configuring the flash window for 32M... It should be harmless,
though -- the flash contents should just repeat within that window.
> **************** from board/sevis/law.c
> struct law_entry law_table[] = {
> SET_LAW(CONFIG_SYS_DDR_SDRAM_BASE, LAW_SIZE_512M, LAW_TRGT_IF_DDR),
>
> /* LBC window */
> SET_LAW(CONFIG_SYS_LBC_CPLD_BASE, LAW_SIZE_16M, LAW_TRGT_IF_LBC),
> SET_LAW(CONFIG_SYS_LBC_E1_IF_BASE, LAW_SIZE_16M, LAW_TRGT_IF_LBC),
> SET_LAW(CONFIG_SYS_LBC_DSP_BASE, LAW_SIZE_16M, LAW_TRGT_IF_LBC),
> SET_LAW(CONFIG_SYS_LBC_FPGA_BASE, LAW_SIZE_16M, LAW_TRGT_IF_LBC),
> SET_LAW(CONFIG_SYS_LBC_FLASH_BASE, LAW_SIZE_16M, LAW_TRGT_IF_LBC),
This looks like a problem -- you're setting the flash LAW to be only
16M, but the window is 32M... Either change
TEXT_BASE/RESET_VECTOR_ADDRESS to be within the LAW, or extend/move the LAW.
-Scott
More information about the U-Boot
mailing list