feat(panic): FUCK [panic] mode=strict|fallback + realtest image variant
- UTSM panic_full returns in fallback mode (logs [PANIC:FALLBACK] + code + hit count); panic_halt keeps always-halt sites (CPU exception, VMM-E11 LA57, VMM-E15 DSK jump, UTSM-E42 test hook). Call sites given safe continuations. - Mode passed to DSK/FirstInit/login/desktop via DSK_BOOT_FLAG_PANIC_FALLBACK; DKM kernel_api.panic / kern.log.panic return to driver; ext4 fatal aborts the op via setjmp/longjmp and DSK falls back to FAT32 ESP. - build.ps1/Makefile: dev=strict, release=fallback, new realtest (release options + strict); default -Variant all; serialized iso packing under -j. - Fix '*/' inside comments (dkm.h, kernel_api.h, bus.c) that broke the build. - Includes pending work: dkm_bus service bus, mt7920/wlan drivers, desktop files/startmenu/prank, pe-tools, diskinfo, docs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1098,10 +1098,12 @@ int driver_init(const struct dkm_kernel_api *api,
|
||||
dkm_delay_ms(20);
|
||||
}
|
||||
}
|
||||
dkm_delay_ms(100); /* 端口稳定 */
|
||||
dkm_delay_ms(1500); /* 控制器复位后 U 盘重新连接 */
|
||||
|
||||
/* 扫描端口,枚举 MSC */
|
||||
/* 扫描端口,枚举 MSC。第一遍没有就再等一次。 */
|
||||
g_msc.ready = 0;
|
||||
for (int pass = 0; pass < 2 && !g_msc.ready; pass++) {
|
||||
if (pass == 1) dkm_delay_ms(1500);
|
||||
for (u32 p = 0; p < g_nports; p++) {
|
||||
u32 po = g_caplen + EHCI_OP_PORTSC + p * EHCI_PORT_STRIDE;
|
||||
u32 ps = mmio_read32(po);
|
||||
@@ -1138,6 +1140,7 @@ int driver_init(const struct dkm_kernel_api *api,
|
||||
log_hex("[ehci] MSC device block_size=", blk);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 注册 block provider */
|
||||
if (g_msc.ready && api->block && api->block->register_device) {
|
||||
|
||||
Reference in New Issue
Block a user