Skip to contentSkip to conversation

can't interrupt when printing T T T T T

DISCUSSION duhuanpeng 2 participants 2 messages Aug 29, 2019 – Aug 30, 2019

lore
Share & tools
lore

duhuanpeng

author
#0 lore raw

Hello, I boot my barebox by barebox from tftpserver. I poweroff my
switcher. and barebox began to print
- - - -
Booting entry 'net'
T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T IP 192.168.1.88 is not reachable
- - - -
I try to hit ctrl-c and some other keys. but I can't stop it printing 'T'.
so I added some piece of code to test it

fs/tftp.c
static int tftp_poll(struct file_priv *priv)
{
+
+ if(tstc()) {
+ printf("%s", __func__);
+ putchar(getchar());
+ }
+

        if (ctrlc()) {

net/net.c

void net_poll(void)
{
+ if(tstc()) {
+ printf("%s", __func__);
+ putchar(getchar());
+ }
+

net/eth.c

static int __eth_rx(struct eth_device *edev)

{
	int ret;

+ if(tstc()) {
+ putchar(getchar());
+ printf("|-_-|");
+ }
+
- - - - - - - -
the result:

Booting entry 'net'
T net_pollknet_polljnet_pollknet_polljk|-_-|net_polljT n|-_-|net_pollkj|-_-|net_pollsnet_pollknet_pollfnet_pollanet_polljT |-_-|net_poll|-_-||-_-|net_pollnet_ pollT T T T T net_pollfnet_pollfT net_pollff|-_-|f|-_-|net_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfT f|-_-|net_polldnet_pollfnet_pollsnet_p olldnet_pollkf|-_-|net_polljnet_pollknet_pollsnet_polljd|-_-|net_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljT net_polljnet_polljnet_polljnet_p olljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljj|-_-|net_polljT T T T T T T T net_pollfnet_po llfnet_pollfT net_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollff|-_-|T net_pollfnet_polldnet_polldd|-_-|d|-_ -|T T T T T T T T T T T T T T T T T T T IP 192.168.1.88 is not reachable

I found it the routine (tftp_poll) didn't catch the key input. mostly the input is catched by net_poll().
could anyone help to move the ctrlc() dection into the right place?

duhuanpeng.

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

#1 lore raw

Hello Duhuan (?),

Quoted 53 lines · duhuanpeng

Hello, I boot my barebox by barebox from tftpserver. I poweroff my
switcher. and barebox began to print
- - - -
Booting entry 'net'
T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T IP 192.168.1.88 is not reachable
- - - -
I try to hit ctrl-c and some other keys. but I can't stop it printing 'T'.
so I added some piece of code to test it

fs/tftp.c
static int tftp_poll(struct file_priv *priv)
{

(quoted diff) +6 -0
+
+       if(tstc()) {
+               printf("%s", __func__);
+               putchar(getchar());
+       }
+
        if (ctrlc()) {

net/net.c

void net_poll(void)
{

(quoted diff) +5 -0
+       if(tstc()) {
+               printf("%s", __func__);
+               putchar(getchar());
+       }
+

net/eth.c

static int __eth_rx(struct eth_device *edev)

{
	int ret;
(quoted diff) +5 -1
+       if(tstc()) {
+               putchar(getchar());
+               printf("|-_-|");
+       }
+
- - - - - - - -

the result:

Booting entry 'net'
T net_pollknet_polljnet_pollknet_polljk|-_-|net_polljT n|-_-|net_pollkj|-_-|net_pollsnet_pollknet_pollfnet_pollanet_polljT |-_-|net_poll|-_-||-_-|net_pollnet_ pollT T T T T net_pollfnet_pollfT net_pollff|-_-|f|-_-|net_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfT f|-_-|net_polldnet_pollfnet_pollsnet_p olldnet_pollkf|-_-|net_polljnet_pollknet_pollsnet_polljd|-_-|net_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljT net_polljnet_polljnet_polljnet_p olljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljj|-_-|net_polljT T T T T T T T net_pollfnet_po llfnet_pollfT net_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollfnet_pollff|-_-|T net_pollfnet_polldnet_polldd|-_-|d|-_ -|T T T T T T T T T T T T T T T T T T T IP 192.168.1.88 is not reachable

Quoted 3 lines

I found it the routine (tftp_poll) didn't catch the key input. mostly the input is catched by net_poll().
could anyone help to move the ctrlc() dection into the right place?

"startup: allow ctrl+c abort during boot sequence" on the barebox next branch should fix this for you.

Cheers
Ahmad

Quoted 15 lines

duhuanpeng.

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Signature · 9 lines
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox