stm32h730-ospi1.cfg 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # SPDX-License-Identifier: GPL-2.0-or-later
  2. # This is a stm32h735g-dk with a single STM32H735IGK6 chip.
  3. # https://www.st.com/en/evaluation-tools/stm32h735g-dk.html
  4. #
  5. # This is for using the onboard STLINK
  6. source [find interface/stlink.cfg]
  7. transport select hla_swd
  8. set CHIPNAME stm32h730vbt6
  9. set OCTOSPI1 1
  10. source [find target/stm32h7x.cfg]
  11. # OCTOSPI initialization
  12. # octo: 4-line mode
  13. proc octospi_init { octo } {
  14. global a b
  15. mmw 0x58024540 0x000006FF 0 ;# RCC_AHB4ENR |= GPIOAEN-GPIOKEN (enable clocks)
  16. mmw 0x58024534 0x00284000 0 ;# RCC_AHB3ENR |= IOMNGREN, OSPI2EN, OSPI1EN (enable clocks)
  17. sleep 1 ;# Wait for clock startup
  18. mww 0x5200B404 0x03010111 ;# OCTOSPIM_P1CR: enable port 1
  19. mww 0x5200B408 0x00000000 ;# OCTOSPIM_P2CR: disable Port 2
  20. # PA07:AF10:V, PA06:AF06:V, PB02:AF09:V, PB01:AF04:V, PB00:AF04:V, PE11:AF11:V
  21. # Port A: PA07:AF10:V, PA06:AF06:V
  22. mmw 0x58020000 0x0000A000 0x00005000 ;# MODER
  23. mmw 0x58020008 0x0000F000 0x00000000 ;# OSPEEDR
  24. mmw 0x5802000C 0x00000000 0x0000F000 ;# PUPDR
  25. mmw 0x58020020 0xA6000000 0x59000000 ;# AFRL
  26. # Port B: PB02:AF09:V, PB01:AF04:V, PB00:AF04:V
  27. mmw 0x58020400 0x0000002A 0x00000015 ;# MODER
  28. mmw 0x58020408 0x0000003F 0x00000000 ;# OSPEEDR
  29. mmw 0x5802040C 0x00000000 0x0000003F ;# PUPDR
  30. mmw 0x58020420 0x00000944 0x000006BB ;# AFRL
  31. # Port E: PE11:AF11:V
  32. mmw 0x58021000 0x00800000 0x00400000 ;# MODER
  33. mmw 0x58021008 0x00C00000 0x00000000 ;# OSPEEDR
  34. mmw 0x5802100C 0x00000000 0x00C00000 ;# PUPDR
  35. mmw 0x58021024 0x0000B000 0x00004000 ;# AFRH
  36. # OCTOSPI1: memory-mapped 1-line read mode with 4-byte addresses
  37. mww 0x52005130 0x00001000
  38. mww 0x52005000 0x3040000B
  39. mww 0x52005008 0x01160100
  40. mww 0x5200500c 0x00000005
  41. mww 0x52005108 0x00000000
  42. mww 0x52005100 0x01012101
  43. mww 0x52005110 0x00000013
  44. sleep 1
  45. flash probe $a ;# load configuration from CR, TCR, CCR, IR register values
  46. }
  47. $_CHIPNAME.cpu0 configure -event reset-init {
  48. global OCTOSPI1
  49. global OCTOSPI2
  50. mmw 0x52002000 0x00000004 0x0000000B ;# FLASH_ACR: 4 WS for 192 MHZ HCLK
  51. mmw 0x58024400 0x00000001 0x00000018 ;# RCC_CR: HSIDIV=1, HSI on
  52. mmw 0x58024410 0x10000000 0xEE000007 ;# RCC_CFGR: MCO2=system, MCO2PRE=8, HSI as system clock
  53. mww 0x58024418 0x00000040 ;# RCC_D1CFGR: D1CPRE=1, D1PPRE=2, HPRE=1
  54. mww 0x5802441C 0x00000440 ;# RCC_D2CFGR: D2PPRE2=2, D2PPRE1=2
  55. mww 0x58024420 0x00000040 ;# RCC_D3CFGR: D3PPRE=2
  56. mww 0x58024428 0x00000040 ;# RCC_PPLCKSELR: DIVM3=0, DIVM2=0, DIVM1=4, PLLSRC=HSI
  57. mmw 0x5802442C 0x0001000C 0x00000002 ;# RCC_PLLCFGR: PLL1RGE=8MHz to 16MHz, PLL1VCOSEL=wide
  58. mww 0x58024430 0x01070217 ;# RCC_PLL1DIVR: 192 MHz: DIVR1=2, DIVQ=8, DIVP1=2, DIVN1=24
  59. mmw 0x58024400 0x01000000 0 ;# RCC_CR: PLL1ON=1
  60. sleep 1
  61. mmw 0x58024410 0x00000003 0 ;# RCC_CFGR: PLL1 as system clock
  62. sleep 1
  63. adapter speed 24000
  64. octospi_init 1
  65. }