Commit c906d2a8 authored by davidcunado-arm's avatar davidcunado-arm Committed by GitHub
Browse files

Merge pull request #967 from rockchip-linux/rockchip-cleanup-20170606

 RK3399: Shrink M0 SRAM code to fit in PMUSRAM
parents 0437c421 84597b57
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
MEMORY { MEMORY {
SRAM (rwx): ORIGIN = SRAM_BASE, LENGTH = SRAM_SIZE SRAM (rwx): ORIGIN = SRAM_BASE, LENGTH = SRAM_SIZE
PMUSRAM (rwx): ORIGIN = PMUSRAM_BASE, LENGTH = PMUSRAM_RSIZE
} }
SECTIONS SECTIONS
...@@ -29,24 +30,60 @@ SECTIONS ...@@ -29,24 +30,60 @@ SECTIONS
.incbin_sram : ALIGN(4096) { .incbin_sram : ALIGN(4096) {
__sram_incbin_start = .; __sram_incbin_start = .;
*(.sram.incbin) *(.sram.incbin)
__sram_incbin_real_end = .;
. = ALIGN(4096); . = ALIGN(4096);
__sram_incbin_end = .; __sram_incbin_end = .;
} >SRAM } >SRAM
ASSERT((__sram_incbin_real_end - __sram_incbin_start) <=
SRAM_BIN_LIMIT, ".incbin_sram has exceeded its limit")
.text_sram : ALIGN(4096) { .text_sram : ALIGN(4096) {
__bl31_sram_text_start = .; __bl31_sram_text_start = .;
*(.sram.text) *(.sram.text)
*(.sram.rodata) *(.sram.rodata)
__bl31_sram_text_real_end = .;
. = ALIGN(4096); . = ALIGN(4096);
__bl31_sram_text_end = .; __bl31_sram_text_end = .;
} >SRAM } >SRAM
ASSERT((__bl31_sram_text_real_end - __bl31_sram_text_start) <=
SRAM_TEXT_LIMIT, ".text_sram has exceeded its limit")
.data_sram : ALIGN(4096) { .data_sram : ALIGN(4096) {
__bl31_sram_data_start = .; __bl31_sram_data_start = .;
*(.sram.data) *(.sram.data)
__bl31_sram_data_real_end = .;
. = ALIGN(4096); . = ALIGN(4096);
__bl31_sram_data_end = .; __bl31_sram_data_end = .;
} >SRAM } >SRAM
ASSERT((__bl31_sram_data_real_end - __bl31_sram_data_start) <=
SRAM_DATA_LIMIT, ".data_sram has exceeded its limit")
.stack_sram : ALIGN(4096) {
__bl31_sram_stack_start = .;
. += 4096;
__bl31_sram_stack_end = .;
} >SRAM
. = PMUSRAM_BASE;
/*
* pmu_cpuson_entrypoint request address
* align 64K when resume, so put it in the
* start of pmusram
*/
.pmusram : {
ASSERT(. == ALIGN(64 * 1024),
".pmusram.entry request 64K aligned.");
*(.pmusram.entry)
__bl31_pmusram_text_start = .;
*(.pmusram.text)
*(.pmusram.rodata)
__bl31_pmusram_text_end = .;
__bl31_pmusram_data_start = .;
*(.pmusram.data)
__bl31_pmusram_data_end = .;
} >PMUSRAM
} }
#endif /* __ROCKCHIP_PLAT_LD_S__ */ #endif /* __ROCKCHIP_PLAT_LD_S__ */
...@@ -107,4 +107,7 @@ ...@@ -107,4 +107,7 @@
#define PLAT_RK_PRIMARY_CPU 0x0 #define PLAT_RK_PRIMARY_CPU 0x0
#define PSRAM_DO_DDR_RESUME 1
#define PSRAM_CHECK_WAKEUP_CPU 0
#endif /* __PLATFORM_DEF_H__ */ #endif /* __PLATFORM_DEF_H__ */
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
#define SIZE_K(n) ((n) * 1024) #define SIZE_K(n) ((n) * 1024)
#define SIZE_M(n) ((n) * 1024 * 1024) #define SIZE_M(n) ((n) * 1024 * 1024)
#define SRAM_TEXT_LIMIT (4 * 1024)
#define SRAM_DATA_LIMIT (4 * 1024)
#define SRAM_BIN_LIMIT (4 * 1024)
/* /*
* The parts of the shared defined registers address with AP and M0, * The parts of the shared defined registers address with AP and M0,
......
...@@ -44,7 +44,6 @@ BL31_SOURCES += ${RK_GIC_SOURCES} \ ...@@ -44,7 +44,6 @@ BL31_SOURCES += ${RK_GIC_SOURCES} \
${RK_PLAT_COMMON}/bl31_plat_setup.c \ ${RK_PLAT_COMMON}/bl31_plat_setup.c \
${RK_PLAT_COMMON}/params_setup.c \ ${RK_PLAT_COMMON}/params_setup.c \
${RK_PLAT_COMMON}/pmusram/pmu_sram_cpus_on.S \ ${RK_PLAT_COMMON}/pmusram/pmu_sram_cpus_on.S \
${RK_PLAT_COMMON}/pmusram/pmu_sram.c \
${RK_PLAT_COMMON}/plat_pm.c \ ${RK_PLAT_COMMON}/plat_pm.c \
${RK_PLAT_COMMON}/plat_topology.c \ ${RK_PLAT_COMMON}/plat_topology.c \
${RK_PLAT_COMMON}/aarch64/platform_common.c \ ${RK_PLAT_COMMON}/aarch64/platform_common.c \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment