summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/imx233/crt0.S
diff options
context:
space:
mode:
authorAmaury Pouly <pamaury@rockbox.org>2011-09-13 23:38:45 +0000
committerAmaury Pouly <pamaury@rockbox.org>2011-09-13 23:38:45 +0000
commitddb96f1b6533748585591e362579bd4528febd23 (patch)
treeea7173e043521ac6cc0de26718a0135959289f4f /firmware/target/arm/imx233/crt0.S
parent3d46b080fda6f271da0949f1338667c7805b145e (diff)
downloadrockbox-ddb96f1b6533748585591e362579bd4528febd23.tar.gz
rockbox-ddb96f1b6533748585591e362579bd4528febd23.zip
imx233/fuze+: fix ctr0 to use a fresh stack and update firmware linker script
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30523 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx233/crt0.S')
-rw-r--r--firmware/target/arm/imx233/crt0.S11
1 files changed, 7 insertions, 4 deletions
diff --git a/firmware/target/arm/imx233/crt0.S b/firmware/target/arm/imx233/crt0.S
index ab0250f6b6..393411b83a 100644
--- a/firmware/target/arm/imx233/crt0.S
+++ b/firmware/target/arm/imx233/crt0.S
@@ -33,9 +33,9 @@
ldr pc, =irq_handler
ldr pc, =fiq_handler
-/* When starting, we are running at 0x40000000 but the code
- * assumes DRAM is somewhere else (for caching) so we first need to
- * setup the MMU and then jump to the right location */
+/* When starting, we are running at 0x4xxxxxxx (uncached) but the code
+ * assumes DRAM is somewhere else (cached) so we first need to
+ * setup the MMU and then jump to the right location. */
.text
.global start
start:
@@ -49,9 +49,12 @@ start:
bic r0, r1
mcr p15, 0, r0, c1, c0, 0
+ /* To call the C code we need a stack, since the stack is in virtual memory
+ * use the stack's physical address */
+ ldr sp, =stackend_phys
+
/* Enable MMU */
bl memory_init
-
/* Jump to real location */
ldr pc, =remap
remap: