AVR32 architecture support

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

 



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(-)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux