Picon

broken bootstrap, roottask and l4linux with different tools

hi all,

I'm now trying to compile l4env and L4Linux under older Linux distribution (I moved to virtual machine --
VIrtual PC with RedHat 9.0 
installed in it). The tools are updated -- I checked that versions of all tools are not lower than those
mentioned in dev-overview.txt file. 
Only gcc is version 3.4.6 (on previous machine I have gcc 4.2.2), but I read it is OK. 

The problem is that bootstrap, roottask and l4linux kernel are not working. Bootstrap file is about 3 Mb
long and is not starting
by GRUB, it says "Invalid or unsupported executable format". I opened it under hex editor and it has ELF
signature and some data 
at the beginning (probably, ELF header etc). Then goes a long run of zeroes and code is at the end. I peeked
into linker script
and saw that bootstrap is linked at addess 0x2d0000, which is also about 3 Mb. Maybe someone already
encountered this problem?
How to avoid extra zeroes? As I understand it depends on linker script, but why with different tools all is
OK? (I have binutils version
2.13 and gcc 3.4.6, with 4.2.2 all is OK).

And also roottask is sem-working. The simpliest configuration with pingpong test is working but when I
start configuration with dm_phys,
for example, DOpE with Nitpicker test:

ROOT: task 7.00 at 01505f7a is trying to get page 00000000 which is reserved
r
    --double page fault--------------------------------------IP: 0012804b
[root.pager] (4.00) jdb:

-- the task 7 is dm_phys. The problem is with roottask, not dm_phys because when I repalce roottassk with
(Continue reading)

Adam Lackorzynski | 2 Nov 15:49
Picon
Favicon

Re: Problems with l4linux


On Wed Oct 29, 2008 at 16:25:49 +1300, Valery V. Sedletski wrote:
> On Tue, 28 Oct 2008 17:48:44 +0100, Adam Lackorzynski wrote:
> 
> >> >Rather not. Can you tell me at which position the f.2 is in user-land?
> >> >That would be interesting.
> >> > 
> >> 
> >> This is the result of executing "tf.2" in kernel debugger:
> >> 
> >> thread:   f.02 <001e0801>               prio: a0  mcp: ff  mode: Con
> >> state: 001 ready    %dl
> >> 001e0804     into
> >> wait for:           polling:            rcv descr:
> >> lcked by: ---.--                        timeout  :
> >> cpu time:   2.000 ms                    timeslice: 4000/10000 µs
> >> pager   :   f.00        cap: ---.--     utcb: ffe34200
> >> preemptr:   0.00        not monitored   ready lnk:  ???.??   5.00
> >>                                         prsnt lnk:   f.04   f.00
> >> EAX=00000000  ESI=001e0801  DS=0023
> >> EBX=a0051454  EDI=00000000  ES=0023     iret
> >> ECX=0000000d  EBP=afeffe40  GS=0043     lea    0x0(%esi),%esi
> >> EDX=afeffe58  ESP=c03c17ec  SS=0010
> >> trap 13 (General Protection), error 00000070, from kernel mode
> >> CS=0008  EIP=f003622b  EFlags=00203246
> >> 001e0815     cli
> >> c03c17ec f003622b 00000008 00203246 [eacff102] 00000073 00203296 afeffe00 0000007b
> >> 001e0818     into
> >> 
> >> the [eacff102] dword was highlighted in backtrace. So, as I understood
(Continue reading)

valerius | 2 Nov 19:48
Picon

Re: Problems with l4linux

> >
> > bi addr=4054ec
> > b+ bpn=1
> > br bpn=1 task=f
> >
> > But after I said "g" in the debugger it didn't stopped at the breakpoint,
> > only broke in TRAP d. What I do incorrectly? Maybe,  bi addr=4054ec sets
> > the breakpoint at phys address, not to linear of task f? How then I can
> > set to linear (or convert linear to physical?).
>
> Breakpoint addresses are virtual.
>
> Anyway, I found the reason. L4Linux had so much privileges that it was
> able able to write MSRs which allowed it to setup the Sysenter-MSRs.
> Normally this is trapped and handled. The kernel allows writing MSRs for
> special purpose stuff, this was triggered here. The wrmsr's are in
> enable_sep_cpu in arch/x86/vdso/vdso32-setup.c, if you comment them out
> it should work.
>

Good. Thank you very much, I am very glad to see it now works ;) I commented 
out that fragment and recompiled. Now Linux starts without problems. But 
another problem appeared: when I start X, the following message appears in 
log:

l4lx    | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
l4lx    |  Error: L4semaphore: ignored request from other task (1B.00, I'm 
F.01
l4lx    : )!

(Continue reading)

Adam Lackorzynski | 3 Nov 22:44
Picon
Favicon

Re: Problems with l4linux


On Mon Nov 03, 2008 at 06:48:45 +1200, valerius wrote:
> > >
> > > bi addr=4054ec
> > > b+ bpn=1
> > > br bpn=1 task=f
> > >
> > > But after I said "g" in the debugger it didn't stopped at the breakpoint,
> > > only broke in TRAP d. What I do incorrectly? Maybe,  bi addr=4054ec sets
> > > the breakpoint at phys address, not to linear of task f? How then I can
> > > set to linear (or convert linear to physical?).
> >
> > Breakpoint addresses are virtual.
> >
> > Anyway, I found the reason. L4Linux had so much privileges that it was
> > able able to write MSRs which allowed it to setup the Sysenter-MSRs.
> > Normally this is trapped and handled. The kernel allows writing MSRs for
> > special purpose stuff, this was triggered here. The wrmsr's are in
> > enable_sep_cpu in arch/x86/vdso/vdso32-setup.c, if you comment them out
> > it should work.
> >
> 
> Good. Thank you very much, I am very glad to see it now works ;) I commented 
> out that fragment and recompiled. Now Linux starts without problems. But 
> another problem appeared: when I start X, the following message appears in 
> log:
> 
> l4lx    | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
> l4lx    |  Error: L4semaphore: ignored request from other task (1B.00, I'm 
> F.01
(Continue reading)

Adam Lackorzynski | 3 Nov 23:01
Picon
Favicon

Re: broken bootstrap, roottask and l4linux with different tools


On Sun Nov 02, 2008 at 16:42:57 +1200, Valery V. Sedletski wrote:
> hi all,
> 
> I'm now trying to compile l4env and L4Linux under older Linux distribution (I moved to virtual machine --
VIrtual PC with RedHat 9.0 
> installed in it). The tools are updated -- I checked that versions of all tools are not lower than those
mentioned in dev-overview.txt file. 
> Only gcc is version 3.4.6 (on previous machine I have gcc 4.2.2), but I read it is OK. 
> 
> The problem is that bootstrap, roottask and l4linux kernel are not working. Bootstrap file is about 3 Mb
long and is not starting
> by GRUB, it says "Invalid or unsupported executable format". I opened it under hex editor and it has ELF
signature and some data 
> at the beginning (probably, ELF header etc). Then goes a long run of zeroes and code is at the end. I peeked
into linker script
> and saw that bootstrap is linked at addess 0x2d0000, which is also about 3 Mb. Maybe someone already
encountered this problem?
> How to avoid extra zeroes? As I understand it depends on linker script, but why with different tools all is
OK? (I have binutils version
> 2.13 and gcc 3.4.6, with 4.2.2 all is OK).
> 
> And also roottask is sem-working. The simpliest configuration with pingpong test is working but when I
start configuration with dm_phys,
> for example, DOpE with Nitpicker test:
> 
> ROOT: task 7.00 at 01505f7a is trying to get page 00000000 which is reserved
> r
>     --double page fault--------------------------------------IP: 0012804b
> [root.pager] (4.00) jdb:
(Continue reading)

valerius | 4 Nov 03:29
Picon

Re: Problems with l4linux

В сообщении от Tuesday 04 November 2008 09:44:43 Adam Lackorzynski написал(а):
> >
> > l4lx    | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
> > l4lx    |  Error: L4semaphore: ignored request from other task (1B.00,
> > I'm F.01
> > l4lx    : )!
> >
> > Linux stops with black screen. :( The run program shows that application
> > with task Id = 0x1b is Linux application (it says, "owner: f.4"). It
> > seems it is X server. I start X server from a drops-fp.rd ramdisk image
> > from TUD site. The problem seems to be that X server runs as another task
> > and Linux accepts only requests from its threads.
>
> Do you mean drops-rd.rd? There's no X server in there. What did you use?

as I checked this, it's the same as drops-x.rd (comparing two files with cmp 
gives no difference) from DROPS/TUD:OS demo CD (I downloaded it about 1
year ago). 

> The above message would mean that the X server is talking to the
> L4Linux-server which is a no-go except the special X driver is used.
>

I enabled X server stub in L4Linux configuration (a checkbox "Support for X 
Window System driver" is enabled). And nitovlwm server is started. What could
I miss then?

WBR,
valery

(Continue reading)

valerius | 4 Nov 03:32
Picon

Re: Problems with l4linux

В сообщении от Tuesday 04 November 2008 09:44:43 Adam Lackorzynski написал(а):
> >
> > l4lx    | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
> > l4lx    |  Error: L4semaphore: ignored request from other task (1B.00,
> > I'm F.01
> > l4lx    : )!
> >
> > Linux stops with black screen. :( The run program shows that application
> > with task Id = 0x1b is Linux application (it says, "owner: f.4"). It
> > seems it is X server. I start X server from a drops-fp.rd ramdisk image
> > from TUD site. The problem seems to be that X server runs as another task
> > and Linux accepts only requests from its threads.
>
> Do you mean drops-rd.rd? There's no X server in there. What did you use?

as I checked this, it's the same as drops-x.rd (comparing two files with cmp 
gives no difference) from DROPS/TUD:OS demo CD (I downloaded it about 1
year ago). 

> The above message would mean that the X server is talking to the
> L4Linux-server which is a no-go except the special X driver is used.
>

I enabled X server stub in L4Linux configuration (a checkbox "Support for X 
Window System driver" is enabled). And nitovlwm server is started. What could
I miss then?

WBR,
valery

(Continue reading)

Adam Lackorzynski | 5 Nov 22:25
Picon
Favicon

Re: Problems with l4linux


On Tue Nov 04, 2008 at 14:32:50 +1200, valerius wrote:
> ÷ ÓÏÏÂÝÅÎÉÉ ÏÔ Tuesday 04 November 2008 09:44:43 Adam Lackorzynski ÎÁÐÉÓÁÌ(Á):
> > >
> > > l4lx    | [F.1] semaphore/lib/src/semaphore.c:339:l4semaphore_thread():
> > > l4lx    |  Error: L4semaphore: ignored request from other task (1B.00,
> > > I'm F.01
> > > l4lx    : )!
> > >
> > > Linux stops with black screen. :( The run program shows that application
> > > with task Id = 0x1b is Linux application (it says, "owner: f.4"). It
> > > seems it is X server. I start X server from a drops-fp.rd ramdisk image
> > > from TUD site. The problem seems to be that X server runs as another task
> > > and Linux accepts only requests from its threads.
> >
> > Do you mean drops-rd.rd? There's no X server in there. What did you use?
> 
> as I checked this, it's the same as drops-x.rd (comparing two files with cmp 
> gives no difference) from DROPS/TUD:OS demo CD (I downloaded it about 1
> year ago). 

Ok.

> > The above message would mean that the X server is talking to the
> > L4Linux-server which is a no-go except the special X driver is used.
> >
> 
> I enabled X server stub in L4Linux configuration (a checkbox "Support for X 
> Window System driver" is enabled). And nitovlwm server is started. What could
> I miss then?
(Continue reading)

Shakthi Kannan | 8 Nov 17:45
Picon

L4 for Openmoko FreeRunner

Hi,

Where can I find documentation on using L4 with the Openmoko FreeRunner?

I've seen this post for the Neo1973:
http://lists.okl4.org/pipermail/developer/2007-December/000504.html

Appreciate any pointers in this regard,

Thanks!

SK

--

-- 
Shakthi Kannan
http://www.shakthimaan.com
zhhwu | 9 Nov 11:52
Picon

question: is there any implementation of fiasco on s2410(samsung arm920tdmi)?

hi all:

i want to migrate a implementation of fiasco to s2410, is there any
already existed?

i find that there are implementations on SA1110 and PXA. 

And i find that the ARM project of Pistachio has status: discontinued.
(why ?)

best regards!

zhhwu 

Gmane