|
- # DM6446 EVM board
- # http://focus.ti.com/docs/toolsw/folders/print/tmdsevm6446.html
- # http://c6000.spectrumdigital.com/davincievm/
- # EVM is just the board; buy that at Spectrum.
- # The "kit" from TI also has: video camera, LCD video monitor, more.
-
- source [find target/ti_dm6446.cfg]
-
- # J4 controls what CS2 hooks up to, usually NOR or NAND flash.
- # S3.1/S3.2 controls boot mode, which may force J4 and S3.3 settings.
- # S3.3 controls AEMIF bus width.
-
- if { [info exists J4_OPTION] } {
- # NOR, NAND, SRAM, ...
- set CS2_MODE $J4_OPTION
- } else {
- set CS2_MODE ""
- }
-
- # ARM boot:
- # S3.1 = 0, S3.2 = 0 ==> ROM/UBL boot via NAND (J4 == NAND)
- # S3.1 = 1, S3.2 = 0 ==> AEMIF boot (J4 == NOR or SRAM)
- # S3.1 = 0, S3.2 = 1 ==> ROM/UBL boot via HPI
- # S3.1 = 1, S3.2 = 1 ==> ROM/UBL boot via UART (J4 == don't care)
- # AEMIF bus width:
- # S3.3 = 0 ==> 8 bit bus width
- # S3.3 = 1 ==> 16 bit bus width
- # DSP boot:
- # S3.4 = 0 ==> controlled by ARM
-
- if { $CS2_MODE == "NOR" } {
- # 16 Mbytes address space; 16 bit bus width
- # (older boards used 32MB parts, with upper 16 MB unusable)
- set _FLASHNAME $_CHIPNAME.flash
- flash bank $_FLASHNAME cfi 0x02000000 0x01000000 2 2 $_TARGETNAME
- proc flashprobe {} { flash probe 0 }
- } elseif { $CS2_MODE == "NAND" } {
- # 64 Mbyte small page; 8 bit bus width
- nand device davinci $_TARGETNAME 0x02000000 hwecc1 0x01e00000
- proc flashprobe {} { nand probe 0 }
- } elseif { $CS2_MODE == "SRAM" } {
- # 4 Mbyte address space; 16 bit bus width
- # loaded via JTAG or HPI
- proc flashprobe {} {}
- } else {
- # maybe it's HPI boot? can't tell...
- echo "WARNING: CS2/flash configuration not recognized"
- proc flashprobe {} {}
- }
-
- # NOTE: disable or replace this call to dm6446evm_init if you're
- # debugging new UBL code from SRAM (for NAND boot).
- $_TARGETNAME configure -event reset-init { dm6446evm_init }
-
- #
- # This post-reset init is called when the MMU isn't active, all IRQs
- # are disabled, etc. It should do most of what a UBL does, except for
- # loading code (like U-Boot) into DRAM and running it.
- #
- proc dm6446evm_init {} {
-
- echo "Initialize DM6446 EVM board"
-
- # FIXME initialize everything:
- # - PLL1
- # - PLL2
- # - PINMUX
- # - PSC
- # - DDR
- # - AEMIF
- # - UART0
- # - icache
-
- flashprobe
- }
|