setupmemmap.cmm

来自「QUALCOMM JNAND DRIVER」· CMM 代码 · 共 79 行

CMM
79
字号
;****************************************************************************
;**           SetupMemMap.CMM                                              **
;**           This script sets up MSM6250's memory map                     **
;**           Expects globals &TARGET_TYPE, &BOOT_MODE, &SHADOW_MODE       **
;**           and others to be defined                                     **
;**                                                                        **
;**           Changes:                                                     **
;**           05-12-03   Changes for MSM6250                               **
;**           05-01-02   First version                                     **
;****************************************************************************
;


//COMMON INIT

; Are we booting an FFA or a SURF?
IF STRING.SCAN("&TARGET_TYPE","FFA&MSM6250",0)>-1
  (
  PRINT "SetupMemMap:MSM6250 FFA selected"
  ; Hardcode the memory addresses, since FFA memory map is fixed
  &EBI1_SDRAM_BASE_ADDR=&CS_EBI1_FIRST_BASE_ADDR
  &SETUP_MPMC_SDRAM=1
  )
ELSE IF STRING.SCAN("&TARGET_TYPE","MASTODON_SURF&MSM6250",0)>-1
  (
  PRINT "SetupMemMap:MSM6250 SURF selected"
  GOSUB SetupSURF
  )
ELSE // TARGET was not set to SURF or FFA -- ERR out
  (
  PRINT "SetupMemMap: ERROR: invalid TARGET_TYPE (&TARGET_TYPE) -- update this cmm)"
  WAIT 5.s
  )



ENDDO




SetupSURF:

  ; SURF memory map varies -- set up according to configuration
  ; Which boot mode (SDRAM or NOR?) -- sets memory map
  IF STRING.SCAN("&BOOT_MODE","NAND",0)>-1
    (
    PRINT "SetupMemMap: SDRAM BOOT mode selected"
    &EBI1_SDRAM_BASE_ADDR=&CS_EBI1_FIRST_BASE_ADDR
    &EBI1_DATA_PSRAM_BASE_ADDR=&CS_EBI1_FOURTH_BASE_ADDR
    &EBI1_NOR_BASE_ADDR=&CS_EBI1_THIRD_BASE_ADDR
    &EBI1_PSRAM_BASE_ADDR=&CS_EBI1_SECOND_BASE_ADDR
    &SETUP_MPMC_SDRAM=1
    )
  ELSE IF STRING.SCAN("&BOOT_MODE","NOR",0)>-1
    (
    PRINT "SetupMemMap: NOR BOOT mode selected"
    &SETUP_XMEMC=1
    IF &SHADOW_MODE==0  // non-shadow mode
      (
      PRINT "SetupMemMap: Shadow mode disabled"
      &EBI1_NOR_BASE_ADDR=&CS_EBI1_FIRST_BASE_ADDR
      &EBI1_DATA_PSRAM_BASE_ADDR=&CS_EBI1_SECOND_BASE_ADDR
      &EBI1_SDRAM_BASE_ADDR=&CS_EBI1_THIRD_BASE_ADDR
      )
    ELSE //SHADOW_MODE == 1  // Switch PSRAM & NOR, NOR may not be accessible here
      (
      PRINT "SetupMemMap: SHADOW mode: PSRAM shadow of NOR enabled"
      &EBI1_PSRAM_BASE_ADDR=&CS_EBI1_FIRST_BASE_ADDR
      &EBI1_DATA_PSRAM_BASE_ADDR=&CS_EBI1_SECOND_BASE_ADDR
      &EBI1_SDRAM_BASE_ADDR=&CS_EBI1_THIRD_BASE_ADDR
      )
    )
  ELSE  // boot mode not set correctly
    (
    PRINT "SetupMemMap: ERROR: BOOT mode: invalid (&BOOT_MODE), use NAND or NOR"
    )
  RETURN

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?