]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - Makefile
Add ARM946E cpu and core module targets; remap memory to 0x00000000
[karo-tx-uboot.git] / Makefile
index 7f7e114eb71a5234a9478fa38ed8e1fcd367894c..26fc73d85dfaf5c0a896745dab67d03b97a87d5a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1387,11 +1387,178 @@ at91rm9200dk_config    :       unconfig
 cmc_pu2_config :       unconfig
        @./mkconfig $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
 
-integratorap_config :  unconfig
-       @./mkconfig $(@:_config=) arm arm926ejs integratorap
+########################################################################
+## ARM Integrator boards
+## There are two variants /AP && /CP
+## - many different core modules (CMs) can be used
+## - some share characteristics
+## Those without specific cpu support can still use U-Boot
+## provided the ARM boot monitor (or similar) runs before U-Boot
+## to set up the platform e.g. map writeable memory to 0x00000000
+## setup MMU, setup caches etc.
+## Ported cores are:-
+##     ARM926EJ-S
+##     ARM946E-S
+##
+########################################################################
+xtract_int_board = $(subst _$(subst integrator$1_,,$(subst _config,,$2)),,$(subst _config,,$2))
+xtract_int_cm    = $(subst integrator$1_,,$(subst _config,,$2))
+#########################################################################
+## Integrator/AP
+#########################################################################
+integratorap_config    :       unconfig
+       @echo -n "/* Integrator configuration implied " >  tmp.fil;     \
+        echo    " by Makefile target   */"             >> tmp.fil;     \
+        echo                                           >> tmp.fil 
+       @echo -n "#define CONFIG_INTEGRATOR     1"      >> tmp.fil;     \
+       echo     "      /* Integrator board     */"     >> tmp.fil;     \
+       echo  -n "#define CONFIG_ARCH_INTEGRATOR"       >> tmp.fil;     \
+       echo     "      1       /* Integrator/AP */"    >> tmp.fil;     \
+       echo "/* Core module not defined        */"     >> tmp.fil;     \
+       echo -n "#define CONFIG_ARM_INTCM       1"      >> tmp.fil;     \
+       echo -n "       /* Integrator core module "     >> tmp.fil;     \
+       echo    "with unknown core      */"             >> tmp.fil;     \
+       cpu=arm_intcm;                                                  \
+       mv tmp.fil ./include/config.h;                                  \
+       ubootlds=board/integratorap/u-boot.lds;                         \
+       sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/'                        \
+                                          $$ubootlds > $$ubootlds.tmp; \
+       mv -f $$ubootlds.tmp $$ubootlds;                                \
+       ./mkconfig -a integratorap arm arm_intcm integratorap;
+
+integratorap_CM720T_config             integratorap_CM7TDMI_config     \
+integratorap_CM920T_config             integratorap_CM920T_ETM_config  \
+integratorap_CM922T_XA10_config                integratorap_CM926EJ_S_config   \
+integratorap_CM940T_config             integratorap_CM946E_S_config    \
+integratorap_CM966E_S_config           integratorap_CM10200E_config    \
+integratorap_CM10220E_config           integratorap_CM1026EJ_S_config  \
+integratorap_CM1136JF_S_config :       unconfig
+       @echo -n "/* Integrator configuration implied " >  tmp.fil;     \
+        echo    " by Makefile target   */"             >> tmp.fil;     \
+        echo                                           >> tmp.fil 
+       @echo -n "#define CONFIG_INTEGRATOR     1"      >>  tmp.fil;    \
+       echo     "      /* Integrator board     */"     >> tmp.fil;     \
+       echo  -n "#define CONFIG_ARCH_INTEGRATOR"       >> tmp.fil;     \
+       echo     "      1       /* Integrator/AP */"    >> tmp.fil;     \
+       cm=$(call xtract_int_cm,ap,$@);                                 \
+       echo  -n "#define CONFIG_$$cm           "       >> tmp.fil;     \
+       echo     "      /* core module */"              >> tmp.fil;     \
+       case $$cm in                                                    \
+       CM920T)                                                         \
+                       echo -n "#define CONFIG_ARM920" >> tmp.fil;     \
+                       echo -n "T      1       /* CPU" >> tmp.fil;     \
+                       echo -n " core is ARM920T"      >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm920t;;                                   \
+       CM926EJ_S)      echo -n "#define CONFIG_ARM926" >> tmp.fil;     \
+                       echo -n "EJ_S   1       /* CPU" >> tmp.fil;     \
+                       echo -n " core is ARM926EJ-S"   >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm926ejs;;                                 \
+       CM946E_S)       echo -n "#define CONFIG_ARM946" >> tmp.fil;     \
+                       echo -n "E_S    1       /* CPU" >> tmp.fil;     \
+                       echo -n " core is ARM946E-S"    >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm946es;;                                  \
+       *)              echo -n "#define CONFIG_ARM_IN" >> tmp.fil;     \
+                       echo -n "TCM    1       /* Int" >> tmp.fil;     \
+                       echo -n "egrator core module w" >> tmp.fil;     \
+                       echo -n "ith unported core"     >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm_intcm;;                                 \
+       esac;                                                           \
+       mv tmp.fil ./include/config.h;                                  \
+       ubootlds=board/$(call xtract_int_board,ap,$@)/u-boot.lds;       \
+       sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/'                        \
+                                          $$ubootlds > $$ubootlds.tmp; \
+       mv -f $$ubootlds.tmp $$ubootlds;                                \
+       ./mkconfig -a $(call xtract_int_board,ap,$@) arm $$cpu          \
+                     $(call xtract_int_board,ap,$@);
 
-integratorcp_config :  unconfig
-       @./mkconfig $(@:_config=) arm arm926ejs integratorcp
+#########################################################################
+## Integrator/CP
+#########################################################################
+integratorcp_config    :       unconfig
+       @echo -n "/* Integrator configuration implied " >  tmp.fil;     \
+        echo    " by Makefile target   */"             >> tmp.fil;     \
+        echo                                           >> tmp.fil 
+       @echo -n "#define CONFIG_INTEGRATOR     1"      >> tmp.fil;     \
+       echo     "      /* Integrator board     */"     >> tmp.fil;     \
+       echo  -n "#define CONFIG_ARCH_CINTEGRATOR"      >> tmp.fil;     \
+       echo     "      1       /* Integrator/CP */"    >> tmp.fil;     \
+       echo     "/* Core module not defined    */"     >> tmp.fil;     \
+       echo -n "#define CONFIG_ARM_INTCM       1"      >> tmp.fil;     \
+       echo -n "       /* Integrator core module "     >> tmp.fil;     \
+       echo    "with unknown core      */"             >> tmp.fil;     \
+       cpu=arm_intcm;                                                  \
+       echo -n "#undef CONFIG_CM_MULTIPLE_SSRAM"       >> tmp.fil;     \
+       echo -n "               /* CM may not have "    >> tmp.fil;     \
+       echo    "multiple SSRAM mapping */"             >> tmp.fil;     \
+       echo -n "#undef CONFIG_CM_SPD_DETECT    "       >> tmp.fil;     \
+       echo -n "       /* CM may not support SPD "     >> tmp.fil;     \
+       echo    "query */"                              >> tmp.fil;     \
+       echo -n "#undef CONFIG_CM_REMAP         "       >> tmp.fil;     \
+       echo -n "       /* CM may not support "         >> tmp.fil;     \
+       echo    "remapping      */"                     >> tmp.fil;     \
+       echo -n "#undef CONFIG_CM_INIT          "       >> tmp.fil;     \
+       echo -n "       /* CM may not have  "           >> tmp.fil;     \
+       echo    "initialization reg     */"             >> tmp.fil;     \
+       echo -n "#undef CONFIG_CM_TCRAM         "       >> tmp.fil;     \
+       echo -n "       /* CM may not have TCRAM */"    >> tmp.fil;     \
+       mv tmp.fil ./include/config.h;                                  \
+       ubootlds=board/integratorcp/u-boot.lds;                         \
+       sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/'                        \
+                                          $$ubootlds > $$ubootlds.tmp; \
+       mv -f $$ubootlds.tmp $$ubootlds;                                \
+       ./mkconfig -a integratorcp arm arm_intcm integratorcp;
+
+integratorcp_CM920T_config             integratorcp_CM920T_ETM_config  \
+integratorcp_CM922T_XA10_config                integratorcp_CM926EJ_S_config   \
+integratorcp_CM940T_config             integratorcp_CM946E_S_config    \
+integratorcp_CM966E_S_config           integratorcp_CM10200E_config    \
+integratorcp_CM10220E_config           integratorcp_CM1026EJ_S_config  \
+integratorcp_CM1136JF_S_config :       unconfig
+       @echo -n "/* Integrator configuration implied " >  tmp.fil;     \
+        echo    " by Makefile target   */"             >> tmp.fil;     \
+        echo                                           >> tmp.fil 
+       @echo -n "#define CONFIG_INTEGRATOR     1"      >> tmp.fil;     \
+       echo     "      /* Integrator board     */"     >> tmp.fil;     \
+       echo  -n "#define CONFIG_ARCH_CINTEGRATOR"      >> tmp.fil;     \
+       echo     "      1       /* Integrator/CP */"    >> tmp.fil;     \
+       cm=$(call xtract_int_cm,cp,$@);                                 \
+       echo  -n "#define CONFIG_$$cm           "       >> tmp.fil;     \
+       echo     "      /* core module */"              >> tmp.fil;     \
+       echo "/* $$cm core module       */"             >> tmp.fil;     \
+       case $$cm in                                                    \
+       CM920T)         echo -n "#define CONFIG_ARM920" >> tmp.fil;     \
+                       echo -n "T      1       /* CPU" >> tmp.fil;     \
+                       echo -n " core is ARM920T"      >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm920t;;                                   \
+       CM946E_S)       echo -n "#define CONFIG_ARM946" >> tmp.fil;     \
+                       echo -n "E_S    1       /* CPU" >> tmp.fil;     \
+                       echo -n " core is ARM946E-S"    >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm946es;;                                  \
+       CM926EJ_S)      echo -n "#define CONFIG_ARM926" >> tmp.fil;     \
+                       echo -n "EJ_S   1       /* CPU" >> tmp.fil;     \
+                       echo -n " core is ARM926EJ-S"   >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm926ejs;;                                 \
+       *)              echo -n "#define CONFIG_ARM_IN" >> tmp.fil;     \
+                       echo -n "TCM    1       /* Int" >> tmp.fil;     \
+                       echo -n "egrator core module w" >> tmp.fil;     \
+                       echo -n "ith unported core"     >> tmp.fil;     \
+                       echo    "       */"             >> tmp.fil;     \
+                       cpu=arm_intcm;;                                 \
+       esac;                                                           \
+       mv tmp.fil ./include/config.h;                                  \
+       ubootlds=board/$(call xtract_int_board,cp,$@)/u-boot.lds;       \
+       sed -e 's/cpu\/.*\/st/cpu\/'$$cpu'\/st/'                        \
+                                          $$ubootlds > $$ubootlds.tmp; \
+       mv -f $$ubootlds.tmp $$ubootlds;                                \
+       ./mkconfig -a $(call xtract_int_board,cp,$@) arm $$cpu          \
+                     $(call xtract_int_board,cp,$@);
 
 lpd7a400_config \
 lpd7a404_config:       unconfig
@@ -1646,6 +1813,11 @@ dbau1550_el_config       :       unconfig
        @echo "#define CONFIG_DBAU1550 1" >>include/config.h
        @./mkconfig -a dbau1x00 mips mips dbau1x00
 
+pb1000_config          :       unconfig
+       @ >include/config.h
+       @echo "#define CONFIG_PB1000 1" >>include/config.h
+       @./mkconfig -a pb1x00 mips mips pb1x00
+
 #########################################################################
 ## MIPS64 5Kc
 #########################################################################