/branches/18.06.1/target/linux/brcm63xx/patches-4.14/355-MIPS-BCM63XX-allow-board-implementations-to-force-fl.patch |
@@ -0,0 +1,61 @@ |
From 8a30097a899b975709f728666d5ad20c8b832d21 Mon Sep 17 00:00:00 2001 |
From: Jonas Gorski <jogo@openwrt.org> |
Date: Sun, 9 Mar 2014 04:28:14 +0100 |
Subject: [PATCH 43/44] MIPS: BCM63XX: allow board implementations to force |
flash address |
|
Allow board implementations to force the physmap address. |
|
Signed-off-by: Jonas Gorski <jogo@openwrt.org> |
--- |
arch/mips/bcm63xx/dev-flash.c | 19 ++++++++++++++----- |
.../mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h | 2 ++ |
2 files changed, 16 insertions(+), 5 deletions(-) |
|
--- a/arch/mips/bcm63xx/dev-flash.c |
+++ b/arch/mips/bcm63xx/dev-flash.c |
@@ -58,6 +58,12 @@ static struct platform_device mtd_dev = |
}, |
}; |
|
+void __init bcm63xx_flash_force_phys_base_address(u32 start, u32 end) |
+{ |
+ mtd_resources[0].start = start; |
+ mtd_resources[0].end = end; |
+} |
+ |
static int __init bcm63xx_detect_flash_type(void) |
{ |
u32 val; |
@@ -172,12 +178,15 @@ int __init bcm63xx_flash_register(void) |
|
switch (flash_type) { |
case BCM63XX_FLASH_TYPE_PARALLEL: |
- /* read base address of boot chip select (0) */ |
- val = bcm_mpi_readl(MPI_CSBASE_REG(0)); |
- val &= MPI_CSBASE_BASE_MASK; |
|
- mtd_resources[0].start = val; |
- mtd_resources[0].end = 0x1FFFFFFF; |
+ if (!mtd_resources[0].start) { |
+ /* read base address of boot chip select (0) */ |
+ val = bcm_mpi_readl(MPI_CSBASE_REG(0)); |
+ val &= MPI_CSBASE_BASE_MASK; |
+ |
+ mtd_resources[0].start = val; |
+ mtd_resources[0].end = 0x1FFFFFFF; |
+ } |
|
return platform_device_register(&mtd_dev); |
case BCM63XX_FLASH_TYPE_SERIAL: |
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h |
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h |
@@ -10,6 +10,8 @@ enum { |
|
void bcm63xx_flash_detect(void); |
|
+void bcm63xx_flash_force_phys_base_address(u32 start, u32 end); |
+ |
int __init bcm63xx_flash_register(void); |
|
#endif /* __BCM63XX_FLASH_H */ |