Felix Kopp
c4717d8fce
dma: add abstraction layer for dma
2021-02-03 04:30:46 +01:00
Felix Kopp
256b49b529
device: add base abstraction for all devices
2021-02-03 04:01:27 +01:00
Felix Kopp
56c76d8b4b
sched: use proper UNIX® terminology
2021-02-01 00:07:45 +01:00
Felix Kopp
50928211ca
minor fixes and improvements
2021-01-07 19:04:52 +01:00
Felix Kopp
4a3e33dc05
sycall: conform to POSIX
2021-01-07 12:29:45 +01:00
Felix Kopp
5555a3d56d
cleanup and fix warnings
2021-01-05 17:50:46 +01:00
Felix Kopp
63ccd87112
arch/at91sam3x8e: finalize entry routine
2021-01-05 17:31:26 +01:00
Felix Kopp
8252f14b6b
arch/at91sam3x8e: use r0 for syscall number
2021-01-05 15:30:36 +01:00
Felix Kopp
dee9ce667f
write: actually write to the serial console
2021-01-05 14:40:18 +01:00
Felix Kopp
632824e437
fs: implement basic write
2021-01-05 14:38:06 +01:00
Felix Kopp
3026bfe2f1
io: kiss I/O thread goodbye
2021-01-05 14:06:19 +01:00
Felix Kopp
51c9a779a3
user: add wrappers for userspace data transfer
...
This doesn't do anything right now, but will save some work in the
future when we have hardware memory protection.
2021-01-05 13:48:39 +01:00
Felix Kopp
1c835a9738
at91sam3x8e: serial refactor
2021-01-05 13:45:56 +01:00
Felix Kopp
316b4c2c0c
entry: implement syscall entry
2021-01-04 15:40:16 +01:00
Felix Kopp
190eedd842
toolchain: add stuff i forgot about
2021-01-04 14:58:52 +01:00
Felix Kopp
2f8404678b
Add offset typedef
2021-01-02 12:43:22 +01:00
Felix Kopp
681226852b
kent: Add basic implementation
...
I have no idea how useful this is going to be, but I'll just commit it
anyways because why the hell not.
2020-12-08 16:38:19 +01:00
Felix Kopp
cc00a7a1ea
atom: Replace spinlocks with atoms
2020-12-08 12:55:23 +01:00
Felix Kopp
589e9330da
sched: properly disable the watchdog
...
I have no idea what the FUCK the Engineers at ARM were thinking when
they decided to disable EVERY SINGLE FUCKING CPU COMPONENT on system
reset, except the FUCKING WATCHDOG. But this change will prevent the
system from randomly firing a watchdog reset.
2020-12-08 00:08:00 +01:00
Felix Kopp
99a51a5dd2
fix compiler errors/include conflicts
...
What a hell of a nightmare this codebase has become over the past few
weeks fascinates even myself
2020-12-01 02:35:06 +01:00
Felix Kopp
e45f75f6bc
sched: implement spinlocks
2020-11-30 22:19:30 +01:00
Felix Kopp
0026db4583
arch: introduce include convenience macro
2020-11-30 22:08:01 +01:00
Felix Kopp
f229c2ae86
serial: it's starting to kind of work
2020-11-30 05:07:23 +01:00
Felix Kopp
570f036752
sched: minor refactor
2020-11-30 02:26:17 +01:00
Felix Kopp
e690a6824e
io: add I/O thread base
2020-11-29 23:23:37 +01:00
Felix Kopp
dbda35d82a
serial: prepare for I/O thread integration
2020-11-29 23:22:44 +01:00
Felix Kopp
2a899210c6
sched: add IOWAIT process state
2020-11-29 22:02:09 +01:00
Felix Kopp
55ee84b99b
sched: rework irq pend requests
2020-11-29 22:01:35 +01:00
Felix Kopp
523f6f4bb2
serial: forgot to commit some shit
2020-11-29 20:38:16 +01:00
Felix Kopp
a25ab04b0d
sched: implement process initialization
2020-11-29 20:33:18 +01:00
Felix Kopp
f49a6643d7
sched: major refactor
2020-11-29 20:23:27 +01:00
Felix Kopp
f4e321932f
serial: switch to DMA buffers
2020-11-29 20:19:52 +01:00
Felix Kopp
38046b25e5
Add errno constants
2020-11-28 03:32:31 +01:00
Felix Kopp
113ca47809
Implement rudimentary printk
2020-11-27 00:13:56 +01:00
Felix Kopp
7493c7a5ae
SERIAL FINALLY FUCKING WORKS OMG
2020-11-26 19:20:06 +01:00
Felix Kopp
ba9565a1b4
Clean up and get rid of some unnecessary stuff
2020-11-26 19:19:04 +01:00
Felix Kopp
7997d6ca07
The amount of bs code I write is fascinating
2020-11-24 23:46:33 +01:00
Felix Kopp
ed60b267a0
Finish serial init code
...
The first major hurdle has been overcome, though several more are
still awaiting me. Next up is IRQ handling.
2020-11-19 01:44:51 +01:00
Felix Kopp
1eeaf1dc28
Add PIO register definitions
...
Looks like I forgot those.
2020-11-18 03:47:04 +01:00
Felix Kopp
6a141b914b
Add register definitions for UART
...
This is the first of a series of commits to get a
hardware serial console up and running on the
Arduino Due. When I have that, I can actually
do some real debugging.
2020-11-18 02:26:16 +01:00
Felix Kopp
2df4efdf2a
Implement core serial routines
...
This is just a rough baseline for the higher-level
serial handling code and will probably change
within the next couple of commits.
2020-11-14 04:04:59 +01:00
Felix Kopp
0c24e3fde8
Fix typos and possible typecast bugs
2020-11-14 04:01:50 +01:00
Felix Kopp
1fa5d159a7
Simplify ringbuf indexing
...
This whole pointer arithmetic things might be all
fancy and stuff, but the diff should make it clear
that it is just unnecessarily complicated.
2020-10-30 18:07:29 +01:00
Felix Kopp
c031bf8611
Add ringbuf_size API
...
This might become useful if we want to dynamically
allocate an array that stores the entire queue.
2020-10-30 17:51:19 +01:00
Felix Kopp
d37e139ddd
Bugfix for list_init macro
2020-10-14 17:56:43 +02:00
Felix Kopp
ef2142c551
Create serial interface definitions
2020-10-14 17:56:11 +02:00
Felix Kopp
32afd10e99
Minor macro refactor
2020-10-14 11:47:42 +00:00
Felix Kopp
745623afb2
I am stoopid (and fixed some bugs)
2020-10-14 11:29:02 +00:00
Felix Kopp
0ded77495b
Add ring buffer implementation
...
The next big step is to implement some sort of serial console in order
to get some debug output on real hardware (unfortunately, I don't have
a hardware debugger).
2020-10-12 19:07:03 +02:00
Felix Kopp
bdf3f008d7
Final refactor, initialize allocator on init
2020-10-12 17:54:07 +02:00
Felix Kopp
608cebb4a4
Fix another pile of stupid bugs
2020-10-12 12:45:13 +02:00
Felix Kopp
3929b55e85
Fix list iteration bug
2020-10-12 11:24:48 +02:00
Felix Kopp
0e725b795d
Move license comment to the bottom
2020-10-11 19:35:30 +02:00
Felix Kopp
9dfce93c57
Add memory allocator implementation
2020-10-11 19:08:20 +02:00
Felix Kopp
1541bf8bbb
Remove dup definition
2020-10-11 19:07:53 +02:00
Felix Kopp
3ed7e95c17
Add circular linked list implementation
2020-10-11 19:07:36 +02:00
Felix Kopp
a8574dc17a
Rename to IRQ
2020-10-10 23:15:47 +02:00
Felix Kopp
a4e244e7fc
Fix some minor errors
2020-10-10 23:11:21 +02:00
Felix Kopp
959b36215e
Cleanup 3
2020-06-17 20:42:41 +02:00
Felix Kopp
424f5a902f
Cleanup 2
2020-06-17 20:40:22 +02:00
Felix Kopp
7a6c34b14e
Implement ctype.h
2020-06-14 10:43:06 +02:00
Felix Kopp
30096ab5b2
Tidy up
2020-06-14 05:51:01 +02:00
Felix Kopp
205f7ee342
Add some more register shit
2020-06-12 19:34:14 +02:00
Felix Kopp
3c8f3ca84b
Fix register stack order
2020-06-12 17:19:49 +02:00
Felix Kopp
ff8b5098cd
Enable SysTick on sched_init
2020-06-12 12:29:27 +02:00
Felix Kopp
c19e131f20
Add base stuff for preemptive scheduler
2020-06-12 11:49:20 +02:00
Felix Kopp
466dcb81a6
Add some compiler flag macros for convenience
2020-06-12 03:43:11 +02:00
Felix Kopp
4f64116066
Remove obsolete include
2020-06-12 01:14:21 +02:00
Felix Kopp
2f3fe766f5
Shit, that was the wrong string.h
2020-06-12 00:33:33 +02:00
Felix Kopp
9817db1841
Add startup code for sam3x8e
2020-06-12 00:03:16 +02:00
Felix Kopp
dfd949efdd
Add stupid string.h implementation
2020-06-12 00:01:15 +02:00