mirror of
https://github.com/subhobhai943/SUB-OS.git
synced 2026-10-25 16:52:29 +00:00
feat(arch): Add armv8i (32-bit ARM/AArch32) architecture & complete TUI configurator
- Support ARMv8i / ARM32 (AArch32) baremetal target with arm-linux-gnueabihf toolchain - Implement ARMv8i boot entry point, banked exception mode stacks (IRQ, ABT, UND, SVC) - Implement 8 exception vectors, GICv2 distributor/CPU interface, CP15 Generic Timer (100 Hz), flat Section MMU - Support PL011 UART for early console & interactive LazyBox TTY input - Update Makefile with make armv8i_defconfig and automated cross-compilation - Update scripts/kconfig/menuconfig.py with dedicated armv8i options
This commit is contained in:
1 parent
70d5925b16
commit
7b646c8cc4
30 files changed
+964
-24
No files matched your search
@@ -258,4 +258,28 @@ void kernel_main_aarch64(void) {
|
||||
|
||||
subos_modular_core_boot();
|
||||
}
|
||||
#elif defined(__arm__) || defined(__armv8i__)
|
||||
void kernel_main_armv8i(void) {
|
||||
arch_early_init();
|
||||
printk_init();
|
||||
|
||||
printk(ANSI_BRIGHT_CYAN "=================================================================\n" ANSI_RESET);
|
||||
printk(ANSI_BRIGHT_CYAN " SUB-OS 32-Bit [%s] Modular Monolithic Kernel %s\n" ANSI_RESET, arch_get_name(), kernel_get_version());
|
||||
printk(ANSI_BRIGHT_CYAN "=================================================================\n\n" ANSI_RESET);
|
||||
|
||||
init_early("root=/dev/vda console=ttyAMA0 init=/bin/lazybox quiet");
|
||||
|
||||
printk(KERN_INFO "[1/14] Initializing ARMv8i CPU, GICv2, Generic Timer & MMU... ");
|
||||
arch_init();
|
||||
printk(ANSI_BRIGHT_GREEN "OK\n" ANSI_RESET);
|
||||
|
||||
printk(KERN_INFO "[2/14] Initializing Physical PMM, Dynamic Heap & SLAB Cache... ");
|
||||
pmm_init(NULL, 0);
|
||||
heap_init();
|
||||
slab_init();
|
||||
vma_init();
|
||||
printk(ANSI_BRIGHT_GREEN "OK\n" ANSI_RESET);
|
||||
|
||||
subos_modular_core_boot();
|
||||
}
|
||||
#endif
|
||||
+2
-2
@@ -45,8 +45,8 @@ int vprintk(const char* fmt, va_list args) {
|
||||
// 1. Output to active TTY console
|
||||
tty_write(display_ptr, (size_t)len);
|
||||
|
||||
// 2. Output to serial console (COM1 on x86, PL011 on AArch64)
|
||||
#if defined(__aarch64__)
|
||||
// 2. Output to serial console (COM1 on x86, PL011 on ARM/AArch64)
|
||||
#if defined(__aarch64__) || defined(__arm__) || defined(__armv8i__)
|
||||
extern void uart_pl011_putc(char c);
|
||||
for (int i = 0; i < len; i++) {
|
||||
uart_pl011_putc(display_ptr[i]);
|
||||
|
||||
Reference in new issue
Block a user