OpenOCD
arm_io.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 /*
4  * Copyright (C) 2009 by David Brownell
5  */
6 #ifndef OPENOCD_FLASH_NAND_ARM_IO_H
7 #define OPENOCD_FLASH_NAND_ARM_IO_H
8 
16 };
17 
22 struct arm_nand_data {
24  struct target *target;
25 
28 
30  unsigned chunk_size;
31 
33  uint32_t data;
34 
36  enum arm_nand_op op;
37 
38  /* currently implicit: data width == 8 bits (not 16) */
39 };
40 
41 int arm_nandwrite(struct arm_nand_data *nand, uint8_t *data, int size);
42 int arm_nandread(struct arm_nand_data *nand, uint8_t *data, uint32_t size);
43 
44 #endif /* OPENOCD_FLASH_NAND_ARM_IO_H */
int arm_nandwrite(struct arm_nand_data *nand, uint8_t *data, int size)
ARM-specific bulk write from buffer to address of 8-bit wide NAND.
Definition: arm_io.c:80
int arm_nandread(struct arm_nand_data *nand, uint8_t *data, uint32_t size)
Uses an on-chip algorithm for an ARM device to read from a NAND device and store the data into the ho...
Definition: arm_io.c:190
arm_nand_op
Available operational states the arm_nand_data struct can be in.
Definition: arm_io.h:12
@ ARM_NAND_READ
Read operation performed.
Definition: arm_io.h:14
@ ARM_NAND_WRITE
Write operation performed.
Definition: arm_io.h:15
@ ARM_NAND_NONE
No operation performed.
Definition: arm_io.h:13
size_t size
Size of the control block search area.
Definition: rtt/rtt.c:30
The arm_nand_data struct is used for defining NAND I/O operations on an ARM core.
Definition: arm_io.h:22
struct target * target
Target is proxy for some ARM core.
Definition: arm_io.h:24
struct working_area * copy_area
The copy area holds code loop and data for I/O operations.
Definition: arm_io.h:27
unsigned chunk_size
The chunk size is the page size or ECC chunk.
Definition: arm_io.h:30
enum arm_nand_op op
Last operation executed using this struct.
Definition: arm_io.h:36
uint32_t data
Where data is read from or written to.
Definition: arm_io.h:33
Definition: target.h:116