proc stm32_enable_fsmc {} {
echo "Enabling FSMC Bank 1 (NOR/PSRAM Bank 2)"
-
+
# enable gpio (defg) clocks for fsmc
# RCC_APB2ENR
mww 0x40021018 0x000001E0
-
+
# enable fsmc clock
# RCC_AHBENR
mww 0x40021014 0x00000114
mww 0x40011400 0x44BB44BB
# GPIOD_CRH
mww 0x40011404 0xBBBBBBBB
-
+
# GPIOE_CRL
mww 0x40011800 0xBBBBB444
# GPIOE_CRH
mww 0x40011804 0xBBBBBBBB
-
+
# GPIOF_CRL
mww 0x40011C00 0x44BBBBBB
# GPIOF_CRH
mww 0x40011C04 0xBBBB4444
-
+
# GPIOG_CRL
mww 0x40012000 0x44BBBBBB
# GPIOG_CRH
mww 0x40012004 0x444444B4
-
+
# setup fsmc timings
# FSMC_BCR1
mww 0xA0000008 0x00001058
-
+
# FSMC_BTR1
mww 0xA000000C 0x10000502
-
+
# FSMC_BCR1 - enable fsmc
mww 0xA0000008 0x00001059
}