On Wed, Mar 1, 2017 at 5:41 PM, sven falempin <sven.falem...@gmail.com>
wrote:

>
>
> On Wed, Mar 1, 2017 at 4:31 AM, Patrick Wildt <patr...@blueri.se> wrote:
>
>> Hi,
>>
>> there is no com(4) direct access support in EFI, so setting the speed
>> will fail and crash the EFI Application.  Happens when you run stty
>> com0 115200.
>>
>> ok?
>>
>> Patrick
>>
>>
>> diff --git a/sys/arch/amd64/stand/libsa/dev_i386.c
>> b/sys/arch/amd64/stand/libsa/dev_i386.c
>> index e40856cbf05..245ced84a8e 100644
>> --- a/sys/arch/amd64/stand/libsa/dev_i386.c
>> +++ b/sys/arch/amd64/stand/libsa/dev_i386.c
>> @@ -182,8 +182,10 @@ ttydev(char *name)
>>  int
>>  cnspeed(dev_t dev, int sp)
>>  {
>> +#ifndef EFIBOOT
>>         if (major(dev) == 8)    /* comN */
>>                 return comspeed(dev, sp);
>> +#endif
>>
>>         /* pc0 and anything else */
>>         return 9600;
>>
>>
>
> in stand boot
> stty could be disable
>
> ( diff probably got space instead of tabs , please use -b )
> Index: ./stand/boot/cmd.c
> ===================================================================
> RCS file: /cvs/src/sys/stand/boot/cmd.c,v
> retrieving revision 1.63
> diff -u -p -r1.63 cmd.c
> --- ./stand/boot/cmd.c  20 Jul 2014 19:33:54 -0000      1.63
> +++ ./stand/boot/cmd.c  1 Mar 2017 22:36:11 -0000
> @@ -68,7 +68,9 @@ const struct cmd_table cmd_table[] = {
>  #endif
>         {"reboot", CMDT_CMD, Xreboot},
>         {"set",    CMDT_SET, Xset},
> +#ifndef EFIBOOT
>         {"stty",   CMDT_CMD, Xstty},
> +#endif
>         {"time",   CMDT_CMD, Xtime},
>         {NULL, 0},
>  };
>
>
> Alternatively the function could document the problem ( but it make the
> boot loader bigger
>
>
> Index: ./stand/boot/cmd.c
> ===================================================================
> RCS file: /cvs/src/sys/stand/boot/cmd.c,v
> retrieving revision 1.63
> diff -u -p -r1.63 cmd.c
> --- ./stand/boot/cmd.c  20 Jul 2014 19:33:54 -0000      1.63
> +++ ./stand/boot/cmd.c  1 Mar 2017 22:39:23 -0000
> @@ -375,6 +375,11 @@ Xstty(void)
>         char *cp;
>         dev_t dev;
>
> +#ifndef EFIBOOT
> +       printf("no com(4) direct access support in EFI");
> +       return 0;
> +#endif
> +
>         if (cmd.argc == 1) {
>                 printf("%s speed is %d\n", ttyname(0), cnspeed(0, -1));
>                 return 0;
>
> Maybe a better way ?
>
>
return 0 in the function if we are in EFI mode, of course

Index: ./stand/boot/cmd.c
===================================================================
RCS file: /cvs/src/sys/stand/boot/cmd.c,v
retrieving revision 1.63
diff -u -p -r1.63 cmd.c
--- ./stand/boot/cmd.c  20 Jul 2014 19:33:54 -0000      1.63
+++ ./stand/boot/cmd.c  1 Mar 2017 22:39:23 -0000
@@ -375,6 +375,11 @@ Xstty(void)
        char *cp;
        dev_t dev;

+#ifdef EFIBOOT
+       printf("no com(4) direct access support in EFI");
+       return 0;
+#endif
+
        if (cmd.argc == 1) {
                printf("%s speed is %d\n", ttyname(0), cnspeed(0, -1));
                return 0;

-- 
------------------------------------------------------------
---------------------------------------------------------
() ascii ribbon campaign - against html e-mail
/\

Reply via email to