[U-Boot] Strange / Unreadable console output

Markus Hubig mhubig at imko.de
Tue Aug 14 17:11:15 CEST 2012


On Tue, Aug 14, 2012 at 02:03:55PM +0200, Andreas Bießmann wrote:
> On 14.08.2012 11:08, Markus Hubig wrote:
> > On Tue, Aug 14, 2012 at 08:22:11AM +0200, Andreas Bießmann wrote:
> >> On 27.07.12 11:16, Markus Hubig wrote:

<snipp>

> >>> Has anyone an ideea how to fix this? Or what's the cause of it? Is it even
> >>> related to u-boot or is it something at91bootstrap is doing wrong?
> >>
> >> can you please check http://patchwork.ozlabs.org/patch/107896/
> >>
> >> It seems this patch was set to 'Accepted' but never applied to the
> >> master repository. Unfortunately this got lost in nirvana end of last
> >> year. I will apply it in any case but can you please check if it fixes
> >> your problem?
> > 
> > Unfortunately not ... but it dosen't do any harm.
> 
> How sad!
> 
> I wonder if this has something to do with the ominous PC9. It is
> possible that this PC9 switches some vital element e.g. power supply,
> 'output enable' of UART level shifter or something else which needs some
> settling. Have you tried adding some delay in between setting this pin
> and activating the serial port output pins?

Hmm no, good idea. I tryed this in board_early_init_f(), but again with no
console output at all ...

| int board_early_init_f(void)
| {
| 	struct at91_pmc *pmc = (struct at91_pmc *)ATMEL_BASE_PMC;
| 
| 	/* Enable clocks for all PIOs */
| 	writel((1 << ATMEL_ID_PIOA) | (1 << ATMEL_ID_PIOB) |
| 		(1 << ATMEL_ID_PIOC), &pmc->pcer);
| 
| 	/* Enable the serial interface */
| 	at91_set_gpio_output(AT91_PIN_PC9, 1);
| 	mdelay(1000);
| 	at91_seriald_hw_init();
| 
| 	return 0;
| }

> Did you investigate the PCB? Which device is directly behind the DB9
> connector? Can you find a datasheet for that device and check if it has
> some power saving features? Can you check if these power saving features
> switched with the PC9? Did taskit respond to your request for detailed
> information?

Problem is, I don't have the circuit diagrams and taskit didn't respond
yet ...
 
> Another possible reason can be the fact that you enable the output pins
> after serial port is enabled (serial_init runs way before board_init).

This is what I think too! But board_early_init_f() is called befor
serial_init() so this would be the place to put this, but I don't
unterstand why the

| at91_set_gpio_output(AT91_PIN_PC9, 1);

command is not working in board_early_init_f() ...

I even put this into serial_init() but again with no luck ...

> Therefore your output is put into the TX register but I don't know what
> happens then. Eventually the output is delayed until the output pins are
> enabled in conjunction with the 'SYS' clock. Maybe the TX logic is
> happily shifting the bits into nirvana until you switch on the output
> pins. In conjunction with the PC9 thing this could be your problem.

I'll wait what taskit says, maybe this will shine some light on this issue.

Cheers, Markus


More information about the U-Boot mailing list