76 lines
1.5 KiB
Plaintext
76 lines
1.5 KiB
Plaintext
# SDRAM initialization script for the AT91SAM9G20
|
|
#------------------------------------------------
|
|
# Configure master clock
|
|
echo Configuring the master clock...\n
|
|
# Enable main oscillator
|
|
set *0xFFFFFC20 = 0x00004001
|
|
while ((*0xFFFFFC68 & 0x1) == 0)
|
|
end
|
|
|
|
# Set PLLA to 800MHz
|
|
set *0xFFFFFC28 = 0x202A3F01
|
|
while ((*0xFFFFFC68 & 0x2) == 0)
|
|
end
|
|
|
|
# Set PLLB for USB usage
|
|
set *0xFFFFFC2C = 0x10193F05
|
|
while ((*0xFFFFFC68 & 0x4) == 0)
|
|
end
|
|
|
|
# Select prescaler
|
|
set *0xFFFFFC30 = 0x00001300
|
|
while ((*0xFFFFFC68 & 0x8) == 0)
|
|
end
|
|
|
|
# Select master clock
|
|
set *0xFFFFFC30 = 0x00001302
|
|
while ((*0xFFFFFC68 & 0x8) == 0)
|
|
end
|
|
|
|
echo Master clock ok.\n
|
|
echo Configuring the SDRAM controller...\n
|
|
|
|
# Enable EBI chip select for the SDRAM
|
|
set *0xFFFFEF1C = 0x2
|
|
|
|
# Enable PC16-PC31 pins
|
|
set *0xFFFFF870 = 0xFFFF0000
|
|
set *0xFFFFF874 = 0x00000000
|
|
set *0xFFFFF804 = 0xFFFF0000
|
|
|
|
# SDRAM configuration
|
|
set *0xFFFFEA08 = 0x96338379
|
|
|
|
set *0xFFFFEA00 = 0x1
|
|
set *0x20000000 = 0
|
|
|
|
set *0xFFFFEA00 = 0x2
|
|
set *0x20000000 = 0
|
|
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
set *0xFFFFEA00 = 0x4
|
|
set *0x20000000 = 0
|
|
|
|
set *0xFFFFEA00 = 0x3
|
|
set *0x20000000 = 0
|
|
|
|
set *0xFFFFEA00 = 0x0
|
|
set *0x20000000 = 0
|
|
|
|
set *0xFFFFEA04 = 0x39D
|
|
|
|
echo SDRAM configuration ok.\n
|