PCI 16x50 UART Controller, O2 Enablement (#39)
authorLunaixsky <lunaixsky@qq.com>
Sun, 21 Jul 2024 19:45:46 +0000 (20:45 +0100)
committerGitHub <noreply@github.com>
Sun, 21 Jul 2024 19:45:46 +0000 (20:45 +0100)
commitebb55b7e5f0b8f31328950ec383b77b208ffbb64
treea22382e0514003c753369c8b4c59df9927e04634
parent04f32c3e67120f8498cdcf7926bab88e4e405258
PCI 16x50 UART Controller, O2 Enablement (#39)

* add PCI 16x50 uart controller, refactor the 16x50 structure

* refactor the pci detection mechanism, allow custom compatibility
  check logic.

* fix bug in pci device definition binding where only bind once

* refactor the 16x50 controller structure, move pmio and mmio
  as separated component and does not need to couple with interface

* fix issue where x86:isrm_ivexalloc alloc duplicated interrupt vector

* change the signature of ioremap to return ptr_t instead of generic
  pointer

* fix issue in LunaConfig header export, where non string type being
  joined as a string type

* add config term for 16x50 controller.

* rework the usr/testp, allow user to specify serial interface

* usr/ls, add a slash after directory file name to distinguish

* add the implementation for iounmap

* refactor pci dev to use latest change in pci

* remove the out-dated, mask based compatibility check scheme

* rectify the issues with -O2 optimization

* refactor: allow Lunaix to compile with -O2 optimization
* add LConfig terms for PCI related features
* add LConfig terms for AHCI related features
* refactor the pci device code base with latest pci refactoring
* fix: fail to read bool type config term when the value of the
       term is False
* refactor: LConfig: allow omit the `LConfig` when doing include

* remove legacy file
47 files changed:
lunaix-os/LConfig
lunaix-os/arch/generic/includes/sys/pci_hba.h [deleted file]
lunaix-os/arch/x86/boot/x86_64/kremap64.c
lunaix-os/arch/x86/exceptions/intr_routines.c
lunaix-os/arch/x86/exceptions/isrm.c
lunaix-os/arch/x86/hal/LBuild
lunaix-os/arch/x86/hal/apic.c
lunaix-os/arch/x86/hal/ioapic.c
lunaix-os/arch/x86/hal/pci.c [moved from lunaix-os/arch/x86/includes/sys/pci_hba.h with 69% similarity]
lunaix-os/arch/x86/includes/sys/abi64.h
lunaix-os/hal/LConfig [new file with mode: 0644]
lunaix-os/hal/ahci/LBuild
lunaix-os/hal/ahci/LConfig [new file with mode: 0644]
lunaix-os/hal/ahci/ahci.c
lunaix-os/hal/ahci/ahci_pci.c
lunaix-os/hal/bus/LBuild
lunaix-os/hal/bus/LConfig [new file with mode: 0644]
lunaix-os/hal/bus/pci.c
lunaix-os/hal/char/LConfig [new file with mode: 0644]
lunaix-os/hal/char/serial.c
lunaix-os/hal/char/uart/16550_pmio.c [deleted file]
lunaix-os/hal/char/uart/16x50.h [moved from lunaix-os/hal/char/uart/16550.h with 84% similarity]
lunaix-os/hal/char/uart/16x50_base.c [moved from lunaix-os/hal/char/uart/16550_base.c with 84% similarity]
lunaix-os/hal/char/uart/16x50_isa.c [new file with mode: 0644]
lunaix-os/hal/char/uart/16x50_mmio.c [new file with mode: 0644]
lunaix-os/hal/char/uart/16x50_pci.c [new file with mode: 0644]
lunaix-os/hal/char/uart/16x50_pmio.c [new file with mode: 0644]
lunaix-os/hal/char/uart/LBuild
lunaix-os/hal/char/uart/LConfig [new file with mode: 0644]
lunaix-os/hal/gfxa/vga/vga_pci.c
lunaix-os/includes/hal/pci.h
lunaix-os/includes/lunaix/kpreempt.h
lunaix-os/includes/lunaix/mm/mmio.h
lunaix-os/includes/lunaix/mm/page.h
lunaix-os/kernel/LConfig
lunaix-os/kernel/kinit.c
lunaix-os/kernel/mm/mmio.c
lunaix-os/live_debug.sh
lunaix-os/makeinc/toolchain.mkinc
lunaix-os/scripts/build-tools/integration/config_io.py
lunaix-os/scripts/build-tools/integration/render_ishell.py
lunaix-os/scripts/build-tools/lcfg/builtins.py
lunaix-os/scripts/qemu.py
lunaix-os/scripts/qemus/qemu_x86_dev.json
lunaix-os/usr/LBuild
lunaix-os/usr/ls.c
lunaix-os/usr/testp.c