Hi,

[...]
> To fix both problems, maybe we should just use a fixed memory location
> to pass this temporary data from uncompress to the kernel.  We've had a
> similar problem on DaVinci recently and a proposal has been made (and
> tested) to use memory just below the page tables[3].)

Essentially both of these approaches (internal scratch register and
fixed address) implement a weird back-channel communication scheme
between the decompresser and the debug macros.

A more elegant solution may be as follows:
    - pass machine_arch_type as an argument into addruart.
    - move the uart base lookup logic to addruart using macros similar
      to DEBUG_LL_*, except that these expand to assembly code this
      time.
    - reuse these debug-macros in uncompress.h and implement putc() and
      flush() using addruart(), senduart(), etc.

This way, both the decompresser and the kernel debug macros end up using
machine_arch_type to get to the right debug uart, without resorting to
underhand back-channel tricks.

Any thoughts?

-- Cyril.
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to