From: Raphael Poggi <poggi.raph@gmail.com>
To: barebox@lists.infradead.org
Subject: [PATCH 0/3] Add basic support for arm64
Date: Fri, 20 May 2016 03:11:06 +0200 [thread overview]
Message-ID: <1463706669-39738-1-git-send-email-poggi.raph@gmail.com> (raw)
Hello,
This patch series introduces a basic support for arm64.
[PATCH 1/3] arch: add minimal aarch64 support :
Introduce new architecture by creating a new root directory,
I choose this approach for now, because it is simpler for now, maybe later we will merge this in arch/arm.
The current machine supported is only the virt machine from qemu
(I don't have any arm64 hardware, so, tests on real hardware are welcome).
[PATCH 2/3] arm64: add basic mmu support :
This patch adds a basic support for the mmu, by basic I mean,
no DMA cache handling and no remapping of memory region is supported.
The current mmu configuration is : 4KB granularity, 3 lookup level and 33 bits per VA.
I choose this setting up because I think it is quiet similar as the one in Linux Kernel,
and my code is based on coreboot and u-boot (they also use this setting).
There is some issue in the code, for example, calling "tlb_invalidate" seems to crash my qemu vm.
Moreover, I don't have experience of cache managing, so any help on that are welcome.
[PATCH 3/3] arm64: board: virt: set up mmu :
This patch sets up the mmu for the machine virt from qemu.
I split up the mmu init calling by mmu_initcall and the mmu enabling.
The reason is, if I enable the mmu too early, barebox will crash because of
the CFI Flash (and AMBA) driver will try to access to memory not mapped.
Thanks,
Raphaël
arch/arm64/Kconfig | 140 +++++++
arch/arm64/Makefile | 109 +++++
arch/arm64/boards/Makefile | 2 +
arch/arm64/boards/virt/Kconfig | 8 +
arch/arm64/boards/virt/Makefile | 1 +
arch/arm64/boards/virt/env/bin/_update | 36 ++
arch/arm64/boards/virt/env/bin/boot | 38 ++
arch/arm64/boards/virt/env/bin/init | 20 +
arch/arm64/boards/virt/env/bin/update_kernel | 8 +
arch/arm64/boards/virt/env/bin/update_root | 8 +
arch/arm64/boards/virt/env/config | 38 ++
arch/arm64/boards/virt/env/init/mtdparts-nor | 11 +
arch/arm64/boards/virt/init.c | 67 ++++
arch/arm64/configs/virt_defconfig | 53 +++
arch/arm64/cpu/Kconfig | 54 +++
arch/arm64/cpu/Makefile | 25 ++
arch/arm64/cpu/cache-armv8.S | 168 ++++++++
arch/arm64/cpu/cache.c | 110 ++++++
arch/arm64/cpu/cpu.c | 87 ++++
arch/arm64/cpu/cpuinfo.c | 211 ++++++++++
arch/arm64/cpu/entry.c | 38 ++
arch/arm64/cpu/entry.h | 18 +
arch/arm64/cpu/exceptions.S | 127 ++++++
arch/arm64/cpu/interrupts.c | 156 ++++++++
arch/arm64/cpu/lowlevel.S | 43 ++
arch/arm64/cpu/mmu.c | 334 ++++++++++++++++
arch/arm64/cpu/mmu.h | 169 ++++++++
arch/arm64/cpu/mmuinfo.c | 104 +++++
arch/arm64/cpu/start-pbl.c | 102 +++++
arch/arm64/cpu/start.c | 247 ++++++++++++
arch/arm64/cpu/uncompress.c | 111 ++++++
arch/arm64/include/asm/armlinux.h | 43 ++
arch/arm64/include/asm/assembler.h | 116 ++++++
arch/arm64/include/asm/barebox-arm-head.h | 65 +++
arch/arm64/include/asm/barebox-arm.h | 165 ++++++++
arch/arm64/include/asm/barebox.h | 12 +
arch/arm64/include/asm/bitops.h | 48 +++
arch/arm64/include/asm/bitsperlong.h | 1 +
arch/arm64/include/asm/byteorder.h | 32 ++
arch/arm64/include/asm/cache-l2x0.h | 101 +++++
arch/arm64/include/asm/cache.h | 16 +
arch/arm64/include/asm/common.h | 48 +++
arch/arm64/include/asm/cputype.h | 100 +++++
arch/arm64/include/asm/debug_ll_pl011.h | 25 ++
arch/arm64/include/asm/dma.h | 46 +++
arch/arm64/include/asm/elf.h | 119 ++++++
arch/arm64/include/asm/errata.h | 79 ++++
arch/arm64/include/asm/gic.h | 128 ++++++
arch/arm64/include/asm/hardware/arm_timer.h | 38 ++
arch/arm64/include/asm/hardware/sp810.h | 68 ++++
arch/arm64/include/asm/io.h | 87 ++++
arch/arm64/include/asm/linkage.h | 11 +
arch/arm64/include/asm/memory.h | 19 +
arch/arm64/include/asm/mmu.h | 63 +++
arch/arm64/include/asm/module.h | 13 +
arch/arm64/include/asm/pgtable.h | 91 +++++
arch/arm64/include/asm/posix_types.h | 1 +
arch/arm64/include/asm/processor.h | 131 ++++++
arch/arm64/include/asm/ptrace.h | 34 ++
arch/arm64/include/asm/sections.h | 34 ++
arch/arm64/include/asm/semihosting.h | 19 +
arch/arm64/include/asm/setup.h | 216 ++++++++++
arch/arm64/include/asm/stacktrace.h | 16 +
arch/arm64/include/asm/string.h | 13 +
arch/arm64/include/asm/swab.h | 69 ++++
arch/arm64/include/asm/system.h | 125 ++++++
arch/arm64/include/asm/system_info.h | 194 +++++++++
arch/arm64/include/asm/types.h | 54 +++
arch/arm64/include/asm/unaligned.h | 19 +
arch/arm64/include/asm/unified.h | 127 ++++++
arch/arm64/include/asm/unwind.h | 51 +++
arch/arm64/lib/Makefile | 16 +
arch/arm64/lib/armlinux.c | 275 +++++++++++++
arch/arm64/lib/asm-offsets.c | 16 +
arch/arm64/lib/barebox.lds | 125 ++++++
arch/arm64/lib/barebox.lds.S | 125 ++++++
arch/arm64/lib/bootm.c | 572 +++++++++++++++++++++++++++
arch/arm64/lib/bootu.c | 44 +++
arch/arm64/lib/bootz.c | 136 +++++++
arch/arm64/lib/copy_template.S | 192 +++++++++
arch/arm64/lib/div0.c | 27 ++
arch/arm64/lib/memcpy.S | 74 ++++
arch/arm64/lib/memset.S | 215 ++++++++++
arch/arm64/lib/module.c | 98 +++++
arch/arm64/lib/pbl.lds.S | 96 +++++
arch/arm64/lib/runtime-offset.S | 52 +++
arch/arm64/lib/unwind.c | 349 ++++++++++++++++
arch/arm64/mach-virt/Kconfig | 15 +
arch/arm64/mach-virt/Makefile | 3 +
arch/arm64/mach-virt/devices.c | 30 ++
arch/arm64/mach-virt/include/mach/debug_ll.h | 24 ++
arch/arm64/mach-virt/include/mach/devices.h | 13 +
arch/arm64/mach-virt/lowlevel.c | 19 +
arch/arm64/mach-virt/reset.c | 24 ++
arch/arm64/pbl/Makefile | 58 +++
arch/arm64/pbl/piggy.gzip.S | 6 +
arch/arm64/pbl/piggy.lz4.S | 6 +
arch/arm64/pbl/piggy.lzo.S | 6 +
arch/arm64/pbl/piggy.shipped.S | 6 +
arch/arm64/pbl/piggy.xzkern.S | 6 +
include/asm-generic/sections.h | 6 +-
101 files changed, 7911 insertions(+), 3 deletions(-)
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next reply other threads:[~2016-05-19 9:28 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-20 1:11 Raphael Poggi [this message]
2016-05-20 1:11 ` [PATCH 1/3] arch: add minimal aarch64 support Raphael Poggi
2016-05-20 1:11 ` [PATCH 2/3] arm64: add basic mmu support Raphael Poggi
2016-05-20 1:11 ` [PATCH 3/3] arm64: board: virt: set up mmu Raphael Poggi
2016-05-23 7:32 ` [PATCH 0/3] Add basic support for arm64 Sascha Hauer
2016-05-23 8:33 ` Raphaël Poggi
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=1463706669-39738-1-git-send-email-poggi.raph@gmail.com \
--to=poggi.raph@gmail.com \
--cc=barebox@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