a89dd2ca65
Abstract the orion_nand_fast_block_write() routine into a separate routine -- arm_nandwrite() -- so that other ARM cores can reuse it. Have davinci_nand do so. This faster than byte-at-a-time ops by a factor of three (!), even given the slowish interactions to support hardware ECC (1-bit flavor in that test) each 512 bytes; those could be read more efficiently by on-chip code. NOTE that until there's a generic "ARM algorithm" structure, this can't work on newer ARMv6 (like ARM1136) or ARMv7A (like Cortex-A8) cores, though the downloaded code itself would work just fine there. git-svn-id: svn://svn.berlios.de/openocd/trunk@2663 b42882b7-edfa-0310-969c-e2dbd0fdcd60
26 lines
564 B
C
26 lines
564 B
C
#ifndef __ARM_NANDIO_H
|
|
#define __ARM_NANDIO_H
|
|
|
|
#include "nand.h"
|
|
#include "binarybuffer.h"
|
|
|
|
struct arm_nand_data {
|
|
/* target is proxy for some ARM core */
|
|
struct target_s *target;
|
|
|
|
/* copy_area holds write-to-NAND loop and data to write */
|
|
struct working_area_s *copy_area;
|
|
|
|
/* chunk_size == page or ECC unit */
|
|
unsigned chunk_size;
|
|
|
|
/* data == where to write the data */
|
|
uint32_t data;
|
|
|
|
/* currently implicit: data width == 8 bits (not 16) */
|
|
};
|
|
|
|
int arm_nandwrite(struct arm_nand_data *nand, uint8_t *data, int size);
|
|
|
|
#endif /* __ARM_NANDIO_H */
|