Makefile 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. # $Id: Makefile,v 1.8 2004/01/07 21:16:18 johana Exp $
  2. # Makefile to generate or copy the latest register definitions
  3. # and related datastructures and helpermacros.
  4. # The offical place for these files is at:
  5. RELEASE ?= r1_alfa5
  6. OFFICIAL_INCDIR = /n/asic/projects/guinness/releases/$(RELEASE)/design/top/sw/include/
  7. # which is updated on each new release.
  8. INCL_ASMFILES =
  9. INCL_FILES = ata_defs.h
  10. INCL_FILES += bif_core_defs.h
  11. INCL_ASMFILES += bif_core_defs_asm.h
  12. INCL_FILES += bif_slave_defs.h
  13. #INCL_FILES += bif_slave_ext_defs.h
  14. INCL_FILES += config_defs.h
  15. INCL_ASMFILES += config_defs_asm.h
  16. INCL_FILES += cpu_vect.h
  17. #INCL_FILES += cris_defs.h
  18. #INCL_FILES += cris_supp_reg.h # In handcrafted supp_reg.h
  19. INCL_FILES += dma.h
  20. INCL_FILES += dma_defs.h
  21. INCL_FILES += eth_defs.h
  22. INCL_FILES += extmem_defs.h
  23. INCL_FILES += gio_defs.h
  24. INCL_ASMFILES += gio_defs_asm.h
  25. INCL_FILES += intr_vect.h
  26. INCL_FILES += intr_vect_defs.h
  27. INCL_ASMFILES += intr_vect_defs_asm.h
  28. INCL_FILES += marb_bp_defs.h
  29. INCL_FILES += marb_defs.h
  30. INCL_ASMFILES += mmu_defs_asm.h
  31. #INCL_FILES += mmu_supp_reg.h # In handcrafted supp_reg.h
  32. #INCL_FILES += par_defs.h # No useful content
  33. INCL_FILES += pinmux_defs.h
  34. INCL_FILES += reg_map.h
  35. INCL_ASMFILES += reg_map_asm.h
  36. INCL_FILES += reg_rdwr.h
  37. INCL_FILES += ser_defs.h
  38. #INCL_FILES += spec_reg.h # In handcrafted supp_reg.h
  39. INCL_FILES += sser_defs.h
  40. INCL_FILES += strcop_defs.h
  41. #INCL_FILES += strcop.h # Where is this?
  42. INCL_FILES += strmux_defs.h
  43. #INCL_FILES += supp_reg.h # Handcrafted instead
  44. INCL_FILES += timer_defs.h
  45. REGDESC =
  46. REGDESC += $(BASEDIR)/io/ata/rtl/ata_regs.r
  47. REGDESC += $(BASEDIR)/io/bif/rtl/bif_core_regs.r
  48. REGDESC += $(BASEDIR)/io/bif/rtl/bif_slave_regs.r
  49. #REGDESC += $(BASEDIR)/io/bif/sw/bif_slave_ext_regs.r
  50. REGDESC += $(DESIGNDIR)/top/rtl/config_regs.r
  51. REGDESC += $(BASEDIR)/mod/dma_common/rtl/dma_regdes.r
  52. REGDESC += $(BASEDIR)/io/eth/rtl/eth_regs.r
  53. REGDESC += $(BASEDIR)/io/bif/mod/extmem/extmem_regs.r
  54. REGDESC += $(DESIGNDIR)/gio/rtl/gio_regs.r
  55. REGDESC += $(BASEDIR)/core/cpu/intr_vect/rtl/guinness/ivmask.config.r
  56. REGDESC += $(BASEDIR)/core/memarb/rtl/guinness/marb_top.r
  57. REGDESC += $(BASEDIR)/core/cpu/mmu/doc/mmu_regs.r
  58. #REGDESC += $(BASEDIR)/io/par_port/rtl/par_regs.r
  59. REGDESC += $(BASEDIR)/io/pinmux/rtl/guinness/pinmux_regs.r
  60. REGDESC += $(BASEDIR)/io/ser/rtl/ser_regs.r
  61. REGDESC += $(BASEDIR)/core/strcop/rtl/strcop_regs.r
  62. REGDESC += $(BASEDIR)/io/strmux/rtl/guinness/strmux_regs.r
  63. REGDESC += $(BASEDIR)/io/timer/rtl/timer_regs.r
  64. #REGDESC += $(BASEDIR)/io/usb/usb1_1/rtl/usb_regs.r
  65. BASEDIR = /n/asic/design
  66. DESIGNDIR = /n/asic/projects/guinness/design
  67. RDES2C = /n/asic/bin/rdes2c
  68. RDES2C = /n/asic/design/tools/rdesc/rdes2c
  69. RDES2INTR = /n/asic/design/tools/rdesc/rdes2intr
  70. RDES2TXT = /n/asic/design/tools/rdesc/rdes2txt
  71. ## all - Just print help - you probably want to do 'make gen'
  72. all: help
  73. # Disable implicit rule that may generate deleted files from RCS/ directory.
  74. %.r:
  75. %.h:
  76. ## help - This help
  77. help:
  78. @grep '^## ' Makefile
  79. ## gen - Generate include files
  80. gen: $(INCL_FILES) $(INCL_ASMFILES)
  81. ata_defs.h: $(BASEDIR)/io/ata/rtl/ata_regs.r
  82. $(RDES2C) $<
  83. config_defs.h: $(DESIGNDIR)/top/rtl/config_regs.r
  84. $(RDES2C) $<
  85. config_defs_asm.h: $(DESIGNDIR)/top/rtl/config_regs.r
  86. $(RDES2C) -asm $<
  87. # Can't generate cpu_vect.h yet
  88. #cpu_vect.h: $(DESIGNDIR)/top/rtl/cpu_vect.r # ????
  89. # $(RDES2INTR) $<
  90. cpu_vect.h: $(OFFICIAL_INCDIR)cpu_vect.h
  91. cat $< | sed -e 's/\$$Id\:/id\:/g' >$@
  92. dma_defs.h: $(BASEDIR)/core/dma/rtl/common/dma_regdes.r
  93. $(RDES2C) $<
  94. $(BASEDIR)/core/dma/sw/dma.h:
  95. dma.h: $(BASEDIR)/core/dma/sw/dma.h
  96. cat $< | sed -e 's/\$$Id\:/id\:/g' >$@
  97. eth_defs.h: $(BASEDIR)/io/eth/rtl/eth_regs.r
  98. $(RDES2C) $<
  99. extmem_defs.h: $(BASEDIR)/io/bif/mod/extmem/extmem_regs.r
  100. $(RDES2C) $<
  101. gio_defs.h: $(DESIGNDIR)/gio/rtl/gio_regs.r
  102. $(RDES2C) $<
  103. intr_vect_defs.h: $(BASEDIR)/core/cpu/intr_vect/rtl/guinness/ivmask.config.r
  104. $(RDES2C) $<
  105. intr_vect_defs_asm.h: $(BASEDIR)/core/cpu/intr_vect/rtl/guinness/ivmask.config.r
  106. $(RDES2C) -asm $<
  107. # Can't generate intr_vect.h yet
  108. #intr_vect.h: $(BASEDIR)/core/cpu/intr_vect/rtl/guinness/ivmask.config.r
  109. # $(RDES2INTR) $<
  110. intr_vect.h: $(OFFICIAL_INCDIR)intr_vect.h
  111. cat $< | sed -e 's/\$$Id\:/id\:/g' >$@
  112. mmu_defs_asm.h: $(BASEDIR)/core/cpu/mmu/doc/mmu_regs.r
  113. $(RDES2C) -asm $<
  114. par_defs.h: $(BASEDIR)/io/par_port/rtl/par_regs.r
  115. $(RDES2C) $<
  116. # From /n/asic/projects/guinness/design/
  117. reg_map.h: $(DESIGNDIR)/top/rtl/global.rmap $(DESIGNDIR)/top/mod/modreg.rmap
  118. $(RDES2C) -base 0xb0000000 $^
  119. reg_map_asm.h: $(DESIGNDIR)/top/rtl/global.rmap $(DESIGNDIR)/top/mod/modreg.rmap
  120. $(RDES2C) -base 0xb0000000 -asm -outfile $@ $^
  121. reg_rdwr.h: $(DESIGNDIR)/top/sw/include/reg_rdwr.h
  122. cat $< | sed -e 's/\$$Id\:/id\:/g' >$@
  123. ser_defs.h: $(BASEDIR)/io/ser/rtl/ser_regs.r
  124. $(RDES2C) $<
  125. strcop_defs.h: $(BASEDIR)/core/strcop/rtl/strcop_regs.r
  126. $(RDES2C) $<
  127. strcop.h: $(BASEDIR)/core/strcop/rtl/strcop.h
  128. cat $< | sed -e 's/\$$Id\:/id\:/g' >$@
  129. strmux_defs.h: $(BASEDIR)/io/strmux/rtl/guinness/strmux_regs.r
  130. $(RDES2C) $<
  131. timer_defs.h: $(BASEDIR)/io/timer/rtl/timer_regs.r
  132. $(RDES2C) $<
  133. usb_defs.h: $(BASEDIR)/io/usb/usb1_1/rtl/usb_regs.r
  134. $(RDES2C) $<
  135. ## copy - Copy files from official location
  136. copy:
  137. @for HFILE in $(INCL_FILES); do \
  138. echo " $$HFILE"; \
  139. cat $(OFFICIAL_INCDIR)$$HFILE | sed -e 's/\$$Id\:/id\:/g' > $$HFILE; \
  140. done
  141. @for HFILE in $(INCL_ASMFILES); do \
  142. echo " $$HFILE"; \
  143. cat $(OFFICIAL_INCDIR)asm/$$HFILE | sed -e 's/\$$Id\:/id\:/g' > $$HFILE; \
  144. done
  145. ## ls_official - List official location
  146. ls_official:
  147. (cd $(OFFICIAL_INCDIR); ls -l *.h )
  148. ## diff_official - Diff current directory with official location
  149. diff_official:
  150. diff . $(OFFICIAL_INCDIR)
  151. ## doc - Generate .axw files from register description.
  152. doc: $(REGDESC)
  153. for RDES in $^; do \
  154. $(RDES2TXT) $$RDES; \
  155. done
  156. .PHONY: axw
  157. ## %.axw - Generate the specified .axw file (doesn't work for all files
  158. ## due to inconsistent naming ir .r files.
  159. %.axw: axw
  160. @for RDES in $(REGDESC); do \
  161. if echo "$$RDES" | grep $* ; then \
  162. $(RDES2TXT) $$RDES; \
  163. fi \
  164. done
  165. .PHONY: clean
  166. ## clean - Remove .h files and .axw files.
  167. clean:
  168. rm -rf $(INCL_FILES) *.axw