Commit Graph

106 Commits

Author SHA1 Message Date
Travis Geiselbrecht
911900f3df [arch][m68k] Merge in Motorola 68k port 2021-11-08 23:24:37 -08:00
Travis Geiselbrecht
189c0e8cd4 [target][stm32f7-discovery] update the openocd script
Use a newer name for the stlink.cfg file.
2021-10-07 00:00:22 -07:00
Travis Geiselbrecht
12fee4b59a [arch][m68k] initial port to m68k
Uses the QEMU virt machine for 68k defined in qemu 6.0+.
Basic support that boots, prints to the console, takes input from
console, and context switches.

TODO: interrupt support, timer support.
2021-06-06 19:38:45 -07:00
Travis Geiselbrecht
b730a5ef5c [github][actions] Add a new action to build LK, replacing travis-ci
Use the new github actions to replace the travis-ci builders which
seem to no longer work and are being removed.

This first stab is fairly rough, just matches the explicit matrix
that was in the travis-ci hooks, but at least gets back to a buildable
state again.
2021-02-14 20:23:39 -08:00
Travis Geiselbrecht
a21bc34022 [arch][riscv] restructure the qemu starter script to share the embedded and non embedded logic 2020-12-30 02:02:42 -08:00
Travis Geiselbrecht
6ea6256d89 [platform][sifive] add switch to scripts/do-riscvqemu to run sifive unleashed
Also fix up some broken bits on the previously unused qemu-sifive-u target.
2020-12-30 01:40:05 -08:00
Travis Geiselbrecht
11ca56717e [scripts][do-sifive-e] point the script at the current versions of the sifive-e sdk
Not ideal to have these hard coded but it beats building them from scratch.
2020-11-30 23:22:59 -08:00
Travis Geiselbrecht
01f9a97dc1 [arch][openrisc] fix up and get the OpenRISC port working again
Previous to now it had always relied on a custom patched gcc
and a custom sim. In the interim since the initial port went in
some time in 2015 GCC and QEMU have both officially picked up support
for the architecture and the machine that was emulated in the previous
emultor.

Using gcc 10.2 fix up the build and get it basically working. Timers
seem to not be working right but it's probably fairly easy to fix.
2020-10-21 02:34:50 -07:00
Travis Geiselbrecht
2d29b94c84 [travisci] use parallel builds 2020-05-17 13:55:16 -07:00
Travis Geiselbrecht
35c3742b6c [scripts][codestyle] add some comments on the codestyle script 2020-05-16 15:33:00 -07:00
Travis Geiselbrecht
f0449cc59c [platform][riscv] move the supervisor mode switch to -S which makes more sense 2020-01-26 12:11:14 -08:00
Travis Geiselbrecht
9c71a0ec57 [platform][qemu-riscv] Fixup qemu-riscv target
-Fix plic driver to handle machine vs supervisor mode
-Add switch to scripts/do-qemuriscv to run in supervisor mode (with OpenSBI)
-Use the FDT to detect the number of cpus and size of memory
2020-01-19 14:48:25 -08:00
Travis Geiselbrecht
fdc08a8446 [arch][riscv] port to riscv64
Very little needed to port except to conditionalize some assembly in the
context switch and exception code. Mostly needed to move build system
stuff around and add a new project.
2019-11-02 17:21:13 -07: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
ca648bcd01 [scripts][replacelic] Add a script to replace full MIT licenses with shortened versions 2019-07-05 17:19:13 -07:00
Martin Foo
b66bd3e420 Add STM32F429I-DISCO1 support(default serial:USART1). 2019-06-19 18:18:52 -07:00
Travis Geiselbrecht
47ebb40185 [script][stm32f7-disco-test] tweak board config file
Matches what stock openocd 0.10.0 names the config file for this
particular board.
2019-06-09 23:21:24 -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
63be190d8b [target][sifive-e] Get LK working on a Sifive Hifive1 board
-added support for bringing up the clocks and setting up the gpio bits
before starting the uart.
-add a proper target init routine
-add scripts to flash board via openocd
-fixed bug in riscv interrupt save state where it wasn't saving mstatus
on irq entry.
-comment out cycle enabling, not implemented on this core
2019-02-18 22:13:22 -08:00
Travis Geiselbrecht
a0a6b10e0b [arch][riscv32] rename the qemu target sifive-e
The initial port is really a Sifive E platform. Call it what it is and
make space for bringing up the Sifive U and virt qemu target.
2019-02-17 20:29:50 -08:00
Travis Geiselbrecht
4c29a608e9 [platform][pc] fix up bios32 PCI support, get pci IDE working again
-Spiff up the device driver starting logic to allow for statically
started devices, instead of always automatic.
2018-12-31 16:47:32 -08:00
Travis Geiselbrecht
1fbb67228d [platform][pc] get working on legacy 386 PC
-Add support for x86 legacy mode, designed for 386+ instead of pentium+
-Fixup uart driver to support com2
-Stub out PCI driver properly
-Fixup IDE driver to detect legacy disks
2018-12-30 21:08:58 -08:00
Travis Geiselbrecht
8cf28bbdcf [arch][riscv] Initial port to a riscv32 sifive target
Currently targets qemu's sifive_e machine, which is a split flash/ram
machine, much like the Sifive HiFive1. Untested as of yet on a real
HiFive1.

Basic support including interrupts and architectural timers in place.
2018-12-16 16:44:23 -08:00
Travis Geiselbrecht
fdb41e1d8b [scripts][codestyle] replace the old tab based codestyle script with the space based one 2018-12-16 16:41:38 -08:00
Travis Geiselbrecht
4f978d8580 [scripts][codestyle] tweak the space codestyle script to use -A2 (java style) braces
Dunno why it got set to -A4 before.
2018-12-16 16:41:38 -08:00
Travis Geiselbrecht
ee672a5471 [arch][x86] flatten x86-64 and x86 into a single tree of code
Major refactor of x86 code into a single arch.
Also bump both 32 and 64 bit to running the kernel at a 'high' address.
2016-02-29 12:42:45 -08: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
fbee777a4a [scripts] remove some unused scripts 2016-02-14 11:49:10 -08:00
Travis Geiselbrecht
fe92f4ad74 [platform][omap3] remove this old platform 2016-02-14 11:46:19 -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
f2430462b6 [platform][stm32f7xx] add reboot command and script for dartuino 2016-01-04 17:40:30 -08:00
Gurjant Kalsi
7b453164dd [qemu][m4][gfx][display] Get the VNC based LCD working on the qemu-m4 port. 2015-12-16 16:05:36 -08:00
Gurjant Kalsi
8af6e9f00e [scripts][astyle] +align-pointer=name 2015-12-11 14:56:27 -08:00
Travis Geiselbrecht
9c74f98fa9 [merge] merge mips development branch
Add support for mips architecture.
Currently supports particular generic target on qemu.
2015-12-08 14:23:38 -08:00
Gurjant Kalsi
12415e2b24 [qemu][cortex-m4] Support qemu-m4 target. 2015-12-07 12:27:29 -08:00
Travis Geiselbrecht
b7e68b5dbd [scripts][tagit] extend tagit script to only tag files for a particular project 2015-12-02 18:34:01 -08:00
Travis Geiselbrecht
38a5e7bd4f WIP more work on mip
got interrupts working
started work on timer
2015-12-01 19:19:23 -08:00
Travis Geiselbrecht
cd5ac2f34e WIP mips: first semi-functional mips port
Context switches work, console alive. No interrupts.
2015-12-01 01:05:37 -08:00
Travis Geiselbrecht
ba6a3f6914 [scripts] add a script to run cppcheck over the source for a given project 2015-11-23 09:17:44 -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
Travis Geiselbrecht
674b0dfab4 [scripts] add script to automate building and flashing a stm32f7-discovery board 2015-11-05 17:21:25 -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
70c1b1ac92 [travis-ci] add some logic to try to cache a downloaded toolchain 2015-09-18 20:27:05 -07:00