summaryrefslogtreecommitdiff
path: root/cmd/sbc_harness
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/sbc_harness')
-rw-r--r--cmd/sbc_harness/config/config.h7
-rw-r--r--cmd/sbc_harness/config/tusb_config.h14
-rw-r--r--cmd/sbc_harness/main.c10
-rw-r--r--cmd/sbc_harness/usb_keyboard.c1
4 files changed, 17 insertions, 15 deletions
diff --git a/cmd/sbc_harness/config/config.h b/cmd/sbc_harness/config/config.h
index 3a75c14..6d2ea89 100644
--- a/cmd/sbc_harness/config/config.h
+++ b/cmd/sbc_harness/config/config.h
@@ -68,6 +68,13 @@
/* USB KEYBOARD ***************************************************************/
+/**
+ * Which USB port to use for the Root Hub.
+ *
+ * The RP2040 only has 1 port, so it's gotta be port #0.
+ */
+#define CONFIG_USB_COMMON_RHPORT 0
+
#define CONFIG_USB_COMMON_DEBUG 1 /* bool */
/* COROUTINE ******************************************************************/
diff --git a/cmd/sbc_harness/config/tusb_config.h b/cmd/sbc_harness/config/tusb_config.h
index fc963ac..a27c841 100644
--- a/cmd/sbc_harness/config/tusb_config.h
+++ b/cmd/sbc_harness/config/tusb_config.h
@@ -36,18 +36,6 @@ extern "C" {
#endif
//--------------------------------------------------------------------
-// TinyUSB Device (TUD) initialization for rp2040-based boards
-//--------------------------------------------------------------------
-
-// Which USB port to use for the RootHub.
-// The rp2040 only has 1 port, so it's gotta be port #0.
-#define BOARD_TUD_RHPORT 0
-
-// RHPort max operational speed.
-// Use OPT_MODE_DEFAULT_SPEED for max speed supported by MCU.
-#define BOARD_TUD_MAX_SPEED OPT_MODE_DEFAULT_SPEED
-
-//--------------------------------------------------------------------
// Configuration: common
//--------------------------------------------------------------------
@@ -72,7 +60,7 @@ extern "C" {
#define CFG_TUSB_MEM_ALIGN [[gnu::aligned(4)]]
#define CFG_TUD_ENABLED 1
-#define CFG_TUD_MAX_SPEED BOARD_TUD_MAX_SPEED
+#define CFG_TUD_MAX_SPEED OPT_MODE_DEFAULT_SPEED
//--------------------------------------------------------------------
// Configuration: TinyUSB Device (TUD)
diff --git a/cmd/sbc_harness/main.c b/cmd/sbc_harness/main.c
index 4683c72..9eacc81 100644
--- a/cmd/sbc_harness/main.c
+++ b/cmd/sbc_harness/main.c
@@ -21,6 +21,8 @@
#include "usb_keyboard.h"
+#define ARRAY_LEN(arr) (sizeof(arr)/sizeof((arr)[0]))
+
COROUTINE hello_world_cr(void *_chan) {
const char *msg = "Hello world!\n";
usb_keyboard_rpc_t *chan = _chan;
@@ -50,8 +52,11 @@ struct {
struct rp2040_hwspi dev_spi;
struct w5500 dev_w5500;
usb_keyboard_rpc_t keyboard_chan;
+ uint16_t usb_serial[sizeof(uint64_t)*2]; /* UTF-16 */
} globals;
+const char *hexdig = "0123456789ABCDEF";
+
COROUTINE init_cr(void *) {
cr_begin();
@@ -86,7 +91,10 @@ COROUTINE init_cr(void *) {
flash_id24[0], flash_id24[1], flash_id24[2],
}}));
- usb_common_earlyinit();
+ static_assert(sizeof(flash_id64)*2 == ARRAY_LEN(globals.usb_serial));
+ for (size_t i = 0; i < ARRAY_LEN(globals.usb_serial); i++)
+ globals.usb_serial[i] = hexdig[(flash_id64 >> ((sizeof(flash_id64)*8)-((i+1)*4))) & 0xF];
+ usb_common_earlyinit(globals.usb_serial, sizeof(globals.usb_serial));
usb_keyboard_init();
usb_common_lateinit();
diff --git a/cmd/sbc_harness/usb_keyboard.c b/cmd/sbc_harness/usb_keyboard.c
index 637921e..f4816c1 100644
--- a/cmd/sbc_harness/usb_keyboard.c
+++ b/cmd/sbc_harness/usb_keyboard.c
@@ -24,7 +24,6 @@ static uint8_t kbd_ifc = 0;
void usb_keyboard_init() {
if (kbd_ifc)
return;
- usb_common_earlyinit();
kbd_ifc = usb_add_interface(cfgnum_std, TUD_HID_DESC_LEN, (uint8_t[]){
/* USB-HID input-only descriptor for inclusion in the config descriptor; consisting of 3 parts: