EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Unable to boot Kernel on ARM after Memory Remap

Started by sg83 July 26, 2008
Hi everyone,

I've been working with an imx27ads from Freescale. The BSP from Freescale
includes a Redboot that contains the following memory map:

Phys                 | Virtual              | Enabled|Type
0xA0000000-0xA7FFFFFF| 0x00000000-0x07FFFFFF| Yes    |SDRAM
0xD6000000-0xD6FFFFFF| 0xD6000000-0xD6FFFFFF| No     |SRAM

I've managed to enable the SRAM (verified by loading kernel to it and
reading checksum). I've also disabled the SDRAM and mapped the SRAM to the
base as follows:

Phys                 | Virtual              | Enabled|Type
0xA0000000-0xA7FFFFFF| 0xA0000000-0xA7FFFFFF| No     |SDRAM
0xD6000000-0xD6FFFFFF| 0x00000000-0x00FFFFFF| Yes    |SRAM

I've changed to the best of my knowledge all of the macros where SDRAM was
being used to use SRAM and the virt_to_phys functions as well. I've also
changed the default entry address to 0xD6008000. I've also verified the
virtual to physical mapping by writing data to the virtual location and
dumping it from the physical to ensure they match.

The problem is this: If I try to boot the kernel with SDRAM disabled and
only SRAM enabled with the second set of memory maps, the "exec" command
just hangs. It doesn't even get to "Uncompressing Linux". I know the
loading of the kernel into SRAM is successful because I run a 'cksum' and
match it to that on the host. 

However, if I simply enable the SDRAM with the second set of memory maps
and load the kernel into SRAM(@ 0x100000), then the kernel boots
fine...which suggests to me that there is still a location somewhere that
is telling the kernel to use 0xA0008000 as its entry point.

I've checked everywhere in the Redboot source but can't figure this out,
but then again I've only been working with Redboot for about a week. Is
there anyplace in the kernel source where I should make changes as well? I
don't _think_ there should be other than possibly changing 'PHYS_OFFSET'
(which I tried).  

My goal here is to only use the SRAM and completely disable SDRAM. If
anyone can even shed some remote light on this, I'd greatly appreciate it.
please let me know if I can help clarify the issue any better.
>Hi everyone, > >I've been working with an imx27ads from Freescale. The BSP from
Freescale
>includes a Redboot that contains the following memory map: > >Phys | Virtual | Enabled|Type >0xA0000000-0xA7FFFFFF| 0x00000000-0x07FFFFFF| Yes |SDRAM >0xD6000000-0xD6FFFFFF| 0xD6000000-0xD6FFFFFF| No |SRAM > >I've managed to enable the SRAM (verified by loading kernel to it and >reading checksum). I've also disabled the SDRAM and mapped the SRAM to
the
>base as follows: > >Phys | Virtual | Enabled|Type >0xA0000000-0xA7FFFFFF| 0xA0000000-0xA7FFFFFF| No |SDRAM >0xD6000000-0xD6FFFFFF| 0x00000000-0x00FFFFFF| Yes |SRAM > >I've changed to the best of my knowledge all of the macros where SDRAM
was
>being used to use SRAM and the virt_to_phys functions as well. I've also >changed the default entry address to 0xD6008000. I've also verified the >virtual to physical mapping by writing data to the virtual location and >dumping it from the physical to ensure they match. > >The problem is this: If I try to boot the kernel with SDRAM disabled and >only SRAM enabled with the second set of memory maps, the "exec" command >just hangs. It doesn't even get to "Uncompressing Linux". I know the >loading of the kernel into SRAM is successful because I run a 'cksum'
and
>match it to that on the host. > >However, if I simply enable the SDRAM with the second set of memory maps >and load the kernel into SRAM(@ 0x100000), then the kernel boots >fine...which suggests to me that there is still a location somewhere
that
>is telling the kernel to use 0xA0008000 as its entry point. > >I've checked everywhere in the Redboot source but can't figure this out, >but then again I've only been working with Redboot for about a week. Is >there anyplace in the kernel source where I should make changes as well?
I
>don't _think_ there should be other than possibly changing 'PHYS_OFFSET' >(which I tried). > >My goal here is to only use the SRAM and completely disable SDRAM. If >anyone can even shed some remote light on this, I'd greatly appreciate
it.
>please let me know if I can help clarify the issue any better. >
Is the SRAM flash? Can you stop the boot sequence in the Freescale debugger, and read the SRAM locations before RedBoot even runs (you might have to hand set up the page mapping)? Jeff www.e2atechnology.com

The 2024 Embedded Online Conference