can't interrupt when printing T T T T T
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
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 inttftp_poll(struct file_priv *priv)
{(quoted diff) +6
-0+ + if(tstc()) { + printf("%s", __func__); + putchar(getchar()); + } + if (ctrlc()) {
net/net.cvoid
net_poll(void)
{(quoted diff) +5
-0+ if(tstc()) { + printf("%s", __func__); + putchar(getchar()); + } +
net/eth.cstatic 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 Tnet_pollfnet_pollfTnet_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_polljTnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljnet_polljj|-_-|net_polljT T T T T T T Tnet_pollfnet_pollfnet_pollfTnet_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 bynet_poll().
could anyone help to move thectrlc()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