Where is initial console initialized ?

4 messages, 2 authors, 2007-06-01 · open the first message on its own page

Where is initial console initialized ?

From: Daniel Schnell <hidden>
Date: 2007-05-31 13:42:14

Hi,
=20
I am trying to bring up 2.6.20.3 on a MPC5200B based custom board. This
Kernel is based on the Phytec phyCore MPC5200B Mini BSP kernel and
adapted to my board.
So far I have troubles to get console output working when booting Linux.
Uboot console output is fine. Linux begins to run (I can set breakpoints
with the BDI2000 in the early initialization code) so I probably have a
misconfiguration of the console output inside the fdt.

The major difference between the Phytec phyCore 5200B mini fdt and mine
is that we use PSC1 instead of PSC3/6 for serial. Accordingly I changed
the fdt (or dts) values.

To get some more insights, I would like to know, in which Linux function
the console output is initialised ?


See the relevant outputs attached:


=3D=3D=3D=3D=3D=3D=3D=3D=3D
## Booting image at 00500000 ...
   Image Name:   Linux-2.6.20-rt3-v38c
   Created:      2007-05-30  13:10:27 UTC
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    970278 Bytes =3D 947.5 kB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
(no further output)
=3D=3D=3D=3D=3D=3D=3D=3D=3D



If I dump the flat device tree inside uboot, I get the following
entries:=20

=3D=3D=3D=3D=3D=3D=3D=3D=3D
   Booting using flat device tree at 0x400000
 {
    model =3D "v38c";
    compatible =3D [76 33 38 63 00 6d 70 63 35 32 30 30 62 00 6d 70 63 =
35
32 78 78 00];
    #address-cells =3D <1>;
    #size-cells =3D <1>;
    cpus {
        #cpus =3D <1>;
        #address-cells =3D <1>;
        #size-cells =3D <0>;
        PowerPC,5200@0 {
            device_type =3D "cpu";
            reg =3D <0>;
            d-cache-line-size =3D <20>;
            i-cache-line-size =3D <20>;
            d-cache-size =3D <4000>;
            i-cache-size =3D <4000>;
            timebase-frequency =3D <1f78a40>;
            bus-frequency =3D <7de2900>;
            clock-frequency =3D <179a7b00>;
            32-bit;
        };
    };
    memory {
        device_type =3D "memory";
        reg =3D <8>;
    };
    soc5200@f0000000 {
        #interrupt-cells =3D <3>;
        device_type =3D "soc";
        ranges =3D [00 00 00 00 f0 00 00 00 f0 01 00 00];
        reg =3D <8>;
        bus-frequency =3D <3ef1480>;
        cdm@200 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 63 64 6d 00 6d 70
63 35 32 78 78 2d 63 64 6d 00];
            reg =3D <8>;
        };
        pic@500 {
            linux,phandle =3D <500>;
            interrupt-controller;
            #interrupt-cells =3D <3>;
            device_type =3D "interrupt-controller";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 70 69 63 00 6d 70
63 35 32 78 78 2d 70 69 63 00];
            reg =3D <8>;
            built-in;
        };
        gpt@600 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 09 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@610 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 0a 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@620 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 0b 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@630 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 0c 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@640 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 0d 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@650 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 0e 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@660 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 0f 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@670 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 10 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        rtc@800 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 72 74 63 00 6d 70
63 35 32 78 78 2d 72 74 63 00];
            device_type =3D "rtc";
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 05 00 00 00 00 00 00 00
01 00 00 00 06 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        mscan@900 {
            device_type =3D "mscan";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 6d 73 63 61 6e 00
6d 70 63 35 32 78 78 2d 6d 73 63 61 6e 00];
            interrupts =3D [00 00 00 02 00 00 00 11 00 00 00 00];
            interrupt-parent =3D <500>;
            reg =3D <8>;
        };
        mscan@980 {
            device_type =3D "mscan";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 6d 73 63 61 6e 00
6d 70 63 35 32 78 78 2d 6d 73 63 61 6e 00];
            interrupts =3D [00 00 00 02 00 00 00 12 00 00 00 00];
            interrupt-parent =3D <500>;
            reg =3D <8>;
        };
        gpio@b00 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 69 6f 00 6d
70 63 35 32 78 78 2d 67 70 69 6f 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 07 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpio-wkup@b00 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 69 6f 2d 77
6b 75 70 00 6d 70 63 35 32 78 78 2d 67 70 69 6f 2d 77 6b 75 70 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 01 00 00 00 08 00 00 00 00 00 00 00
00 00 00 00 03 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        pci@0d00 {
            #interrupt-cells =3D <1>;
            #size-cells =3D <2>;
            #address-cells =3D <3>;
            device_type =3D "pci";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 70 63 69 00 6d 70
63 35 32 78 78 2d 70 63 69 00];
            reg =3D <8>;
            interrupt-map-mask =3D [00 00 f8 00 00 00 00 00 00 00 00 00 =
00
00 00 07];
            interrupt-map =3D [00 00 c0 00 00 00 00 00 00 00 00 00 00 00
00 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 c0 00 00 00
00 00 00 00 00 00 00 00 00 02 00 00 05 00 00 00 00 01 00 00 00 01 00 00
00 03 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 05 00 00 00
00 01 00 00 00 02 00 00 00 03 00 00 c0 00 00 00 00 00 00 00 00 00 00 00
00 04 00 00 05 00 00 00 00 01 00 00 00 03 00 00 00 03 00 00 c8 00 00 00
00 00 00 00 00 00 00 00 00 01 00 00 05 00 00 00 00 01 00 00 00 01 00 00
00 03 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 05 00 00 00
00 01 00 00 00 02 00 00 00 03 00 00 c8 00 00 00 00 00 00 00 00 00 00 00
00 03 00 00 05 00 00 00 00 01 00 00 00 03 00 00 00 03 00 00 c8 00 00 00
00 00 00 00 00 00 00 00 00 04 00 00 05 00 00 00 00 00 00 00 00 00 00 00
00 03];
            clock-frequency =3D <0>;
            interrupts =3D [00 00 00 02 00 00 00 08 00 00 00 00 00 00 00
02 00 00 00 09 00 00 00 00 00 00 00 02 00 00 00 0a 00 00 00 00];
            interrupt-parent =3D <500>;
            bus-range =3D <8>;
            ranges =3D [42 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 =
00
00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 a0 00 00 00 a0 00 00 00 00
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 b0 00 00 00 00
00 00 00 01 00 00 00];
        };
        spi@f00 {
            device_type =3D "spi";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 73 70 69 00 6d 70
63 35 32 78 78 2d 73 70 69 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 02 00 00 00 0d 00 00 00 00 00 00 00
02 00 00 00 0e 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        usb@1000 {
            device_type =3D "usb-ohci-be";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 6f 68 63 69 00 6d
70 63 35 32 78 78 2d 6f 68 63 69 00 6f 68 63 69 2d 62 65 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 02 00 00 00 06 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        bestcomm@1200 {
            device_type =3D "dma-controller";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 62 65 73 74 63 6f
6d 6d 00 6d 70 63 35 32 78 78 2d 62 65 73 74 63 6f 6d 6d 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 03 00 00 00 00 00 00 00 00 00 00 00
03 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00
03 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00
03 00 00 00 05 00 00 00 00 00 00 00 03 00 00 00 06 00 00 00 00 00 00 00
03 00 00 00 07 00 00 00 00 00 00 00 03 00 00 00 08 00 00 00 00 00 00 00
03 00 00 00 09 00 00 00 00 00 00 00 03 00 00 00 0a 00 00 00 00 00 00 00
03 00 00 00 0b 00 00 00 00 00 00 00 03 00 00 00 0c 00 00 00 00 00 00 00
03 00 00 00 0d 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00
03 00 00 00 0f 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        xlb@1f00 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 78 6c 62 00 6d 70
63 35 32 78 78 2d 78 6c 62 00];
            reg =3D <8>;
        };
        serial@2000 {
            device_type =3D "serial";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 70 73 63 2d 75 61
72 74 00 6d 70 63 35 32 78 78 2d 70 73 63 2d 75 61 72 74 00];
            port-number =3D <0>;
            reg =3D <8>;
            interrupts =3D [00 00 00 02 00 00 00 01 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        ethernet@3000 {
            device_type =3D "network";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 66 65 63 00 6d 70
63 35 32 78 78 2d 66 65 63 00];
            reg =3D <8>;
            mac-address =3D [00 e0 ee 00 28 0d];
            interrupts =3D [00 00 00 02 00 00 00 05 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        i2c@3d00 {
            device_type =3D "i2c";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 69 32 63 00 6d 70
63 35 32 78 78 2d 69 32 63 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 02 00 00 00 0f 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        i2c@3d40 {
            device_type =3D "i2c";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 69 32 63 00 6d 70
63 35 32 78 78 2d 69 32 63 00];
            reg =3D <8>;
            interrupts =3D [00 00 00 02 00 00 00 10 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        sram@8000 {
            device_type =3D "sram";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 73 72 61 6d 00 6d
70 63 35 32 78 78 2d 73 72 61 6d 00 73 72 61 6d 00];
            reg =3D <8>;
        };
    };
    chosen {
        name =3D "chosen";
        bootargs =3D "console=3DttyPSC0,115200 root=3D/dev/nfs ip=3Ddhcp
nfsroot=3D10.100.11.96:/home/danielsch/downloads/OSELAS.BSP-Phytec-phyCOR=
E
-MPC5200B-tiny-5/root,v3,tcp";
        linux,platform =3D <600>;
        linux,stdout-path =3D "/soc5200@f0000000/serial@2000";
    };
};
=3D=3D=3D=3D=3D=3D=3D=3D=3D

Re: Where is initial console initialized ?

From: Domen Puncer <hidden>
Date: 2007-06-01 06:35:15

On 31/05/07 13:42 -0000, Daniel Schnell wrote:
Hi,
 
I am trying to bring up 2.6.20.3 on a MPC5200B based custom board. This
Kernel is based on the Phytec phyCore MPC5200B Mini BSP kernel and
adapted to my board.
So far I have troubles to get console output working when booting Linux.
Uboot console output is fine. Linux begins to run (I can set breakpoints
with the BDI2000 in the early initialization code) so I probably have a
misconfiguration of the console output inside the fdt.

The major difference between the Phytec phyCore 5200B mini fdt and mine
is that we use PSC1 instead of PSC3/6 for serial. Accordingly I changed
the fdt (or dts) values.

To get some more insights, I would like to know, in which Linux function
the console output is initialised ?
...
If I dump the flat device tree inside uboot, I get the following
entries: 
...
the dump with:

         reg = <8>;

in most of nodes, which looks just wrong.


	Domen

RE: Where is initial console initialized ?

From: Daniel Schnell <hidden>
Date: 2007-06-01 12:15:00

Hmm, this is a bug in the U-Boot print-data() function. Normally you =
should see a 8 bytes field for "reg =3D  ", so I changed that function =
to dump the hexadecimal contents when data length is =3D=3D 8 and these =
reg =3D values look much better now:


Still no go to boot Linux.


Booting using flat device tree at 0x400000
 {
    model =3D "v38c";
    compatible =3D [76 33 38 63 00 6d 70 63 35 32 30 30 62 00 6d 70 63 =
35 32 78 78 00];
    #address-cells =3D <1>;
    #size-cells =3D <1>;
    cpus {
        #cpus =3D <1>;
        #address-cells =3D <1>;
        #size-cells =3D <0>;
        PowerPC,5200@0 {
            device_type =3D "cpu";
            reg =3D <0>;
            d-cache-line-size =3D <20>;
            i-cache-line-size =3D <20>;
            d-cache-size =3D <4000>;
            i-cache-size =3D <4000>;
            timebase-frequency =3D <1f78a40>;
            bus-frequency =3D <7de2900>;
            clock-frequency =3D <179a7b00>;
            32-bit;
        };
    };
    memory {
        device_type =3D "memory";
        reg =3D [00 00 00 00 08 00 00 00];
    };
    soc5200@f0000000 {
        #interrupt-cells =3D <3>;
        device_type =3D "soc";
        ranges =3D [00 00 00 00 f0 00 00 00 f0 01 00 00];
        reg =3D [f0 00 00 00 00 01 00 00];
        bus-frequency =3D <3ef1480>;
        cdm@200 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 63 64 6d 00 6d 70 =
63 35 32 78 78 2d 63 64 6d 00];
            reg =3D [00 00 02 00 00 00 00 38];
        };
        pic@500 {
            linux,phandle =3D <500>;
            interrupt-controller;
            #interrupt-cells =3D <3>;
            device_type =3D "interrupt-controller";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 70 69 63 00 6d 70 =
63 35 32 78 78 2d 70 69 63 00];
            reg =3D [00 00 05 00 00 00 00 80];
            built-in;
        };
        gpt@600 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 00 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 09 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@610 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 10 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 0a 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@620 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 20 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 0b 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@630 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 30 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 0c 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@640 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 40 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 0d 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@650 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 50 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 0e 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@660 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 60 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 0f 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpt@670 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 74 00 6d 70 =
63 35 32 78 78 2d 67 70 74 00];
            device_type =3D "gpt";
            reg =3D [00 00 06 70 00 00 00 10];
            interrupts =3D [00 00 00 01 00 00 00 10 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        rtc@800 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 72 74 63 00 6d 70 =
63 35 32 78 78 2d 72 74 63 00];
            device_type =3D "rtc";
            reg =3D [00 00 08 00 00 00 01 00];
            interrupts =3D [00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 =
01 00 00 00 06 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        mscan@900 {
            device_type =3D "mscan";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 6d 73 63 61 6e 00 =
6d 70 63 35 32 78 78 2d 6d 73 63 61 6e 00];
            interrupts =3D [00 00 00 02 00 00 00 11 00 00 00 00];
            interrupt-parent =3D <500>;
            reg =3D [00 00 09 00 00 00 00 80];
        };
        mscan@980 {
            device_type =3D "mscan";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 6d 73 63 61 6e 00 =
6d 70 63 35 32 78 78 2d 6d 73 63 61 6e 00];
            interrupts =3D [00 00 00 02 00 00 00 12 00 00 00 00];
            interrupt-parent =3D <500>;
            reg =3D [00 00 09 80 00 00 00 80];
        };
        gpio@b00 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 69 6f 00 6d =
70 63 35 32 78 78 2d 67 70 69 6f 00];
            reg =3D [00 00 0b 00 00 00 00 40];
            interrupts =3D [00 00 00 01 00 00 00 07 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        gpio-wkup@b00 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 67 70 69 6f 2d 77 =
6b 75 70 00 6d 70 63 35 32 78 78 2d 67 70 69 6f 2d 77 6b 75 70 00];
            reg =3D [00 00 0c 00 00 00 00 40];
            interrupts =3D [00 00 00 01 00 00 00 08 00 00 00 00 00 00 00 =
00 00 00 00 03 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        pci@0d00 {
            #interrupt-cells =3D <1>;
            #size-cells =3D <2>;
            #address-cells =3D <3>;
            device_type =3D "pci";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 70 63 69 00 6d 70 =
63 35 32 78 78 2d 70 63 69 00];
            reg =3D [00 00 0d 00 00 00 01 00];
            interrupt-map-mask =3D [00 00 f8 00 00 00 00 00 00 00 00 00 =
00 00 00 07];
            interrupt-map =3D [00 00 c0 00 00 00 00 00 00 00 00 00 00 00 =
00 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 c0 00 00 00 =
00 00 00 00 00 00 00 00 00 02 00 00 05 00 00 00 00 01 00 00 00 01 00 00 =
00 03 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 05 00 00 00 =
00 01 00 00 00 02 00 00 00 03 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 =
00 04 00 00 05 00 00 00 00 01 00 00 00 03 00 00 00 03 00 00 c8 00 00 00 =
00 00 00 00 00 00 00 00 00 01 00 00 05 00 00 00 00 01 00 00 00 01 00 00 =
00 03 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 05 00 00 00 =
00 01 00 00 00 02 00 00 00 03 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 =
00 03 00 00 05 00 00 00 00 01 00 00 00 03 00 00 00 03 00 00 c8 00 00 00 =
00 00 00 00 00 00 00 00 00 04 00 00 05 00 00 00 00 00 00 00 00 00 00 00 =
00 03];
            clock-frequency =3D <0>;
            interrupts =3D [00 00 00 02 00 00 00 08 00 00 00 00 00 00 00 =
02 00 00 00 09 00 00 00 00 00 00 00 02 00 00 00 0a 00 00 00 00];
            interrupt-parent =3D <500>;
            bus-range =3D [00 00 00 00 00 00 00 00];
            ranges =3D [42 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 =
00 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 a0 00 00 00 a0 00 00 00 =
00 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 b0 00 00 00 =
00 00 00 00 01 00 00 00];
        };
        spi@f00 {
            device_type =3D "spi";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 73 70 69 00 6d 70 =
63 35 32 78 78 2d 73 70 69 00];
            reg =3D [00 00 0f 00 00 00 00 20];
            interrupts =3D [00 00 00 02 00 00 00 0d 00 00 00 00 00 00 00 =
02 00 00 00 0e 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        usb@1000 {
            device_type =3D "usb-ohci-be";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 6f 68 63 69 00 6d =
70 63 35 32 78 78 2d 6f 68 63 69 00 6f 68 63 69 2d 62 65 00];
            reg =3D [00 00 10 00 00 00 00 ff];
            interrupts =3D [00 00 00 02 00 00 00 06 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        bestcomm@1200 {
            device_type =3D "dma-controller";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 62 65 73 74 63 6f =
6d 6d 00 6d 70 63 35 32 78 78 2d 62 65 73 74 63 6f 6d 6d 00];
            reg =3D [00 00 12 00 00 00 00 80];
            interrupts =3D [00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 =
03 00 00 00 01 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 =
03 00 00 00 03 00 00 00 00 00 00 00 03 00 00 00 04 00 00 00 00 00 00 00 =
03 00 00 00 05 00 00 00 00 00 00 00 03 00 00 00 06 00 00 00 00 00 00 00 =
03 00 00 00 07 00 00 00 00 00 00 00 03 00 00 00 08 00 00 00 00 00 00 00 =
03 00 00 00 09 00 00 00 00 00 00 00 03 00 00 00 0a 00 00 00 00 00 00 00 =
03 00 00 00 0b 00 00 00 00 00 00 00 03 00 00 00 0c 00 00 00 00 00 00 00 =
03 00 00 00 0d 00 00 00 00 00 00 00 03 00 00 00 0e 00 00 00 00 00 00 00 =
03 00 00 00 0f 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        xlb@1f00 {
            compatible =3D [6d 70 63 35 32 30 30 62 2d 78 6c 62 00 6d 70 =
63 35 32 78 78 2d 78 6c 62 00];
            reg =3D [00 00 1f 00 00 00 01 00];
        };
        serial@2000 {
            device_type =3D "serial";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 70 73 63 2d 75 61 =
72 74 00 6d 70 63 35 32 78 78 2d 70 73 63 2d 75 61 72 74 00];
            port-number =3D <0>;
            reg =3D [00 00 20 00 00 00 01 00];
            interrupts =3D [00 00 00 02 00 00 00 01 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        ethernet@3000 {
            device_type =3D "network";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 66 65 63 00 6d 70 =
63 35 32 78 78 2d 66 65 63 00];
            reg =3D [00 00 30 00 00 00 08 00];
            mac-address =3D [00 e0 ee 00 28 0d];
            interrupts =3D [00 00 00 02 00 00 00 05 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        i2c@3d00 {
            device_type =3D "i2c";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 69 32 63 00 6d 70 =
63 35 32 78 78 2d 69 32 63 00];
            reg =3D [00 00 3d 00 00 00 00 40];
            interrupts =3D [00 00 00 02 00 00 00 0f 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        i2c@3d40 {
            device_type =3D "i2c";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 69 32 63 00 6d 70 =
63 35 32 78 78 2d 69 32 63 00];
            reg =3D [00 00 3d 40 00 00 00 40];
            interrupts =3D [00 00 00 02 00 00 00 10 00 00 00 00];
            interrupt-parent =3D <500>;
        };
        sram@8000 {
            device_type =3D "sram";
            compatible =3D [6d 70 63 35 32 30 30 62 2d 73 72 61 6d 00 6d =
70 63 35 32 78 78 2d 73 72 61 6d 00 73 72 61 6d 00];
            reg =3D [00 00 80 00 00 00 40 00];
        };
    };
    chosen {
        name =3D "chosen";
        bootargs =3D "console=3DttyPSC0,115200 root=3D/dev/nfs ip=3Ddhcp =
nfsroot=3D10.100.11.96:/home/danielsch/downloads/OSELAS.BSP-Phytec-phyCOR=
E-MPC5200B-tiny-5/root,v3,tcp";
        linux,platform =3D <600>;
        linux,stdout-path =3D "/soc5200@f0000000/serial@2000";
    };
};



-----Original Message-----
From: Domen Puncer [mailto:domen.puncer@telargo.com]=20
Sent: 1. j=FAn=ED 2007 06:35
To: Daniel Schnell
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: Where is initial console initialized ?

On 31/05/07 13:42 -0000, Daniel Schnell wrote:
Hi,
=20
I am trying to bring up 2.6.20.3 on a MPC5200B based custom board.=20
This Kernel is based on the Phytec phyCore MPC5200B Mini BSP kernel=20
and adapted to my board.
So far I have troubles to get console output working when booting =
Linux.
Uboot console output is fine. Linux begins to run (I can set=20
breakpoints with the BDI2000 in the early initialization code) so I=20
probably have a misconfiguration of the console output inside the fdt.
=20
The major difference between the Phytec phyCore 5200B mini fdt and=20
mine is that we use PSC1 instead of PSC3/6 for serial. Accordingly I=20
changed the fdt (or dts) values.
=20
To get some more insights, I would like to know, in which Linux=20
function the console output is initialised ?
=20
=20
...
If I dump the flat device tree inside uboot, I get the following
entries:=20
...
the dump with:

         reg =3D <8>;

in most of nodes, which looks just wrong.


	Domen

RE: Where is initial console initialized ?

From: Daniel Schnell <hidden>
Date: 2007-06-01 15:13:42

Hi,

Well if one does it right, then things work as expected.

I simply chose the wrong Kernel configuration, the correct console =
driver has not been compiled in.

Now it works as expected.



Sorry for the noise.

Daniel Schnell.



-----Original Message-----
From: Domen Puncer [mailto:domen.puncer@telargo.com]=20
Sent: 1. j=FAn=ED 2007 06:35
To: Daniel Schnell
Cc: linuxppc-embedded@ozlabs.org
Subject: Re: Where is initial console initialized ?

On 31/05/07 13:42 -0000, Daniel Schnell wrote:
Hi,
=20
I am trying to bring up 2.6.20.3 on a MPC5200B based custom board.=20
This Kernel is based on the Phytec phyCore MPC5200B Mini BSP kernel=20
and adapted to my board.
So far I have troubles to get console output working when booting =
Linux.
Uboot console output is fine. Linux begins to run (I can set=20
breakpoints with the BDI2000 in the early initialization code) so I=20
probably have a misconfiguration of the console output inside the fdt.
=20
The major difference between the Phytec phyCore 5200B mini fdt and=20
mine is that we use PSC1 instead of PSC3/6 for serial. Accordingly I=20
changed the fdt (or dts) values.
=20
To get some more insights, I would like to know, in which Linux=20
function the console output is initialised ?
=20
=20
...
If I dump the flat device tree inside uboot, I get the following
entries:=20
...
the dump with:

         reg =3D <8>;

in most of nodes, which looks just wrong.


	Domen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help