If both kernels are available at boot time, and only 1 CPU is active with less than a total of 4GB RAM, then choose the non-smp kernel. Maybe fix ext2 code to handle multiple open FSs at once Think about UFS/HFS/ISO9660 Fix 'palo' to know how to update Use BOOT_BLOCK_INPUT instead of BOOT_INPUT to allow addressing larger media. A test suite would be nice Test 2k block size Make the interactive stuff nicer Here's a little algorithm for determining what type of firmware we have #define SET_PLATFORM_ID( Platform_ID ) { \ long status; \ pdc_pat_cell_info_rtn_block_t info; \ status = pdc_call( PDC_PAT_CELL, PDC_PAT_CELL_GET_INFO, \ & info, NULL, 0L, 0L, -1L); \ switch (status) { \ case PDC_RET_NE_PROC: \ Platform_ID = PLATFORM_PA; \ break; \ case PDC_RET_NE_OPT: \ Platform_ID = PLATFORM_PAT; \ break; \ case PDC_RET_INV_ARG: \ Platform_ID = PLATFORM_PAT_CELL; \ break; \ default: \ Platform_ID = PLATFORM_UNRECOGNIZED; \ } \ }