tcl/board: add SPDX tag
[fw/openocd] / tcl / board / propox_mmnet1001.cfg
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 ## Chip:
4 set CHIPNAME at91sam9260
5 set CPUTAPID 0x0792603f
6 set ENDIAN little
7 source [find target/at91sam9260.cfg]
8
9 $_TARGETNAME configure -event reset-init {at91sam_init}
10
11
12 proc at91sam_init { } {
13
14         # at reset chip runs at 32 kHz => 1/8 * 32 kHz = 4 kHz
15         jtag_rclk 4
16
17         # Enable user reset and disable watchdog
18         mww 0xfffffd08 0xa5000501         ;# RSTC_MR : enable user reset
19         mww 0xfffffd44 0x00008000         ;# WDT_MR : disable watchdog
20
21         # Oscillator setup
22         mww 0xfffffc20 0x00004001         ;# CKGR_MOR : enable the main oscillator (18.432 MHz)
23         sleep 20                          ;# wait 20 ms
24         mww 0xfffffc30 0x00000001         ;# PMC_MCKR : switch to main oscillator
25         sleep 10                          ;# wait 10 ms
26
27         # now we are running at 18.432 MHz kHz => 1/8 * 18.432 MHz = 2.304 MHz
28         jtag_rclk 2000
29
30         mww 0xfffffc28 0x2060bf09         ;# CKGR_PLLAR: Set PLLA Register for 198,656MHz
31         sleep 20                          ;# wait 20 ms
32         mww 0xfffffc2c 0x207c3f0c         ;# CKGR_PLLBR: Set PLLB Register for USB usage (USB_CLK = 48 MHz)
33         sleep 10                          ;# wait 10 ms
34         mww 0xfffffc30 0x00000101         ;# PMC_MCKR : Select prescaler
35         sleep 10                          ;# wait 10 ms
36         mww 0xfffffc30 0x00000102         ;# PMC_MCKR : Clock from PLLA is selected
37         sleep 10                          ;# wait 10 ms
38
39         # now we are running at 198.656 MHz kHz => full speed jtag
40         jtag_rclk 30000
41
42         arm7_9 dcc_downloads enable       ;# Enable faster DCC downloads
43
44         # Configure PIO Controller for SDRAM data-lines D16-D31
45         # PC16-PC31 = Peripheral A: D16-D32
46         mww 0xfffff844 0xffff0000       ;# Interrupt Disable
47         mww 0xfffff854 0xffff0000       ;# Multi-Drive Disable
48         mww 0xfffff860 0xffff0000       ;# Pull-Up Disable
49         mww 0xfffff870 0xffff0000       ;# PIO_ASR : Select peripheral A function for D15..D31
50         mww 0xfffff804 0xffff0000       ;# PIO_PDR : Disable PIO function for D15..D31 (Peripheral function enable)
51         mww 0xfffffc10 0x00000010       ;# Enable PIO-C Clock in PMC (PID=4)
52
53         # SD-Ram setup
54         mww 0xffffef1c 0x2                      ;# EBI_CSA : Assign EBI Chip Select 1 to SDRAM
55         mww 0xffffea08 0x85227259       ;# SDRAMC_CR : Configure SDRAM (IS42S32160A: 4M Words x 32 Bits x 4 Banks (512-Mbit))
56         mww 0xffffea00 0x1                      ;# SDRAMC_MR : issue a NOP command
57         mww 0x20000000 0
58         mww 0xffffea00 0x2                      ;# SDRAMC_MR : issue an 'All Banks Precharge' command
59         mww 0x20000000 0
60         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (1st)
61         mww 0x20000000 0
62         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (2nd)
63         mww 0x20000000 0
64         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (3th)
65         mww 0x20000000 0
66         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (4th)
67         mww 0x20000000 0
68         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (5th)
69         mww 0x20000000 0
70         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (6th)
71         mww 0x20000000 0
72         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (7th)
73         mww 0x20000000 0
74         mww 0xffffea00 0x4                      ;# SDRAMC_MR : issue an 'Auto-Refresh' command (8th)
75         mww 0x20000000 0
76         mww 0xffffea00 0x3                      ;# SDRAMC_MR : issue a 'Load Mode Register' command
77         mww 0x20000000 0
78         mww 0xffffea00 0x0                      ;# SDRAMC_MR : Normal Mode
79         mww 0x20000000 0
80         mww 0xFFFFEA04 0x30d            ;# SDRAM Refresh Time Register
81                                                                  #  datasheet: 8k refresh cycles / 64 ms
82                                                                  #  MCLK / (8*1024 / 64e-3) = 100e6 / 128000 = 781 = 0x30d
83
84 }