view target-utils/libcommon/abbcmd.c @ 416:30f6d1c32c6f

doc/Flash-boot-defect article removed (no longer relevant) This article is no longer relevant because the issue in question only affected one (1) defective FCDEV3B board which was not and never will be sold.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 26 Oct 2018 07:11:08 +0000
parents 4be951811791
children 44a1de4264d8
line wrap: on
line source

/*
 * abbr pg reg		-- read ABB register
 * abbw pg reg val	-- write ABB register
 */

#include <sys/types.h>
#include "types.h"
#include "abbdefs.h"

extern u_long strtoul();

extern u16 abb_reg_read();
extern void abb_reg_write();

void
cmd_abbr(argbulk)
	char *argbulk;
{
	char *argv[3];
	u32 pg, reg, val;

	if (parse_args(argbulk, 2, 2, argv, 0) < 0)
		return;
	pg = strtoul(argv[0], 0, 0);
	reg = strtoul(argv[1], 0, 0);
	if (pg > 1 || reg > 31) {
		printf("ERROR: argument(s) out of range\n");
		return;
	}
	abb_init();
	val = abb_reg_read(PAGE(pg) | reg);
	printf("%03X\n", val);
}

void
cmd_abbw(argbulk)
	char *argbulk;
{
	char *argv[4];
	u32 pg, reg, val;

	if (parse_args(argbulk, 3, 3, argv, 0) < 0)
		return;
	pg = strtoul(argv[0], 0, 0);
	reg = strtoul(argv[1], 0, 0);
	val = strtoul(argv[2], 0, 16);
	if (pg > 1 || reg > 31 || val > 0x3FF) {
		printf("ERROR: argument(s) out of range\n");
		return;
	}
	abb_init();
	abb_reg_write(PAGE(pg) | reg, val);
}