struct orion_nand_controller
{
- struct target *target;
-
struct arm_nand_data io;
uint32_t cmd;
static int orion_nand_command(struct nand_device *nand, uint8_t command)
{
struct orion_nand_controller *hw = nand->controller_priv;
- struct target *target = hw->target;
+ struct target *target = nand->target;
CHECK_HALTED;
target_write_u8(target, hw->cmd, command);
static int orion_nand_address(struct nand_device *nand, uint8_t address)
{
struct orion_nand_controller *hw = nand->controller_priv;
- struct target *target = hw->target;
+ struct target *target = nand->target;
CHECK_HALTED;
target_write_u8(target, hw->addr, address);
static int orion_nand_read(struct nand_device *nand, void *data)
{
struct orion_nand_controller *hw = nand->controller_priv;
- struct target *target = hw->target;
+ struct target *target = nand->target;
CHECK_HALTED;
target_read_u8(target, hw->data, data);
static int orion_nand_write(struct nand_device *nand, uint16_t data)
{
struct orion_nand_controller *hw = nand->controller_priv;
- struct target *target = hw->target;
+ struct target *target = nand->target;
CHECK_HALTED;
target_write_u8(target, hw->data, data);
}
nand->controller_priv = hw;
- hw->target = get_target(CMD_ARGV[1]);
- if (!hw->target) {
- LOG_ERROR("target '%s' not defined", CMD_ARGV[1]);
- free(hw);
- return ERROR_NAND_DEVICE_INVALID;
- }
COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], base);
cle = 0;
hw->cmd = base + (1 << cle);
hw->addr = base + (1 << ale);
- hw->io.target = hw->target;
+ hw->io.target = nand->target;
hw->io.data = hw->data;
hw->io.op = ARM_NAND_NONE;