Booting 2.3.48 (devel) kernel problems?
Michael Schmitz
schmitz at opal.biophys.uni-duesseldorf.de
Thu Mar 9 02:41:38 EST 2000
> >So the framebuffer got mapped from OF but not from BootX.
>
> I think it worked with OF because we inherit from OF SDR1 and, by luck,
> OF page tables are high enough in memory to not have been damaged by the
> kernel. When booting via BootX, that's not the case.
>
> We should not try to access the framebuffer from identify_machine() and
> MMU_Init() unless it was mapped with a BAT in head.S (for debugging
> purposes). In normal cases, it will get mapped via map_bootx_text called
> from setup_arch() and can be used beyond that point.
In his own words :-)
------------------------------------8<-----------------------------------
- make sure setting the display BAT in arch/ppc/mm/init.c (MMU_Init) is
commented out, this is a hack and need some alignement tricks to work in
all cases. It should already be in #if 0/#endif
- in arch/ppc/kernel/pmac_setup.c, comment out the content of the
function pmac_progress. (Or change pmac_init() so that it sets
ppc_md.progress to NULL, and set it to pmac_progress only
pmac_setup_arch()).
The problem is that pmac_progress will try to print to the framebuffer at
a time where it's not mapped (MMU_Init).
------------------------------------8<-----------------------------------
Or, in a diff:
--- arch/ppc/kernel/pmac_setup.c.org Wed Mar 8 16:41:53 2000
+++ arch/ppc/kernel/pmac_setup.c Wed Mar 8 16:41:12 2000
@@ -229,6 +229,10 @@
struct device_node *cpu;
int *fp;
+#ifdef CONFIG_BOOTX_TEXT
+ ppc_md.progress = pmac_progress;
+#endif
+
/* Set loops_per_sec to a half-way reasonable value,
for use until calibrate_delay gets called. */
cpu = find_type_devices("cpu");
@@ -687,7 +691,7 @@
ppc_ide_md.io_base = _IO_BASE; /* actually too early for this :-(
*/
#endif
#ifdef CONFIG_BOOTX_TEXT
- ppc_md.progress = pmac_progress;
+ ppc_md.progress = NULL;
#endif
if (ppc_md.progress) ppc_md.progress("pmac_init(): exit", 0);
Just unconfiguring BOOTX_TEXT would have done the same trick I guess.
Michael
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list