From: Michael S. <rin...@di...> - 2007-09-11 17:45:40
|
Leon Woestenberg wrote: > Hello, > > I think OpenOCD does not cover all 8-bit / 16-bit cases correctly, for > CFI querying, as described in Intel's Application Note 646 (Google for > "Intel AP-646"). > > # enable write access to flash chip select > mww 0xc4000000 0xbfff3c42 > > flash probe 0 > > probing failed for flash bank '#0' at 0x50000000 > I ran into that problem, too - it is not only CFI, but all bus accesses that are not 32 bit cause strange results (data being on the right part of the bus, but byte enables are swapped). You need to switch the XScale core to big-endian mode: target xscale big reset_init 0 ixp42x target_script 0 reset ixp425.init in ixp425.init: wait_halt # set big endian mode reg XSCALE_CTRL 0xF8 # setup expansion bus CS mww 0xc4000000 0xbd113c42 # CS0: Flash, 16 Bit, write enabled @0x50000000 flash probe 0 I was wondering if openocd should do the write to the XSCALE_CTRL register. Currently, if I am not mistaken, the "big" parameter is not used by the source code at all, and the current behaviour means that you must always use a startup script for a IXP42X CPU when running in big-endian mode. cu Michael |