mpc86xx: Change early FLASH mapping to 1M at CONFIG_MONITOR_BASE_EARLY
We define CONFIG_MONITOR_BASE_EARLY to define the initial location of the bootpage in flash. Use this to create an early mapping definition for the FLASH, and change the early_bats code to use this. This change facilitates the relocation of the flash since the early mappings are no longer tied to the final location of the flash. Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
This commit is contained in:
parent
c1e1cf6954
commit
bf9a8c3430
4 changed files with 39 additions and 11 deletions
|
@ -217,8 +217,8 @@ boot_warm:
|
|||
/*
|
||||
* Calculate absolute address in FLASH and jump there
|
||||
*------------------------------------------------------*/
|
||||
lis r3, CONFIG_SYS_MONITOR_BASE@h
|
||||
ori r3, r3, CONFIG_SYS_MONITOR_BASE@l
|
||||
lis r3, CONFIG_SYS_MONITOR_BASE_EARLY@h
|
||||
ori r3, r3, CONFIG_SYS_MONITOR_BASE_EARLY@l
|
||||
addi r3, r3, in_flash - _start + EXC_OFF_SYS_RESET
|
||||
mtlr r3
|
||||
blr
|
||||
|
@ -398,19 +398,19 @@ early_bats:
|
|||
isync
|
||||
|
||||
/* IBAT 6 */
|
||||
lis r4, CONFIG_SYS_IBAT6L@h
|
||||
ori r4, r4, CONFIG_SYS_IBAT6L@l
|
||||
lis r3, CONFIG_SYS_IBAT6U@h
|
||||
ori r3, r3, CONFIG_SYS_IBAT6U@l
|
||||
lis r4, CONFIG_SYS_IBAT6L_EARLY@h
|
||||
ori r4, r4, CONFIG_SYS_IBAT6L_EARLY@l
|
||||
lis r3, CONFIG_SYS_IBAT6U_EARLY@h
|
||||
ori r3, r3, CONFIG_SYS_IBAT6U_EARLY@l
|
||||
mtspr IBAT6L, r4
|
||||
mtspr IBAT6U, r3
|
||||
isync
|
||||
|
||||
/* DBAT 6 */
|
||||
lis r4, CONFIG_SYS_DBAT6L@h
|
||||
ori r4, r4, CONFIG_SYS_DBAT6L@l
|
||||
lis r3, CONFIG_SYS_DBAT6U@h
|
||||
ori r3, r3, CONFIG_SYS_DBAT6U@l
|
||||
lis r4, CONFIG_SYS_DBAT6L_EARLY@h
|
||||
ori r4, r4, CONFIG_SYS_DBAT6L_EARLY@l
|
||||
lis r3, CONFIG_SYS_DBAT6U_EARLY@h
|
||||
ori r3, r3, CONFIG_SYS_DBAT6U_EARLY@l
|
||||
mtspr DBAT6L, r4
|
||||
mtspr DBAT6U, r3
|
||||
isync
|
||||
|
|
|
@ -187,6 +187,7 @@
|
|||
#define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */
|
||||
#define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */
|
||||
#define CONFIG_SYS_MONITOR_BASE TEXT_BASE /* start of monitor */
|
||||
#define CONFIG_SYS_MONITOR_BASE_EARLY 0xfff00000 /* early monitor loc */
|
||||
|
||||
#define CONFIG_FLASH_CFI_DRIVER
|
||||
#define CONFIG_SYS_FLASH_CFI
|
||||
|
@ -419,6 +420,14 @@
|
|||
#define CONFIG_SYS_IBAT6L (CONFIG_SYS_FLASH_BASE | BATL_PP_RW | BATL_MEMCOHERENCE)
|
||||
#define CONFIG_SYS_IBAT6U CONFIG_SYS_DBAT6U
|
||||
|
||||
/* Map the last 1M of flash where we're running from reset */
|
||||
#define CONFIG_SYS_DBAT6L_EARLY (CONFIG_SYS_MONITOR_BASE_EARLY | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CONFIG_SYS_DBAT6U_EARLY (TEXT_BASE | BATU_BL_1M | BATU_VS | BATU_VP)
|
||||
#define CONFIG_SYS_IBAT6L_EARLY (CONFIG_SYS_MONITOR_BASE_EARLY | BATL_PP_RW \
|
||||
| BATL_MEMCOHERENCE)
|
||||
#define CONFIG_SYS_IBAT6U_EARLY CONFIG_SYS_DBAT6U_EARLY
|
||||
|
||||
/*
|
||||
* BAT7 4M Cache-inhibited, guarded
|
||||
* 0xe800_0000 4M PIXIS
|
||||
|
|
|
@ -206,7 +206,8 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
|
|||
#undef CONFIG_SYS_FLASH_CHECKSUM
|
||||
#define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */
|
||||
#define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */
|
||||
#define CONFIG_SYS_MONITOR_BASE TEXT_BASE /* start of monitor */
|
||||
#define CONFIG_SYS_MONITOR_BASE TEXT_BASE /* start of monitor */
|
||||
#define CONFIG_SYS_MONITOR_BASE_EARLY 0xfff00000 /* early monitor loc */
|
||||
|
||||
#define CONFIG_FLASH_CFI_DRIVER
|
||||
#define CONFIG_SYS_FLASH_CFI
|
||||
|
@ -497,6 +498,15 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
|
|||
| BATL_MEMCOHERENCE)
|
||||
#define CONFIG_SYS_IBAT6U CONFIG_SYS_DBAT6U
|
||||
|
||||
/* Map the last 1M of flash where we're running from reset */
|
||||
#define CONFIG_SYS_DBAT6L_EARLY (CONFIG_SYS_MONITOR_BASE_EARLY | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CONFIG_SYS_DBAT6U_EARLY (TEXT_BASE | BATU_BL_1M | BATU_VS | BATU_VP)
|
||||
#define CONFIG_SYS_IBAT6L_EARLY (CONFIG_SYS_MONITOR_BASE_EARLY | BATL_PP_RW \
|
||||
| BATL_MEMCOHERENCE)
|
||||
#define CONFIG_SYS_IBAT6U_EARLY CONFIG_SYS_DBAT6U_EARLY
|
||||
|
||||
/* Leave BAT7 free here - it is used for various things later */
|
||||
#define CONFIG_SYS_DBAT7L 0x00000000
|
||||
#define CONFIG_SYS_DBAT7U 0x00000000
|
||||
#define CONFIG_SYS_IBAT7L 0x00000000
|
||||
|
|
|
@ -231,6 +231,7 @@
|
|||
#define CONFIG_SYS_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */
|
||||
#define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */
|
||||
#define CONFIG_SYS_MONITOR_BASE TEXT_BASE /* start of monitor */
|
||||
#define CONFIG_SYS_MONITOR_BASE_EARLY 0xfff00000 /* early monitor loc */
|
||||
|
||||
#define CONFIG_FLASH_CFI_DRIVER
|
||||
#define CONFIG_SYS_FLASH_CFI
|
||||
|
@ -463,6 +464,14 @@
|
|||
#define CONFIG_SYS_IBAT6L ((CONFIG_SYS_FLASH_BASE & 0xfe000000) | BATL_PP_RW | BATL_MEMCOHERENCE)
|
||||
#define CONFIG_SYS_IBAT6U CONFIG_SYS_DBAT6U
|
||||
|
||||
/* Map the last 1M of flash where we're running from reset */
|
||||
#define CONFIG_SYS_DBAT6L_EARLY (CONFIG_SYS_MONITOR_BASE_EARLY | BATL_PP_RW \
|
||||
| BATL_CACHEINHIBIT | BATL_GUARDEDSTORAGE)
|
||||
#define CONFIG_SYS_DBAT6U_EARLY (TEXT_BASE | BATU_BL_1M | BATU_VS | BATU_VP)
|
||||
#define CONFIG_SYS_IBAT6L_EARLY (CONFIG_SYS_MONITOR_BASE_EARLY | BATL_PP_RW \
|
||||
| BATL_MEMCOHERENCE)
|
||||
#define CONFIG_SYS_IBAT6U_EARLY CONFIG_SYS_DBAT6U_EARLY
|
||||
|
||||
#define CONFIG_SYS_DBAT7L 0x00000000
|
||||
#define CONFIG_SYS_DBAT7U 0x00000000
|
||||
#define CONFIG_SYS_IBAT7L 0x00000000
|
||||
|
|
Loading…
Reference in a new issue