mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Håvard Skinnemoen" <hskinnemoen@gmail.com>
To: linux-kernel@vger.kernel.org
Subject: AVR32 architecture support
Date: Thu, 29 Jun 2006 17:26:22 +0200	[thread overview]
Message-ID: <1defaf580606290826s39ea9330j62385d767a63ed74@mail.gmail.com> (raw)

Hi everyone,

As some of you probably know, Atmel released a new 32-bit
microprocessor architecture called AVR32 earlier this year. The first
chip implementing this architecture, AT32AP7000, and a development
board, AT32STK1000 have also been released.

The BSP for AT32STK1000 includes a Linux 2.6.16 kernel with a set of
patches adding support for AVR32, AT32AP7000 and the most important
drivers. I've rebased a subset of that patchset against a fresh git
snapshot (taken earlier today) and uploaded them to

http://avr32linux.org/twiki/bin/view/Main/LinuxPatches

so you can have a look at them if you're curious. Comments are very welcome.

I didn't attach any of the patches since the main avr32-architecture
patch is quite large (520K), and the other patches make little sense
without it. I've included the diffstat of the entire patchset below.

I've already received some feedback, so the latest patchset is
significantly different from the one included with the BSP. Most
importantly, I've implemented the clock management API in
<linux/clk.h>, so if anyone have looked at the BSP patches and become
suspicious about the at32_device thing included there, I can assure
you that it's going away.

The BSP patchset also includes a serial driver which was written from
scratch long before the at91_serial driver was merged into the 2.6
kernel. I've managed to boot Linux on AVR32 using the at91_serial
driver with only a few changes, so I'm planning to rip my existing
usart driver into pieces and submit it as improvements to the
at91_serial driver. The changes I had to make is in a separate patch
on the page mentioned above.

There's a status page for the AVR32 port at

http://avr32linux.org/twiki/bin/view/Main/LinuxKernel

which I will try to keep updated with known issues and missing
features in the core patches and the drivers. Or you can add stuff
yourself (it's a wiki, after all.)

Well, since this is my first announcement to linux-kernel, I've
probably failed to mention lots of important things. Please don't
hesitate to ask.

Håvard

 arch/avr32/Kconfig                               |  185 ++++
 arch/avr32/Kconfig.debug                         |   38 +
 arch/avr32/Makefile                              |   82 ++
 arch/avr32/boards/at32stk1000/Makefile           |    2
 arch/avr32/boards/at32stk1000/at32stk1002.c      |   31 +
 arch/avr32/boards/at32stk1000/setup.c            |   70 +
 arch/avr32/boards/at32stk1000/spi.c              |   28 +
 arch/avr32/boot/images/Makefile                  |   62 +
 arch/avr32/boot/u-boot/Makefile                  |    3
 arch/avr32/boot/u-boot/empty.S                   |    1
 arch/avr32/boot/u-boot/head.S                    |   60 +
 arch/avr32/kernel/Makefile                       |   19
 arch/avr32/kernel/asm-offsets.c                  |   25
 arch/avr32/kernel/avr32_ksyms.c                  |   53 +
 arch/avr32/kernel/cpu.c                          |  328 ++++++
 arch/avr32/kernel/dma-controller.c               |   34 +
 arch/avr32/kernel/entry-avr32b.S                 |  741 ++++++++++++++
 arch/avr32/kernel/head.S                         |   46 +
 arch/avr32/kernel/init_task.c                    |   38 +
 arch/avr32/kernel/irq.c                          |  420 ++++++++
 arch/avr32/kernel/kprobes.c                      |  275 +++++
 arch/avr32/kernel/module.c                       |  325 ++++++
 arch/avr32/kernel/process.c                      |  272 +++++
 arch/avr32/kernel/ptrace.c                       |  371 +++++++
 arch/avr32/kernel/semaphore.c                    |  148 +++
 arch/avr32/kernel/setup.c                        |  348 +++++++
 arch/avr32/kernel/signal.c                       |  329 ++++++
 arch/avr32/kernel/switch_to.S                    |   35 +
 arch/avr32/kernel/sys_avr32.c                    |   51 +
 arch/avr32/kernel/syscall-stubs.S                |   84 ++
 arch/avr32/kernel/syscall_table.S                |  251 +++++
 arch/avr32/kernel/time.c                         |  338 ++++++
 arch/avr32/kernel/traps.c                        |  425 ++++++++
 arch/avr32/kernel/vmlinux.lds.c                  |  140 +++
 arch/avr32/lib/Makefile                          |   11
 arch/avr32/lib/__avr32_asr64.S                   |   31 +
 arch/avr32/lib/__avr32_lsl64.S                   |   31 +
 arch/avr32/lib/__avr32_lsr64.S                   |   31 +
 arch/avr32/lib/__udivdi3.c                       |  229 ++++
 arch/avr32/lib/clear_user.S                      |   76 +
 arch/avr32/lib/copy_user.S                       |  119 ++
 arch/avr32/lib/csum_partial.S                    |   47 +
 arch/avr32/lib/csum_partial_copy_generic.S       |   99 ++
 arch/avr32/lib/delay.c                           |   53 +
 arch/avr32/lib/findbit.S                         |  154 +++
 arch/avr32/lib/io-readsl.S                       |   24
 arch/avr32/lib/io-readsw.S                       |   43 +
 arch/avr32/lib/io-writesl.S                      |   20
 arch/avr32/lib/io-writesw.S                      |   38 +
 arch/avr32/lib/libgcc.h                          |   33 +
 arch/avr32/lib/longlong.h                        |   98 ++
 arch/avr32/lib/memcpy.S                          |   62 +
 arch/avr32/lib/memset.S                          |   72 +
 arch/avr32/lib/strncpy_from_user.S               |   60 +
 arch/avr32/lib/strnlen_user.S                    |   67 +
 arch/avr32/mach-at32ap/Makefile                  |    3
 arch/avr32/mach-at32ap/at32ap.c                  |   60 +
 arch/avr32/mach-at32ap/at32ap7000.c              |  668 +++++++++++++
 arch/avr32/mach-at32ap/clock.c                   |   95 ++
 arch/avr32/mach-at32ap/clock.h                   |   27 +
 arch/avr32/mach-at32ap/early_printk.c            |  132 +++
 arch/avr32/mach-at32ap/intc.c                    |   68 +
 arch/avr32/mach-at32ap/intc.h                    |  327 ++++++
 arch/avr32/mach-at32ap/pio.c                     |  114 ++
 arch/avr32/mach-at32ap/pio.h                     |  178 +++
 arch/avr32/mach-at32ap/sm.c                      |  288 +++++
 arch/avr32/mach-at32ap/sm.h                      |  240 +++++
 arch/avr32/mm/Makefile                           |    7
 arch/avr32/mm/cache.c                            |  150 +++
 arch/avr32/mm/clear_page.S                       |   25
 arch/avr32/mm/copy_page.S                        |   28 +
 arch/avr32/mm/discontig.c                        |   27 +
 arch/avr32/mm/dma-coherent.c                     |  140 +++
 arch/avr32/mm/fault.c                            |  280 +++++
 arch/avr32/mm/init.c                             |  502 ++++++++++
 arch/avr32/mm/ioremap.c                          |  197 ++++
 arch/avr32/mm/tlb.c                              |  378 +++++++
 drivers/char/mem.c                               |    8
 drivers/net/Kconfig                              |   11
 drivers/net/Makefile                             |    2
 drivers/net/macb.c                               | 1161 ++++++++++++++++++++++
 drivers/net/macb.h                               |  228 ++++
 drivers/serial/Kconfig                           |    2
 drivers/serial/at91_serial.c                     |   30 -
 include/asm-avr32/a.out.h                        |   26
 include/asm-avr32/addrspace.h                    |   43 +
 include/asm-avr32/arch-at32ap/at91rm9200_pdc.h   |   36 +
 include/asm-avr32/arch-at32ap/at91rm9200_usart.h |  123 ++
 include/asm-avr32/arch-at32ap/board.h            |   23
 include/asm-avr32/arch-at32ap/init.h             |   22
 include/asm-avr32/arch-at32ap/portmux.h          |   16
 include/asm-avr32/arch-at32ap/sm.h               |   28 +
 include/asm-avr32/asm.h                          |  103 ++
 include/asm-avr32/atomic.h                       |  205 ++++
 include/asm-avr32/auxvec.h                       |    4
 include/asm-avr32/bitops.h                       |  299 ++++++
 include/asm-avr32/bug.h                          |   49 +
 include/asm-avr32/bugs.h                         |   15
 include/asm-avr32/byteorder.h                    |   25
 include/asm-avr32/cache.h                        |   29 +
 include/asm-avr32/cachectl.h                     |   11
 include/asm-avr32/cacheflush.h                   |  129 ++
 include/asm-avr32/checksum.h                     |  156 +++
 include/asm-avr32/cputime.h                      |    6
 include/asm-avr32/current.h                      |   15
 include/asm-avr32/delay.h                        |   26
 include/asm-avr32/div64.h                        |    6
 include/asm-avr32/dma-controller.h               |  165 +++
 include/asm-avr32/dma-mapping.h                  |  324 ++++++
 include/asm-avr32/dma.h                          |    8
 include/asm-avr32/elf.h                          |  110 ++
 include/asm-avr32/emergency-restart.h            |    6
 include/asm-avr32/errno.h                        |    6
 include/asm-avr32/fcntl.h                        |    6
 include/asm-avr32/hardirq.h                      |   33 +
 include/asm-avr32/hw_irq.h                       |    9
 include/asm-avr32/intc.h                         |  129 ++
 include/asm-avr32/io.h                           |  246 +++++
 include/asm-avr32/ioctl.h                        |    6
 include/asm-avr32/ioctls.h                       |   83 ++
 include/asm-avr32/ipcbuf.h                       |   29 +
 include/asm-avr32/irq.h                          |   44 +
 include/asm-avr32/kdebug.h                       |   35 +
 include/asm-avr32/kmap_types.h                   |   32 +
 include/asm-avr32/kprobes.h                      |   36 +
 include/asm-avr32/linkage.h                      |    7
 include/asm-avr32/local.h                        |    6
 include/asm-avr32/mach/serial_at91.h             |   33 +
 include/asm-avr32/mman.h                         |   17
 include/asm-avr32/mmu.h                          |   12
 include/asm-avr32/mmu_context.h                  |  152 +++
 include/asm-avr32/mmzone.h                       |   30 +
 include/asm-avr32/module.h                       |   28 +
 include/asm-avr32/msgbuf.h                       |   31 +
 include/asm-avr32/mutex.h                        |    9
 include/asm-avr32/namei.h                        |    7
 include/asm-avr32/numnodes.h                     |    7
 include/asm-avr32/ocd.h                          |   77 +
 include/asm-avr32/page.h                         |  113 ++
 include/asm-avr32/param.h                        |   24
 include/asm-avr32/pci.h                          |    8
 include/asm-avr32/percpu.h                       |    6
 include/asm-avr32/periph/hebi.h                  |  316 ++++++
 include/asm-avr32/periph/hmatrix2.h              |  372 +++++++
 include/asm-avr32/periph/intc.h                  |  327 ++++++
 include/asm-avr32/pgalloc.h                      |   96 ++
 include/asm-avr32/pgtable-2level.h               |   47 +
 include/asm-avr32/pgtable.h                      |  409 ++++++++
 include/asm-avr32/platform.h                     |   43 +
 include/asm-avr32/poll.h                         |   27 +
 include/asm-avr32/posix_types.h                  |  129 ++
 include/asm-avr32/processor.h                    |  147 +++
 include/asm-avr32/ptrace.h                       |  156 +++
 include/asm-avr32/resource.h                     |    6
 include/asm-avr32/scatterlist.h                  |   21
 include/asm-avr32/sections.h                     |    6
 include/asm-avr32/semaphore.h                    |  112 ++
 include/asm-avr32/sembuf.h                       |   25
 include/asm-avr32/setup.h                        |  142 +++
 include/asm-avr32/shmbuf.h                       |   42 +
 include/asm-avr32/shmparam.h                     |    6
 include/asm-avr32/sigcontext.h                   |   34 +
 include/asm-avr32/siginfo.h                      |    6
 include/asm-avr32/signal.h                       |  180 +++
 include/asm-avr32/socket.h                       |   52 +
 include/asm-avr32/sockios.h                      |   12
 include/asm-avr32/stat.h                         |   79 +
 include/asm-avr32/statfs.h                       |    6
 include/asm-avr32/string.h                       |   17
 include/asm-avr32/sysreg.h                       |  327 ++++++
 include/asm-avr32/system.h                       |  186 ++++
 include/asm-avr32/termbits.h                     |  173 +++
 include/asm-avr32/termios.h                      |   80 ++
 include/asm-avr32/thread_info.h                  |  112 ++
 include/asm-avr32/timex.h                        |   30 +
 include/asm-avr32/tlb.h                          |   32 +
 include/asm-avr32/tlbflush.h                     |   40 +
 include/asm-avr32/topology.h                     |    6
 include/asm-avr32/traps.h                        |   23
 include/asm-avr32/types.h                        |   70 +
 include/asm-avr32/uaccess.h                      |  335 ++++++
 include/asm-avr32/ucontext.h                     |   12
 include/asm-avr32/unaligned.h                    |   25
 include/asm-avr32/unistd.h                       |  460 +++++++++
 include/asm-avr32/user.h                         |   66 +
 include/linux/elf-em.h                           |    1
 kernel/softirq.c                                 |   10
 lib/Kconfig.debug                                |    4
 188 files changed, 20486 insertions(+), 22 deletions(-)

                 reply	other threads:[~2006-06-29 15:26 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=1defaf580606290826s39ea9330j62385d767a63ed74@mail.gmail.com \
    --to=hskinnemoen@gmail.com \
    --cc=linux-kernel@vger.kernel.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

all inboxes | Powered by JetHome®