From 2804ceee4ce65d49e9d52d0ed817317c0ac9efdc Mon Sep 17 00:00:00 2001 From: Minep Date: Thu, 10 Nov 2022 13:52:47 +0000 Subject: [PATCH] refactor: more compact log message --- lunaix-os/hal/acpi/acpi.c | 3 +++ lunaix-os/hal/ahci/ahci.c | 2 +- lunaix-os/hal/pci.c | 7 +++++++ lunaix-os/kernel/block/blkpart_gpt.c | 9 +++++++++ lunaix-os/kernel/block/block.c | 2 +- lunaix-os/kernel/kprintf.c | 24 ++++-------------------- lunaix-os/kernel/peripheral/ps2kbd.c | 12 ++++++------ lunaix-os/kernel/peripheral/serial.c | 6 +++--- lunaix-os/kernel/proc0.c | 10 ++++++++++ lunaix-os/kernel/time/timer.c | 3 ++- lunaix-os/kernel/tty/lxconsole.c | 4 ++++ 11 files changed, 50 insertions(+), 32 deletions(-) diff --git a/lunaix-os/hal/acpi/acpi.c b/lunaix-os/hal/acpi/acpi.c index 3f8a25f..67f5ade 100644 --- a/lunaix-os/hal/acpi/acpi.c +++ b/lunaix-os/hal/acpi/acpi.c @@ -40,13 +40,16 @@ acpi_init(multiboot_info_t* mb_info) (acpi_sdthdr_t*)((acpi_apic_t**)&(rsdt->entry))[i]; switch (sdthdr->signature) { case ACPI_MADT_SIG: + kprintf(KINFO "MADT: %p\n", sdthdr); madt_parse((acpi_madt_t*)sdthdr, ctx); break; case ACPI_FADT_SIG: // FADT just a plain structure, no need to parse. + kprintf(KINFO "FADT: %p\n", sdthdr); ctx->fadt = *(acpi_fadt_t*)sdthdr; break; case ACPI_MCFG_SIG: + kprintf(KINFO "MCFG: %p\n", sdthdr); mcfg_parse(sdthdr, ctx); break; default: diff --git a/lunaix-os/hal/ahci/ahci.c b/lunaix-os/hal/ahci/ahci.c index 21ccf56..f6f2718 100644 --- a/lunaix-os/hal/ahci/ahci.c +++ b/lunaix-os/hal/ahci/ahci.c @@ -190,7 +190,7 @@ ahci_init() } struct hba_device* hbadev = port->device; - kprintf(KINFO "sata%d: %s, sector_size=%dB, sector=%d\n", + kprintf(KINFO "sata%d: %s, blk_size=%d, blk=0..%d\n", i, hbadev->model, hbadev->block_size, diff --git a/lunaix-os/hal/pci.c b/lunaix-os/hal/pci.c index 04c7575..229335c 100644 --- a/lunaix-os/hal/pci.c +++ b/lunaix-os/hal/pci.c @@ -62,6 +62,13 @@ pci_probe_device(int bus, int dev, int funct) .device_info = reg1, .intr_info = intr }; + kprintf("dev.%d:%d:%d %x:%x\n", + bus, + dev, + funct, + PCI_DEV_VENDOR(reg1), + PCI_DEV_DEVID(reg1)); + pci_probe_msi_info(device); pci_probe_bar_info(device); diff --git a/lunaix-os/kernel/block/blkpart_gpt.c b/lunaix-os/kernel/block/blkpart_gpt.c index 1a087af..22bb48b 100644 --- a/lunaix-os/kernel/block/blkpart_gpt.c +++ b/lunaix-os/kernel/block/blkpart_gpt.c @@ -3,6 +3,7 @@ #include #include #include +#include #include @@ -15,6 +16,8 @@ static u8_t NULL_GUID[16] = { 0 }; +LOG_MODULE("GPT") + int blkpart_parse(struct device* master, struct gpt_header* header) { @@ -46,6 +49,11 @@ blkpart_parse(struct device* master, struct gpt_header* header) u64_t slba_local = (ent->start_lba * GPT_BLKSIZE) / bdev->blk_size; u64_t elba_local = (ent->end_lba * GPT_BLKSIZE) / (u64_t)bdev->blk_size; + kprintf("%s: guid part#%d: %d..%d\n", + bdev->bdev_id, + i, + (u32_t)slba_local, + (u32_t)elba_local); // we ignore the partition name, as it rarely used. blk_mount_part(bdev, NULL, i, slba_local, elba_local); } @@ -73,6 +81,7 @@ blkpart_probegpt(struct device* master) u32_t crc = gpt_hdr->hdr_cksum; gpt_hdr->hdr_cksum = 0; if (crc32b((void*)gpt_hdr, sizeof(*gpt_hdr)) != crc) { + kprintf(KWARN "checksum failed\n"); // FUTURE check the backup header return EINVAL; } diff --git a/lunaix-os/kernel/block/block.c b/lunaix-os/kernel/block/block.c index aa6e52e..dbdb95a 100644 --- a/lunaix-os/kernel/block/block.c +++ b/lunaix-os/kernel/block/block.c @@ -164,7 +164,7 @@ block_mount(struct block_dev* bdev, devfs_exporter fs_export) errno = blkpart_probegpt(bdev->dev); if (errno < 0) { - kprintf(KERROR "Corrupted partition table. (%d)", errno); + kprintf(KERROR "Fail to parse partition table (%d)\n", errno); } else if (!errno) { // TODO try other PT parser... } diff --git a/lunaix-os/kernel/kprintf.c b/lunaix-os/kernel/kprintf.c index 0da00ff..a9a256d 100644 --- a/lunaix-os/kernel/kprintf.c +++ b/lunaix-os/kernel/kprintf.c @@ -21,20 +21,11 @@ __kprintf(const char* component, const char* fmt, va_list args) } switch (log_level) { - case '0': - ksnprintf(expanded_fmt, - MAX_XFMT_SIZE, - "[%s] (%s) %s", - "INFO", - component, - fmt); - break; case '1': // tty_set_theme(VGA_COLOR_BROWN, current_theme >> 12); ksnprintf(expanded_fmt, MAX_XFMT_SIZE, - "\033[6;0m[%s] (%s) %s\033[39;49m", - "WARN", + "\033[6;0mW %s: %s\033[39;49m", component, fmt); break; @@ -42,8 +33,7 @@ __kprintf(const char* component, const char* fmt, va_list args) // tty_set_theme(VGA_COLOR_LIGHT_RED, current_theme >> 12); ksnprintf(expanded_fmt, MAX_XFMT_SIZE, - "\033[12;0m[%s] (%s) %s\033[39;49m", - "EROR", + "\033[12;0mE %s: %s\033[39;49m", component, fmt); break; @@ -51,18 +41,12 @@ __kprintf(const char* component, const char* fmt, va_list args) // tty_set_theme(VGA_COLOR_LIGHT_BLUE, current_theme >> 12); ksnprintf(expanded_fmt, MAX_XFMT_SIZE, - "\033[9;0m[%s] (%s) %s\033[39;49m", - "DEBG", + "\033[9;0mD %s: %s\033[39;49m", component, fmt); break; default: - ksnprintf(expanded_fmt, - MAX_XFMT_SIZE, - "[%s] (%s) %s", - "LOG", - component, - fmt); + ksnprintf(expanded_fmt, MAX_XFMT_SIZE, "- %s: %s", component, fmt); break; } diff --git a/lunaix-os/kernel/peripheral/ps2kbd.c b/lunaix-os/kernel/peripheral/ps2kbd.c index fbd7e75..83ad357 100644 --- a/lunaix-os/kernel/peripheral/ps2kbd.c +++ b/lunaix-os/kernel/peripheral/ps2kbd.c @@ -16,7 +16,7 @@ #define PS2_DEV_CMD_MAX_ATTEMPTS 5 -LOG_MODULE("PS2KBD"); +LOG_MODULE("i8042"); static struct ps2_cmd_queue cmd_q; static struct ps2_kbd_state kbd_state; @@ -139,13 +139,13 @@ ps2_kbd_init() * https://bochs.sourceforge.io/cgi-bin/lxr/source/bios/rombios32.c#L1314 */ if (!(acpi_ctx->fadt.boot_arch & IAPC_ARCH_8042)) { - kprintf(KERROR "i8042: not found\n"); + kprintf(KERROR "not found\n"); // FUTURE: Some alternative fallback on this? Check PCI bus for USB // controller instead? return; } } else { - kprintf(KWARN "i8042: outdated FADT used, assuming exists.\n"); + kprintf(KWARN "outdated FADT used, assuming exists.\n"); } char result; @@ -167,14 +167,14 @@ ps2_kbd_init() // 4、控制器自检 result = ps2_issue_cmd_wretry(PS2_CMD_SELFTEST, PS2_NO_ARG); if (result != PS2_RESULT_TEST_OK) { - kprintf(KWARN "Controller self-test failed. (%x)\n", result); + kprintf(KWARN "controller self-test failed. (%x)\n", result); // goto done; } // 5、设备自检(端口1自检,通常是我们的键盘) result = ps2_issue_cmd_wretry(PS2_CMD_SELFTEST_PORT1, PS2_NO_ARG); if (result != 0) { - kprintf(KERROR "Interface test on port 1 failed. (%x)\n", result); + kprintf(KERROR "interface test on port 1 failed. (%x)\n", result); // goto done; } @@ -424,7 +424,7 @@ ps2_issue_cmd_wretry(char cmd, uint16_t arg) c++; } if (c >= 5) { - kprintf(KWARN "Max attempt reached.\n"); + kprintf(KWARN "max attempt reached.\n"); } return r; } diff --git a/lunaix-os/kernel/peripheral/serial.c b/lunaix-os/kernel/peripheral/serial.c index c7145b8..5d3629c 100644 --- a/lunaix-os/kernel/peripheral/serial.c +++ b/lunaix-os/kernel/peripheral/serial.c @@ -3,7 +3,7 @@ #include #include -LOG_MODULE("COM") +LOG_MODULE("UART") void serial_init_port(uintptr_t port) @@ -27,13 +27,13 @@ serial_init_port(uintptr_t port) io_outb(COM_RRXTX(port), 0xaa); if (io_inb(COM_RRXTX(port)) != 0xaa) { - kprintf(KWARN "Port (%p) is faulty, use other instead.\n", port); + kprintf(KWARN "port.%p: faulty\n", port); return; } io_outb(COM_RCMODEM(port), 0xf); io_outb(COM_RIE(port), 0x1); - kprintf("Port (%p) ok\n", port); + kprintf("port.%p: ok\n", port); } void diff --git a/lunaix-os/kernel/proc0.c b/lunaix-os/kernel/proc0.c index 14e4862..54734f3 100644 --- a/lunaix-os/kernel/proc0.c +++ b/lunaix-os/kernel/proc0.c @@ -154,6 +154,8 @@ extern multiboot_info_t* _k_init_mb_info; /* k_init.c */ void init_platform() { + kprintf(KINFO "\033[11;0mLunaixOS \033[39;49m\n"); + // 锁定所有系统预留页(内存映射IO,ACPI之类的),并且进行1:1映射 lock_reserved_memory(); @@ -229,6 +231,10 @@ __do_reserved_memory(int unlock) size_t pg_num = CEIL(mmap.len_low, PG_SIZE_BITS); size_t j = 0; if (!unlock) { + kprintf("mem: freeze: %p..%p type=%x\n", + pa, + pa + pg_num * PG_SIZE, + mmap.type); for (; j < pg_num; j++) { uintptr_t _pa = pa + (j << PG_SIZE_BITS); if (_pa >= KERNEL_MM_BASE) { @@ -242,6 +248,10 @@ __do_reserved_memory(int unlock) // Save the progress for later unmapping. mmaps[i].len_low = j * PG_SIZE; } else { + kprintf("mem: reclaim: %p..%p type=%x\n", + pa, + pa + pg_num * PG_SIZE, + mmap.type); for (; j < pg_num; j++) { uintptr_t _pa = pa + (j << PG_SIZE_BITS); vmm_del_mapping(PD_REFERENCED, _pa); diff --git a/lunaix-os/kernel/time/timer.c b/lunaix-os/kernel/time/timer.c index bf99328..989256f 100644 --- a/lunaix-os/kernel/time/timer.c +++ b/lunaix-os/kernel/time/timer.c @@ -133,7 +133,8 @@ timer_init(uint32_t frequency) assert_msg(timer_ctx->base_frequency, "Fail to initialize timer (NOFREQ)"); - kprintf(KINFO "Base frequency: %u Hz\n", timer_ctx->base_frequency); + kprintf( + KINFO "hw: %u Hz; os: %u Hz\n", timer_ctx->base_frequency, frequency); timer_ctx->running_frequency = frequency; timer_ctx->tphz = timer_ctx->base_frequency / frequency; diff --git a/lunaix-os/kernel/tty/lxconsole.c b/lunaix-os/kernel/tty/lxconsole.c index ae5701b..31afa64 100644 --- a/lunaix-os/kernel/tty/lxconsole.c +++ b/lunaix-os/kernel/tty/lxconsole.c @@ -294,6 +294,10 @@ console_write(struct console* console, uint8_t* data, size_t size) console->wnd_start = rd_ptr; fbuf->flags |= FIFO_DIRTY; mutex_unlock(&fbuf->lock); + + if (!lx_console.flush_timer) { + console_flush(); + } } void -- 2.27.0