qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
@ 2015-03-28 16:07 Waldemar Brodkorb
  2015-03-28 17:03 ` Stefan Weil
  0 siblings, 1 reply; 8+ messages in thread
From: Waldemar Brodkorb @ 2015-03-28 16:07 UTC (permalink / raw)
  To: qemu-devel

Fixes following problem, when trying to boot linux:
qemu: hardware error: mcf_intc_write: Bad write offset 28

CPU #0:
D0 = 000000ff   A0 = 402ea5dc   F0 = 0000000000000000 (           0)
D1 = 00000004   A1 = 402ea5e0   F1 = 0000000000000000 (           0)
D2 = 00000040   A2 = 40040752   F2 = 0000000000000000 (           0)
D3 = 00000000   A3 = 40040a98   F3 = 0000000000000000 (           0)
D4 = 00000000   A4 = 400407b4   F4 = 0000000000000000 (           0)
D5 = 00000000   A5 = 00000000   F5 = 0000000000000000 (           0)
D6 = 00000000   A6 = 40195ff8   F6 = 0000000000000000 (           0)
D7 = 00000000   A7 = 40195fd0   F7 = 0000000000000000 (           0)
PC = 401b2058   SR = 2704 --Z-- FPRESULT =            0
Aborted

System started via:
qemu-system-m68k -nographic -nographic -M mcf5208evb -cpu m5208 -kernel kernel

Patch originally posted here:
http://lists.busybox.net/pipermail/buildroot/2012-April/052585.html

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
v1 -> v2:
        - add {} to conform to Qemu Coding Style suggested by Stefan Weil
        - add short comments to case statements with return 0 suggested by Peter Maydell
        - ull as suffix to integer 1 suggested by Peter Maydell does not work for me
	  as I get a kernel panic shortly after boot
---
 hw/m68k/mcf_intc.c |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/hw/m68k/mcf_intc.c b/hw/m68k/mcf_intc.c
index 621423c..dcd14b9 100644
--- a/hw/m68k/mcf_intc.c
+++ b/hw/m68k/mcf_intc.c
@@ -65,6 +65,9 @@ static uint64_t mcf_intc_read(void *opaque, hwaddr addr,
         return (uint32_t)(s->ifr >> 32);
     case 0x14:
         return (uint32_t)s->ifr;
+    case 0x1c: /* SIMR */
+    case 0x1d: /* CIMR */
+	return 0;
     case 0xe0: /* SWIACK.  */
         return s->active_vector;
     case 0xe1: case 0xe2: case 0xe3: case 0xe4:
@@ -102,6 +105,22 @@ static void mcf_intc_write(void *opaque, hwaddr addr,
     case 0x0c:
         s->imr = (s->imr & 0xffffffff00000000ull) | (uint32_t)val;
         break;
+    /* SIMR allows to easily mask interrupts */
+    case 0x1c:
+	if (val & 0x40) {
+		s->imr = ~0ull;
+	} else {
+		s->imr |= (1 << (val & 0x3f));
+	}
+	break;
+    /* CIMR allows to easily unmask interrupts */
+    case 0x1d:
+	if (val & 0x40) {
+		s->imr = 0ull;
+	} else {
+		s->imr &= ~(1 << (val & 0x3f));
+	}
+	break;
     default:
         hw_error("mcf_intc_write: Bad write offset %d\n", offset);
         break;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-03-28 16:07 [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking Waldemar Brodkorb
@ 2015-03-28 17:03 ` Stefan Weil
  2015-03-29 13:47   ` Waldemar Brodkorb
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Weil @ 2015-03-28 17:03 UTC (permalink / raw)
  To: Waldemar Brodkorb; +Cc: Thomas Petazzoni, Peter Maydell, qemu-devel

Am 28.03.2015 um 17:07 schrieb Waldemar Brodkorb:
> Fixes following problem, when trying to boot linux:
> qemu: hardware error: mcf_intc_write: Bad write offset 28
>
> CPU #0:
> D0 = 000000ff   A0 = 402ea5dc   F0 = 0000000000000000 (           0)
> D1 = 00000004   A1 = 402ea5e0   F1 = 0000000000000000 (           0)
> D2 = 00000040   A2 = 40040752   F2 = 0000000000000000 (           0)
> D3 = 00000000   A3 = 40040a98   F3 = 0000000000000000 (           0)
> D4 = 00000000   A4 = 400407b4   F4 = 0000000000000000 (           0)
> D5 = 00000000   A5 = 00000000   F5 = 0000000000000000 (           0)
> D6 = 00000000   A6 = 40195ff8   F6 = 0000000000000000 (           0)
> D7 = 00000000   A7 = 40195fd0   F7 = 0000000000000000 (           0)
> PC = 401b2058   SR = 2704 --Z-- FPRESULT =            0
> Aborted
>
> System started via:
> qemu-system-m68k -nographic -nographic -M mcf5208evb -cpu m5208 -kernel kernel
>
> Patch originally posted here:
> http://lists.busybox.net/pipermail/buildroot/2012-April/052585.html
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Tested-by: Waldemar Brodkorb <wbx@openadk.org>
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
> v1 -> v2:
>          - add {} to conform to Qemu Coding Style suggested by Stefan Weil
>          - add short comments to case statements with return 0 suggested by Peter Maydell
>          - ull as suffix to integer 1 suggested by Peter Maydell does not work for me
> 	  as I get a kernel panic shortly after boot

Maybe that's an indicator that it only works with 1ULL. :-)

Did you add it at both locations (for set and clear of interrupt mask)?

If not: does it work if you fix this?

If yes: does it work if you only use 1ULL for SIMR?

You can debug the kernel panic by attaching a cross debugger to the 
running kernel.
If you have a kernel image with debug symbols, this is very comfortable.

> ---
>   hw/m68k/mcf_intc.c |   19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
>
> diff --git a/hw/m68k/mcf_intc.c b/hw/m68k/mcf_intc.c
> index 621423c..dcd14b9 100644
> --- a/hw/m68k/mcf_intc.c
> +++ b/hw/m68k/mcf_intc.c
> @@ -65,6 +65,9 @@ static uint64_t mcf_intc_read(void *opaque, hwaddr addr,
>           return (uint32_t)(s->ifr >> 32);
>       case 0x14:
>           return (uint32_t)s->ifr;
> +    case 0x1c: /* SIMR */
> +    case 0x1d: /* CIMR */
> +	return 0;
>       case 0xe0: /* SWIACK.  */
>           return s->active_vector;
>       case 0xe1: case 0xe2: case 0xe3: case 0xe4:
> @@ -102,6 +105,22 @@ static void mcf_intc_write(void *opaque, hwaddr addr,
>       case 0x0c:
>           s->imr = (s->imr & 0xffffffff00000000ull) | (uint32_t)val;
>           break;
> +    /* SIMR allows to easily mask interrupts */
> +    case 0x1c:
> +	if (val & 0x40) {
> +		s->imr = ~0ull;

Maybe UINT64_MAX is better than ~0ull.

> +	} else {
> +		s->imr |= (1 << (val & 0x3f));

As Peter already said, 1ULL is needed if you want to allow shifts 
resulting in a 64 bit value.
It's also possible to use a type cast like this: (uint64_t)1.

> +	}
> +	break;
> +    /* CIMR allows to easily unmask interrupts */
> +    case 0x1d:
> +	if (val & 0x40) {
> +		s->imr = 0ull;

Here the ULL is redundant.

> +	} else {
> +		s->imr &= ~(1 << (val & 0x3f));

Here also 1ULL or a type cast is needed.

> +	}
> +	break;
>       default:
>           hw_error("mcf_intc_write: Bad write offset %d\n", offset);
>           break;

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-03-28 17:03 ` Stefan Weil
@ 2015-03-29 13:47   ` Waldemar Brodkorb
  2015-03-29 15:53     ` Stefan Weil
  0 siblings, 1 reply; 8+ messages in thread
From: Waldemar Brodkorb @ 2015-03-29 13:47 UTC (permalink / raw)
  To: Stefan Weil
  Cc: Waldemar Brodkorb, Peter Maydell, Thomas Petazzoni, qemu-devel

Hi Stefan,
Stefan Weil wrote,

> Am 28.03.2015 um 17:07 schrieb Waldemar Brodkorb:
> >Fixes following problem, when trying to boot linux:
> >qemu: hardware error: mcf_intc_write: Bad write offset 28
> >
> >CPU #0:
> >D0 = 000000ff   A0 = 402ea5dc   F0 = 0000000000000000 (           0)
> >D1 = 00000004   A1 = 402ea5e0   F1 = 0000000000000000 (           0)
> >D2 = 00000040   A2 = 40040752   F2 = 0000000000000000 (           0)
> >D3 = 00000000   A3 = 40040a98   F3 = 0000000000000000 (           0)
> >D4 = 00000000   A4 = 400407b4   F4 = 0000000000000000 (           0)
> >D5 = 00000000   A5 = 00000000   F5 = 0000000000000000 (           0)
> >D6 = 00000000   A6 = 40195ff8   F6 = 0000000000000000 (           0)
> >D7 = 00000000   A7 = 40195fd0   F7 = 0000000000000000 (           0)
> >PC = 401b2058   SR = 2704 --Z-- FPRESULT =            0
> >Aborted
> >
> >System started via:
> >qemu-system-m68k -nographic -nographic -M mcf5208evb -cpu m5208 -kernel kernel
> >
> >Patch originally posted here:
> >http://lists.busybox.net/pipermail/buildroot/2012-April/052585.html
> >
> >Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> >Tested-by: Waldemar Brodkorb <wbx@openadk.org>
> >Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> >---
> >v1 -> v2:
> >         - add {} to conform to Qemu Coding Style suggested by Stefan Weil
> >         - add short comments to case statements with return 0 suggested by Peter Maydell
> >         - ull as suffix to integer 1 suggested by Peter Maydell does not work for me
> >	  as I get a kernel panic shortly after boot
> 
> Maybe that's an indicator that it only works with 1ULL. :-)
> 
> Did you add it at both locations (for set and clear of interrupt mask)?

Yes.
 
> If not: does it work if you fix this?
> If yes: does it work if you only use 1ULL for SIMR?

No.
 
> You can debug the kernel panic by attaching a cross debugger to the
> running kernel.
> If you have a kernel image with debug symbols, this is very comfortable.

How would I do this?
Tried to start qemu with -s -S and then attach with my cross-gdb
using the kernel with debug symbols. But gdb does not recognize the
panic:
Command: mdev -s
Command: ifconfig lo 127.0.0.1 up
Execution Finished, Exiting

Sash command shell (version 1.1.1)
/> Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b

---[ end Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b
 
best regards
 Waldemar

Using this:
diff --git a/hw/m68k/mcf_intc.c b/hw/m68k/mcf_intc.c
index 621423c..bcdd7c4 100644
--- a/hw/m68k/mcf_intc.c
+++ b/hw/m68k/mcf_intc.c
@@ -65,6 +65,9 @@ static uint64_t mcf_intc_read(void *opaque, hwaddr
addr,
         return (uint32_t)(s->ifr >> 32);
     case 0x14:
         return (uint32_t)s->ifr;
+    case 0x1c: /* SIMR */
+    case 0x1d: /* CIMR */
+       return 0;
     case 0xe0: /* SWIACK.  */
         return s->active_vector;
     case 0xe1: case 0xe2: case 0xe3: case 0xe4:
@@ -102,6 +105,22 @@ static void mcf_intc_write(void *opaque, hwaddr
addr,
     case 0x0c:
         s->imr = (s->imr & 0xffffffff00000000ull) | (uint32_t)val;
         break;
+    /* SIMR allows to easily mask interrupts */
+    case 0x1c:
+       if (val & 0x40) {
+               s->imr = UINT64_MAX;
+       } else {
+               s->imr |= ((uint64_t)1 << (val & 0x3f));
+       }
+       break;
+    /* CIMR allows to easily unmask interrupts */
+    case 0x1d:
+       if (val & 0x40) {
+               s->imr = 0;
+       } else {
+               s->imr &= ~((uint64_t)1 << (val & 0x3f));
+       }
+       break;
     default:
         hw_error("mcf_intc_write: Bad write offset %d\n", offset);
         break;
-- 

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-03-29 13:47   ` Waldemar Brodkorb
@ 2015-03-29 15:53     ` Stefan Weil
  2015-03-29 17:01       ` Stefan Weil
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Weil @ 2015-03-29 15:53 UTC (permalink / raw)
  To: Waldemar Brodkorb; +Cc: Thomas Petazzoni, Peter Maydell, qemu-devel

Am 29.03.2015 um 15:47 schrieb Waldemar Brodkorb:
> Hi Stefan,
> Stefan Weil wrote,
>
>> You can debug the kernel panic by attaching a cross debugger to the
>> running kernel.
>> If you have a kernel image with debug symbols, this is very comfortable.
> How would I do this?
> Tried to start qemu with -s -S and then attach with my cross-gdb
> using the kernel with debug symbols. But gdb does not recognize the
> panic:
> Command: mdev -s
> Command: ifconfig lo 127.0.0.1 up
> Execution Finished, Exiting
>
> Sash command shell (version 1.1.1)
> /> Kernel panic - not syncing: Attempted to kill init!
> exitcode=0x0000000b
>
> ---[ end Kernel panic - not syncing: Attempted to kill init!
> exitcode=0x0000000b
>

Yes, the cross gdb won't recognize a kernel panic.

But you can set a breakpoint on the kernel code
which handles such panics, on one of the functions
shown in the kernel panic backtrace, or on printk.

Regards
Stefan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-03-29 15:53     ` Stefan Weil
@ 2015-03-29 17:01       ` Stefan Weil
  2015-04-03  8:04         ` Waldemar Brodkorb
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Weil @ 2015-03-29 17:01 UTC (permalink / raw)
  To: Waldemar Brodkorb; +Cc: Thomas Petazzoni, Peter Maydell, qemu-devel

Am 29.03.2015 um 17:53 schrieb Stefan Weil:
> Am 29.03.2015 um 15:47 schrieb Waldemar Brodkorb:
>> Hi Stefan,
>> Stefan Weil wrote,
>>
>>> You can debug the kernel panic by attaching a cross debugger to the
>>> running kernel.
>>> If you have a kernel image with debug symbols, this is very 
>>> comfortable.
>> How would I do this?
>> Tried to start qemu with -s -S and then attach with my cross-gdb
>> using the kernel with debug symbols. But gdb does not recognize the
>> panic:
>> Command: mdev -s
>> Command: ifconfig lo 127.0.0.1 up
>> Execution Finished, Exiting
>>
>> Sash command shell (version 1.1.1)
>> /> Kernel panic - not syncing: Attempted to kill init!
>> exitcode=0x0000000b
>>
>> ---[ end Kernel panic - not syncing: Attempted to kill init!
>> exitcode=0x0000000b

Is this the kernel panic which you get? I did not have a closer look
on it before, but now I see that it is something quite common:

Your kernel runs an init script (or binary) which terminates
(obviously normally). Then the kernel does not know what to
do, so it throws a kernel panic "Attempted to kill init".

Usually the init process should only terminate at a system shutdown.

Stefan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-03-29 17:01       ` Stefan Weil
@ 2015-04-03  8:04         ` Waldemar Brodkorb
  2015-04-03  8:27           ` Stefan Weil
  0 siblings, 1 reply; 8+ messages in thread
From: Waldemar Brodkorb @ 2015-04-03  8:04 UTC (permalink / raw)
  To: Stefan Weil
  Cc: Waldemar Brodkorb, Thomas Petazzoni, qemu-devel, Peter Maydell

Hi Stefan,
Stefan Weil wrote,

> Am 29.03.2015 um 17:53 schrieb Stefan Weil:
> >Am 29.03.2015 um 15:47 schrieb Waldemar Brodkorb:
> >>Hi Stefan,
> >>Stefan Weil wrote,
> >>
> >>>You can debug the kernel panic by attaching a cross debugger to the
> >>>running kernel.
> >>>If you have a kernel image with debug symbols, this is very
> >>>comfortable.
> >>How would I do this?
> >>Tried to start qemu with -s -S and then attach with my cross-gdb
> >>using the kernel with debug symbols. But gdb does not recognize the
> >>panic:
> >>Command: mdev -s
> >>Command: ifconfig lo 127.0.0.1 up
> >>Execution Finished, Exiting
> >>
> >>Sash command shell (version 1.1.1)
> >>/> Kernel panic - not syncing: Attempted to kill init!
> >>exitcode=0x0000000b
> >>
> >>---[ end Kernel panic - not syncing: Attempted to kill init!
> >>exitcode=0x0000000b
> 
> Is this the kernel panic which you get? I did not have a closer look
> on it before, but now I see that it is something quite common:
> 
> Your kernel runs an init script (or binary) which terminates
> (obviously normally). Then the kernel does not know what to
> do, so it throws a kernel panic "Attempted to kill init".
> 
> Usually the init process should only terminate at a system shutdown.

The init is a simple C programm called simpleinit.
The strange thing is, why it only happens with the ull version
of qemu and not with the other one?
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=package/simpleinit/src/simpleinit.c;h=291f88f479cf9ad4e24d727bc09120d0e6739ac3;hb=HEAD

best regards
        Waldemar

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-04-03  8:04         ` Waldemar Brodkorb
@ 2015-04-03  8:27           ` Stefan Weil
  2015-04-03 10:04             ` Waldemar Brodkorb
  0 siblings, 1 reply; 8+ messages in thread
From: Stefan Weil @ 2015-04-03  8:27 UTC (permalink / raw)
  To: Waldemar Brodkorb; +Cc: qemu-devel

Am 03.04.2015 um 10:04 schrieb Waldemar Brodkorb:
> Hi Stefan,
> Stefan Weil wrote,
>
>> Am 29.03.2015 um 17:53 schrieb Stefan Weil:
>>> Am 29.03.2015 um 15:47 schrieb Waldemar Brodkorb:
>>>> Hi Stefan,
>>>> Stefan Weil wrote,
>>>>
>>>>> You can debug the kernel panic by attaching a cross debugger to the
>>>>> running kernel.
>>>>> If you have a kernel image with debug symbols, this is very
>>>>> comfortable.
>>>> How would I do this?
>>>> Tried to start qemu with -s -S and then attach with my cross-gdb
>>>> using the kernel with debug symbols. But gdb does not recognize the
>>>> panic:
>>>> Command: mdev -s
>>>> Command: ifconfig lo 127.0.0.1 up
>>>> Execution Finished, Exiting
>>>>
>>>> Sash command shell (version 1.1.1)
>>>> /> Kernel panic - not syncing: Attempted to kill init!
>>>> exitcode=0x0000000b
>>>>
>>>> ---[ end Kernel panic - not syncing: Attempted to kill init!
>>>> exitcode=0x0000000b
>> Is this the kernel panic which you get? I did not have a closer look
>> on it before, but now I see that it is something quite common:
>>
>> Your kernel runs an init script (or binary) which terminates
>> (obviously normally). Then the kernel does not know what to
>> do, so it throws a kernel panic "Attempted to kill init".
>>
>> Usually the init process should only terminate at a system shutdown.
> The init is a simple C programm called simpleinit.
> The strange thing is, why it only happens with the ull version
> of qemu and not with the other one?
> http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=package/simpleinit/src/simpleinit.c;h=291f88f479cf9ad4e24d727bc09120d0e6739ac3;hb=HEAD
>
> best regards
>          Waldemar

Do you see any console output from that init process?
Can you build it with the DEBUGGING macro included?

There is one program exit without a log message in
function read_inittab:

         if (numcmd == 0)
                  _exit(1);

Add a printf or an err call there, too. Add also some log
messages in main. main includes an endless for loop,
so that init program is supposed to run without
termination. By additional log messages, it should
be possible to see why it terminates nevertheless.

As soon as the point of termination is known, we can
think of the relation to the ULL postfix.

Regards
Stefan

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking
  2015-04-03  8:27           ` Stefan Weil
@ 2015-04-03 10:04             ` Waldemar Brodkorb
  0 siblings, 0 replies; 8+ messages in thread
From: Waldemar Brodkorb @ 2015-04-03 10:04 UTC (permalink / raw)
  To: Stefan Weil; +Cc: qemu-devel

Hi Stefan,
Stefan Weil wrote,

> Am 03.04.2015 um 10:04 schrieb Waldemar Brodkorb:
> >Hi Stefan,
> >Stefan Weil wrote,
> >
> >>Am 29.03.2015 um 17:53 schrieb Stefan Weil:
> >>>Am 29.03.2015 um 15:47 schrieb Waldemar Brodkorb:
> >>>>Hi Stefan,
> >>>>Stefan Weil wrote,
> >>>>
> >>>>>You can debug the kernel panic by attaching a cross debugger to the
> >>>>>running kernel.
> >>>>>If you have a kernel image with debug symbols, this is very
> >>>>>comfortable.
> >>>>How would I do this?
> >>>>Tried to start qemu with -s -S and then attach with my cross-gdb
> >>>>using the kernel with debug symbols. But gdb does not recognize the
> >>>>panic:
> >>>>Command: mdev -s
> >>>>Command: ifconfig lo 127.0.0.1 up
> >>>>Execution Finished, Exiting
> >>>>
> >>>>Sash command shell (version 1.1.1)
> >>>>/> Kernel panic - not syncing: Attempted to kill init!
> >>>>exitcode=0x0000000b
> >>>>
> >>>>---[ end Kernel panic - not syncing: Attempted to kill init!
> >>>>exitcode=0x0000000b
> >>Is this the kernel panic which you get? I did not have a closer look
> >>on it before, but now I see that it is something quite common:
> >>
> >>Your kernel runs an init script (or binary) which terminates
> >>(obviously normally). Then the kernel does not know what to
> >>do, so it throws a kernel panic "Attempted to kill init".
> >>
> >>Usually the init process should only terminate at a system shutdown.
> >The init is a simple C programm called simpleinit.
> >The strange thing is, why it only happens with the ull version
> >of qemu and not with the other one?
> >http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=blob;f=package/simpleinit/src/simpleinit.c;h=291f88f479cf9ad4e24d727bc09120d0e6739ac3;hb=HEAD
> >
> >best regards
> >         Waldemar
> 
> Do you see any console output from that init process?
> Can you build it with the DEBUGGING macro included?
> 
> There is one program exit without a log message in
> function read_inittab:
> 
>         if (numcmd == 0)
>                  _exit(1);
> 
> Add a printf or an err call there, too. Add also some log
> messages in main. main includes an endless for loop,
> so that init program is supposed to run without
> termination. By additional log messages, it should
> be possible to see why it terminates nevertheless.
> 
> As soon as the point of termination is known, we can
> think of the relation to the ULL postfix.

Shell invoked to run file: /etc/rc

Sash command shell signal handler
Command: echo Starting OpenADK
Starting OpenADK
Command: hostname openadk
Command: mount -t proc proc /proc
Command: mount -t sysfs sys /sys
Command: mkdir -m 755 /dev/pts
Command: mount -t devpts devpts /dev/pts
Command: mount -t tmpfs -o size=8M tmpfs /tmp
Command: chmod 1777 /tmp
Command: mkdir -p /var/log
Command: mkdir -p /var/run
Command: mkdir -p /var/tmp
Command: mdev -s
Command: ifconfig lo 127.0.0.1 up
Execution Finished, Exiting

Sash command shell exit with 0
toks= -/bin/sh (null)  
tty= console
termcap= linux
init: main loop
Sash command shell (version 1.1.1)

Sash command shell signal handler
/> Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b

---[ end Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b

The code execution path is, kernel exec simpleinit and simpleinit
exec sash. After the second call to sash, when /etc/rc is finished,
2-3 seconds later the kernel panic's.

I had a similar issue once I have used busybox hush instead of sash.
The switching to sash fixed the issue for me and now when adding ull
it happens again.

Sash code ( i added some printf locally )
http://www.openadk.org/cgi-bin/gitweb.cgi?p=openadk.git;a=tree;f=package/sash/src;h=476c254af2fb4c211d32d9418807736970fbb536;hb=HEAD

Discussion about the issue with hush:
http://lists.busybox.net/pipermail/busybox/2014-September/081634.html

best regards
 Waldemar

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2015-04-03 10:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-28 16:07 [Qemu-devel] [PATCH v2] qemu-m68k: add support for interrupt masking/unmasking Waldemar Brodkorb
2015-03-28 17:03 ` Stefan Weil
2015-03-29 13:47   ` Waldemar Brodkorb
2015-03-29 15:53     ` Stefan Weil
2015-03-29 17:01       ` Stefan Weil
2015-04-03  8:04         ` Waldemar Brodkorb
2015-04-03  8:27           ` Stefan Weil
2015-04-03 10:04             ` Waldemar Brodkorb

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).