Linux next-20181204 on a XO-1.75

Lubomir Rintel lkundrak at v3.sk
Tue Dec 4 06:10:46 EST 2018


Hello. Good news:

  [lkundrak at xo ~]$ uname -a
  Linux xo.local 4.20.0-rc5-next-20181204 #4 PREEMPT Tue Dec 4 08:55:53 CET 2018 armv7l armv7l armv7l GNU/Linux

As of next-20181204, linux-next (targetting v4.21 at this point) can
successfully boot on a XO-1.75. That is thanks to the kindness of
Linux maintainers who integrated fixes for booting the MMP2 platform
with DT-based kernels and numerous developers who provided reviews
and feedback

dmesg (somewhat verbose because of CONFIG_DEBUG_DRIVER=y):
https://people.freedesktop.org/~lkundrak/olpc/next-20181204/dmesg.txt

While there are many more fixes currently in review to enable more
hardware, with a good base tree it will be much easier to review the
and try them out.

Here's how (experience with building a kernel assumed):

  $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
  $ cd linux-next
  $ wget -O .config https://people.freedesktop.org/~lkundrak/olpc/next-20181204/defconfig
  $ make ARCH=arm olddefconfig
  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnu-
  $

Now you can copy the zImage to the SD card. In order to boot it some
tweaks to the devicetree are necessary at this point. Copy dt.fth from 
https://people.freedesktop.org/~lkundrak/olpc/next-20181204/ to your
/boot and fload it from the olpc.fth:

  " fload last:\boot\dt.fth" evaluate

If you don't have a olpc.fth, you can grab mine from the same address
along with the other *.fth scripts. They implement a simple boot menu
with a countdown. Please note that I'm new to Forth and my style is
probably somewhat sloppy and not a good example to someone who's also
new to the language.

What works:

* UARTs, SD, USB, Accelerometer, RTC
* GPIO keys: Sense for Audio Jacks and Lid switches
* Screen, via simple-framebuffer

Things that are known not working:

* Keyboard. There's an irqchip patch in review that fixes the interrupt
  delivery to the SP. For now CONFIG_SERIO_OLPC_APSP needs to be
  disabled.
* Camera and Embedded Controller support are not in yet. In review.
* DRM. Work needed. Russel King posted patches that add necessary DT
  bindings to the Armada DRM. They require an encoder, but we don't
  seem to have one. Shall we create a fake one like
  drivers/gpu/drm/imx/parallel-display.c does, or is the HiMax DCON
  considered an encoder? I didn't ask Russell yet -- I'll do once I
  learn enough about DRM not to sound too stupid.
* GPU. I have no idea how is the GPU clock hooked on in MMP2 clock
  tree. I didn't really ask anyone with a datasheet yet. Would Etnaviv
  just work with our GPU? I didn't try.
* The dt.fth is missing support for the above probably gets things
  wrong on few places. It's a work-in-progress hack until OFW gets
  updated.
* I didn't test Sound and Suspend/Resume at all.

Love,
Lubo

- - - - - - - - - - - - - - - - 8< - - - - - - - - - - - - - - - - -

I'm new to the list, so I guess it's appropriate to introduce myself:

I'd eventually like to see a stock and up-to-date Fedora image boot on
an OLPC XO-1.75, and that can't be done without a good mainline Linux
support. This is essentially a hobby project. Despite I'm typically not
considered to be a child anymore the computer is still a learning
accessory for me. Perhaps in a few years my baby girl (two months old
now) will be able to have fun with the laptop.

I'm based in Brno, Czech Republic and work full-time on maintaining
NetworkManager along with a few fellow hackers scattered across Europe.
I waste my time riding bikes and doing drugs.

I'm going to FOSDEM 2019, if anybody would like to meet.

- - - - - - - - - - - - - - - - 8< - - - - - - - - - - - - - - - - -



More information about the Devel mailing list