Hi James,
Below is the init script used on mx28evk with RealView ICE tool and I think it will be easy to convert it to OpenOCD syntax.
If you get some progress with mx28evk on OpenOCD, please let me know.
I have used OpenOCD several years ago with mx31/mx27pdk and now I would like to start using it again on the new boards.
Regards,
Fabio Estevam
//=============================================================================
//init script for i.MX28 DDR2
//=============================================================================
wait = on
//****************************
// VDDD setting
//****************************
//set VDDD =1.55V =(0.8v + TRIG x 0.025v), TRIG=0x1e
setmem /32 0x80044010= 0x0003F503
setmem /32 0x80044040= 0x0002041E
//****************************
// CLOCK set up
//****************************
// Power up PLL0 HW_CLKCTRL_PLL0CTRL0
setmem /32 0x80040000= 0x00020000
// Set up fractional dividers for CPU and EMI - HW_CLKCTRL_FRAC0
// EMI - first set DIV_EMI to div-by-2 before programming frac divider
setmem /32 0x800400F0 = 0x80000002
// CPU: CPUFRAC=19 480*18/29=454.7MHz, EMI: EMIFRAC=22, (480/2)*18/22=196.4MHz
setmem /32 0x800401B0= 0x92921613
// Clear the bypass bits for CPU and EMI clocks in HW_CLKCTRL_CLKSEQ_CLR
setmem /32 0x800401D8= 0x00040080
// HCLK = 227MHz,HW_CLKCTRL_HBUS DIV =0x2
setmem /32 0x80040060= 0x00000002
//****************************
// POWER up DCDD_VDDA (DDR2)
//****************************
// Now set the voltage level to 1.8V HW_POWER_VDDACTRL bits TRC=0xC
setmem /32 0x80044050= 0x0000270C
//****************************
// DDR2 DCDD_VDDA
//****************************
// First set up pin muxing and drive strength
// Ungate module clock and bring out of reset HW_PINCTRL_CTRL_CLR
setmem /32 0x80018008= 0xC0000000
//****************************
// EMI PAD setting
//****************************
// Set up drive strength for EMI pins
setmem /32 0x80019B80 = 0x00030000 //IOMUXC_SW_PAD_CTL_GRP_CTLDS
// Set up pin muxing for EMI, HW_PINCTRL_MUXSEL10, 11, 12, 13
setmem /32 0x800181A8= 0xFFFFFFFF
setmem /32 0x800181B8= 0xFFFFFFFF
setmem /32 0x800181C8= 0xFFFFFFFF
setmem /32 0x800181D8= 0xFFFFFFFF
//** Ungate EMI clock in CCM
setmem /32 0x800400F0 = 0x00000002
//=============================================================================
// DDR Controller Registers
//=============================================================================
// Manufacturer: Elpida
// Device Part Number: EDE1116AEBG
// Clock Freq.: 200MHz
// Density: 1Gb
// Chip Selects: 1
// Number of Banks: 8
// Row address: 13
// Column address: 10
//=============================================================================
setmem /32 0x800E0000= 0x00000000
setmem /32 0x800E0040= 0x00000000
setmem /32 0x800E0054= 0x00000000
setmem /32 0x800E0058= 0x00000000
setmem /32 0x800E005C= 0x00000000
setmem /32 0x800E0060= 0x00000000
setmem /32 0x800E0064= 0x00000000
setmem /32 0x800E0068= 0x00010101
setmem /32 0x800E006C= 0x01010101
setmem /32 0x800E0070= 0x000f0f01
setmem /32 0x800E0074= 0x0102020A
setmem /32 0x800E007C= 0x00010101
setmem /32 0x800E0080= 0x00000100
setmem /32 0x800E0084= 0x00000100
setmem /32 0x800E0088= 0x00000000
setmem /32 0x800E008C= 0x00000002
setmem /32 0x800E0090= 0x01010000
setmem /32 0x800E0094= 0x07080403
setmem /32 0x800E0098= 0x06005003
setmem /32 0x800E009C= 0x0A0000C8
setmem /32 0x800E00A0= 0x02009C40
setmem /32 0x800E00A4= 0x0002030C
setmem /32 0x800E00A8= 0x0036B009
setmem /32 0x800E00AC= 0x031A0612
setmem /32 0x800E00B0= 0x02030202
setmem /32 0x800E00B4= 0x00C8001C
setmem /32 0x800E00C0= 0x00011900
setmem /32 0x800E00C4= 0xffff0303
setmem /32 0x800E00C8= 0x00012100
setmem /32 0x800E00CC= 0xffff0303
setmem /32 0x800E00D0= 0x00012100
setmem /32 0x800E00D4= 0xffff0303
setmem /32 0x800E00D8= 0x00012100
setmem /32 0x800E00DC= 0xffff0303
setmem /32 0x800E00E0= 0x00000003
setmem /32 0x800E00E8= 0x00000000
setmem /32 0x800E0108= 0x00000612
setmem /32 0x800E010C= 0x01000f02
setmem /32 0x800E0114= 0x00000200
setmem /32 0x800E0118= 0x00020007
setmem /32 0x800E011C= 0xf4004a27
setmem /32 0x800E0120= 0xf4004a27
setmem /32 0x800E012C= 0x07400300
setmem /32 0x800E0130= 0x07400300
setmem /32 0x800E013C= 0x00000005
setmem /32 0x800E0140= 0x00000000
setmem /32 0x800E0144= 0x00000000
setmem /32 0x800E0148= 0x01000000
setmem /32 0x800E014C= 0x01020408
setmem /32 0x800E0150= 0x08040201
setmem /32 0x800E0154= 0x000f1133
setmem /32 0x800E015C= 0x00001f04
setmem /32 0x800E0160= 0x00001f04
setmem /32 0x800E016C= 0x00001f04
setmem /32 0x800E0170= 0x00001f04
setmem /32 0x800E0288= 0x00010000
setmem /32 0x800E028C= 0x00030404
setmem /32 0x800E0290= 0x00000003
setmem /32 0x800E02AC= 0x01010000
setmem /32 0x800E02B0= 0x01000000
setmem /32 0x800E02B4= 0x03030000
setmem /32 0x800E02B8= 0x00010303
setmem /32 0x800E02BC= 0x01020202
setmem /32 0x800E02C0= 0x00000000
setmem /32 0x800E02C4= 0x02030303
setmem /32 0x800E02C8= 0x21002103
setmem /32 0x800E02CC= 0x00061200
setmem /32 0x800E02D0= 0x06120612
setmem /32 0x800E02D4= 0x04420442 // Mode register 0 for CS1 and CS0, ok to program CS1 even if not used
setmem /32 0x800E02D8= 0x00000000 // Mode register 0 for CS2 and CS3, not supported in this processor
setmem /32 0x800E02DC= 0x00040004 // Mode register 1 for CS1 and CS0, ok to program CS1 even if not used
setmem /32 0x800E02E0= 0x00000000 // Mode register 1 for CS2 and CS3, not supported in this processor
setmem /32 0x800E02E4= 0x00000000 // Mode register 2 for CS1 and CS0, ok to program CS1 even if not used
setmem /32 0x800E02E8= 0x00000000 // Mode register 2 for CS2 and CS3, not supported in this processor
setmem /32 0x800E02EC= 0x00000000 // Mode register 3 for CS1 and CS0, ok to program CS1 even if not used
setmem /32 0x800E02F0= 0x00000000 // Mode register 3 for CS2 and CS3, not supported in this processor
setmem /32 0x800E02F4= 0xffffffff
//** start controller **//
setmem /32 0x800E0040= 0x00000001 // bit[0]: start