Makefile 61 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071
  1. #
  2. # (C) Copyright 2000-2006
  3. # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  4. #
  5. # See file CREDITS for list of people who contributed to this
  6. # project.
  7. #
  8. # This program is free software; you can redistribute it and/or
  9. # modify it under the terms of the GNU General Public License as
  10. # published by the Free Software Foundatio; either version 2 of
  11. # the License, or (at your option) any later version.
  12. #
  13. # This program is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. # GNU General Public License for more details.
  17. #
  18. # You should have received a copy of the GNU General Public License
  19. # along with this program; if not, write to the Free Software
  20. # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21. # MA 02111-1307 USA
  22. #
  23. VERSION = 1
  24. PATCHLEVEL = 1
  25. SUBLEVEL = 4
  26. EXTRAVERSION =
  27. U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
  28. VERSION_FILE = include/version_autogenerated.h
  29. HOSTARCH := $(shell uname -m | \
  30. sed -e s/i.86/i386/ \
  31. -e s/sun4u/sparc64/ \
  32. -e s/arm.*/arm/ \
  33. -e s/sa110/arm/ \
  34. -e s/powerpc/ppc/ \
  35. -e s/macppc/ppc/)
  36. HOSTOS := $(shell uname -s | tr '[:upper:]' '[:lower:]' | \
  37. sed -e 's/\(cygwin\).*/cygwin/')
  38. export HOSTARCH HOSTOS
  39. # Deal with colliding definitions from tcsh etc.
  40. VENDOR=
  41. #########################################################################
  42. TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
  43. export TOPDIR
  44. ifeq (include/config.mk,$(wildcard include/config.mk))
  45. # load ARCH, BOARD, and CPU configuration
  46. include include/config.mk
  47. export ARCH CPU BOARD VENDOR SOC
  48. ifndef CROSS_COMPILE
  49. ifeq ($(HOSTARCH),ppc)
  50. CROSS_COMPILE =
  51. else
  52. ifeq ($(ARCH),ppc)
  53. CROSS_COMPILE = powerpc-linux-
  54. endif
  55. ifeq ($(ARCH),arm)
  56. CROSS_COMPILE = arm-linux-
  57. endif
  58. ifeq ($(ARCH),i386)
  59. ifeq ($(HOSTARCH),i386)
  60. CROSS_COMPILE =
  61. else
  62. CROSS_COMPILE = i386-linux-
  63. endif
  64. endif
  65. ifeq ($(ARCH),mips)
  66. CROSS_COMPILE = mips_4KC-
  67. endif
  68. ifeq ($(ARCH),nios)
  69. CROSS_COMPILE = nios-elf-
  70. endif
  71. ifeq ($(ARCH),nios2)
  72. CROSS_COMPILE = nios2-elf-
  73. endif
  74. ifeq ($(ARCH),m68k)
  75. CROSS_COMPILE = m68k-elf-
  76. endif
  77. ifeq ($(ARCH),microblaze)
  78. CROSS_COMPILE = mb-
  79. endif
  80. ifeq ($(ARCH),blackfin)
  81. CROSS_COMPILE = bfin-elf-
  82. endif
  83. endif
  84. endif
  85. export CROSS_COMPILE
  86. # load other configuration
  87. include $(TOPDIR)/config.mk
  88. #########################################################################
  89. # U-Boot objects....order is important (i.e. start must be first)
  90. OBJS = cpu/$(CPU)/start.o
  91. ifeq ($(CPU),i386)
  92. OBJS += cpu/$(CPU)/start16.o
  93. OBJS += cpu/$(CPU)/reset.o
  94. endif
  95. ifeq ($(CPU),ppc4xx)
  96. OBJS += cpu/$(CPU)/resetvec.o
  97. endif
  98. ifeq ($(CPU),mpc83xx)
  99. OBJS += cpu/$(CPU)/resetvec.o
  100. endif
  101. ifeq ($(CPU),mpc85xx)
  102. OBJS += cpu/$(CPU)/resetvec.o
  103. endif
  104. ifeq ($(CPU),bf533)
  105. OBJS += cpu/$(CPU)/start1.o cpu/$(CPU)/interrupt.o cpu/$(CPU)/cache.o
  106. OBJS += cpu/$(CPU)/cplbhdlr.o cpu/$(CPU)/cplbmgr.o cpu/$(CPU)/flush.o
  107. endif
  108. LIBS = lib_generic/libgeneric.a
  109. LIBS += board/$(BOARDDIR)/lib$(BOARD).a
  110. LIBS += cpu/$(CPU)/lib$(CPU).a
  111. ifdef SOC
  112. LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a
  113. endif
  114. LIBS += lib_$(ARCH)/lib$(ARCH).a
  115. LIBS += fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a \
  116. fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a
  117. LIBS += net/libnet.a
  118. LIBS += disk/libdisk.a
  119. LIBS += rtc/librtc.a
  120. LIBS += dtt/libdtt.a
  121. LIBS += drivers/libdrivers.a
  122. LIBS += drivers/nand/libnand.a
  123. LIBS += drivers/nand_legacy/libnand_legacy.a
  124. LIBS += drivers/sk98lin/libsk98lin.a
  125. LIBS += post/libpost.a post/cpu/libcpu.a
  126. LIBS += common/libcommon.a
  127. LIBS += $(BOARDLIBS)
  128. .PHONY : $(LIBS)
  129. # Add GCC lib
  130. PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
  131. # The "tools" are needed early, so put this first
  132. # Don't include stuff already done in $(LIBS)
  133. SUBDIRS = tools \
  134. examples \
  135. post \
  136. post/cpu
  137. .PHONY : $(SUBDIRS)
  138. #########################################################################
  139. #########################################################################
  140. ALL = u-boot.srec u-boot.bin System.map
  141. all: $(ALL)
  142. u-boot.hex: u-boot
  143. $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
  144. u-boot.srec: u-boot
  145. $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
  146. u-boot.bin: u-boot
  147. $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
  148. u-boot.img: u-boot.bin
  149. ./tools/mkimage -A $(ARCH) -T firmware -C none \
  150. -a $(TEXT_BASE) -e 0 \
  151. -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
  152. sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \
  153. -d $< $@
  154. u-boot.dis: u-boot
  155. $(OBJDUMP) -d $< > $@
  156. u-boot: depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)
  157. UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
  158. $(LD) $(LDFLAGS) $$UNDEF_SYM $(OBJS) \
  159. --start-group $(LIBS) --end-group $(PLATFORM_LIBS) \
  160. -Map u-boot.map -o u-boot
  161. $(LIBS):
  162. $(MAKE) -C `dirname $@`
  163. $(SUBDIRS):
  164. $(MAKE) -C $@ all
  165. version:
  166. @echo -n "#define U_BOOT_VERSION \"U-Boot " > $(VERSION_FILE); \
  167. echo -n "$(U_BOOT_VERSION)" >> $(VERSION_FILE); \
  168. echo -n $(shell $(CONFIG_SHELL) $(TOPDIR)/tools/setlocalversion \
  169. $(TOPDIR)) >> $(VERSION_FILE); \
  170. echo "\"" >> $(VERSION_FILE)
  171. gdbtools:
  172. $(MAKE) -C tools/gdb || exit 1
  173. depend dep:
  174. @for dir in $(SUBDIRS) ; do $(MAKE) -C $$dir .depend ; done
  175. tags:
  176. ctags -w `find $(SUBDIRS) include \
  177. lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
  178. fs/cramfs fs/fat fs/fdos fs/jffs2 \
  179. net disk rtc dtt drivers drivers/sk98lin common \
  180. \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
  181. etags:
  182. etags -a `find $(SUBDIRS) include \
  183. lib_generic board/$(BOARDDIR) cpu/$(CPU) lib_$(ARCH) \
  184. fs/cramfs fs/fat fs/fdos fs/jffs2 \
  185. net disk rtc dtt drivers drivers/sk98lin common \
  186. \( -name CVS -prune \) -o \( -name '*.[ch]' -print \)`
  187. System.map: u-boot
  188. @$(NM) $< | \
  189. grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
  190. sort > System.map
  191. #########################################################################
  192. else
  193. all install u-boot u-boot.srec depend dep:
  194. @echo "System not configured - see README" >&2
  195. @ exit 1
  196. endif
  197. #########################################################################
  198. unconfig:
  199. @rm -f include/config.h include/config.mk board/*/config.tmp
  200. #========================================================================
  201. # PowerPC
  202. #========================================================================
  203. #########################################################################
  204. ## MPC5xx Systems
  205. #########################################################################
  206. canmb_config: unconfig
  207. @./mkconfig -a canmb ppc mpc5xxx canmb
  208. cmi_mpc5xx_config: unconfig
  209. @./mkconfig $(@:_config=) ppc mpc5xx cmi
  210. PATI_config: unconfig
  211. @./mkconfig $(@:_config=) ppc mpc5xx pati mpl
  212. #########################################################################
  213. ## MPC5xxx Systems
  214. #########################################################################
  215. aev_config: unconfig
  216. @./mkconfig -a aev ppc mpc5xxx tqm5200
  217. BC3450_config: unconfig
  218. @./mkconfig -a BC3450 ppc mpc5xxx bc3450
  219. cpci5200_config: unconfig
  220. @./mkconfig -a cpci5200 ppc mpc5xxx cpci5200 esd
  221. hmi1001_config: unconfig
  222. @./mkconfig hmi1001 ppc mpc5xxx hmi1001
  223. Lite5200_config \
  224. Lite5200_LOWBOOT_config \
  225. Lite5200_LOWBOOT08_config \
  226. icecube_5200_config \
  227. icecube_5200_LOWBOOT_config \
  228. icecube_5200_LOWBOOT08_config \
  229. icecube_5200_DDR_config \
  230. icecube_5200_DDR_LOWBOOT_config \
  231. icecube_5200_DDR_LOWBOOT08_config \
  232. icecube_5100_config: unconfig
  233. @ >include/config.h
  234. @[ -z "$(findstring LOWBOOT_,$@)" ] || \
  235. { if [ "$(findstring DDR,$@)" ] ; \
  236. then echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \
  237. else echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \
  238. fi ; \
  239. echo "... with LOWBOOT configuration" ; \
  240. }
  241. @[ -z "$(findstring LOWBOOT08,$@)" ] || \
  242. { echo "TEXT_BASE = 0xFF800000" >board/icecube/config.tmp ; \
  243. echo "... with 8 MB flash only" ; \
  244. echo "... with LOWBOOT configuration" ; \
  245. }
  246. @[ -z "$(findstring DDR,$@)" ] || \
  247. { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \
  248. echo "... DDR memory revision" ; \
  249. }
  250. @[ -z "$(findstring 5200,$@)" ] || \
  251. { echo "#define CONFIG_MPC5200" >>include/config.h ; \
  252. echo "... with MPC5200 processor" ; \
  253. }
  254. @[ -z "$(findstring 5100,$@)" ] || \
  255. { echo "#define CONFIG_MGT5100" >>include/config.h ; \
  256. echo "... with MGT5100 processor" ; \
  257. }
  258. @./mkconfig -a IceCube ppc mpc5xxx icecube
  259. inka4x0_config: unconfig
  260. @./mkconfig inka4x0 ppc mpc5xxx inka4x0
  261. lite5200b_config \
  262. lite5200b_LOWBOOT_config: unconfig
  263. @ >include/config.h
  264. @ echo "#define CONFIG_MPC5200_DDR" >>include/config.h
  265. @ echo "... DDR memory revision"
  266. @ echo "#define CONFIG_MPC5200" >>include/config.h
  267. @ echo "#define CONFIG_LITE5200B" >>include/config.h
  268. @[ -z "$(findstring LOWBOOT_,$@)" ] || \
  269. { echo "TEXT_BASE = 0xFF000000" >board/icecube/config.tmp ; \
  270. echo "... with LOWBOOT configuration" ; \
  271. }
  272. @ echo "... with MPC5200B processor"
  273. @./mkconfig -a IceCube ppc mpc5xxx icecube
  274. mcc200_config \
  275. mcc200_SDRAM_config \
  276. mcc200_highboot_config \
  277. mcc200_COM12_config \
  278. mcc200_COM12_SDRAM_config \
  279. mcc200_highboot_SDRAM_config \
  280. prs200_config \
  281. prs200_DDR_config \
  282. prs200_highboot_config \
  283. prs200_highboot_DDR_config: unconfig
  284. @ >include/config.h
  285. @[ -n "$(findstring highboot,$@)" ] || \
  286. { echo "... with lowboot configuration" ; \
  287. }
  288. @[ -z "$(findstring highboot,$@)" ] || \
  289. { echo "TEXT_BASE = 0xFFF00000" >board/mcc200/config.tmp ; \
  290. echo "... with highboot configuration" ; \
  291. }
  292. @[ -n "$(findstring _SDRAM,$@)" ] || \
  293. { if [ -n "$(findstring mcc200,$@)" ]; \
  294. then \
  295. echo "... with DDR" ; \
  296. else \
  297. if [ -n "$(findstring _DDR,$@)" ];\
  298. then \
  299. echo "... with DDR" ; \
  300. else \
  301. echo "#define CONFIG_MCC200_SDRAM" >>include/config.h ;\
  302. echo "... with SDRAM" ; \
  303. fi; \
  304. fi; \
  305. }
  306. @[ -z "$(findstring _SDRAM,$@)" ] || \
  307. { echo "#define CONFIG_MCC200_SDRAM" >>include/config.h ; \
  308. echo "... with SDRAM" ; \
  309. }
  310. @[ -z "$(findstring COM12,$@)" ] || \
  311. { echo "#define CONFIG_CONSOLE_COM12" >>include/config.h ; \
  312. echo "... with console on COM12" ; \
  313. }
  314. @[ -z "$(findstring prs200,$@)" ] || \
  315. { echo "#define CONFIG_PRS200" >>include/config.h ;\
  316. }
  317. @./mkconfig -n $@ -a mcc200 ppc mpc5xxx mcc200
  318. o2dnt_config:
  319. @./mkconfig o2dnt ppc mpc5xxx o2dnt
  320. pf5200_config: unconfig
  321. @./mkconfig pf5200 ppc mpc5xxx pf5200 esd
  322. PM520_config \
  323. PM520_DDR_config \
  324. PM520_ROMBOOT_config \
  325. PM520_ROMBOOT_DDR_config: unconfig
  326. @ >include/config.h
  327. @[ -z "$(findstring DDR,$@)" ] || \
  328. { echo "#define CONFIG_MPC5200_DDR" >>include/config.h ; \
  329. echo "... DDR memory revision" ; \
  330. }
  331. @[ -z "$(findstring ROMBOOT,$@)" ] || \
  332. { echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
  333. echo "... booting from 8-bit flash" ; \
  334. }
  335. @./mkconfig -a PM520 ppc mpc5xxx pm520
  336. smmaco4_config: unconfig
  337. @./mkconfig -a smmaco4 ppc mpc5xxx tqm5200
  338. spieval_config: unconfig
  339. @./mkconfig -a spieval ppc mpc5xxx tqm5200
  340. TB5200_B_config \
  341. TB5200_config: unconfig
  342. @[ -z "$(findstring _B,$@)" ] || \
  343. { echo "#define CONFIG_TQM5200_B" >>include/config.h ; \
  344. echo "... with MPC5200B processor" ; \
  345. }
  346. @./mkconfig -n $@ -a TB5200 ppc mpc5xxx tqm5200
  347. MINI5200_config \
  348. EVAL5200_config \
  349. TOP5200_config: unconfig
  350. @ echo "#define CONFIG_$(@:_config=) 1" >include/config.h
  351. @./mkconfig -n $@ -a TOP5200 ppc mpc5xxx top5200 emk
  352. Total5100_config \
  353. Total5200_config \
  354. Total5200_lowboot_config \
  355. Total5200_Rev2_config \
  356. Total5200_Rev2_lowboot_config: unconfig
  357. @ >include/config.h
  358. @[ -z "$(findstring 5100,$@)" ] || \
  359. { echo "#define CONFIG_MGT5100" >>include/config.h ; \
  360. echo "... with MGT5100 processor" ; \
  361. }
  362. @[ -z "$(findstring 5200,$@)" ] || \
  363. { echo "#define CONFIG_MPC5200" >>include/config.h ; \
  364. echo "... with MPC5200 processor" ; \
  365. }
  366. @[ -n "$(findstring Rev,$@)" ] || \
  367. { echo "#define CONFIG_TOTAL5200_REV 1" >>include/config.h ; \
  368. echo "... revision 1 board" ; \
  369. }
  370. @[ -z "$(findstring Rev2_,$@)" ] || \
  371. { echo "#define CONFIG_TOTAL5200_REV 2" >>include/config.h ; \
  372. echo "... revision 2 board" ; \
  373. }
  374. @[ -z "$(findstring lowboot_,$@)" ] || \
  375. { echo "TEXT_BASE = 0xFE000000" >board/total5200/config.tmp ; \
  376. echo "... with lowboot configuration" ; \
  377. }
  378. @./mkconfig -a Total5200 ppc mpc5xxx total5200
  379. cam5200_config \
  380. fo300_config \
  381. MiniFAP_config \
  382. TQM5200S_config \
  383. TQM5200S_HIGHBOOT_config \
  384. TQM5200_B_config \
  385. TQM5200_B_HIGHBOOT_config \
  386. TQM5200_config \
  387. TQM5200_STK100_config: unconfig
  388. @ >include/config.h
  389. @[ -z "$(findstring cam5200,$@)" ] || \
  390. { echo "#define CONFIG_CAM5200" >>include/config.h ; \
  391. echo "#define CONFIG_TQM5200S" >>include/config.h ; \
  392. echo "#define CONFIG_TQM5200_B" >>include/config.h ; \
  393. echo "... TQM5200S on Cam5200" ; \
  394. }
  395. @[ -z "$(findstring fo300,$@)" ] || \
  396. { echo "#define CONFIG_FO300" >>include/config.h ; \
  397. echo "... TQM5200 on FO300" ; \
  398. }
  399. @[ -z "$(findstring MiniFAP,$@)" ] || \
  400. { echo "#define CONFIG_MINIFAP" >>include/config.h ; \
  401. echo "... TQM5200_AC on MiniFAP" ; \
  402. }
  403. @[ -z "$(findstring STK100,$@)" ] || \
  404. { echo "#define CONFIG_STK52XX_REV100" >>include/config.h ; \
  405. echo "... on a STK52XX.100 base board" ; \
  406. }
  407. @[ -z "$(findstring TQM5200_B,$@)" ] || \
  408. { echo "#define CONFIG_TQM5200_B" >>include/config.h ; \
  409. }
  410. @[ -z "$(findstring TQM5200S,$@)" ] || \
  411. { echo "#define CONFIG_TQM5200S" >>include/config.h ; \
  412. echo "#define CONFIG_TQM5200_B" >>include/config.h ; \
  413. }
  414. @[ -z "$(findstring HIGHBOOT,$@)" ] || \
  415. { echo "TEXT_BASE = 0xFFF00000" >board/tqm5200/config.tmp ; \
  416. }
  417. @./mkconfig -n $@ -a TQM5200 ppc mpc5xxx tqm5200
  418. #########################################################################
  419. ## MPC8xx Systems
  420. #########################################################################
  421. Adder_config \
  422. Adder87x_config \
  423. AdderII_config \
  424. : unconfig
  425. $(if $(findstring AdderII,$@), \
  426. @echo "#define CONFIG_MPC852T" > include/config.h)
  427. @./mkconfig -a Adder ppc mpc8xx adder
  428. ADS860_config \
  429. FADS823_config \
  430. FADS850SAR_config \
  431. MPC86xADS_config \
  432. MPC885ADS_config \
  433. FADS860T_config: unconfig
  434. @./mkconfig $(@:_config=) ppc mpc8xx fads
  435. AMX860_config : unconfig
  436. @./mkconfig $(@:_config=) ppc mpc8xx amx860 westel
  437. c2mon_config: unconfig
  438. @./mkconfig $(@:_config=) ppc mpc8xx c2mon
  439. CCM_config: unconfig
  440. @./mkconfig $(@:_config=) ppc mpc8xx CCM siemens
  441. cogent_mpc8xx_config: unconfig
  442. @./mkconfig $(@:_config=) ppc mpc8xx cogent
  443. ELPT860_config: unconfig
  444. @./mkconfig $(@:_config=) ppc mpc8xx elpt860 LEOX
  445. EP88x_config: unconfig
  446. @./mkconfig $(@:_config=) ppc mpc8xx ep88x
  447. ESTEEM192E_config: unconfig
  448. @./mkconfig $(@:_config=) ppc mpc8xx esteem192e
  449. ETX094_config : unconfig
  450. @./mkconfig $(@:_config=) ppc mpc8xx etx094
  451. FLAGADM_config: unconfig
  452. @./mkconfig $(@:_config=) ppc mpc8xx flagadm
  453. xtract_GEN860T = $(subst _SC,,$(subst _config,,$1))
  454. GEN860T_SC_config \
  455. GEN860T_config: unconfig
  456. @ >include/config.h
  457. @[ -z "$(findstring _SC,$@)" ] || \
  458. { echo "#define CONFIG_SC" >>include/config.h ; \
  459. echo "With reduced H/W feature set (SC)..." ; \
  460. }
  461. @./mkconfig -a $(call xtract_GEN860T,$@) ppc mpc8xx gen860t
  462. GENIETV_config: unconfig
  463. @./mkconfig $(@:_config=) ppc mpc8xx genietv
  464. GTH_config: unconfig
  465. @./mkconfig $(@:_config=) ppc mpc8xx gth
  466. hermes_config : unconfig
  467. @./mkconfig $(@:_config=) ppc mpc8xx hermes
  468. HMI10_config : unconfig
  469. @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx
  470. IAD210_config: unconfig
  471. @./mkconfig $(@:_config=) ppc mpc8xx IAD210 siemens
  472. xtract_ICU862 = $(subst _100MHz,,$(subst _config,,$1))
  473. ICU862_100MHz_config \
  474. ICU862_config: unconfig
  475. @ >include/config.h
  476. @[ -z "$(findstring _100MHz,$@)" ] || \
  477. { echo "#define CONFIG_100MHz" >>include/config.h ; \
  478. echo "... with 100MHz system clock" ; \
  479. }
  480. @./mkconfig -a $(call xtract_ICU862,$@) ppc mpc8xx icu862
  481. IP860_config : unconfig
  482. @./mkconfig $(@:_config=) ppc mpc8xx ip860
  483. IVML24_256_config \
  484. IVML24_128_config \
  485. IVML24_config: unconfig
  486. @ >include/config.h
  487. @[ -z "$(findstring IVML24_config,$@)" ] || \
  488. { echo "#define CONFIG_IVML24_16M" >>include/config.h ; \
  489. }
  490. @[ -z "$(findstring IVML24_128_config,$@)" ] || \
  491. { echo "#define CONFIG_IVML24_32M" >>include/config.h ; \
  492. }
  493. @[ -z "$(findstring IVML24_256_config,$@)" ] || \
  494. { echo "#define CONFIG_IVML24_64M" >>include/config.h ; \
  495. }
  496. @./mkconfig -a IVML24 ppc mpc8xx ivm
  497. IVMS8_256_config \
  498. IVMS8_128_config \
  499. IVMS8_config: unconfig
  500. @ >include/config.h
  501. @[ -z "$(findstring IVMS8_config,$@)" ] || \
  502. { echo "#define CONFIG_IVMS8_16M" >>include/config.h ; \
  503. }
  504. @[ -z "$(findstring IVMS8_128_config,$@)" ] || \
  505. { echo "#define CONFIG_IVMS8_32M" >>include/config.h ; \
  506. }
  507. @[ -z "$(findstring IVMS8_256_config,$@)" ] || \
  508. { echo "#define CONFIG_IVMS8_64M" >>include/config.h ; \
  509. }
  510. @./mkconfig -a IVMS8 ppc mpc8xx ivm
  511. KUP4K_config : unconfig
  512. @./mkconfig $(@:_config=) ppc mpc8xx kup4k kup
  513. KUP4X_config : unconfig
  514. @./mkconfig $(@:_config=) ppc mpc8xx kup4x kup
  515. LANTEC_config : unconfig
  516. @./mkconfig $(@:_config=) ppc mpc8xx lantec
  517. lwmon_config: unconfig
  518. @./mkconfig $(@:_config=) ppc mpc8xx lwmon
  519. MBX_config \
  520. MBX860T_config: unconfig
  521. @./mkconfig $(@:_config=) ppc mpc8xx mbx8xx
  522. MHPC_config: unconfig
  523. @./mkconfig $(@:_config=) ppc mpc8xx mhpc eltec
  524. MVS1_config : unconfig
  525. @./mkconfig $(@:_config=) ppc mpc8xx mvs1
  526. xtract_NETVIA = $(subst _V2,,$(subst _config,,$1))
  527. NETVIA_V2_config \
  528. NETVIA_config: unconfig
  529. @ >include/config.h
  530. @[ -z "$(findstring NETVIA_config,$@)" ] || \
  531. { echo "#define CONFIG_NETVIA_VERSION 1" >>include/config.h ; \
  532. echo "... Version 1" ; \
  533. }
  534. @[ -z "$(findstring NETVIA_V2_config,$@)" ] || \
  535. { echo "#define CONFIG_NETVIA_VERSION 2" >>include/config.h ; \
  536. echo "... Version 2" ; \
  537. }
  538. @./mkconfig -a $(call xtract_NETVIA,$@) ppc mpc8xx netvia
  539. xtract_NETPHONE = $(subst _V2,,$(subst _config,,$1))
  540. NETPHONE_V2_config \
  541. NETPHONE_config: unconfig
  542. @ >include/config.h
  543. @[ -z "$(findstring NETPHONE_config,$@)" ] || \
  544. { echo "#define CONFIG_NETPHONE_VERSION 1" >>include/config.h ; \
  545. }
  546. @[ -z "$(findstring NETPHONE_V2_config,$@)" ] || \
  547. { echo "#define CONFIG_NETPHONE_VERSION 2" >>include/config.h ; \
  548. }
  549. @./mkconfig -a $(call xtract_NETPHONE,$@) ppc mpc8xx netphone
  550. xtract_NETTA = $(subst _SWAPHOOK,,$(subst _6412,,$(subst _ISDN,,$(subst _config,,$1))))
  551. NETTA_ISDN_6412_SWAPHOOK_config \
  552. NETTA_ISDN_SWAPHOOK_config \
  553. NETTA_6412_SWAPHOOK_config \
  554. NETTA_SWAPHOOK_config \
  555. NETTA_ISDN_6412_config \
  556. NETTA_ISDN_config \
  557. NETTA_6412_config \
  558. NETTA_config: unconfig
  559. @ >include/config.h
  560. @[ -z "$(findstring ISDN_,$@)" ] || \
  561. { echo "#define CONFIG_NETTA_ISDN 1" >>include/config.h ; \
  562. }
  563. @[ -n "$(findstring ISDN_,$@)" ] || \
  564. { echo "#undef CONFIG_NETTA_ISDN" >>include/config.h ; \
  565. }
  566. @[ -z "$(findstring 6412_,$@)" ] || \
  567. { echo "#define CONFIG_NETTA_6412 1" >>include/config.h ; \
  568. }
  569. @[ -n "$(findstring 6412_,$@)" ] || \
  570. { echo "#undef CONFIG_NETTA_6412" >>include/config.h ; \
  571. }
  572. @[ -z "$(findstring SWAPHOOK_,$@)" ] || \
  573. { echo "#define CONFIG_NETTA_SWAPHOOK 1" >>include/config.h ; \
  574. }
  575. @[ -n "$(findstring SWAPHOOK_,$@)" ] || \
  576. { echo "#undef CONFIG_NETTA_SWAPHOOK" >>include/config.h ; \
  577. }
  578. @./mkconfig -a $(call xtract_NETTA,$@) ppc mpc8xx netta
  579. xtract_NETTA2 = $(subst _V2,,$(subst _config,,$1))
  580. NETTA2_V2_config \
  581. NETTA2_config: unconfig
  582. @ >include/config.h
  583. @[ -z "$(findstring NETTA2_config,$@)" ] || \
  584. { echo "#define CONFIG_NETTA2_VERSION 1" >>include/config.h ; \
  585. }
  586. @[ -z "$(findstring NETTA2_V2_config,$@)" ] || \
  587. { echo "#define CONFIG_NETTA2_VERSION 2" >>include/config.h ; \
  588. }
  589. @./mkconfig -a $(call xtract_NETTA2,$@) ppc mpc8xx netta2
  590. NC650_Rev1_config \
  591. NC650_Rev2_config \
  592. CP850_config: unconfig
  593. @ >include/config.h
  594. @[ -z "$(findstring CP850,$@)" ] || \
  595. { echo "#define CONFIG_CP850 1" >>include/config.h ; \
  596. echo "#define CONFIG_IDS852_REV2 1" >>include/config.h ; \
  597. }
  598. @[ -z "$(findstring Rev1,$@)" ] || \
  599. { echo "#define CONFIG_IDS852_REV1 1" >>include/config.h ; \
  600. }
  601. @[ -z "$(findstring Rev2,$@)" ] || \
  602. { echo "#define CONFIG_IDS852_REV2 1" >>include/config.h ; \
  603. }
  604. @./mkconfig -a NC650 ppc mpc8xx nc650
  605. NX823_config: unconfig
  606. @./mkconfig $(@:_config=) ppc mpc8xx nx823
  607. pcu_e_config: unconfig
  608. @./mkconfig $(@:_config=) ppc mpc8xx pcu_e siemens
  609. QS850_config: unconfig
  610. @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc
  611. QS823_config: unconfig
  612. @./mkconfig $(@:_config=) ppc mpc8xx qs850 snmc
  613. QS860T_config: unconfig
  614. @./mkconfig $(@:_config=) ppc mpc8xx qs860t snmc
  615. quantum_config: unconfig
  616. @./mkconfig $(@:_config=) ppc mpc8xx quantum
  617. R360MPI_config: unconfig
  618. @./mkconfig $(@:_config=) ppc mpc8xx r360mpi
  619. RBC823_config: unconfig
  620. @./mkconfig $(@:_config=) ppc mpc8xx rbc823
  621. RPXClassic_config: unconfig
  622. @./mkconfig $(@:_config=) ppc mpc8xx RPXClassic
  623. RPXlite_config: unconfig
  624. @./mkconfig $(@:_config=) ppc mpc8xx RPXlite
  625. RPXlite_DW_64_config \
  626. RPXlite_DW_LCD_config \
  627. RPXlite_DW_64_LCD_config \
  628. RPXlite_DW_NVRAM_config \
  629. RPXlite_DW_NVRAM_64_config \
  630. RPXlite_DW_NVRAM_LCD_config \
  631. RPXlite_DW_NVRAM_64_LCD_config \
  632. RPXlite_DW_config: unconfig
  633. @ >include/config.h
  634. @[ -z "$(findstring _64,$@)" ] || \
  635. { echo "#define RPXlite_64MHz" >>include/config.h ; \
  636. echo "... with 64MHz system clock ..."; \
  637. }
  638. @[ -z "$(findstring _LCD,$@)" ] || \
  639. { echo "#define CONFIG_LCD" >>include/config.h ; \
  640. echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \
  641. echo "... with LCD display ..."; \
  642. }
  643. @[ -z "$(findstring _NVRAM,$@)" ] || \
  644. { echo "#define CFG_ENV_IS_IN_NVRAM" >>include/config.h ; \
  645. echo "... with ENV in NVRAM ..."; \
  646. }
  647. @./mkconfig -a RPXlite_DW ppc mpc8xx RPXlite_dw
  648. rmu_config: unconfig
  649. @./mkconfig $(@:_config=) ppc mpc8xx rmu
  650. RRvision_config: unconfig
  651. @./mkconfig $(@:_config=) ppc mpc8xx RRvision
  652. RRvision_LCD_config: unconfig
  653. @echo "#define CONFIG_LCD" >include/config.h
  654. @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
  655. @./mkconfig -a RRvision ppc mpc8xx RRvision
  656. SM850_config : unconfig
  657. @./mkconfig $(@:_config=) ppc mpc8xx tqm8xx
  658. spc1920_config:
  659. @./mkconfig $(@:_config=) ppc mpc8xx spc1920
  660. SPD823TS_config: unconfig
  661. @./mkconfig $(@:_config=) ppc mpc8xx spd8xx
  662. stxxtc_config: unconfig
  663. @./mkconfig $(@:_config=) ppc mpc8xx stxxtc
  664. svm_sc8xx_config: unconfig
  665. @ >include/config.h
  666. @./mkconfig $(@:_config=) ppc mpc8xx svm_sc8xx
  667. SXNI855T_config: unconfig
  668. @./mkconfig $(@:_config=) ppc mpc8xx sixnet
  669. # EMK MPC8xx based modules
  670. TOP860_config: unconfig
  671. @./mkconfig $(@:_config=) ppc mpc8xx top860 emk
  672. # Play some tricks for configuration selection
  673. # Only 855 and 860 boards may come with FEC
  674. # and only 823 boards may have LCD support
  675. xtract_8xx = $(subst _LCD,,$(subst _config,,$1))
  676. FPS850L_config \
  677. FPS860L_config \
  678. NSCU_config \
  679. TQM823L_config \
  680. TQM823L_LCD_config \
  681. TQM850L_config \
  682. TQM855L_config \
  683. TQM860L_config \
  684. TQM862L_config \
  685. TQM823M_config \
  686. TQM850M_config \
  687. TQM855M_config \
  688. TQM860M_config \
  689. TQM862M_config \
  690. TQM866M_config \
  691. TQM885D_config \
  692. virtlab2_config: unconfig
  693. @ >include/config.h
  694. @[ -z "$(findstring _LCD,$@)" ] || \
  695. { echo "#define CONFIG_LCD" >>include/config.h ; \
  696. echo "#define CONFIG_NEC_NL6448BC20" >>include/config.h ; \
  697. echo "... with LCD display" ; \
  698. }
  699. @./mkconfig -a $(call xtract_8xx,$@) ppc mpc8xx tqm8xx
  700. TTTech_config: unconfig
  701. @echo "#define CONFIG_LCD" >include/config.h
  702. @echo "#define CONFIG_SHARP_LQ104V7DS01" >>include/config.h
  703. @./mkconfig -a TQM823L ppc mpc8xx tqm8xx
  704. uc100_config : unconfig
  705. @./mkconfig $(@:_config=) ppc mpc8xx uc100
  706. v37_config: unconfig
  707. @echo "#define CONFIG_LCD" >include/config.h
  708. @echo "#define CONFIG_SHARP_LQ084V1DG21" >>include/config.h
  709. @./mkconfig $(@:_config=) ppc mpc8xx v37
  710. wtk_config: unconfig
  711. @echo "#define CONFIG_LCD" >include/config.h
  712. @echo "#define CONFIG_SHARP_LQ065T9DR51U" >>include/config.h
  713. @./mkconfig -a TQM823L ppc mpc8xx tqm8xx
  714. #########################################################################
  715. ## PPC4xx Systems
  716. #########################################################################
  717. xtract_4xx = $(subst _25,,$(subst _33,,$(subst _BA,,$(subst _ME,,$(subst _HI,,$(subst _config,,$1))))))
  718. ADCIOP_config: unconfig
  719. @./mkconfig $(@:_config=) ppc ppc4xx adciop esd
  720. AP1000_config:unconfig
  721. @./mkconfig $(@:_config=) ppc ppc4xx ap1000 amirix
  722. APC405_config: unconfig
  723. @./mkconfig $(@:_config=) ppc ppc4xx apc405 esd
  724. AR405_config: unconfig
  725. @./mkconfig $(@:_config=) ppc ppc4xx ar405 esd
  726. ASH405_config: unconfig
  727. @./mkconfig $(@:_config=) ppc ppc4xx ash405 esd
  728. bamboo_config: unconfig
  729. @./mkconfig $(@:_config=) ppc ppc4xx bamboo amcc
  730. bubinga_config: unconfig
  731. @./mkconfig $(@:_config=) ppc ppc4xx bubinga amcc
  732. CANBT_config: unconfig
  733. @./mkconfig $(@:_config=) ppc ppc4xx canbt esd
  734. CATcenter_config \
  735. CATcenter_25_config \
  736. CATcenter_33_config: unconfig
  737. @ echo "/* CATcenter uses PPChameleon Model ME */" > include/config.h
  738. @ echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >> include/config.h
  739. @[ -z "$(findstring _25,$@)" ] || \
  740. { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>include/config.h ; \
  741. echo "SysClk = 25MHz" ; \
  742. }
  743. @[ -z "$(findstring _33,$@)" ] || \
  744. { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>include/config.h ; \
  745. echo "SysClk = 33MHz" ; \
  746. }
  747. @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave
  748. CPCI2DP_config: unconfig
  749. @./mkconfig $(@:_config=) ppc ppc4xx cpci2dp esd
  750. CPCI405_config \
  751. CPCI4052_config \
  752. CPCI405DT_config \
  753. CPCI405AB_config: unconfig
  754. @./mkconfig $(@:_config=) ppc ppc4xx cpci405 esd
  755. @echo "BOARD_REVISION = $(@:_config=)" >>include/config.mk
  756. CPCI440_config: unconfig
  757. @./mkconfig $(@:_config=) ppc ppc4xx cpci440 esd
  758. CPCIISER4_config: unconfig
  759. @./mkconfig $(@:_config=) ppc ppc4xx cpciiser4 esd
  760. CRAYL1_config: unconfig
  761. @./mkconfig $(@:_config=) ppc ppc4xx L1 cray
  762. csb272_config: unconfig
  763. @./mkconfig $(@:_config=) ppc ppc4xx csb272
  764. csb472_config: unconfig
  765. @./mkconfig $(@:_config=) ppc ppc4xx csb472
  766. DASA_SIM_config: unconfig
  767. @./mkconfig $(@:_config=) ppc ppc4xx dasa_sim esd
  768. DP405_config: unconfig
  769. @./mkconfig $(@:_config=) ppc ppc4xx dp405 esd
  770. DU405_config: unconfig
  771. @./mkconfig $(@:_config=) ppc ppc4xx du405 esd
  772. ebony_config: unconfig
  773. @./mkconfig $(@:_config=) ppc ppc4xx ebony amcc
  774. ERIC_config: unconfig
  775. @./mkconfig $(@:_config=) ppc ppc4xx eric
  776. EXBITGEN_config: unconfig
  777. @./mkconfig $(@:_config=) ppc ppc4xx exbitgen
  778. G2000_config: unconfig
  779. @./mkconfig $(@:_config=) ppc ppc4xx g2000
  780. HH405_config: unconfig
  781. @./mkconfig $(@:_config=) ppc ppc4xx hh405 esd
  782. HUB405_config: unconfig
  783. @./mkconfig $(@:_config=) ppc ppc4xx hub405 esd
  784. JSE_config: unconfig
  785. @./mkconfig $(@:_config=) ppc ppc4xx jse
  786. KAREF_config: unconfig
  787. @./mkconfig $(@:_config=) ppc ppc4xx karef sandburst
  788. luan_config: unconfig
  789. @./mkconfig $(@:_config=) ppc ppc4xx luan amcc
  790. METROBOX_config: unconfig
  791. @./mkconfig $(@:_config=) ppc ppc4xx metrobox sandburst
  792. MIP405_config: unconfig
  793. @./mkconfig $(@:_config=) ppc ppc4xx mip405 mpl
  794. MIP405T_config: unconfig
  795. @echo "#define CONFIG_MIP405T" >include/config.h
  796. @echo "Enable subset config for MIP405T"
  797. @./mkconfig -a MIP405 ppc ppc4xx mip405 mpl
  798. ML2_config: unconfig
  799. @./mkconfig $(@:_config=) ppc ppc4xx ml2
  800. ml300_config: unconfig
  801. @./mkconfig $(@:_config=) ppc ppc4xx ml300 xilinx
  802. ocotea_config: unconfig
  803. @./mkconfig $(@:_config=) ppc ppc4xx ocotea amcc
  804. OCRTC_config \
  805. ORSG_config: unconfig
  806. @./mkconfig $(@:_config=) ppc ppc4xx ocrtc esd
  807. p3p440_config: unconfig
  808. @./mkconfig $(@:_config=) ppc ppc4xx p3p440 prodrive
  809. PCI405_config: unconfig
  810. @./mkconfig $(@:_config=) ppc ppc4xx pci405 esd
  811. pcs440ep_config: unconfig
  812. @./mkconfig $(@:_config=) ppc ppc4xx pcs440ep
  813. PIP405_config: unconfig
  814. @./mkconfig $(@:_config=) ppc ppc4xx pip405 mpl
  815. PLU405_config: unconfig
  816. @./mkconfig $(@:_config=) ppc ppc4xx plu405 esd
  817. PMC405_config: unconfig
  818. @./mkconfig $(@:_config=) ppc ppc4xx pmc405 esd
  819. PPChameleonEVB_config \
  820. PPChameleonEVB_BA_25_config \
  821. PPChameleonEVB_ME_25_config \
  822. PPChameleonEVB_HI_25_config \
  823. PPChameleonEVB_BA_33_config \
  824. PPChameleonEVB_ME_33_config \
  825. PPChameleonEVB_HI_33_config: unconfig
  826. @ >include/config.h
  827. @[ -z "$(findstring EVB_BA,$@)" ] || \
  828. { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 0" >>include/config.h ; \
  829. echo "... BASIC model" ; \
  830. }
  831. @[ -z "$(findstring EVB_ME,$@)" ] || \
  832. { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 1" >>include/config.h ; \
  833. echo "... MEDIUM model" ; \
  834. }
  835. @[ -z "$(findstring EVB_HI,$@)" ] || \
  836. { echo "#define CONFIG_PPCHAMELEON_MODULE_MODEL 2" >>include/config.h ; \
  837. echo "... HIGH-END model" ; \
  838. }
  839. @[ -z "$(findstring _25,$@)" ] || \
  840. { echo "#define CONFIG_PPCHAMELEON_CLK_25" >>include/config.h ; \
  841. echo "SysClk = 25MHz" ; \
  842. }
  843. @[ -z "$(findstring _33,$@)" ] || \
  844. { echo "#define CONFIG_PPCHAMELEON_CLK_33" >>include/config.h ; \
  845. echo "SysClk = 33MHz" ; \
  846. }
  847. @./mkconfig -a $(call xtract_4xx,$@) ppc ppc4xx PPChameleonEVB dave
  848. sbc405_config: unconfig
  849. @./mkconfig $(@:_config=) ppc ppc4xx sbc405
  850. sycamore_config: unconfig
  851. @echo "Configuring for sycamore board as subset of walnut..."
  852. @./mkconfig -a walnut ppc ppc4xx walnut amcc
  853. VOH405_config: unconfig
  854. @./mkconfig $(@:_config=) ppc ppc4xx voh405 esd
  855. VOM405_config: unconfig
  856. @./mkconfig $(@:_config=) ppc ppc4xx vom405 esd
  857. CMS700_config: unconfig
  858. @./mkconfig $(@:_config=) ppc ppc4xx cms700 esd
  859. W7OLMC_config \
  860. W7OLMG_config: unconfig
  861. @./mkconfig $(@:_config=) ppc ppc4xx w7o
  862. walnut_config: unconfig
  863. @./mkconfig $(@:_config=) ppc ppc4xx walnut amcc
  864. WUH405_config: unconfig
  865. @./mkconfig $(@:_config=) ppc ppc4xx wuh405 esd
  866. XPEDITE1K_config: unconfig
  867. @./mkconfig $(@:_config=) ppc ppc4xx xpedite1k
  868. yosemite_config: unconfig
  869. @./mkconfig $(@:_config=) ppc ppc4xx yosemite amcc
  870. yellowstone_config: unconfig
  871. @./mkconfig $(@:_config=) ppc ppc4xx yellowstone amcc
  872. yucca_config: unconfig
  873. @./mkconfig $(@:_config=) ppc ppc4xx yucca amcc
  874. #########################################################################
  875. ## MPC8220 Systems
  876. #########################################################################
  877. Alaska8220_config \
  878. Yukon8220_config: unconfig
  879. @./mkconfig $(@:_config=) ppc mpc8220 alaska
  880. sorcery_config: unconfig
  881. @./mkconfig $(@:_config=) ppc mpc8220 sorcery
  882. #########################################################################
  883. ## MPC824x Systems
  884. #########################################################################
  885. xtract_82xx = $(subst _BIGFLASH,,$(subst _ROMBOOT,,$(subst _L2,,$(subst _266MHz,,$(subst _300MHz,,$(subst _config,,$1))))))
  886. A3000_config: unconfig
  887. @./mkconfig $(@:_config=) ppc mpc824x a3000
  888. barco_config: unconfig
  889. @./mkconfig $(@:_config=) ppc mpc824x barco
  890. BMW_config: unconfig
  891. @./mkconfig $(@:_config=) ppc mpc824x bmw
  892. CPC45_config \
  893. CPC45_ROMBOOT_config: unconfig
  894. @./mkconfig $(call xtract_82xx,$@) ppc mpc824x cpc45
  895. @cd ./include ; \
  896. if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
  897. echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
  898. echo "... booting from 8-bit flash" ; \
  899. else \
  900. echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
  901. echo "... booting from 64-bit flash" ; \
  902. fi; \
  903. echo "export CONFIG_BOOT_ROM" >> config.mk;
  904. CU824_config: unconfig
  905. @./mkconfig $(@:_config=) ppc mpc824x cu824
  906. debris_config: unconfig
  907. @./mkconfig $(@:_config=) ppc mpc824x debris etin
  908. eXalion_config: unconfig
  909. @./mkconfig $(@:_config=) ppc mpc824x eXalion
  910. HIDDEN_DRAGON_config: unconfig
  911. @./mkconfig $(@:_config=) ppc mpc824x hidden_dragon
  912. kvme080_config: unconfig
  913. @./mkconfig $(@:_config=) ppc mpc824x kvme080 etin
  914. MOUSSE_config: unconfig
  915. @./mkconfig $(@:_config=) ppc mpc824x mousse
  916. MUSENKI_config: unconfig
  917. @./mkconfig $(@:_config=) ppc mpc824x musenki
  918. MVBLUE_config: unconfig
  919. @./mkconfig $(@:_config=) ppc mpc824x mvblue
  920. OXC_config: unconfig
  921. @./mkconfig $(@:_config=) ppc mpc824x oxc
  922. PN62_config: unconfig
  923. @./mkconfig $(@:_config=) ppc mpc824x pn62
  924. Sandpoint8240_config: unconfig
  925. @./mkconfig $(@:_config=) ppc mpc824x sandpoint
  926. Sandpoint8245_config: unconfig
  927. @./mkconfig $(@:_config=) ppc mpc824x sandpoint
  928. sbc8240_config: unconfig
  929. @./mkconfig $(@:_config=) ppc mpc824x sbc8240
  930. SL8245_config: unconfig
  931. @./mkconfig $(@:_config=) ppc mpc824x sl8245
  932. utx8245_config: unconfig
  933. @./mkconfig $(@:_config=) ppc mpc824x utx8245
  934. #########################################################################
  935. ## MPC8260 Systems
  936. #########################################################################
  937. atc_config: unconfig
  938. @./mkconfig $(@:_config=) ppc mpc8260 atc
  939. cogent_mpc8260_config: unconfig
  940. @./mkconfig $(@:_config=) ppc mpc8260 cogent
  941. CPU86_config \
  942. CPU86_ROMBOOT_config: unconfig
  943. @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu86
  944. @cd ./include ; \
  945. if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
  946. echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
  947. echo "... booting from 8-bit flash" ; \
  948. else \
  949. echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
  950. echo "... booting from 64-bit flash" ; \
  951. fi; \
  952. echo "export CONFIG_BOOT_ROM" >> config.mk;
  953. CPU87_config \
  954. CPU87_ROMBOOT_config: unconfig
  955. @./mkconfig $(call xtract_82xx,$@) ppc mpc8260 cpu87
  956. @cd ./include ; \
  957. if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
  958. echo "CONFIG_BOOT_ROM = y" >> config.mk ; \
  959. echo "... booting from 8-bit flash" ; \
  960. else \
  961. echo "CONFIG_BOOT_ROM = n" >> config.mk ; \
  962. echo "... booting from 64-bit flash" ; \
  963. fi; \
  964. echo "export CONFIG_BOOT_ROM" >> config.mk;
  965. ep8248_config \
  966. ep8248E_config : unconfig
  967. @./mkconfig ep8248 ppc mpc8260 ep8248
  968. ep8260_config: unconfig
  969. @./mkconfig $(@:_config=) ppc mpc8260 ep8260
  970. gw8260_config: unconfig
  971. @./mkconfig $(@:_config=) ppc mpc8260 gw8260
  972. hymod_config: unconfig
  973. @./mkconfig $(@:_config=) ppc mpc8260 hymod
  974. IDS8247_config: unconfig
  975. @./mkconfig $(@:_config=) ppc mpc8260 ids8247
  976. IPHASE4539_config: unconfig
  977. @./mkconfig $(@:_config=) ppc mpc8260 iphase4539
  978. ISPAN_config \
  979. ISPAN_REVB_config: unconfig
  980. @if [ "$(findstring _REVB_,$@)" ] ; then \
  981. echo "#define CFG_REV_B" > include/config.h ; \
  982. fi
  983. @./mkconfig -a ISPAN ppc mpc8260 ispan
  984. MPC8260ADS_config \
  985. MPC8260ADS_lowboot_config \
  986. MPC8260ADS_33MHz_config \
  987. MPC8260ADS_33MHz_lowboot_config \
  988. MPC8260ADS_40MHz_config \
  989. MPC8260ADS_40MHz_lowboot_config \
  990. MPC8272ADS_config \
  991. MPC8272ADS_lowboot_config \
  992. PQ2FADS_config \
  993. PQ2FADS_lowboot_config \
  994. PQ2FADS-VR_config \
  995. PQ2FADS-VR_lowboot_config \
  996. PQ2FADS-ZU_config \
  997. PQ2FADS-ZU_lowboot_config \
  998. PQ2FADS-ZU_66MHz_config \
  999. PQ2FADS-ZU_66MHz_lowboot_config \
  1000. : unconfig
  1001. $(if $(findstring PQ2FADS,$@), \
  1002. @echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \
  1003. @echo "#define CONFIG_ADSTYPE CFG_"$(subst MPC,,$(word 1,$(subst _, ,$@))) > include/config.h)
  1004. $(if $(findstring MHz,$@), \
  1005. @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \
  1006. $(if $(findstring VR,$@), \
  1007. @echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h))
  1008. @[ -z "$(findstring lowboot_,$@)" ] || \
  1009. { echo "TEXT_BASE = 0xFF800000" >board/mpc8260ads/config.tmp ; \
  1010. echo "... with lowboot configuration" ; \
  1011. }
  1012. @./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads
  1013. MPC8266ADS_config: unconfig
  1014. @./mkconfig $(@:_config=) ppc mpc8260 mpc8266ads
  1015. # PM825/PM826 default configuration: small (= 8 MB) Flash / boot from 64-bit flash
  1016. PM825_config \
  1017. PM825_ROMBOOT_config \
  1018. PM825_BIGFLASH_config \
  1019. PM825_ROMBOOT_BIGFLASH_config \
  1020. PM826_config \
  1021. PM826_ROMBOOT_config \
  1022. PM826_BIGFLASH_config \
  1023. PM826_ROMBOOT_BIGFLASH_config: unconfig
  1024. @if [ "$(findstring PM825_,$@)" ] ; then \
  1025. echo "#define CONFIG_PCI" >include/config.h ; \
  1026. else \
  1027. >include/config.h ; \
  1028. fi
  1029. @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
  1030. echo "... booting from 8-bit flash" ; \
  1031. echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
  1032. echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \
  1033. if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
  1034. echo "... with 32 MB Flash" ; \
  1035. echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \
  1036. fi; \
  1037. else \
  1038. echo "... booting from 64-bit flash" ; \
  1039. if [ "$(findstring _BIGFLASH_,$@)" ] ; then \
  1040. echo "... with 32 MB Flash" ; \
  1041. echo "#define CONFIG_FLASH_32MB" >>include/config.h ; \
  1042. echo "TEXT_BASE = 0x40000000" >board/pm826/config.tmp ; \
  1043. else \
  1044. echo "TEXT_BASE = 0xFF000000" >board/pm826/config.tmp ; \
  1045. fi; \
  1046. fi
  1047. @./mkconfig -a PM826 ppc mpc8260 pm826
  1048. PM828_config \
  1049. PM828_PCI_config \
  1050. PM828_ROMBOOT_config \
  1051. PM828_ROMBOOT_PCI_config: unconfig
  1052. @if [ "$(findstring _PCI_,$@)" ] ; then \
  1053. echo "#define CONFIG_PCI" >>include/config.h ; \
  1054. echo "... with PCI enabled" ; \
  1055. else \
  1056. >include/config.h ; \
  1057. fi
  1058. @if [ "$(findstring _ROMBOOT_,$@)" ] ; then \
  1059. echo "... booting from 8-bit flash" ; \
  1060. echo "#define CONFIG_BOOT_ROM" >>include/config.h ; \
  1061. echo "TEXT_BASE = 0xFF800000" >board/pm826/config.tmp ; \
  1062. fi
  1063. @./mkconfig -a PM828 ppc mpc8260 pm828
  1064. ppmc8260_config: unconfig
  1065. @./mkconfig $(@:_config=) ppc mpc8260 ppmc8260
  1066. Rattler8248_config \
  1067. Rattler_config: unconfig
  1068. $(if $(findstring 8248,$@), \
  1069. @echo "#define CONFIG_MPC8248" > include/config.h)
  1070. @./mkconfig -a Rattler ppc mpc8260 rattler
  1071. RPXsuper_config: unconfig
  1072. @./mkconfig $(@:_config=) ppc mpc8260 rpxsuper
  1073. rsdproto_config: unconfig
  1074. @./mkconfig $(@:_config=) ppc mpc8260 rsdproto
  1075. sacsng_config: unconfig
  1076. @./mkconfig $(@:_config=) ppc mpc8260 sacsng
  1077. sbc8260_config: unconfig
  1078. @./mkconfig $(@:_config=) ppc mpc8260 sbc8260
  1079. SCM_config: unconfig
  1080. @./mkconfig $(@:_config=) ppc mpc8260 SCM siemens
  1081. TQM8255_AA_config \
  1082. TQM8260_AA_config \
  1083. TQM8260_AB_config \
  1084. TQM8260_AC_config \
  1085. TQM8260_AD_config \
  1086. TQM8260_AE_config \
  1087. TQM8260_AF_config \
  1088. TQM8260_AG_config \
  1089. TQM8260_AH_config \
  1090. TQM8260_AI_config \
  1091. TQM8265_AA_config: unconfig
  1092. @case "$@" in \
  1093. TQM8255_AA_config) CTYPE=MPC8255; CFREQ=300; CACHE=no; BMODE=8260;; \
  1094. TQM8260_AA_config) CTYPE=MPC8260; CFREQ=200; CACHE=no; BMODE=8260;; \
  1095. TQM8260_AB_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \
  1096. TQM8260_AC_config) CTYPE=MPC8260; CFREQ=200; CACHE=yes; BMODE=60x;; \
  1097. TQM8260_AD_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \
  1098. TQM8260_AE_config) CTYPE=MPC8260; CFREQ=266; CACHE=no; BMODE=8260;; \
  1099. TQM8260_AF_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \
  1100. TQM8260_AG_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=8260;; \
  1101. TQM8260_AH_config) CTYPE=MPC8260; CFREQ=300; CACHE=yes; BMODE=60x;; \
  1102. TQM8260_AI_config) CTYPE=MPC8260; CFREQ=300; CACHE=no; BMODE=60x;; \
  1103. TQM8265_AA_config) CTYPE=MPC8265; CFREQ=300; CACHE=no; BMODE=60x;; \
  1104. esac; \
  1105. >include/config.h ; \
  1106. if [ "$${CTYPE}" != "MPC8260" ] ; then \
  1107. echo "#define CONFIG_$${CTYPE}" >>include/config.h ; \
  1108. fi; \
  1109. echo "#define CONFIG_$${CFREQ}MHz" >>include/config.h ; \
  1110. echo "... with $${CFREQ}MHz system clock" ; \
  1111. if [ "$${CACHE}" == "yes" ] ; then \
  1112. echo "#define CONFIG_L2_CACHE" >>include/config.h ; \
  1113. echo "... with L2 Cache support" ; \
  1114. else \
  1115. echo "#undef CONFIG_L2_CACHE" >>include/config.h ; \
  1116. echo "... without L2 Cache support" ; \
  1117. fi; \
  1118. if [ "$${BMODE}" == "60x" ] ; then \
  1119. echo "#define CONFIG_BUSMODE_60x" >>include/config.h ; \
  1120. echo "... with 60x Bus Mode" ; \
  1121. else \
  1122. echo "#undef CONFIG_BUSMODE_60x" >>include/config.h ; \
  1123. echo "... without 60x Bus Mode" ; \
  1124. fi
  1125. @./mkconfig -a TQM8260 ppc mpc8260 tqm8260
  1126. VoVPN-GW_66MHz_config \
  1127. VoVPN-GW_100MHz_config: unconfig
  1128. @echo "#define CONFIG_CLKIN_$(word 2,$(subst _, ,$@))" > include/config.h
  1129. @./mkconfig -a VoVPN-GW ppc mpc8260 vovpn-gw funkwerk
  1130. ZPC1900_config: unconfig
  1131. @./mkconfig $(@:_config=) ppc mpc8260 zpc1900
  1132. #########################################################################
  1133. ## Coldfire
  1134. #########################################################################
  1135. cobra5272_config : unconfig
  1136. @./mkconfig $(@:_config=) m68k mcf52x2 cobra5272
  1137. EB+MCF-EV123_config : unconfig
  1138. @ >include/config.h
  1139. @echo "TEXT_BASE = 0xFFE00000"|tee board/BuS/EB+MCF-EV123/textbase.mk
  1140. @./mkconfig EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
  1141. EB+MCF-EV123_internal_config : unconfig
  1142. @ >include/config.h
  1143. @echo "TEXT_BASE = 0xF0000000"|tee board/BuS/EB+MCF-EV123/textbase.mk
  1144. @./mkconfig EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
  1145. M5271EVB_config : unconfig
  1146. @./mkconfig $(@:_config=) m68k mcf52x2 m5271evb
  1147. M5272C3_config : unconfig
  1148. @./mkconfig $(@:_config=) m68k mcf52x2 m5272c3
  1149. M5282EVB_config : unconfig
  1150. @./mkconfig $(@:_config=) m68k mcf52x2 m5282evb
  1151. TASREG_config : unconfig
  1152. @./mkconfig $(@:_config=) m68k mcf52x2 tasreg esd
  1153. r5200_config : unconfig
  1154. @./mkconfig $(@:_config=) m68k mcf52x2 r5200
  1155. #########################################################################
  1156. ## MPC83xx Systems
  1157. #########################################################################
  1158. MPC8349ADS_config: unconfig
  1159. @./mkconfig $(@:_config=) ppc mpc83xx mpc8349ads
  1160. TQM834x_config: unconfig
  1161. @./mkconfig $(@:_config=) ppc mpc83xx tqm834x
  1162. MPC8349EMDS_config: unconfig
  1163. @./mkconfig $(@:_config=) ppc mpc83xx mpc8349emds
  1164. #########################################################################
  1165. ## MPC85xx Systems
  1166. #########################################################################
  1167. MPC8540ADS_config: unconfig
  1168. @./mkconfig $(@:_config=) ppc mpc85xx mpc8540ads
  1169. MPC8540EVAL_config \
  1170. MPC8540EVAL_33_config \
  1171. MPC8540EVAL_66_config \
  1172. MPC8540EVAL_33_slave_config \
  1173. MPC8540EVAL_66_slave_config: unconfig
  1174. @echo "" >include/config.h ; \
  1175. if [ "$(findstring _33_,$@)" ] ; then \
  1176. echo -n "... 33 MHz PCI" ; \
  1177. else \
  1178. echo "#define CONFIG_SYSCLK_66M" >>include/config.h ; \
  1179. echo -n "... 66 MHz PCI" ; \
  1180. fi ; \
  1181. if [ "$(findstring _slave_,$@)" ] ; then \
  1182. echo "#define CONFIG_PCI_SLAVE" >>include/config.h ; \
  1183. echo " slave" ; \
  1184. else \
  1185. echo " host" ; \
  1186. fi
  1187. @./mkconfig -a MPC8540EVAL ppc mpc85xx mpc8540eval
  1188. MPC8560ADS_config: unconfig
  1189. @./mkconfig $(@:_config=) ppc mpc85xx mpc8560ads
  1190. MPC8541CDS_config: unconfig
  1191. @./mkconfig $(@:_config=) ppc mpc85xx mpc8541cds cds
  1192. MPC8548CDS_config: unconfig
  1193. @./mkconfig $(@:_config=) ppc mpc85xx mpc8548cds cds
  1194. MPC8555CDS_config: unconfig
  1195. @./mkconfig $(@:_config=) ppc mpc85xx mpc8555cds cds
  1196. PM854_config: unconfig
  1197. @./mkconfig $(@:_config=) ppc mpc85xx pm854
  1198. PM856_config: unconfig
  1199. @./mkconfig $(@:_config=) ppc mpc85xx pm856
  1200. sbc8540_config \
  1201. sbc8540_33_config \
  1202. sbc8540_66_config: unconfig
  1203. @if [ "$(findstring _66_,$@)" ] ; then \
  1204. echo "#define CONFIG_PCI_66" >>include/config.h ; \
  1205. echo "... 66 MHz PCI" ; \
  1206. else \
  1207. >include/config.h ; \
  1208. echo "... 33 MHz PCI" ; \
  1209. fi
  1210. @./mkconfig -a SBC8540 ppc mpc85xx sbc8560
  1211. sbc8560_config \
  1212. sbc8560_33_config \
  1213. sbc8560_66_config: unconfig
  1214. @if [ "$(findstring _66_,$@)" ] ; then \
  1215. echo "#define CONFIG_PCI_66" >>include/config.h ; \
  1216. echo "... 66 MHz PCI" ; \
  1217. else \
  1218. >include/config.h ; \
  1219. echo "... 33 MHz PCI" ; \
  1220. fi
  1221. @./mkconfig -a sbc8560 ppc mpc85xx sbc8560
  1222. stxgp3_config: unconfig
  1223. @./mkconfig $(@:_config=) ppc mpc85xx stxgp3
  1224. TQM8540_config \
  1225. TQM8541_config \
  1226. TQM8555_config \
  1227. TQM8560_config: unconfig
  1228. @CTYPE=$(subst TQM,,$(@:_config=)); \
  1229. >include/config.h ; \
  1230. echo "... TQM"$${CTYPE}; \
  1231. echo "#define CONFIG_MPC$${CTYPE}">>include/config.h; \
  1232. echo "#define CONFIG_TQM$${CTYPE}">>include/config.h; \
  1233. echo "#define CONFIG_HOSTNAME tqm$${CTYPE}">>include/config.h; \
  1234. echo "#define CONFIG_BOARDNAME \"TQM$${CTYPE}\"">>include/config.h; \
  1235. echo "#define CFG_BOOTFILE \"bootfile=/tftpboot/tqm$${CTYPE}/uImage\0\"">>include/config.h
  1236. @./mkconfig -a TQM85xx ppc mpc85xx tqm85xx
  1237. #########################################################################
  1238. ## 74xx/7xx Systems
  1239. #########################################################################
  1240. AmigaOneG3SE_config: unconfig
  1241. @./mkconfig $(@:_config=) ppc 74xx_7xx AmigaOneG3SE MAI
  1242. BAB7xx_config: unconfig
  1243. @./mkconfig $(@:_config=) ppc 74xx_7xx bab7xx eltec
  1244. CPCI750_config: unconfig
  1245. @./mkconfig CPCI750 ppc 74xx_7xx cpci750 esd
  1246. DB64360_config: unconfig
  1247. @./mkconfig DB64360 ppc 74xx_7xx db64360 Marvell
  1248. DB64460_config: unconfig
  1249. @./mkconfig DB64460 ppc 74xx_7xx db64460 Marvell
  1250. ELPPC_config: unconfig
  1251. @./mkconfig $(@:_config=) ppc 74xx_7xx elppc eltec
  1252. EVB64260_config \
  1253. EVB64260_750CX_config: unconfig
  1254. @./mkconfig EVB64260 ppc 74xx_7xx evb64260
  1255. P3G4_config: unconfig
  1256. @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
  1257. PCIPPC2_config \
  1258. PCIPPC6_config: unconfig
  1259. @./mkconfig $(@:_config=) ppc 74xx_7xx pcippc2
  1260. ZUMA_config: unconfig
  1261. @./mkconfig $(@:_config=) ppc 74xx_7xx evb64260
  1262. ppmc7xx_config: unconfig
  1263. @./mkconfig $(@:_config=) ppc 74xx_7xx ppmc7xx
  1264. #========================================================================
  1265. # ARM
  1266. #========================================================================
  1267. #########################################################################
  1268. ## StrongARM Systems
  1269. #########################################################################
  1270. assabet_config : unconfig
  1271. @./mkconfig $(@:_config=) arm sa1100 assabet
  1272. dnp1110_config : unconfig
  1273. @./mkconfig $(@:_config=) arm sa1100 dnp1110
  1274. gcplus_config : unconfig
  1275. @./mkconfig $(@:_config=) arm sa1100 gcplus
  1276. lart_config : unconfig
  1277. @./mkconfig $(@:_config=) arm sa1100 lart
  1278. shannon_config : unconfig
  1279. @./mkconfig $(@:_config=) arm sa1100 shannon
  1280. #########################################################################
  1281. ## ARM92xT Systems
  1282. #########################################################################
  1283. xtract_trab = $(subst _bigram,,$(subst _bigflash,,$(subst _old,,$(subst _config,,$1))))
  1284. xtract_omap1610xxx = $(subst _cs0boot,,$(subst _cs3boot,,$(subst _cs_autoboot,,$(subst _config,,$1))))
  1285. xtract_omap730p2 = $(subst _cs0boot,,$(subst _cs3boot,, $(subst _config,,$1)))
  1286. at91rm9200dk_config : unconfig
  1287. @./mkconfig $(@:_config=) arm arm920t at91rm9200dk NULL at91rm9200
  1288. cmc_pu2_config : unconfig
  1289. @./mkconfig $(@:_config=) arm arm920t cmc_pu2 NULL at91rm9200
  1290. csb637_config : unconfig
  1291. @./mkconfig $(@:_config=) arm arm920t csb637 NULL at91rm9200
  1292. mp2usb_config : unconfig
  1293. @./mkconfig $(@:_config=) arm arm920t mp2usb NULL at91rm9200
  1294. ########################################################################
  1295. ## ARM Integrator boards - see doc/README-integrator for more info.
  1296. integratorap_config \
  1297. ap_config \
  1298. ap966_config \
  1299. ap922_config \
  1300. ap922_XA10_config \
  1301. ap7_config \
  1302. ap720t_config \
  1303. ap920t_config \
  1304. ap926ejs_config \
  1305. ap946es_config: unconfig
  1306. @board/integratorap/split_by_variant.sh $@
  1307. integratorcp_config \
  1308. cp_config \
  1309. cp920t_config \
  1310. cp926ejs_config \
  1311. cp946es_config \
  1312. cp1136_config \
  1313. cp966_config \
  1314. cp922_config \
  1315. cp922_XA10_config \
  1316. cp1026_config: unconfig
  1317. @board/integratorcp/split_by_variant.sh $@
  1318. kb9202_config : unconfig
  1319. @./mkconfig $(@:_config=) arm arm920t kb9202 NULL at91rm9200
  1320. lpd7a400_config \
  1321. lpd7a404_config: unconfig
  1322. @./mkconfig $(@:_config=) arm lh7a40x lpd7a40x
  1323. mx1ads_config : unconfig
  1324. @./mkconfig $(@:_config=) arm arm920t mx1ads NULL imx
  1325. mx1fs2_config : unconfig
  1326. @./mkconfig $(@:_config=) arm arm920t mx1fs2 NULL imx
  1327. netstar_32_config \
  1328. netstar_config: unconfig
  1329. @if [ "$(findstring _32_,$@)" ] ; then \
  1330. echo "... 32MB SDRAM" ; \
  1331. echo "#define PHYS_SDRAM_1_SIZE SZ_32M" >>include/config.h ; \
  1332. else \
  1333. echo "... 64MB SDRAM" ; \
  1334. echo "#define PHYS_SDRAM_1_SIZE SZ_64M" >>include/config.h ; \
  1335. fi
  1336. @./mkconfig -a netstar arm arm925t netstar
  1337. omap1510inn_config : unconfig
  1338. @./mkconfig $(@:_config=) arm arm925t omap1510inn
  1339. omap5912osk_config : unconfig
  1340. @./mkconfig $(@:_config=) arm arm926ejs omap5912osk NULL omap
  1341. omap1610inn_config \
  1342. omap1610inn_cs0boot_config \
  1343. omap1610inn_cs3boot_config \
  1344. omap1610inn_cs_autoboot_config \
  1345. omap1610h2_config \
  1346. omap1610h2_cs0boot_config \
  1347. omap1610h2_cs3boot_config \
  1348. omap1610h2_cs_autoboot_config: unconfig
  1349. @if [ "$(findstring _cs0boot_, $@)" ] ; then \
  1350. echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \
  1351. echo "... configured for CS0 boot"; \
  1352. elif [ "$(findstring _cs_autoboot_, $@)" ] ; then \
  1353. echo "#define CONFIG_CS_AUTOBOOT" >> ./include/config.h ; \
  1354. echo "... configured for CS_AUTO boot"; \
  1355. else \
  1356. echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \
  1357. echo "... configured for CS3 boot"; \
  1358. fi;
  1359. @./mkconfig -a $(call xtract_omap1610xxx,$@) arm arm926ejs omap1610inn NULL omap
  1360. omap730p2_config \
  1361. omap730p2_cs0boot_config \
  1362. omap730p2_cs3boot_config : unconfig
  1363. @if [ "$(findstring _cs0boot_, $@)" ] ; then \
  1364. echo "#define CONFIG_CS0_BOOT" >> ./include/config.h ; \
  1365. echo "... configured for CS0 boot"; \
  1366. else \
  1367. echo "#define CONFIG_CS3_BOOT" >> ./include/config.h ; \
  1368. echo "... configured for CS3 boot"; \
  1369. fi;
  1370. @./mkconfig -a $(call xtract_omap730p2,$@) arm arm926ejs omap730p2 NULL omap
  1371. sbc2410x_config: unconfig
  1372. @./mkconfig $(@:_config=) arm arm920t sbc2410x NULL s3c24x0
  1373. scb9328_config : unconfig
  1374. @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx
  1375. smdk2400_config : unconfig
  1376. @./mkconfig $(@:_config=) arm arm920t smdk2400 NULL s3c24x0
  1377. smdk2410_config : unconfig
  1378. @./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0
  1379. SX1_config : unconfig
  1380. @./mkconfig $(@:_config=) arm arm925t sx1
  1381. # TRAB default configuration: 8 MB Flash, 32 MB RAM
  1382. trab_config \
  1383. trab_bigram_config \
  1384. trab_bigflash_config \
  1385. trab_old_config: unconfig
  1386. @ >include/config.h
  1387. @[ -z "$(findstring _bigram,$@)" ] || \
  1388. { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \
  1389. echo "#define CONFIG_RAM_32MB" >>include/config.h ; \
  1390. echo "... with 8 MB Flash, 32 MB RAM" ; \
  1391. }
  1392. @[ -z "$(findstring _bigflash,$@)" ] || \
  1393. { echo "#define CONFIG_FLASH_16MB" >>include/config.h ; \
  1394. echo "#define CONFIG_RAM_16MB" >>include/config.h ; \
  1395. echo "... with 16 MB Flash, 16 MB RAM" ; \
  1396. echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \
  1397. }
  1398. @[ -z "$(findstring _old,$@)" ] || \
  1399. { echo "#define CONFIG_FLASH_8MB" >>include/config.h ; \
  1400. echo "#define CONFIG_RAM_16MB" >>include/config.h ; \
  1401. echo "... with 8 MB Flash, 16 MB RAM" ; \
  1402. echo "TEXT_BASE = 0x0CF40000" >board/trab/config.tmp ; \
  1403. }
  1404. @./mkconfig -a $(call xtract_trab,$@) arm arm920t trab NULL s3c24x0
  1405. VCMA9_config : unconfig
  1406. @./mkconfig $(@:_config=) arm arm920t vcma9 mpl s3c24x0
  1407. #========================================================================
  1408. # ARM supplied Versatile development boards
  1409. #========================================================================
  1410. versatile_config \
  1411. versatileab_config \
  1412. versatilepb_config : unconfig
  1413. @board/versatile/split_by_variant.sh $@
  1414. voiceblue_smallflash_config \
  1415. voiceblue_config: unconfig
  1416. @if [ "$(findstring _smallflash_,$@)" ] ; then \
  1417. echo "... boot from lower flash bank" ; \
  1418. echo "#define VOICEBLUE_SMALL_FLASH" >>include/config.h ; \
  1419. echo "VOICEBLUE_SMALL_FLASH=y" >board/voiceblue/config.tmp ; \
  1420. else \
  1421. echo "... boot from upper flash bank" ; \
  1422. >include/config.h ; \
  1423. echo "VOICEBLUE_SMALL_FLASH=n" >board/voiceblue/config.tmp ; \
  1424. fi
  1425. @./mkconfig -a voiceblue arm arm925t voiceblue
  1426. cm4008_config : unconfig
  1427. @./mkconfig $(@:_config=) arm arm920t cm4008 NULL ks8695
  1428. cm41xx_config : unconfig
  1429. @./mkconfig $(@:_config=) arm arm920t cm41xx NULL ks8695
  1430. gth2_config : unconfig
  1431. @ >include/config.h
  1432. @echo "#define CONFIG_GTH2 1" >>include/config.h
  1433. @./mkconfig -a gth2 mips mips gth2
  1434. #########################################################################
  1435. ## S3C44B0 Systems
  1436. #########################################################################
  1437. B2_config : unconfig
  1438. @./mkconfig $(@:_config=) arm s3c44b0 B2 dave
  1439. #########################################################################
  1440. ## ARM720T Systems
  1441. #########################################################################
  1442. armadillo_config: unconfig
  1443. @./mkconfig $(@:_config=) arm arm720t armadillo
  1444. ep7312_config : unconfig
  1445. @./mkconfig $(@:_config=) arm arm720t ep7312
  1446. impa7_config : unconfig
  1447. @./mkconfig $(@:_config=) arm arm720t impa7
  1448. modnet50_config : unconfig
  1449. @./mkconfig $(@:_config=) arm arm720t modnet50
  1450. evb4510_config : unconfig
  1451. @./mkconfig $(@:_config=) arm arm720t evb4510
  1452. #########################################################################
  1453. ## XScale Systems
  1454. #########################################################################
  1455. adsvix_config : unconfig
  1456. @./mkconfig $(@:_config=) arm pxa adsvix
  1457. cerf250_config : unconfig
  1458. @./mkconfig $(@:_config=) arm pxa cerf250
  1459. cradle_config : unconfig
  1460. @./mkconfig $(@:_config=) arm pxa cradle
  1461. csb226_config : unconfig
  1462. @./mkconfig $(@:_config=) arm pxa csb226
  1463. delta_config :
  1464. @./mkconfig $(@:_config=) arm pxa delta
  1465. innokom_config : unconfig
  1466. @./mkconfig $(@:_config=) arm pxa innokom
  1467. ixdp425_config : unconfig
  1468. @./mkconfig $(@:_config=) arm ixp ixdp425
  1469. ixdpg425_config : unconfig
  1470. @./mkconfig $(@:_config=) arm ixp ixdp425
  1471. lubbock_config : unconfig
  1472. @./mkconfig $(@:_config=) arm pxa lubbock
  1473. pleb2_config : unconfig
  1474. @./mkconfig $(@:_config=) arm pxa pleb2
  1475. logodl_config : unconfig
  1476. @./mkconfig $(@:_config=) arm pxa logodl
  1477. pdnb3_config : unconfig
  1478. @./mkconfig $(@:_config=) arm ixp pdnb3 prodrive
  1479. pxa255_idp_config: unconfig
  1480. @./mkconfig $(@:_config=) arm pxa pxa255_idp
  1481. wepep250_config : unconfig
  1482. @./mkconfig $(@:_config=) arm pxa wepep250
  1483. xaeniax_config : unconfig
  1484. @./mkconfig $(@:_config=) arm pxa xaeniax
  1485. xm250_config : unconfig
  1486. @./mkconfig $(@:_config=) arm pxa xm250
  1487. xsengine_config : unconfig
  1488. @./mkconfig $(@:_config=) arm pxa xsengine
  1489. zylonite_config :
  1490. @./mkconfig $(@:_config=) arm pxa zylonite
  1491. #########################################################################
  1492. ## ARM1136 Systems
  1493. #########################################################################
  1494. omap2420h4_config : unconfig
  1495. @./mkconfig $(@:_config=) arm arm1136 omap2420h4
  1496. #========================================================================
  1497. # i386
  1498. #========================================================================
  1499. #########################################################################
  1500. ## AMD SC520 CDP
  1501. #########################################################################
  1502. sc520_cdp_config : unconfig
  1503. @./mkconfig $(@:_config=) i386 i386 sc520_cdp
  1504. sc520_spunk_config : unconfig
  1505. @./mkconfig $(@:_config=) i386 i386 sc520_spunk
  1506. sc520_spunk_rel_config : unconfig
  1507. @./mkconfig $(@:_config=) i386 i386 sc520_spunk
  1508. #========================================================================
  1509. # MIPS
  1510. #========================================================================
  1511. #########################################################################
  1512. ## MIPS32 4Kc
  1513. #########################################################################
  1514. xtract_incaip = $(subst _100MHz,,$(subst _133MHz,,$(subst _150MHz,,$(subst _config,,$1))))
  1515. incaip_100MHz_config \
  1516. incaip_133MHz_config \
  1517. incaip_150MHz_config \
  1518. incaip_config: unconfig
  1519. @ >include/config.h
  1520. @[ -z "$(findstring _100MHz,$@)" ] || \
  1521. { echo "#define CPU_CLOCK_RATE 100000000" >>include/config.h ; \
  1522. echo "... with 100MHz system clock" ; \
  1523. }
  1524. @[ -z "$(findstring _133MHz,$@)" ] || \
  1525. { echo "#define CPU_CLOCK_RATE 133000000" >>include/config.h ; \
  1526. echo "... with 133MHz system clock" ; \
  1527. }
  1528. @[ -z "$(findstring _150MHz,$@)" ] || \
  1529. { echo "#define CPU_CLOCK_RATE 150000000" >>include/config.h ; \
  1530. echo "... with 150MHz system clock" ; \
  1531. }
  1532. @./mkconfig -a $(call xtract_incaip,$@) mips mips incaip
  1533. tb0229_config: unconfig
  1534. @./mkconfig $(@:_config=) mips mips tb0229
  1535. #########################################################################
  1536. ## MIPS32 AU1X00
  1537. #########################################################################
  1538. dbau1000_config : unconfig
  1539. @ >include/config.h
  1540. @echo "#define CONFIG_DBAU1000 1" >>include/config.h
  1541. @./mkconfig -a dbau1x00 mips mips dbau1x00
  1542. dbau1100_config : unconfig
  1543. @ >include/config.h
  1544. @echo "#define CONFIG_DBAU1100 1" >>include/config.h
  1545. @./mkconfig -a dbau1x00 mips mips dbau1x00
  1546. dbau1500_config : unconfig
  1547. @ >include/config.h
  1548. @echo "#define CONFIG_DBAU1500 1" >>include/config.h
  1549. @./mkconfig -a dbau1x00 mips mips dbau1x00
  1550. dbau1550_config : unconfig
  1551. @ >include/config.h
  1552. @echo "#define CONFIG_DBAU1550 1" >>include/config.h
  1553. @./mkconfig -a dbau1x00 mips mips dbau1x00
  1554. dbau1550_el_config : unconfig
  1555. @ >include/config.h
  1556. @echo "#define CONFIG_DBAU1550 1" >>include/config.h
  1557. @./mkconfig -a dbau1x00 mips mips dbau1x00
  1558. pb1000_config : unconfig
  1559. @ >include/config.h
  1560. @echo "#define CONFIG_PB1000 1" >>include/config.h
  1561. @./mkconfig -a pb1x00 mips mips pb1x00
  1562. #########################################################################
  1563. ## MIPS64 5Kc
  1564. #########################################################################
  1565. purple_config : unconfig
  1566. @./mkconfig $(@:_config=) mips mips purple
  1567. #========================================================================
  1568. # Nios
  1569. #========================================================================
  1570. #########################################################################
  1571. ## Nios32
  1572. #########################################################################
  1573. DK1C20_safe_32_config \
  1574. DK1C20_standard_32_config \
  1575. DK1C20_config: unconfig
  1576. @ >include/config.h
  1577. @[ -z "$(findstring _safe_32,$@)" ] || \
  1578. { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \
  1579. echo "... NIOS 'safe_32' configuration" ; \
  1580. }
  1581. @[ -z "$(findstring _standard_32,$@)" ] || \
  1582. { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
  1583. echo "... NIOS 'standard_32' configuration" ; \
  1584. }
  1585. @[ -z "$(findstring DK1C20_config,$@)" ] || \
  1586. { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
  1587. echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \
  1588. }
  1589. @./mkconfig -a DK1C20 nios nios dk1c20 altera
  1590. DK1S10_safe_32_config \
  1591. DK1S10_standard_32_config \
  1592. DK1S10_mtx_ldk_20_config \
  1593. DK1S10_config: unconfig
  1594. @ >include/config.h
  1595. @[ -z "$(findstring _safe_32,$@)" ] || \
  1596. { echo "#define CONFIG_NIOS_SAFE_32 1" >>include/config.h ; \
  1597. echo "... NIOS 'safe_32' configuration" ; \
  1598. }
  1599. @[ -z "$(findstring _standard_32,$@)" ] || \
  1600. { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
  1601. echo "... NIOS 'standard_32' configuration" ; \
  1602. }
  1603. @[ -z "$(findstring _mtx_ldk_20,$@)" ] || \
  1604. { echo "#define CONFIG_NIOS_MTX_LDK_20 1" >>include/config.h ; \
  1605. echo "... NIOS 'mtx_ldk_20' configuration" ; \
  1606. }
  1607. @[ -z "$(findstring DK1S10_config,$@)" ] || \
  1608. { echo "#define CONFIG_NIOS_STANDARD_32 1" >>include/config.h ; \
  1609. echo "... NIOS 'standard_32' configuration (DEFAULT)" ; \
  1610. }
  1611. @./mkconfig -a DK1S10 nios nios dk1s10 altera
  1612. ADNPESC1_DNPEVA2_base_32_config \
  1613. ADNPESC1_base_32_config \
  1614. ADNPESC1_config: unconfig
  1615. @ >include/config.h
  1616. @[ -z "$(findstring _DNPEVA2,$@)" ] || \
  1617. { echo "#define CONFIG_DNPEVA2 1" >>include/config.h ; \
  1618. echo "... DNP/EVA2 configuration" ; \
  1619. }
  1620. @[ -z "$(findstring _base_32,$@)" ] || \
  1621. { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \
  1622. echo "... NIOS 'base_32' configuration" ; \
  1623. }
  1624. @[ -z "$(findstring ADNPESC1_config,$@)" ] || \
  1625. { echo "#define CONFIG_NIOS_BASE_32 1" >>include/config.h ; \
  1626. echo "... NIOS 'base_32' configuration (DEFAULT)" ; \
  1627. }
  1628. @./mkconfig -a ADNPESC1 nios nios adnpesc1 ssv
  1629. #########################################################################
  1630. ## Nios-II
  1631. #########################################################################
  1632. EP1C20_config : unconfig
  1633. @./mkconfig EP1C20 nios2 nios2 ep1c20 altera
  1634. EP1S10_config : unconfig
  1635. @./mkconfig EP1S10 nios2 nios2 ep1s10 altera
  1636. EP1S40_config : unconfig
  1637. @./mkconfig EP1S40 nios2 nios2 ep1s40 altera
  1638. PK1C20_config : unconfig
  1639. @./mkconfig PK1C20 nios2 nios2 pk1c20 psyent
  1640. PCI5441_config : unconfig
  1641. @./mkconfig PCI5441 nios2 nios2 pci5441 psyent
  1642. #========================================================================
  1643. # MicroBlaze
  1644. #========================================================================
  1645. #########################################################################
  1646. ## Microblaze
  1647. #########################################################################
  1648. suzaku_config: unconfig
  1649. @ >include/config.h
  1650. @echo "#define CONFIG_SUZAKU 1" >> include/config.h
  1651. @./mkconfig -a $(@:_config=) microblaze microblaze suzaku AtmarkTechno
  1652. #########################################################################
  1653. ## Blackfin
  1654. #########################################################################
  1655. ezkit533_config : unconfig
  1656. @./mkconfig $(@:_config=) blackfin bf533 ezkit533
  1657. stamp_config : unconfig
  1658. @./mkconfig $(@:_config=) blackfin bf533 stamp
  1659. dspstamp_config : unconfig
  1660. @./mkconfig $(@:_config=) blackfin bf533 dsp_stamp
  1661. #########################################################################
  1662. #########################################################################
  1663. #########################################################################
  1664. clean:
  1665. find . -type f \
  1666. \( -name 'core' -o -name '*.bak' -o -name '*~' \
  1667. -o -name '*.o' -o -name '*.a' \) -print \
  1668. | xargs rm -f
  1669. rm -f examples/hello_world examples/timer \
  1670. examples/eepro100_eeprom examples/sched \
  1671. examples/mem_to_mem_idma2intr examples/82559_eeprom \
  1672. examples/smc91111_eeprom \
  1673. examples/test_burst
  1674. rm -f tools/img2srec tools/mkimage tools/envcrc tools/gen_eth_addr
  1675. rm -f tools/mpc86x_clk tools/ncb
  1676. rm -f tools/easylogo/easylogo tools/bmp_logo
  1677. rm -f tools/gdb/astest tools/gdb/gdbcont tools/gdb/gdbsend
  1678. rm -f tools/env/fw_printenv tools/env/fw_setenv
  1679. rm -f board/cray/L1/bootscript.c board/cray/L1/bootscript.image
  1680. rm -f board/netstar/eeprom board/netstar/crcek
  1681. rm -f board/netstar/*.srec board/netstar/*.bin
  1682. rm -f board/trab/trab_fkt board/voiceblue/eeprom
  1683. rm -f board/integratorap/u-boot.lds board/integratorcp/u-boot.lds
  1684. rm -f include/bmp_logo.h
  1685. clobber: clean
  1686. find . -type f \( -name .depend \
  1687. -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
  1688. -print0 \
  1689. | xargs -0 rm -f
  1690. rm -f $(OBJS) *.bak tags TAGS include/version_autogenerated.h
  1691. rm -fr *.*~
  1692. rm -f u-boot u-boot.map u-boot.hex $(ALL)
  1693. rm -f tools/crc32.c tools/environment.c tools/env/crc32.c
  1694. rm -f tools/inca-swap-bytes cpu/mpc824x/bedbug_603e.c
  1695. rm -f include/asm/proc include/asm/arch include/asm
  1696. mrproper \
  1697. distclean: clobber unconfig
  1698. backup:
  1699. F=`basename $(TOPDIR)` ; cd .. ; \
  1700. gtar --force-local -zcvf `date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
  1701. #########################################################################