• Timur Tabi's avatar
    powerpc/85xx: introduce and document CONFIG_SYS_CCSRBAR macros · e46fedfe
    Timur Tabi authored
    
    
    Introduce the CONFIG_SYS_CCSRBAR_PHYS_HIGH and CONFIG_SYS_CCSRBAR_PHYS_LOW
    macros, which contain the high and low portions of CONFIG_SYS_CCSRBAR_PHYS.
    This is necessary for the assembly-language code that relocates CCSR, since
    the assembler does not understand 64-bit constants.
    
    CONFIG_SYS_CCSRBAR_PHYS is automatically defined from the
    CONFIG_SYS_CCSRBAR_PHYS_HIGH and CONFIG_SYS_CCSRBAR_PHYS_LOW macros, so it
    should not be defined in a board header file.  Similarly,
    CONFIG_SYS_CCSRBAR_DEFAULT is defined for each SOC in config_mpc85xx.h, so
    it should also not be defined in the board header file.
    
    CONFIG_SYS_CCSR_DO_NOT_RELOCATE is a "short-cut" macro that guarantees that
    CONFIG_SYS_CCSRBAR_PHYS is set to the same value as CONFIG_SYS_CCSRBAR_DEFAULT,
    and so CCSR will not be relocated.
    
    Since CONFIG_SYS_CCSRBAR_DEFAULT is locked to a fixed value, multi-stage U-Boot
    builds (e.g. NAND) are required to relocate CCSR only during the last stage
    (i.e. the "real" U-Boot).  All other stages should define
    CONFIG_SYS_CCSR_DO_NOT_RELOCATE to ensure that CCSR is not relocated.
    
    README is updated with descriptions of all the CONFIG_SYS_CCSRBAR_xxx macros.
    
    Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
    Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
    e46fedfe