From: Leon W. <leo...@gm...> - 2007-09-13 22:55:12
|
Hello, I pursued getting the OpenOCD / IXP42x combo to work almost fully correctly with a workspace area. The (single sector) data I tried to flash and the subsequent dump differ only in the first 16-bit: --- /random.txt 2007-09-13 16:15:40.047915400 +0200 +++ /dump.txt 2007-09-13 16:17:46.685881800 +0200 @@ -1,4 +1,4 @@ -000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f +000000 00 00 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 000010 de ad be ef 52 a8 c0 27 fc a6 eb ba fa 71 f4 1c 000020 31 c7 44 dc c2 68 b2 24 99 a0 ba f2 bf f6 22 7f 000030 fe b9 bc 73 c5 93 b7 db de 64 aa 87 31 91 b7 ba Given that my second nibble (4 bits) always become zero after programming I suspect this line to be redudant, as Intel docs tell me 0xff should be used to return to "read array" mode, not 0xf0. int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) /* return to read array mode */ cfi_command(bank, 0xf0, current_word); config: jtag_speed 0 reset_config trst_and_srst jtag_device 7 0x01 0x7f 0x7e target xscale big reset_init 0 ixp42x target_script 0 reset /ixp42x_big.init xscale debug_handler 0 0xfe000800 xscale cache_clean_address 0 0xfffe0000 flash bank cfi 0x50000000 0x01000000 2 2 0 working_area 0 0x01000000 0x00100000 nobackup init script: wait_halt #set big endian mode reg XSCALE_CTRL 0xF8 #setup expansion bus CS#0, write enable, @0x50000000 mww 0xc4000000 0xbcd23c42 flash probe 0 # 32 MB, CAS3 mww 0xcc000000 0x00000018 # disable refresh mww 0xcc000004 0x00000000 # nop mww 0xcc000008 0x00000003 sleep 20 # set refresh value mww 0xcc000004 0x0000081a # precharge all mww 0xcc000008 0x00000002 sleep 20 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000004 mww 0xcc000008 0x00000001 mww 0xcc000008 0x00000006 sleep 200 # map SDRAM to 0x00000000 mww 0xc4000020 0x00fffffe -- Leon |