34 Commits

Author SHA1 Message Date
Travis Geiselbrecht
e3ffad684f [scripts] make sure all the do-qemu* scripts exec qemu as the last line
This helps a wrapper script test for proper exit.
2025-10-01 23:33:25 -07:00
Travis Geiselbrecht
5c1bc61e11 [scripts][do-qemuarm] general cleanup of script style and fix potential bugs
Mostly suggestions from shellcheck
2025-09-16 13:36:20 -07:00
Travis Geiselbrecht
457355fa3c [scripts][do-qemuarm] accept 4k/16k/64k as page size aliases 2025-09-16 13:15:15 -07:00
Travis Geiselbrecht
c48cfcb5d0 [arch][arm64] add support for 64k pages
Already worked, just needed to set up the address space size and create
a new project.
2025-08-31 21:48:09 -07:00
Travis Geiselbrecht
fff0f2a740 [arch][arm64] add support for 16k pages 2025-08-31 21:47:32 -07:00
Travis Geiselbrecht
fdf48a80c8 [scripts][do-qemuarm] add support for using HVF on mac
Detect if it's being run on a darwin host and try to use HVF if the -k
switch is passed.
2024-08-11 12:06:54 -07:00
Travis Geiselbrecht
d54735cf5d [scripts][do-qemuarm] add switch to try to use KVM 2024-05-09 23:11:58 -07:00
Cody Wong
64b462cb37 [arm][v9p] Add v9p host dir sharing support for arm platform
- Add the v9p support for arm platform.
 - Add an option `-f` to set the shared directory on the host machine to
   `do-qemuarm`.
 - For example, to use the v9p dir sharing, run the script as:
    ```
    # under `lk/` run the follow command will share the current
    # directory `lk/` within LK vm as VirtIO 9p device
    scripts/do-qemuarm -f .
    ```

Signed-off-by: Cody Wong <codycswong@google.com>
2024-04-01 23:09:30 -07:00
Travis Geiselbrecht
74386913a0 [scripts][do-qemuarm] set script=no when using tun/tap 2022-05-12 20:08:21 -07:00
Travis Geiselbrecht
d7ef1985eb [scrtipts][do-qemu] align the arm and x86 script a bit more
Add option to specify disk file to ARM
2022-04-21 21:31:01 -07:00
Peter Collingbourne
4a15661ee0 [arch][arm64] use SMC when booted at EL2 in QEMU
If we were booted at EL2 (e.g. when passing -machine
virt,virtualization=on), we need to use SMC instead of HVC for PSCI
calls. Change psci_call() to do this and add a flag to do-qemuarm to
allow testing this scenario.
2022-04-19 18:32:12 -07:00
Travis Geiselbrecht
36e73e0fac [bus][pci] add routines to pass in PCI bus resources prior to starting the pci bus manager
Wire them up on arm and riscv which need them. x86-pc does not, so dont
call it.

Also fix a few miscellaneous bugs, notably PCI not detecting 64bit bars
properly due to an off by one bit error.
2022-02-06 19:46:39 -08:00
Travis Geiselbrecht
35da2d1260 [minip][dhcp] spiff up the state machine to handle more edge cases
-Add TAP option to scripts/qemux86
2021-12-31 17:23:57 -08:00
Travis Geiselbrecht
a47cf76f14 [scripts][do-qemuarm] hard disable network if not selected
Turns out qemu was putting a e1000 nic on the PCI bus if no options were
selected. No reason to do so if the network is explicitly not called
for.
2021-11-20 17:42:41 -08:00
Travis Geiselbrecht
ae5200595c [platform][riscv-virt] added support for QEMU's riscv 'virt' machine
The virt machine is a generic target, much like the arm virt machine.
Intended to be simple to use and a good target to run large systems like
linux on. At the moment simply support booting and simple uart and timer
support.
2019-11-02 14:19:36 -07:00
Travis Geiselbrecht
dbe86c89be [scripts][do-qemu] minor restructure of how args are passed to qemu
No functional change, just a tiny tweak that had been floating around.
2019-10-23 07:14:45 -07:00
Travis Geiselbrecht
4aa556b837 [project][qemu-virt-arm32-minimal] add a new project that doesnt' enable as much
Useful for testing when the console is off.
2019-07-13 17:11:48 -07:00
Travis Geiselbrecht
291bdce364 [project][qemu-virt-arm] rename to arm32 and arm64
Less confusing than a15 and a53
2019-03-30 20:11:22 -07:00
Travis Geiselbrecht
41a7937444 [scripts] add parallel building script and use it in most build scripts 2019-03-30 20:06:12 -07:00
Travis Geiselbrecht
e604f4b103 [target][lm3s6965evb] add support for stellaris based lm3s6965evb board
This seems to be somewhat properly emulated in qemu.

qemu-system-arm -machine lm3s6965evb -cpu cortex-m3
2016-02-20 20:08:15 -08:00
Travis Geiselbrecht
b220b29165 [scripts] add smp option to do-qemuarm and do-qemux86 2016-02-14 11:37:46 -08:00
Travis Geiselbrecht
64fe297cb5 [arch][x86] fix multiboot to properly just cover the data segment, fix x86-64 bug
-Add -6 switch to do-qemux86 to build and run the x86-64 target
-Fix bug in x86-64 context switch, do not understand how it ever worked.
2015-11-06 19:32:51 -08:00
Erik Corry
12868bf6c0 [lib][heap] Add Cmpctmalloc as an alternative malloc implementation
From scratch simple binning heap. Complexity wise in the middle
between miniheap and dlmalloc. Generally much faster than miniheap
with a small amount of memory overhead. Performs similarly to
dlmalloc.
2015-11-05 16:47:03 -08:00
Travis Geiselbrecht
31de0ff388 [platform][qemu-virt] read the memory size out of the FDT using libfdt
-Bump the kernel forward by 64K
-Look for the FDT that qemu leaves around in the space just before the kernel
-Pick out the 'memory' node, parse the base/length values and patch the main
    pmm arena before adding it
2015-10-09 17:24:43 -07:00
Travis Geiselbrecht
555f16c5c7 [dev][virtio][gpu] add default implementation of virtio-gpu driver
Exports a simple single buffered framebuffer.
2015-10-07 15:44:00 -07:00
Travis Geiselbrecht
b52c27973a [platform][qemu-virt] support cortex-a15 cpu as well 2015-09-20 12:13:07 -07:00
Travis Geiselbrecht
861d637e8b [platform][qemu-virt] add support for -machine virt on qemu arm/aarch64
-add a arm64 cortex-a53 based target
2015-09-20 12:13:07 -07:00
Travis Geiselbrecht
193a57d5d5 [dev][virtio][net] add working implementation of a virtio network interface
-Not optimized yet, but should be pretty complete. Tested against qemu.
-Add switches to qemu script to allow running with a tap interface.
-Enable minip by default on vexpress-a9 platform
2015-09-09 15:41:32 -07:00
Travis Geiselbrecht
a9b1f58de9 [scripts][do-qemuarm] new features of script require bash 2015-09-09 11:18:39 -07:00
Travis Geiselbrecht
ea40ff628c [scripts] spiff up do-qemuarm to add switches for virtio devices 2015-09-08 16:15:01 -07:00
Travis Geiselbrecht
335a96b492 [scripts] point do-qemuarm at vexpress-a9 instead of realview-pb 2014-05-17 17:54:25 -07:00
Travis Geiselbrecht
7afc03914a [scripts][qemuarm] make sure the emulated machine has 256MB of ram 2014-01-26 23:27:49 -08:00
Travis Geiselbrecht
549f9977cd [scripts] fix do-qemux86 and do-qemuarm to reference lk.elf 2013-03-16 15:26:57 -07:00
Travis Geiselbrecht
d62c6977c4 [platform][realview-pb] first stab at working Realview Explore board
This target seems to be the best one to target for generic arm support
on current stock qemu builds.
2012-12-30 17:57:06 -08:00