Proposal for reorg of kernel directory

Becky Bruce becky.bruce at freescale.com
Wed Jun 22 05:02:11 EST 2005


All,

First off, apologies for a lengthy email....

We've recently begun work on a port of the 64-bit kernel to a
Freescale part, and noticed that all the platform-specific code is
currently in the kernel directory.  With new 64-bit parts in the
works, we expect the number of supported platforms to increase
significantly and to include more embedded systems.

To prevent bloating the kernel directory, I'd like to propose a
reorganization of the ppc64 tree to look more like the ppc tree.
This includes the creation of  "platforms" and "syslib" directories
that would contain platform-specific code and non-platform-specific
system code, respectively.

Using the Kconfigs and Makefiles, I've taken a whack at identifying
files that appear to be  platform-specific, and those that appear to
be generic. Since I'm not an expert on the existing platforms, it's
highly possible that I've gotten some of this wrong.

The proposed directory structure is listed below.

Kernel directory:
--------------------------
align.c
asm-offsets.c
binfmt_elf32.c
bitops.c
cpu_setup_power4.S
cputable.c
dma.c
entry.S
head.S
idle.c
idle_power4.S
init_task.c
ioctl32.c
iomap.c
iommu.c
irq.c
kprobes.c
lmb.c
misc.S
module.c
pacaData.c
pci.c
pci.h
ppc_ksyms.c
process.c
proc_ppc64.c
ptrace32.c
ptrace.c
semaphore.c
setup.c
signal32.c
signal.c
smp.c
smp-tbsync.c
syscalls.c
sysfs.c
sys_ppc32.c
time.c
traps.c
vecemu.c
vector.S
vmlinux.lds.S

Should these be in kernel or syslib or somewhere else altogether?
--------------------------------------------------------------------
lparcfg.c
pci_iommu.c
pci_direct_iommu.c
pci_dn.c


This next section lists out the files that appear to be specific
to a particular platform.  I've separated them by platform for the
sake of ease of parsing this list, but I would imagine that these
would all end up in the high level "platforms" directory:

iSeries:
----------------------
HvCall.c
hvCall.S
HvLpConfig.c
HvLpEvent.c
iSeries_htab.c
iSeries_iommu.c
iSeries_irq.c
iSeries_pci.c
iSeries_pci_reset.c
iSeries_proc.c
iSeries_setup.c
iSeries_setup.h
iSeries_smp.c
iSeries_VpdInfo.c
ItLpQueue.c
LparData.c
mf.c
XmPciLpEvent.c

pSeries:
---------------------
eeh.c
hvconsole.c
hvcserver.c
pSeries_hvCall.S
pSeries_iommu.c
pSeries_lpar.c
pSeries_nvram.c
pSeries_pci.c
pSeries_setup.c
pSeries_smp.c
ras.c
rtas.c
rtasd.c
rtas_flash.c
rtas-proc.c
scanlog.c
xics.c

pmac:
------------------
pmac_feature.c
pmac.h
pmac_low_i2c.c
pmac_nvram.c
pmac_pci.c
pmac_setup.c
pmac_smp.c
pmac_time.c

maple:
--------------------
maple_pci.c
maple_setup.c
maple_time.c


And the files that I believe should go into syslib:

syslib/
-----------
btext.c
i8259.c
i8259.h
mpic.c
mpic.h
nvram.c
of_device.c
prom.c
prom_init.c
rtc.c
u3_iommu.c
udbg.c
vio.c
viopath.c (? - not clear on this one)	

Thoughts?
-Becky

--
Becky Bruce
PowerPC Software Developer
Freescale Semiconductor, Austin, TX




More information about the Linuxppc64-dev mailing list