On 06/22/2010 09:53 AM, Chuck Meade wrote:
Sure.  Go to opensource.freescale.com/firmware and download (for your
MPC8358)
the 8360 soft UART mode microcode patch.  You will need to know if
your CPU
is a 2.0 or 2.1 silicon, since there is a different microcode patch
for each.

Then in the kernel config I believe I included CONFIG_FW_LOADER and
CONFIG_HOTPLUG
(one of those may have autoselected the other).

Make sure in your ucc_uart.c driver that soft uart mode is enabled.

At boot time, the driver will kick off a 10 second timer that will expect
the microcode patch to be loaded before the end of that 10 secs.

Very early in my boot sequence, I have a startup script send the
microcode patch
file to the driver through the firmware-loading sysfs entry.  But you
need to
be aware that the UCC number in the sysfs path will be offset by one.
Since you
are using UCC3, you should use a '2' in the path as shown below.  This
sequence
worked for me (I changed the number for you to '2' in my command
sequence, since
I use a different UCC):

    echo 1>   /sys/class/firmware/fsl-ucc-uart2/loading
    cat /root/fsl_qe_ucode_uart_8360_21.bin>
/sys/class/firmware/fsl-ucc-uart2/data
    echo 0>   /sys/class/firmware/fsl-ucc-uart2/loading

Note that the above presupposes you are using the file for silicon 2.1.
Also presupposes that you have put the microcode under your rootfs
/root directory.

Thanks, I'll give this a try.  When I download the firmware this way,
do I need to follow the directions in
   Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt

I did not do that, and I have it running here.  I will say though that I
hardcoded the driver to run in soft UART mode.  You will need to at least
add the appropriate line to your dts to get the driver to operate in
Soft UART mode.

I hardcoded mine because I had to backport this UCC UART driver to an older
Linux kernel, and that kernel was from before dts existed.

Add whatever you need to your dts to make it run in soft UART mode and get
the firmware loaded.  Use two different BRGs for tx and rx.  Make sure your
BRG choice is valid for your UCC3.

I believe that the UCC UART support has not had too much use so far, but
I do have it working (in that older kernel after backporting).

I've done all this but sadly the behaviour is the same :-(

Any ideas what I might be missing?

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to