Hello,
because this MPU is not directly supported by Segger J-Link i searched the net for solutions and found a connectionscript for an other JTAG Interface here: download.ronetix.info/peedi/cfg_examples/arm9/omap5948.cfg
Now i wonder if it could be "translated" to Segger script language.
I started with J-Flash (v6.x) where i use "ARM9" as architecture (which the OMAP5948 is) and added "Halt" and "Disable MMU" commands in init steps. Set init-speed to "Adaptive" and pre-init-speed to "Auto". With this setup i manage to read single sectors from flash. But as i try to read more, the CPU shuts down. I guess i ran into an watchdog issue.
This is, where the above script comes into account, because there is some watchdog handling.
Display All
I tried to poke the mem w32 commands into J-Flash init steps:
But this seems to have no effect. So i guess there is something missing. The commands unter "; reset ARM", maybe. I've read about the CPSR register which is set in front to disable CP15 and halt CPU? But don't know how to do this in J-Flash.
The rest of the script i can't make any sense for J-Flash. Maybe their are also missing.
Could someone please give me a hand on this?
because this MPU is not directly supported by Segger J-Link i searched the net for solutions and found a connectionscript for an other JTAG Interface here: download.ronetix.info/peedi/cfg_examples/arm9/omap5948.cfg
Now i wonder if it could be "translated" to Segger script language.
I started with J-Flash (v6.x) where i use "ARM9" as architecture (which the OMAP5948 is) and added "Halt" and "Disable MMU" commands in init steps. Set init-speed to "Adaptive" and pre-init-speed to "Auto". With this setup i manage to read single sectors from flash. But as i try to read more, the CPU shuts down. I guess i ran into an watchdog issue.
This is, where the above script comes into account, because there is some watchdog handling.
Source Code
- [INIT_OMAP5948]
- ; reset ARM
- set cpsr 0x000000D3 ; set supervisor mode
- set pc 0x00000000
- set control 0x00050078 ; CP15 Control : disable caches
- ; disable ARM9 Watchdog Timer
- mem write 0xFFFEC808 0x00F5 ; convert WD timer into GP timer
- mem write 0xFFFEC808 0x00A0 ;
- mem write 0xFFFEB048 0xAAAA ; stop the wahtchdog timer
- mem write 0xFFFEB048 0x5555
- ; setup DPLL for 96MHz freq
- mem or16 0xFFFECE08 0x4 ; enable ARM peripheral clock
- mem w16 0xFFFECE14 0x1 ; release OMAP CLKM reset
- mem w16 0xFFFECF00 0x2090 ; DPLL lock at 12MHz
- wait 150 ; wait until frequency is locked
- mem w16 0xFFFECE18 0x0 ; clocking mode : fully synchronous
- mem w16 0xFFFECE00 0x100A ; set the clock divisor for frequency 96MHz
- mem w16 0xFFFECF00 0x2413 ; set the DPLL for new frequency
- mem w16 0xFFFECE04 0x0 ;
- ; Setup TIPB (peripheral bus)
- mem w32 0xFFFEC900 0x0003FF2C ; set access width
- mem w16 0xFFFECA00 0xFF22 ; ARM private bus
- mem w16 0xFFFED300 0xFF22 ; ARM public bus
- ; configure EMIFS (slow external memory: flash)
- mem w32 0xFFFECC10 0x0000FFF3 ; EMIFS CS0 configuration
- mem w32 0xFFFECC14 0x0000AAA0 ; EMIFS CS1 configuration
- mem w32 0xFFFECC18 0x0000FFF3 ; EMIFS CS3 configuration
- mem w32 0xFFFECC1C 0x00003361 ; EMIFS CS3 configuration
- mem r32 0xFFFECC0C ; read EMIFS_CONFIG
- mem w8 0x00000000 0xFF ; reset flash to Read Array mode
- ; configure EMIFF (fast external memory: SDRAM-Mobile DDR)
- mem w32 0xFFFECC80 0x00000007 ; SDRAM type : mobile DDR SDRAM in HPHB mode
- mem w32 0xFFFECC20 0x0014E6FE ; SDRAM config
- mem w32 0xFFFECC84 0x00000000 ; DDR init : NOP
- mem w32 0xFFFECC84 0x00000001 ; DDR init : PRECHARGE
- mem w32 0xFFFECC84 0x00000002 ; DDR init : AUTOREFRESH
- mem w32 0xFFFECC84 0x00000002 ; DDR init : AUTOREFRESH
- mem w32 0xFFFECC70 0x00000033 ; DDR init : cas idle 3, page burst 8
- mem w32 0xFFFECC78 0x00000000 ; DDR init : self refresh all banks
- mem w32 0xFFFECCC0 0x00000006 ; DDR init : DDR DDL registers URD
- mem w32 0xFFFECCCC 0x00000006 ; DDR init : DDR DDL registers LRD
- mem w32 0xFFFECC64 0x00000006 ; DDR init : DDR DDL registers WRD
I tried to poke the mem w32 commands into J-Flash init steps:
The rest of the script i can't make any sense for J-Flash. Maybe their are also missing.
Could someone please give me a hand on this?