Genode + ARM + OpenOCD

Hinnerk van Bruinehsen hvbruinehsen at stackptr.de
Mon May 14 11:04:39 CEST 2018


Hello Stefan,

thank you for your answer!
On Mon, May 14, 2018 at 10:21:07AM +0200, Stefan Kalkowski wrote:
> Hello Hinnerk,
> 
> On Thu, May 10, 2018 at 11:55:56PM +0200, Hinnerk van Bruinehsen wrote:
> > Hello again,
> > 
> > I've got kind of a followup question. I've got some things working (I
> > can hold the board, read and write to memory and resume operations),
> > what's still missing is real debug capability, which most likely comes
> > from me not knowing which file gdb should load. I assumed it would be
> > the image.elf, but that is stripped and therefore seems not to include
> > any debug info.
> 
> all unstripped user-land components can be found under "debug/" in your
> build directory. The kernel/core and bootstrap component however are
> located under "var/run/<run-script-name>.core" and
> "var/run/<run-script-name>.bootstrap". The latter is the unstripped
> version of our first stage kernel still running with MMU off. Whereby,
> core is starting with MMU enabled and is linked correspondingly to
> 0x80000000 and above.

That is definitely nice to know. Am I correct in assuming that the part
about the .bootstrap file are only for base-hw and don't apply to my
use-case, as I'm using seL4 (and haven't ported the board/CPU to
base-hw)?
> > 
> > Another somewhat related question is, if I can make sure that writes via
> > "write<registername>(0x1234)" really happen. If my OCD works, the value
> > doesn't seem to change (or the driver fails before that even gets
> > executed. Is there a way to sensibly use debug-printf like statements
> > (does "Genode::warning()" work inside a device driver?
> 
> Of course, Genode::warning() is working in a device driver. However,
> if you need a light-weight print solution, you can use Genode::raw()
> instead. In contrast to the other print methods, it uses a kernel call
> implicitly and does not use the "LOG" service. Moreover, it works
> unsynchronized and is therefore not thread-safe. It is part of the
> development version of Genode to ease debugging of time-sensitive
> components, like device drivers.
That's also good to know. I'll try my luck and check back if I have got
any new questions.
Thank you again!

Regards
Hinnerk

> 
> Regards
> Stefan
> 
> > 
> > Thank you and kind regards,
> > Hinnerk
> > 
> > On Wed, May 09, 2018 at 10:32:46PM +0200, Hinnerk van Bruinehsen wrote:
> > > Hello,
> > > 
> > > I'm writing/porting a bunch of device drivers for an ARM board (am335x
> > > based) for Genode/seL4.
> > > I have an on chip debugger (flyswatter2) and can halt or resume the
> > > board's operation via the OCD (so generally it seems to work).
> > > Since you have successfully ported/written drivers for other boards
> > > (imx6 for example), I've asked myself if you have some hints, that may
> > > help me to get gdbi (ideally with OpenOCD) working.
> > > Right now my problem is that I don't know what binary file I should open
> > > gdb with, since using the resulting uimage file doesn't work for me.
> > > 
> > > If someone has some hints for me it would be greatly appreciated!
> > > 
> > > Have a nice holiday and presumably long weekend!
> > > 
> > > WKR
> > > Hinnerk
> > > 
> > > 
> > > _______________________________________________
> > > Genode users mailing list
> > > users at lists.genode.org
> > > https://lists.genode.org/listinfo/users
> > 
> > _______________________________________________
> > Genode users mailing list
> > users at lists.genode.org
> > https://lists.genode.org/listinfo/users
> 
> -- 
> Stefan Kalkowski
> Genode labs
> 
> https://github.com.skalk | https://genode.org
> 



More information about the users mailing list