From f1cae2aa9e420242134fb0df3ff06f6605bdffab Mon Sep 17 00:00:00 2001 From: laforge Date: Sun, 1 Oct 2006 21:44:06 +0000 Subject: - add command to read rc632 serial number via USB git-svn-id: https://svn.openpcd.org:2342/trunk@250 6dc7ffe9-61d6-0310-9af1-9938baff3ed1 --- firmware/include/openpcd.h | 2 ++ firmware/src/os/usbcmd_generic.c | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/firmware/include/openpcd.h b/firmware/include/openpcd.h index cdfb7a7..0cceb53 100644 --- a/firmware/include/openpcd.h +++ b/firmware/include/openpcd.h @@ -45,8 +45,10 @@ enum openpcd_cmd_class { #define OPENPCD_CLS2CMD(x) (x << 4) +/* Generic */ #define OPENPCD_CMD_GET_VERSION (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC)) #define OPENPCD_CMD_SET_LED (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC)) +#define OPENPCD_CMD_GET_SERIAL (0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC)) /* CMD_CLS_RC632 */ #define OPENPCD_CMD_WRITE_REG (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632)) diff --git a/firmware/src/os/usbcmd_generic.c b/firmware/src/os/usbcmd_generic.c index 9dec14e..386692b 100644 --- a/firmware/src/os/usbcmd_generic.c +++ b/firmware/src/os/usbcmd_generic.c @@ -31,6 +31,17 @@ static int gen_usb_rx(struct req_ctx *rctx) DEBUGP("SET LED(%u,%u) ", poh->reg, poh->val); led_switch(poh->reg, poh->val); break; + case OPENPCD_CMD_GET_SERIAL: + DEBUGP("GET SERIAL "); + poh->flags |= OPENPCD_FLAG_RESPOND; +#ifdef PCD + rctx->tot_len += 4; + rc632_get_serial(NULL, (u_int32_t *)poh->data); +#else + /* FIXME: where to get serial in PICC case */ + return USB_ERR(USB_ERR_CMD_NOT_IMPL); +#endif + break; default: DEBUGP("UNKNOWN "); return USB_ERR(USB_ERR_CMD_UNKNOWN); -- cgit v1.2.3