13 Commits

Author SHA1 Message Date
Wolfvak
31389687ab event model seems to work
refactors all the ugly "pendingX" atomic operations into a single "Event" subsystem/interface thing with two operations

moves all existing code to use this instead

also changes the "bkpt" macro to also indicate unreachable code
2021-02-21 14:40:33 +01:00
Wolfvak
9ecb90a2ba make interrupt handlers more lazy, most processing is done in interruptible context now
- completely moved MCU interrupt handling outside of the critical section
- refactored a bit of the PXI code and command names
- merge the I2C read and write cmds to be one
- remove SET_VMODE cmd, now it's always initialized to BGR565 on boot and to RGB565 on firmlaunch
- atomic-ize more stuff
2021-02-21 14:40:33 +01:00
Wolfvak
a6e20c641a initial mcu events implementation
- backlight power control is reinstated but currently buggy, for some reason the __builtin_trap is tripped on GFX_powerOnBacklights and GFX_powerOffBacklights

- also refactored a bunch of other code pertaining to mcu and other hw init, moved the gpu init to a later point since lcd init now depends on mcu events
2021-02-21 14:40:32 +01:00
Wolfvak
929cc7fdcf better hints to reduce compiled size by a few kb
mostly just added static const to constant arrays/buffers
2020-07-23 13:46:42 -03:00
Wolfvak
30f0b004c2 fixed screen init, hopefully the last commmit
- properly performs gpu/backlight reset

- nukes vram so the initrd had to be moved to arm9 memory, and have its size (at least temporarily) limited to 256k
2020-07-18 20:25:34 -03:00
santiago
1e92163245 lazy fix for the screen init bug, hopefully 2020-05-09 16:24:40 -03:00
Wolfvak
a9624b6d81 fix a potential mcu bug 2019-10-03 17:04:35 -03:00
Wolfvak
d6c6f56526 fix compilation warnings due to unaligned packed structures in newer gcc 2019-09-29 19:53:27 +02:00
Wolfvak
07b2a2beb6 fix backwards compatibility with software that exclusively uses the old SPI interface
fix PXI acknowledgement bug that prevented older GM9 from booting
2019-09-29 19:53:27 +02:00
Wolfvak
a6734af45d licensing bs 2019-06-03 02:27:43 +02:00
Wolfvak
ad9a9bd5a0 - turn off the LCDs when the lid closes, and turn them back on when it's open
- reset LEDs on boot
- add code to set the notification LED
- add a PXI command to verify the NVRAM is actually online
- notify the ARM9 about the shell state through the HID thing
2019-06-03 02:27:43 +02:00
Wolfvak
f5a877d00b - implemented MCU stuff and its interrupts, thanks @profi200 for the info
- moved brightness control to the ARM11
- moved HID updating to the ARM11
- moved screen init from ARM9 to the ARM11, always performed unconditionally
- removed unnecessary SCREENINIT and SET_BRIGHTNESS pxi commands

and other stuff I probably forgot about
2019-06-03 02:27:41 +02:00
Wolfvak
2f86686388 renamed most low level functions and other stuff to fit with the current theme
- added initial SCU twiddling
- added very untested and unusable SMP code
- fixed race condition that happened on boot
- added initial MMU code (just super basic identity mapping, no caching set up or anything)
- enabled some of the fancier ARMv6 features
- reorganized ARM11 files into their own folders
- possibly more stuff I'm forgetting about
2019-06-03 02:27:41 +02:00