linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: eric.y.miao@gmail.com (Eric Miao)
To: linux-arm-kernel@lists.infradead.org
Subject: Heads up: Linus plans to kill ARM defconfigs
Date: Fri, 4 Jun 2010 15:12:48 +0800	[thread overview]
Message-ID: <AANLkTikrK-RkDntgrpptBaG6TvnesNFncOw3DW4Jt-TY@mail.gmail.com> (raw)
In-Reply-To: <20100604061034.GI6499@atomide.com>

On Fri, Jun 4, 2010 at 2:10 PM, Tony Lindgren <tony@atomide.com> wrote:
> * Eric Miao <eric.y.miao@gmail.com> [100604 04:35]:
>>
>> Also, we are now working on a single kernel for multiple sub-arch (at least
>> what Nicolas and I am doing now, and welcome to join us). It's tough (the
>> way to handle different phys_offset is only the tip of the iceberg) and seems
>> now more and more necessary. so hopefully by the end of the day, we may
>> possible end up with only very few defconfig.
>
> Great, do you have some git branch for that somewhere?
>

All the currently done work I've posted to the mailing list:

1. SPARSEIRQ
2. MULTI_IRQ_HANDLER
3. Makefile.boot move to arch/arm/boot/bootp _only_
4. RUNTIME_PHYS_OFFSET (not really my work, but Uwe's)

Nico and I have setup a blueprint and wiki spec for this, I hope more
can join us with the effort.

https://blueprints.launchpad.net/ubuntu/+spec/kernel-maverick-arm-single-zimage
https://wiki.ubuntu.com/Specs/ARMSingleKernel

I'll push what I did to

git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
unified-kernel

But it's a mess now.

> Parallel to dealing with different phys_offset we can also try combining
> some two ARM platforms that have the same phy_offset. That already exposes
> tons of conflicting defines that need to be sorted out..
>

A first step to take might be looking at all those machine specific header
files that will be included into generic <asm/*.h> and in turn included by
other code. The PHYS_OFFSET is only a small tip of the iceberg I'm afraid.
A very rough grep and analysis as below:

`    $ git grep "#include <mach" arch/arm/include/asm/` <<BR>>
`    arch/arm/include/asm/dma.h:#include <mach/isa-dma.h>` <<BR>>
`    arch/arm/include/asm/floppy.h:#include <mach/floppy.h>` <<BR>>
`    arch/arm/include/asm/gpio.h:#include <mach/gpio.h>` <<BR>>
`    arch/arm/include/asm/hardware/dec21285.h:#include <mach/hardware.h>` <<BR>>
`    arch/arm/include/asm/hardware/iop3xx-adma.h:#include
<mach/hardware.h>` <<BR>>
`    arch/arm/include/asm/hardware/iop3xx-gpio.h:#include
<mach/hardware.h>` <<BR>>
`    arch/arm/include/asm/hardware/sa1111.h:#include <mach/bitfield.h>` <<BR>>
`    arch/arm/include/asm/io.h:#include <mach/io.h>` <<BR>>
`    arch/arm/include/asm/irq.h:#include <mach/irqs.h>` <<BR>>
`    arch/arm/include/asm/mc146818rtc.h:#include <mach/irqs.h>` <<BR>>
`    arch/arm/include/asm/memory.h:#include <mach/memory.h>` <<BR>>
`    arch/arm/include/asm/mmzone.h:#include <mach/memory.h>` <<BR>>
`    arch/arm/include/asm/mtd-xip.h:#include <mach/mtd-xip.h>` <<BR>>
`    arch/arm/include/asm/pci.h:#include <mach/hardware.h> /* for
PCIBIOS_MIN_* */` <<BR>>
`    arch/arm/include/asm/pgtable.h:#include <mach/vmalloc.h>` <<BR>>
`    arch/arm/include/asm/smp.h:#include <mach/smp.h>` <<BR>>
`    arch/arm/include/asm/system.h:#include <mach/barriers.h>` <<BR>>
`    arch/arm/include/asm/timex.h:#include <mach/timex.h>` <<BR>>
`    arch/arm/include/asm/vga.h:#include <mach/hardware.h>` <<BR>>

  * <mach/floppy.h> is no longer necessary

1.  arch/arm/include/asm/memory.h:#include <mach/memory.h>

1.1 PHYS_OFFSET

  * can be ignored if RUNTIME_PHYS_OFFSET is doable
  * should be removed from <mach/memory.h>
  * but we need this somewhere to allow the usage of a hardcoded constant
    [a config option?]

1.2 ISA_DMA_THRESHOLD and DMA_MAX_ADDRESS

  * make them into variables and encode them in machine_desc

1.3 arch_adjust_zones()

  * can be moved into machine_desc
  * this depends on CONFIG_ZONE_DMA
  * what to do with CONFIG_ZONE_DMA?

1.4 NODE_MEM_SIZE_BITS, SECTION_SIZE_BITS, MAX_PHYSMEM_BITS, ...

1.5 CONFIG_SPARSEMEM

  * N/A

2. arch/arm/include/asm/dma.h:#include <mach/isa-dma.h>

  * depends on CONFIG_ISA_DMA_API
  * currently only the machines below:
    * arch/arm/mach-h720x/include/mach/isa-dma.h
    * arch/arm/mach-footbridge/include/mach/isa-dma.h
    * arch/arm/mach-shark/include/mach/isa-dma.h
    * arch/arm/mach-rpc/include/mach/isa-dma.h
  * the most important definition is MAX_DMA_CHANNELS, which can be
    converted to a variable
  * some other machine specific definitions

3. arch/arm/include/asm/gpio.h:#include <mach/gpio.h>

  * gpio_to_irq() and irq_to_gpio(), need to make this generic but
    could hurt performance
  * inlined version of gpio_{get,set}_value(), gpio_direction_*()
    and others will conflict with each other
  * some other definitions like GPIO registers

4. arch/arm/include/asm/hardware/dec21285.h:#include <mach/hardware.h>
   arch/arm/include/asm/hardware/iop3xx-adma.h:#include <mach/hardware.h>
   arch/arm/include/asm/hardware/iop3xx-gpio.h:#include <mach/hardware.h>
   arch/arm/include/asm/vga.h:#include <mach/hardware.h>

  * <mach/hardware.h> is really machine specific and could possibly contain
    anything

5. arch/arm/include/asm/io.h:#include <mach/io.h>

  * IO_SPACE_LIMIT (actually IO_SPACE_LIMIT for _all_ machines are now
    0xffff_ffff), if no exception could just be removed and make it a
    default
  * definitions of __io(), this is defined as __typesafe_io(a) on most
    platforms, on other platforms, it can be abstracted as
`      ((void __iomem *)(BASE + (a)))` <<BR>>
    as long as we can make BASE a variable, this can be removed
  * definitions of __mem_pci(a), defined as (a) on all platforms, can
    be removed and make a default
  * ixp4xx is especially complex, depending on INDIRECT_PCI and PCI
  * how to handle different definitions of {in,out}{b,w,l}()
  * __arch_ioremap() and __arch_iounmap()

6. arch/arm/include/asm/irq.h:#include <mach/irqs.h>

  * what <asm/irq.h> needs is NR_IRQS (can be solved by SPARSEIRQ)
  * <mach/irqs.h> can be made internal to machine specific code _only_

7. arch/arm/include/asm/mtd-xip.h:#include <mach/mtd-xip.h>

  * currently, only omap1, pxa, sa1100 supports this
  * xip_irqpending()
  * xip_currtime()
  * xip_elapsed_since()
  * xip_cpu_idle()

8. arch/arm/include/asm/pci.h:#include <mach/hardware.h> /* for PCIBIOS_MIN_* */

  * need to make PCIBIOS_MIN_* variables

9. arch/arm/include/asm/pgtable.h:#include <mach/vmalloc.h>

  * mainly for VMALLOC_END could be made into a machine specific variable

10. arch/arm/include/asm/smp.h:#include <mach/smp.h>

  * smp_cross_call()
  * hard_smp_processor_id()

11. arch/arm/include/asm/system.h:#include <mach/barriers.h>

  * currently no machine defines barriers.h

12. arch/arm/include/asm/timex.h:#include <mach/timex.h>

  * CLOCK_TICK_RATE, can actually be removed

  reply	other threads:[~2010-06-04  7:12 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-03 19:24 Heads up: Linus plans to kill ARM defconfigs Russell King - ARM Linux
2010-06-03 19:55 ` Marek Vasut
2010-06-03 20:01   ` Russell King - ARM Linux
2010-06-03 20:27     ` Marek Vasut
2010-06-03 20:38       ` Nicolas Pitre
2010-06-08 14:41       ` Russell King - ARM Linux
2010-06-03 23:46     ` Daniel Walker
2010-06-04 11:06   ` Uwe Kleine-König
2010-06-03 19:59 ` Nicolas Pitre
2010-06-03 20:03   ` Russell King - ARM Linux
2010-06-03 20:36     ` Nicolas Pitre
2010-06-03 21:04 ` Ryan Mallon
2010-06-03 22:31   ` Nicolas Pitre
2010-06-03 23:33     ` Ryan Mallon
2010-06-03 23:45       ` Kyungmin Park
2010-06-04  0:13         ` Nicolas Pitre
2010-06-04  1:10       ` Marek Vasut
2010-06-04  1:16         ` Ryan Mallon
2010-06-04  1:35           ` Eric Miao
2010-06-04  1:37             ` Marek Vasut
2010-06-04  1:50               ` Marek Vasut
2010-06-04  1:53                 ` Marek Vasut
2010-06-04  6:03                   ` Tony Lindgren
2010-06-04 14:59                     ` Cory Maccarrone
2010-06-07  7:41                       ` Tony Lindgren
2010-06-04  1:57               ` Eric Miao
2010-06-04  6:10             ` Tony Lindgren
2010-06-04  7:12               ` Eric Miao [this message]
2010-06-04  8:40                 ` Martin Guy
2010-06-04 20:51                   ` Nicolas Pitre
2010-06-04 22:08                     ` Krzysztof Halasa
2010-06-08 11:58                     ` Russell King - ARM Linux
2010-06-08 12:31                       ` Tony Lindgren
2010-06-08 12:43                         ` Eric Miao
2010-06-08 12:49                           ` Russell King - ARM Linux
2010-06-08 13:00                             ` Eric Miao
2010-06-08 12:43                       ` David John
2010-06-08 12:44                         ` Eric Miao
2010-06-08 12:50                         ` Nicolas Pitre
2010-06-08 12:44                       ` Nicolas Pitre
2010-06-08 12:50                         ` Russell King - ARM Linux
2010-06-08 13:01                           ` Nicolas Pitre
2010-06-08 13:13                             ` Russell King - ARM Linux
2010-06-08 14:51                               ` Eric Miao
2010-06-08 16:55                                 ` Nicolas Pitre
2010-06-08 23:23                                   ` Daniel Walker
2010-06-08 12:50                       ` Christer Weinigel
2010-06-08 13:10                         ` Russell King - ARM Linux
2010-06-08 20:51                           ` Ryan Mallon
2010-06-08 21:22                             ` Russell King - ARM Linux
2010-06-08 21:32                               ` Ryan Mallon
2010-06-08 23:02                             ` Nicolas Pitre
2010-06-08 23:21                               ` Ryan Mallon
2010-06-08 23:26                                 ` Daniel Walker
2010-06-08 23:31                                 ` Nicolas Pitre
2010-06-08 23:52                                   ` Ryan Mallon
2010-06-09  0:14                                     ` Nicolas Pitre
2010-06-09  6:07                                 ` Hendrik Sattler
2010-06-09 13:32                                   ` Daniel Walker
2010-06-10  6:32                                     ` Uwe Kleine-König
2010-06-10 19:18                                       ` Nicolas Pitre
2010-06-09 21:56                                   ` Ryan Mallon
2010-06-25 12:36                                   ` Catalin Marinas
2010-06-07 21:09                   ` Ryan Mallon
2010-06-04 10:42                 ` Tony Lindgren
2010-06-04  8:36         ` pieterg
     [not found]           ` <AANLkTilyIb8WDAanNHlQKHco6rSjzNjNS9Q3TpWQqt8o@mail.gmail.com>
2010-06-04  8:42             ` Eric Miao
2010-06-04  8:56           ` Daniel Mack
2010-06-04  9:37             ` pieterg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTikrK-RkDntgrpptBaG6TvnesNFncOw3DW4Jt-TY@mail.gmail.com \
    --to=eric.y.miao@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).