public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
@ 2009-12-11 20:14 Bob Winslow
  2009-12-11 20:51 ` Scott Wood
  0 siblings, 1 reply; 8+ messages in thread
From: Bob Winslow @ 2009-12-11 20:14 UTC (permalink / raw)
  To: u-boot

Hi all,

  MPC8567 u-boot question for the experts out there...


I must be doing something stupid, or I just don't understand how the
8567 boots from rom..., law entries, tables, etc...

Our board is using a MPC8567 with a 4 MEGByte boot rom flash (16
bit).... It has just 512MB of DDR2 memory(no ram on
the local bus).   I can get u-boot to come up to the prompt ok but only
with a rom image(u-boot.bin) of 4MEG BYTE size and
the settings in the files, see below.  I am using the BDI to write the
4meg image to the rom.

I guess I don't understand TEXT_BASE very well..  and how it relates to
the boot location:

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
@ 2009-12-11 20:46 Bob Winslow
  2009-12-11 20:55 ` Scott Wood
  2009-12-13 23:05 ` Wolfgang Denk
  0 siblings, 2 replies; 8+ messages in thread
From: Bob Winslow @ 2009-12-11 20:46 UTC (permalink / raw)
  To: u-boot

last try, sorry about the multiple posts.

I must be doing something stupid, or I just don't understand how the
8567 boots from rom..., law entries, tables, etc...

Our board is using a MPC8567 with a 4 MEGByte boot rom flash (16
bit).... It has just 512MB of DDR2 memory(no ram on
the local bus).   I can get u-boot to come up to the prompt ok but only
with a rom image(u-boot.bin) of 4MEG BYTE size and
the settings in the files, see below.  I am using the BDI to write the
4meg image to the rom. I guess I don't understand TEXT_BASE very well..
and how it relates to the boot location.
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..  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?

 Below is the relevant info from the files I think:

Thanks for your help in advance!

Bob

*********** config.mk file

TEXT_BASE = 0xffc00000


********** 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 */
#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
#define CONFIG_SYS_MONITOR_BASE TEXT_BASE       /* start of monitor */

I have OR's and BR's for the others also, but should not be relevant to
the question so I didnt include.

#define CONFIG_SYS_LBC_LCRR             0x00030002      /* LB clock
ratio reg   */
#define CONFIG_SYS_LCRR_CLKDIV            LCRR_CLKDIV_4
#define CONFIG_SYS_CPLD_BASE    0xD0000000
#define CONFIG_SYS_E1_IF_BASE   0xD1000000
#define CONFIG_SYS_DSP_BASE     0xD2000000
#define CONFIG_SYS_FPGA_BASE    0xD3000000

#define CONFIG_SYS_LBC_CPLD_BASE     CONFIG_SYS_CPLD_BASE
#define CONFIG_SYS_LBC_E1_IF_BASE    CONFIG_SYS_E1_IF_BASE
#define CONFIG_SYS_LBC_DSP_BASE      CONFIG_SYS_DSP_BASE
#define CONFIG_SYS_LBC_FPGA_BASE     CONFIG_SYS_FPGA_BASE
#define CONFIG_SYS_INIT_RAM_LOCK        1
#define CONFIG_SYS_INIT_RAM_ADDR        0xe4010000      /* Initial RAM
address */
#define CONFIG_SYS_INIT_RAM_END 0x4000      /* End of used area in RAM */

#define CONFIG_SYS_GBL_DATA_SIZE        128         /* num bytes initial
data */
#define CONFIG_SYS_GBL_DATA_OFFSET      (CONFIG_SYS_INIT_RAM_END -
CONFIG_SYS_GBL_DATA_SIZE)
#define CONFIG_SYS_INIT_SP_OFFSET       CONFIG_SYS_GBL_DATA_OFFSET

#define CONFIG_SYS_MONITOR_LEN          (~TEXT_BASE + 1)/* Reserved for
Monitor */
#define CONFIG_SYS_MALLOC_LEN           (384 * 1024)    /* Reserved for
malloc  */
/*
 * Environment
 */
#define CONFIG_ENV_IS_IN_FLASH  1
#define CONFIG_ENV_SECT_SIZE    0x2000  /* 256K(one sector) for env */
#define CONFIG_ENV_ADDR         (CONFIG_SYS_FLASH_BASE + 0xD0000)
#define CONFIG_ENV_SIZE         0x2000
#define CONFIG_ENV_OVERWRITE        /* allow user to overwrite serial
and ethaddr */

#define CONFIG_LOADS_ECHO       1       /* echo on for serial download */
#define CONFIG_SYS_LOADS_BAUD_CHANGE    1       /* allow baudrate change */



****************  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),
};

int num_law_entries = ARRAY_SIZE(law_table);

******************  from board/sevis/tlb.c  (the flash table entries I
know must be wrong but the uboot comes up when these are set this way)

struct fsl_e_tlb_entry tlb_table[] = {
        /* TLB 0 - for temp stack in cache */
        SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR, CONFIG_SYS_INIT_RAM_ADDR,
                      MAS3_SX|MAS3_SW|MAS3_SR, 0,
                      0, 0, BOOKE_PAGESZ_4K, 0),
        SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 4 * 1024 ,
CONFIG_SYS_INIT_RAM_ADDR + 4 * 1024,
                      MAS3_SX|MAS3_SW|MAS3_SR, 0,
                      0, 0, BOOKE_PAGESZ_4K, 0),
        SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 8 * 1024 ,
CONFIG_SYS_INIT_RAM_ADDR + 8 * 1024,
                      MAS3_SX|MAS3_SW|MAS3_SR, 0,
                      0, 0, BOOKE_PAGESZ_4K, 0),
        SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 12 * 1024 ,
CONFIG_SYS_INIT_RAM_ADDR + 12 * 1024,
                      MAS3_SX|MAS3_SW|MAS3_SR, 0,
                      0, 0, BOOKE_PAGESZ_4K, 0),

        /* TLB 1 Initializations */
        /*
         * TLBe 0:      16M     Non-cacheable, guarded
         * 0xff000000   16M     FLASH (upper half)
         * Out of reset this entry is only 4K.
         */
        SET_TLB_ENTRY(1, CONFIG_SYS_FLASH_BASE + 0x1000000,
CONFIG_SYS_FLASH_BASE + 0x1000000,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 0, BOOKE_PAGESZ_16M, 1),

        /*
         * TLBe 1:      16M     Non-cacheable, guarded
         * 0xfe000000   16M     FLASH (lower half)
         */
        SET_TLB_ENTRY(1, CONFIG_SYS_FLASH_BASE, CONFIG_SYS_FLASH_BASE,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 1, BOOKE_PAGESZ_16M, 1),

        /*
         * TLBe 2:      64M     Non-cacheable, guarded
         * 0xe000_0000  1M      CCSRBAR
         * 0xe200_0000  8M      PCI1 IO
         * 0xe280_0000  8M      PCIe IO
         */
        SET_TLB_ENTRY(1, CONFIG_SYS_CCSRBAR, CONFIG_SYS_CCSRBAR_PHYS,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 2, BOOKE_PAGESZ_64M, 1),
        /*
         * TLB 3+4:     512M     DDR, cache disabled (needed for memory
test)
         * 0x00000000   512M     DDR System memory
         * Without SPD EEPROM configured DDR, this must be setup manually.
         */
        SET_TLB_ENTRY (1, CONFIG_SYS_DDR_SDRAM_BASE,
CONFIG_SYS_DDR_SDRAM_BASE,
                       MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G,
                       0, 3, BOOKE_PAGESZ_256M, 1),

        SET_TLB_ENTRY (1, CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000,
                       CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000,
                       MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G,
                       0, 4, BOOKE_PAGESZ_256M, 1),

        SET_TLB_ENTRY(1, CONFIG_SYS_CPLD_BASE, CONFIG_SYS_CPLD_BASE,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 5, BOOKE_PAGESZ_16M, 1),
        SET_TLB_ENTRY(1, CONFIG_SYS_E1_IF_BASE, CONFIG_SYS_E1_IF_BASE,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 6, BOOKE_PAGESZ_16M, 1),
        SET_TLB_ENTRY(1, CONFIG_SYS_DSP_BASE, CONFIG_SYS_DSP_BASE,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 7, BOOKE_PAGESZ_16M, 1),
        SET_TLB_ENTRY(1, CONFIG_SYS_FPGA_BASE, CONFIG_SYS_FPGA_BASE,
                      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
                      0, 8, BOOKE_PAGESZ_16M, 1),


};

int num_tlb_entries = ARRAY_SIZE(tlb_table);

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
  2009-12-11 20:14 Bob Winslow
@ 2009-12-11 20:51 ` Scott Wood
  2009-12-11 22:59   ` Bob Winslow
  0 siblings, 1 reply; 8+ messages in thread
From: Scott Wood @ 2009-12-11 20:51 UTC (permalink / raw)
  To: u-boot

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
  2009-12-11 20:46 [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again Bob Winslow
@ 2009-12-11 20:55 ` Scott Wood
  2009-12-13 23:05 ` Wolfgang Denk
  1 sibling, 0 replies; 8+ messages in thread
From: Scott Wood @ 2009-12-11 20:55 UTC (permalink / raw)
  To: u-boot

Bob Winslow wrote:
> last try, sorry about the multiple posts.

Please don't post the same thing repeatedly.  If there is anything new 
or changed in this version, it's very hard to spot.  Just follow-up with 
only the new information.

-Scott

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
  2009-12-11 20:51 ` Scott Wood
@ 2009-12-11 22:59   ` Bob Winslow
  2009-12-11 23:02     ` Scott Wood
  0 siblings, 1 reply; 8+ messages in thread
From: Bob Winslow @ 2009-12-11 22:59 UTC (permalink / raw)
  To: u-boot



Thanks Scott, that helped alot... i think I understand a bit more..

>>  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?
>
ok, I set TEXT_BASE to 0xFFF8_000  and it creates the 512kB u-boot.bin
image just fine...

>
> You should write it to the end of flash.
>
Yep, I think that was my issue all along.. I was always writing images
to the beginning of the flash..
If I write the file to the last 512KB of the flash, it boots fine now...

>
> 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.
>>
>> #define CONFIG_SYS_FLASH_BASE           0xfe000000      /* start of
>> FLASH 8M */
>
> 4M flash or 8M?
yep it is just 4M... I moved the BASE to 0xFFC0_0000  and will correct
comments.. (wasn't worried about comments yet...)

>> #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.
 Changed these to 0xFFCxxxxxxx  so it is just 4M now...

>>         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.
>
Flash base is at 0xFFC0_0000 now, so I changed it to 4M law size...

with these changes, it seems to work just fine if I put the u-boot image
in the last 512kB of the 4M flash..... which is great, thanks!!

Is it possible to change TEXT_BASE and RESET_VECTOR_ADDRESS in such a
way that I can put the 512kB uboot image at the
beginning of the 4M flash instead of the end??

Bob

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
  2009-12-11 22:59   ` Bob Winslow
@ 2009-12-11 23:02     ` Scott Wood
  2009-12-11 23:23       ` Bob Winslow
  0 siblings, 1 reply; 8+ messages in thread
From: Scott Wood @ 2009-12-11 23:02 UTC (permalink / raw)
  To: u-boot

Bob Winslow wrote:
> Is it possible to change TEXT_BASE and RESET_VECTOR_ADDRESS in such a
> way that I can put the 512kB uboot image at the
> beginning of the 4M flash instead of the end??

I don't think so -- the reset vector is fixed at 0xfffffffc, which will 
map to the last word of flash.

-Scott

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
  2009-12-11 23:02     ` Scott Wood
@ 2009-12-11 23:23       ` Bob Winslow
  0 siblings, 0 replies; 8+ messages in thread
From: Bob Winslow @ 2009-12-11 23:23 UTC (permalink / raw)
  To: u-boot

>>>  I don't think so -- the reset vector is fixed at 0xfffffffc, which
will map to the last word of flash.

ok, understood.   thanks again for the help!

Bob

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again..
  2009-12-11 20:46 [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again Bob Winslow
  2009-12-11 20:55 ` Scott Wood
@ 2009-12-13 23:05 ` Wolfgang Denk
  1 sibling, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2009-12-13 23:05 UTC (permalink / raw)
  To: u-boot

Dear Bob Winslow,

In message <4B22AF8D.3030702@sevis.com> you wrote:
> last try, sorry about the multiple posts.

Why the hell _do_ you post 3 times, especially when you are even aware
of this?

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
War isn't a good life, but it's life.
	-- Kirk, "A Private Little War", stardate 4211.8

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-12-13 23:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-11 20:46 [U-Boot] MPC8567 - TEXT BASE boot rom question... Half the message was missing.. trying again Bob Winslow
2009-12-11 20:55 ` Scott Wood
2009-12-13 23:05 ` Wolfgang Denk
  -- strict thread matches above, loose matches on Subject: below --
2009-12-11 20:14 Bob Winslow
2009-12-11 20:51 ` Scott Wood
2009-12-11 22:59   ` Bob Winslow
2009-12-11 23:02     ` Scott Wood
2009-12-11 23:23       ` Bob Winslow

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox