The two options I see are: either modify the E820 code to make it usable without the assumption that malloc is avalable
Or add a simplified version for early boot. You only need to find one entry and get one value from it, this should be doable with all state on the stack.
Modifying the e820 code isn't really possible I think, it also creates the e820 table for the OS, which must be stored somewhere. So this is hardly doable without working malloc.