[U-Boot] [PATCH] ARM1176: Coexist with other ARM1176 platforms
Tom
Tom.Rix at windriver.com
Sun Mar 14 21:53:11 CET 2010
Cyril Chemparathy wrote:
> The current ARM1176 CPU specific code is too specific to the SMDK6400
> architecture. The following changes were necessary prerequisites for the
> addition of other SoCs based on ARM1176.
>
> Existing board's (SMDK6400) configuration has been modified to keep behavior
> unchanged despite these changes.
>
> 1. Peripheral port remap configurability
> The earlier code had hardcoded remap values specific to s3c64xx in start.S.
> This change makes the peripheral port remap addresses and sizes configurable.
>
> 2. Skip low level initialization
> Ability to skip low level initialization if necessary. Many other platforms
> have a similar capability, and this is quite useful during debug/bring-up.
>
> 3. U-Boot code relocation support
> Most architectures allow u-boot code to run initially at a different
> address (possibly in NOR) and then get relocated to its final resting place
> in RAM. Added support for this capability in ARM1176 architecture.
>
> 4. Disable TCM if necessary
> If a ROM based bootloader happened to have initialized TCM, we disable it here
> to keep things sane.
>
> 5. Remove unnecessary SoC specific includes
> ARM1176 code does not really need this SoC specific include. The presence
> of this include prevents builds on other ARM1176 archs.
>
> 6. ARM926 style MMU disable when !CONFIG_ENABLE_MMU
> The original MMU disable code masks out too many bits from the load address
> when it tries to figure out the physical address of the jump target label.
> Consequently, it ends up branching to the wrong address after disabling the
> MMU.
>
> Signed-off-by: Cyril Chemparathy <cyril at ti.com>
This patch is premature.
I need to see this patch within the context of the new SOC.
For a new SOC, I would like it be added as a new sub dir off of cpu/arm1176.
At the same level as s3c64xx. So this dir would look like.
config.mk cpu.c Makefile new_soc_name s3c64xx start.S u-boot.lds
The common code that is sharable should also be at this level.
This may mean moving and generalizing some s3c64xx/*.c.
The SOC specific code must be in its own dir. An example of this may be the
lowlevel_init needs to move from start.S to <SOC>/lowlevel_init.S
I do not want one SOC if-def-ing up another SOC.
The maintainer of the original s3c64xx SOC, Guennadi Liakhovetski
<g.liakhovetski at gmx.de>, should be cc-ed on at least the initial changes so he
has a heads up that
some of his code is being moved/generalized.
Tom
More information about the U-Boot
mailing list