Use a single build for aarch64 qemu and gem5!

Document the minimal aarch64 boot.

Rename -c to -B for uniformity with -b.

Add help for ./run and ./build options.
This commit is contained in:
Ciro Santilli
2018-03-18 22:13:56 +00:00
parent f5e04f6b33
commit 275426ef44
11 changed files with 348 additions and 2927 deletions

View File

@@ -93,6 +93,34 @@ CONFIG_E1000=y
# cat /sys/kernel/debug/kernel_page_tables
CONFIG_X86_PTDUMP=y
## UIO
# Userspace drivers: allow you to handle IRQs and do memory IO from userland through a /dev file.
#
# Superseded by the more featureful VFIO.
#
# Documentation/DocBook/uio-howto.tmpl contains actual userland examples
# for the generic examples under drivers/uio
#
# UIO interface in a nutshell:
#
# - blocking read / poll: waits until interrupts
# - write: call irqcontrol callback. Default: 0 or 1 to enable / disable interrupts.
# - mmap: access device memory
# All other UIO depend on this module.
CONFIG_UIO=m
# Generic platform devices.
# https://yurovsky.github.io/2014/10/10/linux-uio-gpio-interrupt/
CONFIG_UIO_DMEM_GENIRQ=m
CONFIG_UIO_PDRV_GENIRQ=m
# https://github.com/rumpkernel/wiki/wiki/Howto:-Accessing-PCI-devices-from-userspace
# /sys/class/uio/
# /sys/class/uio/uio0
CONFIG_UIO_PCI_GENERIC=m
## ARM
# LEDs:
@@ -140,7 +168,7 @@ CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_NEW_LEDS=y
# GPIO.
# GPIO
CONFIG_ARM_AMBA=y
CONFIG_GPIOLIB=y
CONFIG_GPIO_SYSFS=y
@@ -161,39 +189,22 @@ CONFIG_GPIO_PL061=y
# The IRQ number 34 was found by via dmesg on a previous "insmod /platform_device.ko".
CONFIG_DUMMY_IRQ=m
## aarch64
# For some reason not selected by default as it was for arm, and pci modules fail to build.
# Not that we have PCI working on ARM anyways.
CONFIG_PCI=y
# Like CONFIG_X86_PTDUMP for ARM.
CONFIG_ARM64_PTDUMP=y
## UIO
## aarch64
# Userspace drivers: allow you to handle IRQs and do memory IO from userland through a /dev file.
#
# Superseded by the more featureful VFIO.
#
# Documentation/DocBook/uio-howto.tmpl contains actual userland examples
# for the generic examples under drivers/uio
#
# UIO interface in a nutshell:
#
# - blocking read / poll: waits until interrupts
# - write: call irqcontrol callback. Default: 0 or 1 to enable / disable interrupts.
# - mmap: access device memory
# For some reason not selected by the Buildroot kernel config by default as it was for arm,
# and pci modules fail to build. Not that we have PCI working on ARM anyways.
CONFIG_PCI=y
# All other UIO depend on this module.
CONFIG_UIO=m
### gem5 aarch64
# Minimal options required to run gem5 aarch64 in addition to QEMU's aarch64 setup.
# Doing such a minimal boot made the gem5 boot 3x faster on the P51, which is awesome.
CONFIG_ATA_PIIX=y
CONFIG_PCI_HOST_GENERIC=y
# Generic platform devices.
# https://yurovsky.github.io/2014/10/10/linux-uio-gpio-interrupt/
CONFIG_UIO_DMEM_GENIRQ=m
CONFIG_UIO_PDRV_GENIRQ=m
# https://github.com/rumpkernel/wiki/wiki/Howto:-Accessing-PCI-devices-from-userspace
# /sys/class/uio/
# /sys/class/uio/uio0
CONFIG_UIO_PCI_GENERIC=m
### qemu aarch64 ext2
# Also requires gem5 aarch64 options.
# Not needed for initrd / initramfs.
CONFIG_VIRTIO_PCI=y