source: mainline/.gitignore@ a4bd537

Last change on this file since a4bd537 was a4bd537, checked in by Petr Pavlu <setup@…>, 7 years ago

arm64: Add support for the architecture

This changeset adds basic support to run HelenOS on AArch64, targeting
the QEMU virt platform.

Boot:

  • Boot relies on the EDK II firmware, GRUB2 for EFI and the HelenOS bootloader (UEFI application). EDK II loads GRUB2 from a CD, GRUB2 loads the HelenOS bootloader (via UEFI) which loads OS components.
  • UEFI applications use the PE/COFF format and must be relocatable. The first problem is solved by manually having the PE/COFF headers and tables written in assembler. The relocatable requirement is addressed by compiling the code with -fpic and having the bootloader relocate itself at its startup.

Kernel:

  • Kernel code for AArch64 consists mostly of stubbing out various architecture-specific hooks: virtual memory management, interrupt and exception handling, context switching (including FPU lazy switching), support for virtual timer, atomic sequences and barriers, cache and TLB maintenance, thread and process initialization.
  • The patch adds a kernel driver for GICv2 (interrupt controller).
  • The PL011 kernel driver is extended to allow userspace to take ownership of the console.
  • The current code is not able to dynamically obtain information about available devices on the underlying machine. The port instead implements a machine-func interface similar to the one implemented by arm32. It defines a machine for the QEMU AArch64 virt platform. The configuration (device addresses and IRQ numbers) is then baked into the machine definition.

User space:

  • Uspace code for AArch64 similarly mostly implements architecture-specific hooks: context saving/restoring, syscall support, TLS support.

The patchset allows to boot the system but user interaction with the OS
is not yet possible.

  • Property mode set to 100644
File size: 11.4 KB
RevLine 
[56763a4]1*.a
[db9c889]2*.check.c
3*.d
4*.deflate
5*.disasm
[bd1745f]6*.la
7*.lo
[50971113]8*.map
[db9c889]9*.o
[50971113]10*.prev
[56763a4]11*.pyc
[db9c889]12*.so.*
[6ba2db4b]13/Makefile.common
[db9c889]14/Makefile.config
[a5c468e]15/PKG
[a4bd537]16/QEMU_EFI_ARM64.fd
[6ba2db4b]17/common.h
18/config.h
19/cscope.out
[a5c468e]20/downloads
[6ba2db4b]21/hdisk.img
[db9c889]22/image.boot
[6ba2db4b]23/image.iso
[7bf8253]24/uImage.bin
[db9c889]25autotool/
[7bf8253]26boot/arch/arm32/_link.ld
[a4bd537]27boot/arch/arm64/_link.ld
[7bf8253]28boot/arch/ia64/_link.ld
29boot/arch/mips32/_link.ld
30boot/arch/ppc32/_link.ld
31boot/arch/sparc64/_link.ld
32boot/components.h
[a5c468e]33boot/components.o.new
[7bf8253]34boot/components.s
[a5c468e]35boot/components.tar
[7bf8253]36boot/components.zip
37boot/components_desc.c
[db9c889]38boot/distroot/
[7bf8253]39boot/image.bin
40boot/image.boot
41boot/image.raw
[db9c889]42boot/initrd.img
[a5c468e]43boot/initrd.img.gz
[db9c889]44common.h.new
45deps.mk
46doxygen/doxygen.cfg
47doxygen/doxygen.cfg.gen
48doxygen/html/
49doxygen/latex/
50kernel/arch/abs32le/_link.ld
[50971113]51kernel/arch/amd64/_link.ld
[bd1745f]52kernel/arch/arm32/_link.ld
[a4bd537]53kernel/arch/arm64/_link.ld
[bd1745f]54kernel/arch/ia32/_link.ld
[7bf8253]55kernel/arch/ia64/_link.ld
56kernel/arch/mips32/_link.ld
57kernel/arch/ppc32/_link.ld
58kernel/arch/sparc64/_link.ld
[50971113]59kernel/generic/src/debug/real_map.bin
[bd1745f]60kernel/kernel.bin
[a5c468e]61kernel/kernel.bin.gz
[bd1745f]62kernel/kernel.dump
[a5c468e]63kernel/kernel.elf
64kernel/kernel.elf.gz
[bd1745f]65kernel/kernel.raw
[db9c889]66tag
67tags
68tools/amd64-unknown-elf
69tools/arm-linux-gnueabi
70tools/binutils-*.tar.bz2
71tools/downloads/
72tools/gcc-*.tar.bz2
73tools/gdb-*.tar.gz
74tools/i686-pc-linux-gnu
75tools/ia64-pc-linux-gnu
76tools/mips-linux-gnu
77tools/mips64el-linux-gnu
78tools/mipsel-linux-gnu
79tools/ppc-linux-gnu
80tools/ppc64-linux-gnu
81tools/riscv64-unknown-linux-gnu
82tools/sparc64-linux-gnu
83tools/sycek/
[a5c468e]84tools/xcw/demo/viewer
[ac235711]85uspace/app/barber/barber
86uspace/app/barber/images.c
87uspace/app/barber/images.h
[bd1745f]88uspace/app/barber/images.s
[3cd27c1]89uspace/app/barber/images.zip
90uspace/app/barber/images_desc.c
[50971113]91uspace/app/bdsh/bdsh
[6019983]92uspace/app/bdsh/test-bdsh
[50971113]93uspace/app/bithenge/bithenge
94uspace/app/blkdump/blkdump
[b79903b]95uspace/app/contacts/contacts
[bd1745f]96uspace/app/corecfg/corecfg
[edbad13a]97uspace/app/cpptest/cpptest
[50971113]98uspace/app/date/date
99uspace/app/devctl/devctl
[bd1745f]100uspace/app/df/df
[9182e86f]101uspace/app/dltest/dltest
[7c4b26c]102uspace/app/dltests/dltests
[50971113]103uspace/app/dnscfg/dnscfg
104uspace/app/dnsres/dnsres
[bd1745f]105uspace/app/download/download
[50971113]106uspace/app/edit/edit
[8227d63]107uspace/app/fdisk/fdisk
[a9763c6]108uspace/app/fontviewer/fontviewer
[50971113]109uspace/app/getterm/getterm
[868b0e9]110uspace/app/gunzip/gunzip
[fe656783]111uspace/app/hbench/hbench
[50971113]112uspace/app/inet/inet
113uspace/app/init/init
[a5c468e]114uspace/app/init/init.gz
[10b21a1b]115uspace/app/lprint/lprint
[50971113]116uspace/app/kill/kill
117uspace/app/killall/killall
[6fa9a99d]118uspace/app/kio/kio
[50971113]119uspace/app/loc/loc
120uspace/app/logset/logset
121uspace/app/mixerctl/mixerctl
122uspace/app/mkbd/mkbd
123uspace/app/mkexfat/mkexfat
[aab85d90]124uspace/app/mkext4/mkext4
[50971113]125uspace/app/mkfat/mkfat
126uspace/app/mkmfs/mkmfs
[ac235711]127uspace/app/modplay/modplay
[50971113]128uspace/app/netecho/netecho
[bd1745f]129uspace/app/netspeed/netspeed
[50971113]130uspace/app/nettest1/nettest1
131uspace/app/nettest2/nettest2
132uspace/app/nettest3/nettest3
[6bcecc2]133uspace/app/nic/nic
[50971113]134uspace/app/nterm/nterm
[7acd787]135uspace/app/pci/pci
[50971113]136uspace/app/ping/ping
137uspace/app/ping6/ping6
[868b0e9]138uspace/app/pkg/pkg
[50971113]139uspace/app/redir/redir
140uspace/app/sbi/sbi
141uspace/app/sportdmp/sportdmp
142uspace/app/stats/stats
143uspace/app/sysinfo/sysinfo
[3a34852]144uspace/app/sysinst/sysinst
[50971113]145uspace/app/taskdump/taskdump
146uspace/app/tester/tester
147uspace/app/testread/testread
[a5c468e]148uspace/app/testrunner/testrunner
[50971113]149uspace/app/testwrit/testwrit
150uspace/app/tetris/tetris
[81ee1009]151uspace/app/tmon/tmon
[50971113]152uspace/app/top/top
153uspace/app/trace/trace
[bd1745f]154uspace/app/untar/untar
[50971113]155uspace/app/usbinfo/usbinfo
[f297fa6]156uspace/app/vcalc/vcalc
[50971113]157uspace/app/vdemo/vdemo
[bd1745f]158uspace/app/viewer/viewer
[50971113]159uspace/app/vlaunch/images.c
160uspace/app/vlaunch/images.h
[3cd27c1]161uspace/app/vlaunch/images.s
162uspace/app/vlaunch/images.zip
163uspace/app/vlaunch/images_desc.c
[50971113]164uspace/app/vlaunch/vlaunch
[db9c889]165uspace/app/vol/vol
[50971113]166uspace/app/vterm/vterm
167uspace/app/vuhid/vuh
[a5c468e]168uspace/app/vuhid/vuhid
[50971113]169uspace/app/wavplay/wavplay
170uspace/app/websrv/websrv
[94fad353]171uspace/app/wifi_supplicant/wifi_supplicant
[db9c889]172uspace/dist/app/
[ac235711]173uspace/dist/app/barber
[50971113]174uspace/dist/app/bdsh
175uspace/dist/app/bithenge
176uspace/dist/app/blkdump
[bd1745f]177uspace/dist/app/corecfg
[edbad13a]178uspace/dist/app/cpptest
[50971113]179uspace/dist/app/date
180uspace/dist/app/devctl
[bd1745f]181uspace/dist/app/df
[9182e86f]182uspace/dist/app/dltest
[7c4b26c]183uspace/dist/app/dltests
[50971113]184uspace/dist/app/dnscfg
185uspace/dist/app/dnsres
[bd1745f]186uspace/dist/app/download
[50971113]187uspace/dist/app/edit
[8227d63]188uspace/dist/app/fdisk
[a9763c6]189uspace/dist/app/fontviewer
[50971113]190uspace/dist/app/getterm
[868b0e9]191uspace/dist/app/gunzip
[50971113]192uspace/dist/app/inet
193uspace/dist/app/kill
194uspace/dist/app/killall
[6fa9a99d]195uspace/dist/app/kio
[50971113]196uspace/dist/app/loc
197uspace/dist/app/logset
198uspace/dist/app/mixerctl
199uspace/dist/app/mkbd
200uspace/dist/app/mkexfat
201uspace/dist/app/mkfat
202uspace/dist/app/mkmfs
[ac235711]203uspace/dist/app/modplay
[50971113]204uspace/dist/app/netecho
[bd1745f]205uspace/dist/app/netspeed
[50971113]206uspace/dist/app/nettest1
207uspace/dist/app/nettest2
208uspace/dist/app/nettest3
[6bcecc2]209uspace/dist/app/nic
[50971113]210uspace/dist/app/nterm
211uspace/dist/app/ping
212uspace/dist/app/ping6
[868b0e9]213uspace/dist/app/pkg
[50971113]214uspace/dist/app/redir
215uspace/dist/app/sbi
216uspace/dist/app/sportdmp
217uspace/dist/app/stats
218uspace/dist/app/sysinfo
[3a34852]219uspace/dist/app/sysinst
[50971113]220uspace/dist/app/taskdump
221uspace/dist/app/tester
222uspace/dist/app/testread
223uspace/dist/app/testwrit
224uspace/dist/app/tetris
[81ee1009]225uspace/dist/app/tmon
[50971113]226uspace/dist/app/top
227uspace/dist/app/trace
[bd1745f]228uspace/dist/app/untar
[50971113]229uspace/dist/app/usbinfo
[f297fa6]230uspace/dist/app/vcalc
[50971113]231uspace/dist/app/vdemo
[bd1745f]232uspace/dist/app/viewer
[50971113]233uspace/dist/app/vlaunch
234uspace/dist/app/vterm
235uspace/dist/app/vuh
236uspace/dist/app/wavplay
237uspace/dist/app/websrv
[94fad353]238uspace/dist/app/wifi_supplicant
[bd1745f]239uspace/dist/demo.txt
240uspace/dist/demo.wav
241uspace/dist/demo.xm
[db9c889]242uspace/dist/drv/
[50971113]243uspace/dist/drv/ahci/
[b446b02]244uspace/dist/drv/apic/
[94fad353]245uspace/dist/drv/ar9271/
[50971113]246uspace/dist/drv/ata_bd/
[bd1745f]247uspace/dist/drv/atkbd/
[50971113]248uspace/dist/drv/cmos-rtc/
249uspace/dist/drv/e1k/
250uspace/dist/drv/ehci/
[b229062]251uspace/dist/drv/hdaudio/
[50971113]252uspace/dist/drv/i8042/
[b446b02]253uspace/dist/drv/i8259/
[a416d070]254uspace/dist/drv/icp-ic/
[db9c889]255uspace/dist/drv/icp/
[50971113]256uspace/dist/drv/isa/
257uspace/dist/drv/kfb/
[d420b22]258uspace/dist/drv/msim-con/
[50971113]259uspace/dist/drv/ne2k/
260uspace/dist/drv/ns8250/
261uspace/dist/drv/ohci/
[ac235711]262uspace/dist/drv/pc/
[50971113]263uspace/dist/drv/pciintel/
[a416d070]264uspace/dist/drv/pl050/
[50971113]265uspace/dist/drv/ps2mouse/
266uspace/dist/drv/root/
267uspace/dist/drv/rootpc/
268uspace/dist/drv/rtl8139/
[238869ca]269uspace/dist/drv/rtl8169/
[50971113]270uspace/dist/drv/sb16/
[d420b22]271uspace/dist/drv/ski-con/
272uspace/dist/drv/sun4v-con/
[50971113]273uspace/dist/drv/test1/
274uspace/dist/drv/test2/
275uspace/dist/drv/test3/
276uspace/dist/drv/uhci/
[b7e1458]277uspace/dist/drv/usbdiag/
[50971113]278uspace/dist/drv/usbflbk/
279uspace/dist/drv/usbhid/
280uspace/dist/drv/usbhub/
281uspace/dist/drv/usbmast/
282uspace/dist/drv/usbmid/
283uspace/dist/drv/vhc/
[bd1745f]284uspace/dist/drv/virt/
[c362127]285uspace/dist/drv/xhci/
[db9c889]286uspace/dist/drv/xtkbd/
287uspace/dist/inc/
[bd1745f]288uspace/dist/inc/_link.ld
289uspace/dist/inc/c/
290uspace/dist/logo.tga
[7bf8253]291uspace/dist/srv/
292uspace/dist/test/
[b229062]293uspace/drv/audio/hdaudio/hdaudio
[50971113]294uspace/drv/audio/sb16/sb16
295uspace/drv/block/ahci/ahci
296uspace/drv/block/ata_bd/ata_bd
[94fad353]297uspace/drv/block/ddisk/ddisk
[53b9f2c]298uspace/drv/block/usbmast/usbmast
[a416d070]299uspace/drv/bus/adb/cuda_adb/cuda_adb
[50971113]300uspace/drv/bus/isa/isa
301uspace/drv/bus/pci/pciintel/pciintel
302uspace/drv/bus/usb/ehci/ehci
303uspace/drv/bus/usb/ohci/ohci
304uspace/drv/bus/usb/uhci/uhci
[b7e1458]305uspace/drv/bus/usb/usbdiag/usbdiag
[50971113]306uspace/drv/bus/usb/usbflbk/usbflbk
307uspace/drv/bus/usb/usbhub/usbhub
308uspace/drv/bus/usb/usbmid/usbmid
309uspace/drv/bus/usb/vhc/vhc
[afa347e]310uspace/drv/bus/usb/xhci/test-xhci
[db9c889]311uspace/drv/bus/usb/xhci/xhci
[50971113]312uspace/drv/char/i8042/i8042
[56763a4]313uspace/drv/char/msim-con/msim-con
[50971113]314uspace/drv/char/ns8250/ns8250
[10b21a1b]315uspace/drv/char/pc-lpt/pc-lpt
[bd1745f]316uspace/drv/char/pl050/pl050
[50971113]317uspace/drv/char/ps2mouse/ps2mouse
[d420b22]318uspace/drv/char/ski-con/ski-con
319uspace/drv/char/sun4v-con/sun4v-con
[bd1745f]320uspace/drv/fb/amdm37x_dispc/amdm37x_dispc
[50971113]321uspace/drv/fb/kfb/kfb
[a2afd8f]322uspace/drv/hid/adb-kbd/adb-kbd
323uspace/drv/hid/adb-mouse/adb-mouse
[d420b22]324uspace/drv/hid/atkbd/atkbd
325uspace/drv/hid/ps2mouse/ps2mouse
[53b9f2c]326uspace/drv/hid/usbhid/usbhid
[db9c889]327uspace/drv/hid/xtkbd/xtkbd
[b446b02]328uspace/drv/intctl/apic/apic
329uspace/drv/intctl/i8259/i8259
[a416d070]330uspace/drv/intctl/icp-ic/icp-ic
[d420b22]331uspace/drv/intctl/obio/obio
[94fad353]332uspace/drv/nic/ar9271/ar9271
[50971113]333uspace/drv/nic/e1k/e1k
334uspace/drv/nic/ne2k/ne2k
335uspace/drv/nic/rtl8139/rtl8139
[238869ca]336uspace/drv/nic/rtl8169/rtl8169
[db9c889]337uspace/drv/nic/virtio-net/virtio-net
[bd1745f]338uspace/drv/platform/amdm37x/amdm37x
339uspace/drv/platform/icp/icp
340uspace/drv/platform/mac/mac
341uspace/drv/platform/malta/malta
342uspace/drv/platform/msim/msim
343uspace/drv/platform/pc/pc
344uspace/drv/platform/rootpc/rootpc
[d420b22]345uspace/drv/platform/ski/ski
346uspace/drv/platform/sun4v/sun4v
[bd1745f]347uspace/drv/root/root/root
348uspace/drv/root/virt/virt
[50971113]349uspace/drv/test/test1/test1
350uspace/drv/test/test2/test2
351uspace/drv/test/test3/test3
352uspace/drv/time/cmos-rtc/cmos-rtc
[a5c468e]353uspace/export
[db9c889]354uspace/lib/c/arch/abs32le/_link-dlexe.ld
355uspace/lib/c/arch/abs32le/_link-loader.ld
356uspace/lib/c/arch/abs32le/_link-shlib.ld
357uspace/lib/c/arch/abs32le/_link.ld
[50971113]358uspace/lib/c/arch/amd64/_link-dlexe.ld
359uspace/lib/c/arch/amd64/_link-loader.ld
360uspace/lib/c/arch/amd64/_link-shlib.ld
361uspace/lib/c/arch/amd64/_link.ld
[a416d070]362uspace/lib/c/arch/arm32/_link-dlexe.ld
363uspace/lib/c/arch/arm32/_link-loader.ld
364uspace/lib/c/arch/arm32/_link-shlib.ld
365uspace/lib/c/arch/arm32/_link.ld
[a4bd537]366uspace/lib/c/arch/arm64/_link-dlexe.ld
367uspace/lib/c/arch/arm64/_link-loader.ld
368uspace/lib/c/arch/arm64/_link-shlib.ld
369uspace/lib/c/arch/arm64/_link.ld
[bd1745f]370uspace/lib/c/arch/ia32/_link-dlexe.ld
371uspace/lib/c/arch/ia32/_link-loader.ld
372uspace/lib/c/arch/ia32/_link-shlib.ld
373uspace/lib/c/arch/ia32/_link.ld
[7bf8253]374uspace/lib/c/arch/ia64/_link-dlexe.ld
375uspace/lib/c/arch/ia64/_link-loader.ld
376uspace/lib/c/arch/ia64/_link-shlib.ld
377uspace/lib/c/arch/ia64/_link.ld
378uspace/lib/c/arch/mips32/_link-dlexe.ld
379uspace/lib/c/arch/mips32/_link-loader.ld
380uspace/lib/c/arch/mips32/_link-shlib.ld
381uspace/lib/c/arch/mips32/_link.ld
382uspace/lib/c/arch/mips32eb/_link-dlexe.ld
383uspace/lib/c/arch/mips32eb/_link-loader.ld
384uspace/lib/c/arch/mips32eb/_link-shlib.ld
385uspace/lib/c/arch/mips32eb/_link.ld
386uspace/lib/c/arch/ppc32/_link-dlexe.ld
387uspace/lib/c/arch/ppc32/_link-loader.ld
388uspace/lib/c/arch/ppc32/_link-shlib.ld
389uspace/lib/c/arch/ppc32/_link.ld
390uspace/lib/c/arch/sparc64/_link-dlexe.ld
391uspace/lib/c/arch/sparc64/_link-loader.ld
392uspace/lib/c/arch/sparc64/_link-shlib.ld
393uspace/lib/c/arch/sparc64/_link.ld
[6019983]394uspace/lib/c/test-libc
[3cd27c1]395uspace/lib/label/test-liblabel
[bbe5e34]396uspace/lib/math/test-libmath
[6019983]397uspace/lib/pcut/test-libpcut-*
[a5c468e]398uspace/lib/posix/gcc.specs
399uspace/lib/posix/link.ld
[6019983]400uspace/lib/posix/test-libposix
[b79903b]401uspace/lib/sif/test-libsif
[da4e695]402uspace/lib/uri/test-liburi
[50971113]403uspace/srv/audio/hound/hound
404uspace/srv/bd/file_bd/file_bd
405uspace/srv/bd/rd/rd
[a5c468e]406uspace/srv/bd/rd/rd.gz
[50971113]407uspace/srv/bd/sata_bd/sata_bd
[1356f85a]408uspace/srv/bd/vbd/vbd
[50971113]409uspace/srv/clipboard/clipboard
410uspace/srv/devman/devman
411uspace/srv/fs/cdfs/cdfs
412uspace/srv/fs/exfat/exfat
413uspace/srv/fs/ext4fs/ext4fs
[a5c468e]414uspace/srv/fs/ext4fs/ext4fs.gz
[50971113]415uspace/srv/fs/fat/fat
[a5c468e]416uspace/srv/fs/fat/fat.gz
[50971113]417uspace/srv/fs/locfs/locfs
418uspace/srv/fs/mfs/mfs
419uspace/srv/fs/tmpfs/tmpfs
420uspace/srv/fs/udf/udf
421uspace/srv/hid/compositor/compositor
422uspace/srv/hid/compositor/images.c
423uspace/srv/hid/compositor/images.h
424uspace/srv/hid/console/console
425uspace/srv/hid/input/input
426uspace/srv/hid/isdv4_tablet/isdv4_tablet
427uspace/srv/hid/output/output
428uspace/srv/hid/remcons/remcons
[bd1745f]429uspace/srv/hid/rfb/rfb
[50971113]430uspace/srv/hid/s3c24xx_ts/s3c24xx_ts
[bd1745f]431uspace/srv/hw/bus/cuda_adb/cuda_adb
[50971113]432uspace/srv/hw/char/s3c24xx_uart/s3c24ser
[a5c468e]433uspace/srv/hw/char/s3c24xx_uart/s3c24xx_uart
[bd1745f]434uspace/srv/hw/irc/obio/obio
435uspace/srv/klog/klog
[50971113]436uspace/srv/loader/loader
[a5c468e]437uspace/srv/loader/loader.gz
[50971113]438uspace/srv/locsrv/locsrv
[a5c468e]439uspace/srv/locsrv/locsrv.gz
[50971113]440uspace/srv/logger/logger
[a5c468e]441uspace/srv/logger/logger.gz
[bd1745f]442uspace/srv/net/dhcp/dhcp
[50971113]443uspace/srv/net/dnsrsrv/dnsrsrv
444uspace/srv/net/ethip/ethip
445uspace/srv/net/inetsrv/inetsrv
446uspace/srv/net/loopip/loopip
[bd1745f]447uspace/srv/net/nconfsrv/nconfsrv
[50971113]448uspace/srv/net/slip/slip
449uspace/srv/net/tcp/tcp
[868b0e9]450uspace/srv/net/tcp/test-tcp
[50971113]451uspace/srv/net/udp/udp
452uspace/srv/ns/ns
[a5c468e]453uspace/srv/ns/ns.gz
[50971113]454uspace/srv/taskmon/taskmon
[74017ce]455uspace/srv/test/chardev-test/chardev-test
[1edd6d0]456uspace/srv/test/ipc-test/ipc-test
[50971113]457uspace/srv/vfs/vfs
[a5c468e]458uspace/srv/vfs/vfs.gz
[64ffd83]459uspace/srv/volsrv/test-volsrv
[bd1745f]460uspace/srv/volsrv/volsrv
Note: See TracBrowser for help on using the repository browser.