Skip to content
Snippets Groups Projects
cmd_ide.c 50.2 KiB
Newer Older
Wolfgang Denk's avatar
Wolfgang Denk committed
		ccb[7]=(unsigned char) (cnt  >>16) & 0xFF;
		ccb[8]=(unsigned char) (cnt  >> 8) & 0xFF;
		ccb[9]=(unsigned char)  cnt	   & 0xFF; /* LSB Block */
		ccb[10]=0; /* reserved */
		ccb[11]=0; /* reserved */

		if (atapi_issue_autoreq(device,ccb,12,
					(unsigned char *)buffer,
					cnt*ATAPI_READ_BLOCK_SIZE) == 0xFF) {
			return (n);
		}
		n+=cnt;
		blkcnt-=cnt;
		blknr+=cnt;
		buffer+=(cnt*ATAPI_READ_BLOCK_SIZE);
Wolfgang Denk's avatar
Wolfgang Denk committed
	} while (blkcnt > 0);
	return (n);
}

/* ------------------------------------------------------------------------- */

#endif /* CONFIG_ATAPI */

U_BOOT_CMD(
	ide,  5,  1,  do_ide,
Peter Tyser's avatar
Peter Tyser committed
	"IDE sub-system",
Wolfgang Denk's avatar
Wolfgang Denk committed
	"reset - reset IDE controller\n"
	"ide info  - show available IDE devices\n"
	"ide device [dev] - show or set current device\n"
	"ide part [dev] - print partition table of one or all IDE devices\n"
	"ide read  addr blk# cnt\n"
	"ide write addr blk# cnt - read/write `cnt'"
	" blocks starting at block `blk#'\n"
	"    to/from memory address `addr'"
Wolfgang Denk's avatar
Wolfgang Denk committed
);

U_BOOT_CMD(
	diskboot,	3,	1,	do_diskboot,
Peter Tyser's avatar
Peter Tyser committed
	"boot from IDE device",
	"loadAddr dev:part"
Wolfgang Denk's avatar
Wolfgang Denk committed
);