summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylvain Munaut <tnt@246tNt.com>2010-11-13 15:36:14 +0100
committerHarald Welte <laforge@gnumonks.org>2017-01-15 09:29:18 +0100
commitf3b94eb52b33cd6e7a352723f785bb1d27050b04 (patch)
tree21a72f263ac259f779ed5f59c0cffa1ae76dab89
parentec2d58c44b9231380271c51125bafb4a58be2930 (diff)
[HACK] Increase speed of l1ctl to 408250bps after boot
This is required to deal with the increased traffic of a passive listener Note that it break the 'auto-restart' of osmocon when active because the bootloader will send the prompt at 115200 baud and we won't see it ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-rw-r--r--src/host/osmocon/osmocon.c32
-rw-r--r--src/target/firmware/board/compal_e86/init.c2
-rwxr-xr-xsrc/target/firmware/board/compal_e88/init.c2
-rw-r--r--src/target/firmware/board/compal_e99/init.c2
-rw-r--r--src/target/firmware/board/gta0x/init.c2
-rw-r--r--src/target/firmware/board/pirelli_dpl10/init.c2
6 files changed, 37 insertions, 5 deletions
diff --git a/src/host/osmocon/osmocon.c b/src/host/osmocon/osmocon.c
index 648d416..bb1d6b3 100644
--- a/src/host/osmocon/osmocon.c
+++ b/src/host/osmocon/osmocon.c
@@ -234,6 +234,34 @@ static const uint8_t mtk_init_cmd[] = { 0xa0, 0x0a, 0x50, 0x05 };
static const uint8_t mtk_init_resp[] = { 0x5f, 0xf5, 0xaf, 0xfa };
static const uint8_t mtk_command[] = { 0xa1, 0xa2, 0xa4, 0xa8 };
+
+int serial_up_to_eleven(void)
+{
+ int rv;
+
+ /* Attempt custom baudrate */
+ rv = osmo_serial_set_custom_baudrate(dnload.serial_fd.fd, 406250);
+ if (rv == 0)
+ return 0;
+
+#ifdef I_HAVE_A_CP210x /* and I know what I'm doing, I swear ! */
+ /* Try closest standard baudrate (CP210x reprogrammed adapters) */
+ rv = osmo_serial_set_baudrate(dnload.serial_fd.fd, B460800);
+ if (rv == 0)
+ return 0;
+#endif
+
+ /* Everything failed */
+ fprintf(stderr, "!!!\n");
+ fprintf(stderr, "!!! ERROR !!!\n");
+ fprintf(stderr, "!!!\n");
+ fprintf(stderr, "!!! Unable to set custom baudrate, please use appropriate cable\n");
+ fprintf(stderr, "!!! ( see wiki http://bb.osmocom.org/trac/wiki/Sniffing )\n");
+ fprintf(stderr, "!!!\n");
+
+ exit(-1);
+}
+
static void beacon_timer_cb(void *p)
{
int rc;
@@ -842,6 +870,7 @@ static int handle_read(void)
dnload.write_ptr = dnload.data;
dnload.expect_hdlc = 1;
+
/* check for romloader chainloading mode used as a workaround
* for the magic on the C139/C140 and J100i */
if (dnload.do_chainload) {
@@ -855,6 +884,8 @@ static int handle_read(void)
tick_timer.data = &tick_timer;
osmo_timer_schedule(&tick_timer, 0, dnload.beacon_interval);
}
+ else
+ serial_up_to_eleven();
} else if (!memcmp(buffer, phone_nack, sizeof(phone_nack))) {
printf("Received DOWNLOAD NACK from phone, something went"
" wrong :(\n");
@@ -990,6 +1021,7 @@ static int handle_read_romload(void)
if (!memcmp(buffer, romload_branch_ack,
sizeof(romload_branch_ack))) {
printf("Received branch ack, your code is running now!\n");
+ serial_up_to_eleven();
dnload.serial_fd.when = BSC_FD_READ;
dnload.romload_state = FINISHED;
dnload.write_ptr = dnload.data;
diff --git a/src/target/firmware/board/compal_e86/init.c b/src/target/firmware/board/compal_e86/init.c
index fed9f85..ba63245 100644
--- a/src/target/firmware/board/compal_e86/init.c
+++ b/src/target/firmware/board/compal_e86/init.c
@@ -114,7 +114,7 @@ void board_init(int with_irq)
/* initialize MODEM UART to be used for sercomm */
uart_init(UART_MODEM, with_irq);
- uart_baudrate(UART_MODEM, UART_115200);
+ uart_baudrate(UART_MODEM, UART_460800);
/* initialize IRDA UART to be used for old-school console code.
* note: IRDA uart only accessible on C115 and C117 PCB */
diff --git a/src/target/firmware/board/compal_e88/init.c b/src/target/firmware/board/compal_e88/init.c
index 04ae458..91c1f8d 100755
--- a/src/target/firmware/board/compal_e88/init.c
+++ b/src/target/firmware/board/compal_e88/init.c
@@ -109,7 +109,7 @@ void board_init(int with_irq)
/* initialize MODEM UART to be used for sercomm */
uart_init(UART_MODEM, with_irq);
- uart_baudrate(UART_MODEM, UART_115200);
+ uart_baudrate(UART_MODEM, UART_460800);
/* Initialize IRDA UART to be used for old-school console code.
* note: IRDA uart only accessible on C115 and C117 PCB */
diff --git a/src/target/firmware/board/compal_e99/init.c b/src/target/firmware/board/compal_e99/init.c
index 7cc3c67..829a8ac 100644
--- a/src/target/firmware/board/compal_e99/init.c
+++ b/src/target/firmware/board/compal_e99/init.c
@@ -114,7 +114,7 @@ void board_init(int with_irq)
/* initialize MODEM UART to be used for sercomm */
uart_init(UART_MODEM, with_irq);
- uart_baudrate(UART_MODEM, UART_115200);
+ uart_baudrate(UART_MODEM, UART_460800);
/* initialize IRDA UART to be used for old-school console code.
* note: IRDA uart only accessible on C115 and C117 PCB */
diff --git a/src/target/firmware/board/gta0x/init.c b/src/target/firmware/board/gta0x/init.c
index 4f49e80..3b424c6 100644
--- a/src/target/firmware/board/gta0x/init.c
+++ b/src/target/firmware/board/gta0x/init.c
@@ -107,7 +107,7 @@ void board_init(int with_irq)
/* initialize MODEM UART to be used for sercomm */
uart_init(UART_MODEM, with_irq);
- uart_baudrate(UART_MODEM, UART_115200);
+ uart_baudrate(UART_MODEM, UART_460800);
/* Initialize IRDA UART to be used for old-school console code.
* note: IRDA uart only accessible on C115 and C117 PCB */
diff --git a/src/target/firmware/board/pirelli_dpl10/init.c b/src/target/firmware/board/pirelli_dpl10/init.c
index 4c74a6d..1d1c24b 100644
--- a/src/target/firmware/board/pirelli_dpl10/init.c
+++ b/src/target/firmware/board/pirelli_dpl10/init.c
@@ -124,7 +124,7 @@ void board_init(int with_irq)
/* initialize IRDA UART to be used for sercomm */
uart_init(UART_IRDA, with_irq);
- uart_baudrate(UART_IRDA, UART_115200);
+ uart_baudrate(UART_IRDA, UART_460800);
/* Initialize MODEM UART to be used for old-school console code. */
uart_init(UART_MODEM, with_irq);