hv_chip_Memory.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /**
  2. * @file hv_chip_memory.h
  3. * @brief define ddr/sram memmap
  4. * @details anyware
  5. * @author HiView SoC Software Team
  6. * @version 1.0.0
  7. * @date 2022-09-05
  8. * @copyright 版权信息
  9. */
  10. #ifndef _HV_CHIP_MEMORY_H
  11. #define _HV_CHIP_MEMORY_H
  12. /*************************************************
  13. DDR Option
  14. *************************************************/
  15. #define HV_MEMORY_CONFIG_DDR_SIZE 0x4000000
  16. #define HV_MEMORY_CONFIG_DDR_PHY 16
  17. #define HV_MEMORY_CONFIG_DDR2_FREQ 1066
  18. #define HV_MEMORY_CONFIG_DDR2_UTILIZATION_RATIO 0.7
  19. #define HV_MEMORY_CONFIG_DDR3_FREQ 2133
  20. #define HV_MEMORY_CONFIG_DDR3_UTILIZATION_RATIO 0.75
  21. #define HV_MEMORY_CONFIG_RISC_DDR_SIZE 0x800000
  22. /*
  23. total 32k.
  24. 8k:userdata+factorydata+systemdta
  25. 4K:hdcp
  26. 4k:gamma
  27. ...
  28. 4k:err log.
  29. */
  30. #define HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_SIZE 0x8000
  31. #define HV_MEMORY_CONFIG_PQ_DATA_SIZE 0x80000
  32. #define HV_MEMORY_CONFIG_AUDIO_DDR_SIZE 0xC0000
  33. #define HV_MEMORY_CONFIG_OSD_DDR_SIZE 0x100000
  34. #define HV_MEMORY_CONFIG_STATIC_DDR_SIZE (HV_MEMORY_CONFIG_RISC_DDR_SIZE+HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_SIZE+HV_MEMORY_CONFIG_PQ_DATA_SIZE+HV_MEMORY_CONFIG_AUDIO_DDR_SIZE+HV_MEMORY_CONFIG_OSD_DDR_SIZE)
  35. #define HV_MEMORY_CONFIG_RISC_DDR_START PHY_TO_VDM(0x00000000)
  36. #define HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_START (HV_MEMORY_CONFIG_RISC_DDR_START+HV_MEMORY_CONFIG_RISC_DDR_SIZE)
  37. #define HV_LOG_BUF_SAVE 4096
  38. #define HV_MEMORY_CONFIG_MONITOR_LOG_START HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_START
  39. #define HV_HOT_FIX_SIZE 4096
  40. #define HV_MEMORY_CONFIG_MONITOR_HOTFIX_START HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_START+HV_LOG_BUF_SAVE
  41. #define HV_MEMORY_CONFIG_PQ_DATA_START (HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_START+HV_MEMORY_CONFIG_MONITOR_CONFIG_DATA_SIZE)
  42. #define HV_MEMORY_CONFIG_AUDIO_DDR_START (HV_MEMORY_CONFIG_PQ_DATA_START+HV_MEMORY_CONFIG_PQ_DATA_SIZE)
  43. #define HV_MEMORY_CONFIG_AUDIO_DMA_DDR_START VIRT_TO_PHY(HV_MEMORY_CONFIG_AUDIO_DDR_START)
  44. #define HV_MEMORY_CONFIG_OSD_DDR_START (HV_MEMORY_CONFIG_AUDIO_DDR_START+HV_MEMORY_CONFIG_AUDIO_DDR_SIZE)
  45. #define HV_MEMORY_CONFIG_OSD_DMA_DDR_START VIRT_TO_PHY(HV_MEMORY_CONFIG_OSD_DDR_START)
  46. /*
  47. * Logo ddr start within 1M address space of osd ddr, located as below:
  48. *
  49. * ------------------------ <- HV_MEMORY_CONFIG_OSD_DDR_START
  50. * Middle ware structures <- 64KB reserved. first 16KB used for jpg decompress
  51. * ------------------------
  52. * Driver data structures <- 32KB
  53. * ------------------------
  54. * Palette data <- 8KB
  55. * ------------------------
  56. * Index data <- 16KB
  57. * ------------------------
  58. * Resource data <- 64KB
  59. * ------------------------ <- HV_MEMORY_CONFIG_OSD_DMA_DDR_START
  60. * Logo data
  61. * ------------------------ <- 1M end
  62. */
  63. #define HV_MEMORY_CONFIG_OSD_LOGO_DDR_START (HV_MEMORY_CONFIG_OSD_DDR_START + 0x2e000)
  64. /*************************************************
  65. ******************DDR Bandwidth option************
  66. **************************************************/
  67. /* (600/10*4*8) */
  68. #define HV_MEMORY_CONFIG_RISC_DDR_BANDWIDTH 1920
  69. /* (768*8*2*2/1024) */
  70. #define HV_MEMORY_CONFIG_AUDIO_DDR_BANDWIDTH 24
  71. /* (80*80*8*16*2*165/1024/1024) */
  72. #define HV_MEMORY_CONFIG_LD_DDR_BANDWIDTH 384
  73. #define HV_MEMORY_CONFIG_STATIC_DDR_BANDWIDTH (HV_MEMORY_CONFIG_RISC_DDR_BANDWIDTH+HV_MEMORY_CONFIG_AUDIO_DDR_BANDWIDTH+HV_MEMORY_CONFIG_LD_DDR_BANDWIDTH)
  74. /**
  75. * @brief address conversion. \n
  76. * @details interface for physical address to vitrual address,or virtral address to physical address. \n
  77. */
  78. #define PHY_TO_VIRT(addr) ((addr) | 0xA0000000)
  79. #define VIRT_TO_PHY(addr) ((addr) & 0x1FFFFFFF)
  80. #define PHY_TO_VDM(addr) ((addr) | 0x80000000)
  81. /**
  82. * @brief ddr start address and ddr size for risc0 \n
  83. * @details ddr start address and ddr size for risc0 \n
  84. */
  85. /**
  86. * @brief sram start address and sram size for mips0 \n
  87. * @details sram start address and sram size for mips0 \n
  88. */
  89. #define BOARD_SRAM_ADDR PHY_TO_VDM(0x10000000)
  90. #define BOARD_SRAM_SIZE 0x10000
  91. #endif