On Thu, Mar 28, 2013 at 7:20 PM, Mark Cave-Ayland
<mark.cave-ayl...@ilande.co.uk> wrote:
> On 22/03/13 05:19, Rob Landley wrote:
>
>> If I do this:
>>
>> qemu-system-sparc -nographic -no-reboot -kernel image -hda hda.sqf
>> -append 'root=/dev/sda rw init=/sbin/init.sh panic=1
>> PATH=/usr/distcc:/bin:/sbin console=ttyS0 HOST=sparc CPUS=1
>> DISTCC_HOSTS=10.0.2.2:31322/1 FTP_SERVER=10.0.2.2 FTP_PORT=31307
>> NATIVE_BUILD=lfs-bootstrap ' -hdb hdb.img -hdc lfs-bootstrap.hdc -m 256
>>
>> qemu goes:
>>
>> ^[[H^[[JConfiguration device id QEMU version 1 machine id 32
>> CPUs: 1 x FMI,MB86904
>> Unhandled Exception 0x00000007
>> PC = 0xffd07d28 NPC = 0xffd07d2c
>> Stopping execution
>>
>> And then hangs. I've never figured out why it clears the screen first
>> (none of the other targets do), but I _have_ figured out that the
>> unhandled exception is "kernel command line too long". Because 197 bytes
>> is just too much data for Sparc to cope with.
>
>
> This is actually a bug in OpenBIOS which declares the command line storage
> like this:
>
> static void
> arch_init( void )
> {
>         static char cmdline[128];
>
>         ....
>
>         kernel_cmdline = (const char *)
> fw_cfg_read_i32(FW_CFG_KERNEL_CMDLINE);
>         if (kernel_cmdline) {
>             size = strlen(kernel_cmdline);
>             memcpy(cmdline, kernel_cmdline, size);
>             obp_arg.argv[1] = cmdline;
>         }
>         cmdline[size] = '\0';
>
>         ....
> }
>
> Would increasing it to 256 bytes be enough? I can't say I've ever come
> across command lines in a normal environment with more than about 80
> characters, but I don't see an issue with increasing it.

Isn't strdup() (or memory allocation subsystem) available at that time?

>
>
> ATB,
>
> Mark.
>
> --
> OpenBIOS                 http://openbios.org/
> Mailinglist:  http://lists.openbios.org/mailman/listinfo
> Free your System - May the Forth be with you

Reply via email to