Booting error in L4android for Exynos 5250.

Adam Lackorzynski adam at os.inf.tu-dresden.de
Wed May 27 00:30:34 CEST 2015


On Thu May 21, 2015 at 03:30:30 +0800, Youren Shen wrote:
> >
> > > > I'm trying to booting L4Android in Exynos 5250 platform. I got some
> > > > questions. If anyone can give me any direction or document, It will be
> > > very
> > > > helpful.
> > > >
> > > > 1, How to edit this vbus and devs file to match my platform?
> > > > For example, if I want replace the MOUSE in vbus with TOUCHSCREEN, what
> > > > should I write to determine the driver of the touchscreen, and the
> > > register
> > > > address of the driver?
> > > > It seems the .hid can assign the driver? And the MMio can remap the
> > > address
> > > > of the IO for driver?
> > >
> > > A vbus defines the resources (IRQs and MMIO) for a whole client, i.e.
> > > it's not per driver but per client (e.g. L4Linux). For the touchscreen
> > > you need to give the MMIO regions and IRQs that the touchscreen driver
> > > is using.
> > >
> > > > 2, As for GUI driver, what the mag and fb-drv do ? Should I write one
> > >
> > > The fb-drv is the framebuffer driver, i.e. the driver that maps some
> > > memory in such a way to the framebuffer hardware that something appears
> > > on the screen. mag is a small window manager that makes multiple
> > > windows, that you can drag around, out of the single hardware
> > > framebuffer.
> > >
> > > > driver in L4RE or I can reuse the driver in Linux?
> > >
> > > Reusing the driver from L4Linux is possible but typically framebuffer
> > > drivers are reasonable small to be implemented standalone.
> > >
> 
> For the driver reuse:
> 
> I read the User Guide of rearview platform, it seems that the MMIO should
> set as the register Address in memory map. And the IRQs should be the
> interrupt number + 32.

Yes, sounds familiar.
 
> I know how to write LCD driver and framebuffer in native Linux System. But
> for L4Linux, I still have some question. I am not sure how to reuse the
> driver of Linux or rewrite the fb-drv.
> 
> Here is the situation:
> 
> The folder in arch/arm/mach-exynos has plenty code to initial the platform,
> so I added config L4_PLATFORM_EXYNOS in arch/l4/Kconfig and
> PLATFORMNAME-$(CONFIG_L4_PLATFORM_EXYNOS)  = exynos in arch/l4/Makefile.
> However, when build the kernel, there is some error. It seems like the
> L4Linux startup invoke some variables defined in Realview or Generic
> platform like
> 
> NR_IRQS_HW. Is this rectifiable?

IRQs are always handled by the L4 side in L4Linux so this must be
defined from the L4Linux side. Of course, the sole number must be big
enough to cover the required interrupt that shall be used.

> I found that there is l4fb.c as driver in driver/video, what's different
> with the module in l4/pkg?

The l4fb driver in L4Linux is a Linux framebuffer driver that docks
to L4Re's framebuffer interface as a client so that L4Linux can output
its framebuffer somewhere. l4/pkg/fb-drv provides a (one) framebuffer
where a client can connect to, for example, L4Linux, or mag, which then
multiplexes this single framebuffer to provide multiple client a
separate (virtual) framebuffer. I.e. l4/pkg/fb-drv provides a
framebuffer whereas l4fb.c uses a framebuffer.

> And last question, how to run the driver I want to use?

Basically, after providing all the requirements for the driver, you need
to ensure the Linux core system actually calls into the driver. There
are several ways but in the end you could always use an appropriate
initcall yourself.



Adam
-- 
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/



More information about the l4-hackers mailing list