I have other things to do so I won't be able to finish today. In case someone wants to work on this over the weekend, attached is a patch of what I have so far. It implements the example bi_rec's emailed before for the ev64260 board. Feel free to use it or do a better job. Comments: 1) I added 2 new routines to arch/ppc/kernel/setup.c: - find_bi_rec() searches that level of bi_rec's for the specified tag (i.e., it does not scan nested ones) - find_bi_rec_dev() searches that level for a BI_DEVICE bi_rec that has bi_rec's nested inside it with the specified BI_DEV_TYPE and BI_DEV_ID. It returns a ptr to the first bi_rec inside that BI_DEVICE bi_rec that matches. Is there a better place than setup.c for these routines? 2) Each routine takes a bi_rec as a starting point so you can use the same routine by simply adding bi_rec->size to your bi_rec ptr that was returned and call that routine again. 3) I didn't bother changing parse_bootinfo() to use find_bi_rec() because there was no point. 4) I modified arch/ppc/boot/common/misc-simple.c:decompress_kernel() to call add_extra_bi_recs(). A stub for that routine is in arch/ppc/boot/simple/bi_rec-stub.c for all boards excepts ones with CONFIG_GT64260 defined (in which case, the routine is in arch/ppc/boot/simple/bi_rec-gt64260.c). As others want to add bi_rec's in the linuxppc bootloader, they can make their own version of that routine. 4) I don't have hardware so none of this code has been tested. Mark