mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-26 02:08:32 +03:00
qmod: debug_cmd: Avoid 'Unknown command' for valid commands
This commit is contained in:
@@ -114,11 +114,59 @@ static int write_hub_eeprom(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns '1' in case we should break any endless loop */
|
static void board_exec_dbg_cmd_st12only(int ch)
|
||||||
void board_exec_dbg_cmd(int ch)
|
|
||||||
{
|
{
|
||||||
uint32_t addr, val;
|
uint32_t addr, val;
|
||||||
|
|
||||||
|
/* functions below only work on primary (ST12) */
|
||||||
|
if (!qmod_sam3_is_12())
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (ch) {
|
||||||
|
case 'E':
|
||||||
|
write_hub_eeprom();
|
||||||
|
break;
|
||||||
|
case 'O':
|
||||||
|
printf("Setting PRTPWR_OVERRIDE\n\r");
|
||||||
|
PIO_Set(&pin_hubpwr_override);
|
||||||
|
break;
|
||||||
|
case 'o':
|
||||||
|
printf("Clearing PRTPWR_OVERRIDE\n\r");
|
||||||
|
PIO_Clear(&pin_hubpwr_override);
|
||||||
|
break;
|
||||||
|
case 'H':
|
||||||
|
printf("Clearing _HUB_RESET -> HUB_RESET high (inactive)\n\r");
|
||||||
|
PIO_Clear(&pin_hub_rst);
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
/* high level drives transistor -> HUB_RESET low */
|
||||||
|
printf("Asserting _HUB_RESET -> HUB_RESET low (active)\n\r");
|
||||||
|
PIO_Set(&pin_hub_rst);
|
||||||
|
break;
|
||||||
|
case 'w':
|
||||||
|
if (PIO_GetOutputDataStatus(&pin_hub_rst) == 0)
|
||||||
|
printf("WARNING: attempting EEPROM access while HUB not in reset\n\r");
|
||||||
|
printf("Please enter EEPROM offset:\n\r");
|
||||||
|
UART_GetIntegerMinMax(&addr, 0, 255);
|
||||||
|
printf("Please enter EEPROM value:\n\r");
|
||||||
|
UART_GetIntegerMinMax(&val, 0, 255);
|
||||||
|
printf("Writing value 0x%02x to EEPROM offset 0x%02x\n\r", val, addr);
|
||||||
|
eeprom_write_byte(0x50, addr, val);
|
||||||
|
break;
|
||||||
|
case 'r':
|
||||||
|
printf("Please enter EEPROM offset:\n\r");
|
||||||
|
UART_GetIntegerMinMax(&addr, 0, 255);
|
||||||
|
printf("EEPROM[0x%02x] = 0x%02x\n\r", addr, eeprom_read_byte(0x50, addr));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
printf("Unknown command '%c'\n\r", ch);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* returns '1' in case we should break any endless loop */
|
||||||
|
void board_exec_dbg_cmd(int ch)
|
||||||
|
{
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case '?':
|
case '?':
|
||||||
printf("\t?\thelp\n\r");
|
printf("\t?\thelp\n\r");
|
||||||
@@ -176,55 +224,10 @@ void board_exec_dbg_cmd(int ch)
|
|||||||
qmod_use_physical_sim(2, 0);
|
qmod_use_physical_sim(2, 0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (!qmod_sam3_is_12()) {
|
if (!qmod_sam3_is_12())
|
||||||
printf("Unknown command '%c'\n\r", ch);
|
printf("Unknown command '%c'\n\r", ch);
|
||||||
return;
|
else
|
||||||
}
|
board_exec_dbg_cmd_st12only(ch);
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* functions below only work on primary (ST12) */
|
|
||||||
if (!qmod_sam3_is_12())
|
|
||||||
return;
|
|
||||||
|
|
||||||
switch (ch) {
|
|
||||||
case 'E':
|
|
||||||
write_hub_eeprom();
|
|
||||||
break;
|
|
||||||
case 'O':
|
|
||||||
printf("Setting PRTPWR_OVERRIDE\n\r");
|
|
||||||
PIO_Set(&pin_hubpwr_override);
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
printf("Clearing PRTPWR_OVERRIDE\n\r");
|
|
||||||
PIO_Clear(&pin_hubpwr_override);
|
|
||||||
break;
|
|
||||||
case 'H':
|
|
||||||
printf("Clearing _HUB_RESET -> HUB_RESET high (inactive)\n\r");
|
|
||||||
PIO_Clear(&pin_hub_rst);
|
|
||||||
break;
|
|
||||||
case 'h':
|
|
||||||
/* high level drives transistor -> HUB_RESET low */
|
|
||||||
printf("Asserting _HUB_RESET -> HUB_RESET low (active)\n\r");
|
|
||||||
PIO_Set(&pin_hub_rst);
|
|
||||||
break;
|
|
||||||
case 'w':
|
|
||||||
if (PIO_GetOutputDataStatus(&pin_hub_rst) == 0)
|
|
||||||
printf("WARNING: attempting EEPROM access while HUB not in reset\n\r");
|
|
||||||
printf("Please enter EEPROM offset:\n\r");
|
|
||||||
UART_GetIntegerMinMax(&addr, 0, 255);
|
|
||||||
printf("Please enter EEPROM value:\n\r");
|
|
||||||
UART_GetIntegerMinMax(&val, 0, 255);
|
|
||||||
printf("Writing value 0x%02x to EEPROM offset 0x%02x\n\r", val, addr);
|
|
||||||
eeprom_write_byte(0x50, addr, val);
|
|
||||||
break;
|
|
||||||
case 'r':
|
|
||||||
printf("Please enter EEPROM offset:\n\r");
|
|
||||||
UART_GetIntegerMinMax(&addr, 0, 255);
|
|
||||||
printf("EEPROM[0x%02x] = 0x%02x\n\r", addr, eeprom_read_byte(0x50, addr));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
printf("Unknown command '%c'\n\r", ch);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user