Hi Felix, On Sun, Jun 10, 2012 at 06:01:29PM +0200, Felix Fietkau wrote: > If it's just minor differences, the huge amount of code duplication is > probably a very bad idea. I'd rather see things unified, otherwise it's > way too easy for fixes done to one of the two to be lost on the other one. I agree, though I don't have any AR7 system at hand for testing (shouldn't be too difficult to find one) I see that this can work with by pre-compiler makro setting TEXT_BASE in the Platform file according to the chip-family selected in kernel's .config -- besides that everything could be probed in run-time.
> > - during boot, the kernel claims that 9192k are reserved, leaving only a
> > tiny
> > bit of memory to the user. This seems to be too much, the original
> > firmware
> > of the MP-202 (Linux version 2.4.21openrg-rmk1) only claims 3900k
> > reserved
> > during boot. Did Linux itself grow that much since 2.4? Or is there
> > something
> > wrong here?
> My guess is that the memory before the kernel image isn't marked as
> free. The load address is higher, so it marks more memory as reserved.
> AR7 could probably use a similar fix.
Thanks for that excellent hint. Applying the patch below gave me
Freeing prom memory: 5924k freed
Which is exactly the distance between the the end of the first page in memory
and the kernel's text-base.
Obviously, this can work similarly on many systems.
diff --git a/target/linux/ac49x/files/arch/mips/ac49x/memory.c
b/target/linux/ac49x/files/arch/mips/ac49x/memory.c
index c58832e..06f742c 100644
--- a/target/linux/ac49x/files/arch/mips/ac49x/memory.c
+++ b/target/linux/ac49x/files/arch/mips/ac49x/memory.c
@@ -67,5 +67,11 @@ void __init prom_meminit(void)
void __init prom_free_prom_memory(void)
{
- /* Nothing to free */
+/* adapted from arch/mips/txx9/generic/setup.c */
+ unsigned long saddr = PHYS_OFFSET + PAGE_SIZE;
+ unsigned long eaddr = __pa_symbol(&_text);
+
+ /* free memory between prom-record and kernel _text base */
+ if (saddr < eaddr)
+ free_init_pages("prom memory", saddr, eaddr);
}
pgpDfyyQqoJi0.pgp
Description: PGP signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
