[RFC PATCH 0/3] m68k goes DT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Short version:
I want to start converting m68k (including nommu) to use DT for booting
so I can add few cool boards I have (e.g. dual 040/060 VME board..).
I need ideas, help etc. Maybe if someone converted an m68k machine they
are using to DT alongside me this would have some hope of actually happening?

All of my WIP in-progress very messy code etc is here:
https://github.com/fifteenhex/m68kjunk

Longer version:

As of today I have:
- Modern (2024.07) u-boot fork that works on 000/030/040 real hardware/QEMU
  that supports booting a Linux ELF image. For nommu a FDT blob address
  is passed via a regiser, for mmu the normal bootinfo is created and
  the FDT is passed via a bootinfo tag. nommu never used bootinfo and doesn't
  need to.

- A Linux branch for nommu that removes most of the current DragonBall
  code, makes it into a devicetree based machine and adds a bunch of
  drivers etc. This works in a fork of QEMU I have and on the real hardware.
  The DragonBall even has a working 1bpp framebuffer. The nommu branch also
  works on 010 and better.

- A Linux branch for mmu that uses the crappy patches in this series and some
  other bits to start moving the MVME147 board over to using DT.

- A buildroot fork that can build a 000 nommu userland etc. A patch to add
  support for building for 030 is already in buildroot, I plan to send one
  for 060 later.

- A bunch of DragonBall machines, an MVME147 030 machine, an Eltec E27 dual
  socket VME board with one 040 at the moment but I have 060s to go in it once
  I work out the need jumper changes, some other 060 VME boards, Amigas...

What I'm thinking:

- We initially add passing of an FDT via bootinfo for mmu
- Add support for a generic machine that can boot almost anything so I can
  bring up my new (to Linux) machines.
- I will migrate MVME147 to device tree.
- Some like minded person migrates a machine they have to device tree. :)
- Maybe embed a FDT for machines that'll never get a bootloader that
  supports this and use the machine type to select the embedded FDT
  and move all of that stuff over without needing to mess with bootloaders.

Issues I have:

- The head.S code is real confusing, I'm not sure how I make this support
  a generic machine right now.
- The head.S code sometimes gets stuck setting up the mmu on my MVME147 when
  the kernel binary layout changes. I thought for a long time my new code was
  wrong but then discovered just making the kernel bigger by adding some printk()s
  also caused it.

Sorry for the wall of text.

Cheers,

Daniel

Daniel Palmer (3):
  m68k: bootinfo: Add tag for FDT address
  m68k: bootinfo: Add generic machine type
  m68k: Add dt support (proof of concept)

 arch/m68k/Kconfig                     |  2 +
 arch/m68k/include/uapi/asm/bootinfo.h |  4 ++
 arch/m68k/kernel/setup_mm.c           | 63 ++++++++++++++++++++++++++-
 3 files changed, 68 insertions(+), 1 deletion(-)

-- 
2.45.2





[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux