Re: [MPC7448] machdep_calls

2008-08-19 Thread Sébastien Chrétien
So I will write .setup_arch of machine_call  structure.
When is ppc_md.setup_arch() called ?

2008/8/19, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
>
> On Tue, 2008-08-19 at 09:00 +0200, Sébastien Chrétien wrote:
> > I have no screen that's why I have to use UART. I followed the CPM
> > model in head_32.S :
> > #ifdef CONFIG_PPC_EARLY_DEBUG_CPM
> > setup_cpm_bat:
> > lisr8, 0xf000
> > orir8, r8,0x002a
> > mtsprSPRN_DBAT1L, r8
> >
> > lisr11, 0xf000
> > orir11, r11, (BL_1M << 2) | 2
> > mtsprSPRN_DBAT1U, r11
> >
> > blr
> > #endif
>
>
> The "EARLY DEBUG" stuff is a pile of hacks to help with bringup,
> it's definitely not a long term solution to your problems.
>
> You may also want to look at Grant Likely's work on doing proper
> early ioremap using BATs.
>
>
> > With this code  I can use udbg.
> >
> > According to you, what is the best way ?
>
>
> The above is fine for early debug console. But that's definitely
> not the only kind of thing you may want to put in your setup_arch()...
> Look at what others do.
>
> Ben.
>
>
> > 2008/8/18, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
> > On Mon, 2008-08-18 at 16:17 +0200, Sébastien Chrétien wrote:
> > > The mpc7448hpc2 uses a tsi108-bridge. My board uses an IP on
> > a FPGA..
> > > I read the code of mpc7448_hpc2.c.
> > > It uses a ioremap in order to iniatilize the tsi108
> > registers. But I
> > > have already initialized MMU with my registers in HEAD_32.S.
> > Do I need
> > > to use ioremap in setup_arch() ?
> >
> >
> > Why did you hack head_32.S ? You shouldn't do that... This is
> > common
> > code, not platform code.
> >
> > Ben.
> >
> > >
> > >
> > >
> > > 2008/8/18, Michael Ellerman <[EMAIL PROTECTED]>:
> > > On Mon, 2008-08-18 at 13:35 +0200, Sébastien
> > Chrétien wrote:
> > > > Can somebody explain me the aim of the
> > > function  "setup_arch" in the
> > > > machine_call structure ?
> > >
> > >
> > > Is this MPC7448 anything like an mpc7448hpc2 ?
> > >
> > > If so maybe you should start by looking at the code
> > for it in:
> > >
> > > arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
> > >
> > > Even if it's not related, that will give you some
> > idea of what
> > > the
> > > callbacks are for.
> > >
> > > cheers
> > >
> > > --
> > > Michael Ellerman
> > > OzLabs, IBM Australia Development Lab
> > >
> > > wwweb: http://michael.ellerman.id.au
> > > phone: +61 2 6212 1183 (tie line 70 21183)
> > >
> > > We do not inherit the earth from our ancestors,
> > > we borrow it from our children. - S.M.A.R.T Person
> > >
> > >
> >
> >
>
>
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-19 Thread Benjamin Herrenschmidt
On Tue, 2008-08-19 at 09:00 +0200, Sébastien Chrétien wrote:
> I have no screen that's why I have to use UART. I followed the CPM
> model in head_32.S : 
> #ifdef CONFIG_PPC_EARLY_DEBUG_CPM
> setup_cpm_bat:
> lisr8, 0xf000
> orir8, r8,0x002a
> mtsprSPRN_DBAT1L, r8
> 
> lisr11, 0xf000
> orir11, r11, (BL_1M << 2) | 2
> mtsprSPRN_DBAT1U, r11
> 
> blr
> #endif

The "EARLY DEBUG" stuff is a pile of hacks to help with bringup,
it's definitely not a long term solution to your problems.

You may also want to look at Grant Likely's work on doing proper
early ioremap using BATs.

> With this code  I can use udbg.
> 
> According to you, what is the best way ?

The above is fine for early debug console. But that's definitely
not the only kind of thing you may want to put in your setup_arch()...
Look at what others do. 

Ben.

> 2008/8/18, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
> On Mon, 2008-08-18 at 16:17 +0200, Sébastien Chrétien wrote:
> > The mpc7448hpc2 uses a tsi108-bridge. My board uses an IP on
> a FPGA..
> > I read the code of mpc7448_hpc2.c.
> > It uses a ioremap in order to iniatilize the tsi108
> registers. But I
> > have already initialized MMU with my registers in HEAD_32.S.
> Do I need
> > to use ioremap in setup_arch() ?
> 
> 
> Why did you hack head_32.S ? You shouldn't do that... This is
> common
> code, not platform code.
> 
> Ben.
> 
> >
> >
> >
> > 2008/8/18, Michael Ellerman <[EMAIL PROTECTED]>:
> > On Mon, 2008-08-18 at 13:35 +0200, Sébastien
> Chrétien wrote:
> > > Can somebody explain me the aim of the
> > function  "setup_arch" in the
> > > machine_call structure ?
> >
> >
> > Is this MPC7448 anything like an mpc7448hpc2 ?
> >
> > If so maybe you should start by looking at the code
> for it in:
> >
> > arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
> >
> > Even if it's not related, that will give you some
> idea of what
> > the
> > callbacks are for.
> >
> > cheers
> >
> > --
> > Michael Ellerman
> > OzLabs, IBM Australia Development Lab
> >
> > wwweb: http://michael.ellerman.id.au
> > phone: +61 2 6212 1183 (tie line 70 21183)
> >
> > We do not inherit the earth from our ancestors,
> > we borrow it from our children. - S.M.A.R.T Person
> >
> >
> 
> 

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-19 Thread Sébastien Chrétien
I have no screen that's why I have to use UART. I followed the CPM model in
head_32.S :
#ifdef CONFIG_PPC_EARLY_DEBUG_CPM
setup_cpm_bat:
lisr8, 0xf000
orir8, r8,0x002a
mtsprSPRN_DBAT1L, r8

lisr11, 0xf000
orir11, r11, (BL_1M << 2) | 2
mtsprSPRN_DBAT1U, r11

blr
#endif

With this code  I can use udbg.

According to you, what is the best way ?

2008/8/18, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
>
> On Mon, 2008-08-18 at 16:17 +0200, Sébastien Chrétien wrote:
> > The mpc7448hpc2 uses a tsi108-bridge. My board uses an IP on a FPGA..
> > I read the code of mpc7448_hpc2.c.
> > It uses a ioremap in order to iniatilize the tsi108 registers. But I
> > have already initialized MMU with my registers in HEAD_32.S. Do I need
> > to use ioremap in setup_arch() ?
>
>
> Why did you hack head_32.S ? You shouldn't do that... This is common
> code, not platform code.
>
> Ben.
>
> >
> >
> >
> > 2008/8/18, Michael Ellerman <[EMAIL PROTECTED]>:
> > On Mon, 2008-08-18 at 13:35 +0200, Sébastien Chrétien wrote:
> > > Can somebody explain me the aim of the
> > function  "setup_arch" in the
> > > machine_call structure ?
> >
> >
> > Is this MPC7448 anything like an mpc7448hpc2 ?
> >
> > If so maybe you should start by looking at the code for it in:
> >
> > arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
> >
> > Even if it's not related, that will give you some idea of what
> > the
> > callbacks are for.
> >
> > cheers
> >
> > --
> > Michael Ellerman
> > OzLabs, IBM Australia Development Lab
> >
> > wwweb: http://michael.ellerman.id.au
> > phone: +61 2 6212 1183 (tie line 70 21183)
> >
> > We do not inherit the earth from our ancestors,
> > we borrow it from our children. - S.M.A.R.T Person
> >
> >
>
>
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Benjamin Herrenschmidt
On Mon, 2008-08-18 at 16:17 +0200, Sébastien Chrétien wrote:
> The mpc7448hpc2 uses a tsi108-bridge. My board uses an IP on a FPGA..
> I read the code of mpc7448_hpc2.c.
> It uses a ioremap in order to iniatilize the tsi108 registers. But I
> have already initialized MMU with my registers in HEAD_32.S. Do I need
> to use ioremap in setup_arch() ?

Why did you hack head_32.S ? You shouldn't do that... This is common
code, not platform code.

Ben.
> 
> 
> 
> 2008/8/18, Michael Ellerman <[EMAIL PROTECTED]>:
> On Mon, 2008-08-18 at 13:35 +0200, Sébastien Chrétien wrote:
> > Can somebody explain me the aim of the
> function  "setup_arch" in the
> > machine_call structure ?
> 
> 
> Is this MPC7448 anything like an mpc7448hpc2 ?
> 
> If so maybe you should start by looking at the code for it in:
> 
> arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
> 
> Even if it's not related, that will give you some idea of what
> the
> callbacks are for.
> 
> cheers
> 
> --
> Michael Ellerman
> OzLabs, IBM Australia Development Lab
> 
> wwweb: http://michael.ellerman.id.au
> phone: +61 2 6212 1183 (tie line 70 21183)
> 
> We do not inherit the earth from our ancestors,
> we borrow it from our children. - S.M.A.R.T Person
> 
> 

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Benjamin Herrenschmidt
On Mon, 2008-08-18 at 13:35 +0200, Sébastien Chrétien wrote:
> Can somebody explain me the aim of the function  "setup_arch" in the
> machine_call structure ?

This is where most of your arch code gets a chance to initialize before
most of the core is.

The generic core linux code calls the architecture setup_arch() very
early during boot, before most other initializations. The powerpc
architecture code performs various early initialisations there, on
32-bit that includes unflattening the device-tree, looking for legacy
serial ports, etc... and initializing bootmem.

It then calls ppc_md.setup_arch to give the platform a chance to perform
other platform specific early initializations before the rest of the
kernel starts initializing.

This is very early, ie, for memory allocation you can only use bootmem
for example. Interrupts haven't been initialized or switched on yet,
etc...

This is typically the place where your arch code will setup it's SMP ops
if any, will discover the fixed PCI host bridges, and initialize low
level HW components that need early initialization.

Ben.

> 2008/8/18, Sébastien Chrétien <[EMAIL PROTECTED]>:
> Ok I am going to copy some examples.
> 
> 2008/8/18, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
> On Mon, 2008-08-18 at 10:45 +0200, Sébastien Chrétien
> wrote:
> > Hello,
> >
> > I am developping a Linux for my PPC Board. I must
> write a
> > define_machine structure (marchdep_calls). Where can
> I find some
> > Information about functions of this structure ?
> 
> 
> It isn't well documented unfortunately. Best is to
> look at what others
> do... and then find your way through.
> 
> I agree somebody should write dome doco one day ... in
> the meantime,
> feel free to ask questions here.
> 
> Cheers,
> Ben.
> 
> 
> 
> 

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Sébastien Chrétien
The mpc7448hpc2 uses a tsi108-bridge. My board uses an IP on a FPGA.. I read
the code of mpc7448_hpc2.c.
It uses a ioremap in order to iniatilize the tsi108 registers. But I have
already initialized MMU with my registers in HEAD_32.S. Do I need to use
ioremap in setup_arch() ?




2008/8/18, Michael Ellerman <[EMAIL PROTECTED]>:
>
> On Mon, 2008-08-18 at 13:35 +0200, Sébastien Chrétien wrote:
> > Can somebody explain me the aim of the function  "setup_arch" in the
> > machine_call structure ?
>
>
> Is this MPC7448 anything like an mpc7448hpc2 ?
>
> If so maybe you should start by looking at the code for it in:
>
> arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
>
> Even if it's not related, that will give you some idea of what the
> callbacks are for.
>
> cheers
>
> --
> Michael Ellerman
> OzLabs, IBM Australia Development Lab
>
> wwweb: http://michael.ellerman.id.au
> phone: +61 2 6212 1183 (tie line 70 21183)
>
> We do not inherit the earth from our ancestors,
> we borrow it from our children. - S.M.A.R.T Person
>
>
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Michael Ellerman
On Mon, 2008-08-18 at 13:35 +0200, Sébastien Chrétien wrote:
> Can somebody explain me the aim of the function  "setup_arch" in the
> machine_call structure ?

Is this MPC7448 anything like an mpc7448hpc2 ?

If so maybe you should start by looking at the code for it in:

arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c

Even if it's not related, that will give you some idea of what the
callbacks are for.

cheers

-- 
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person


signature.asc
Description: This is a digitally signed message part
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Sébastien Chrétien
Can somebody explain me the aim of the function  "setup_arch" in the
machine_call structure ?

2008/8/18, Sébastien Chrétien <[EMAIL PROTECTED]>:
>
> Ok I am going to copy some examples.
>
> 2008/8/18, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
>>
>> On Mon, 2008-08-18 at 10:45 +0200, Sébastien Chrétien wrote:
>> > Hello,
>> >
>> > I am developping a Linux for my PPC Board. I must write a
>> > define_machine structure (marchdep_calls). Where can I find some
>> > Information about functions of this structure ?
>>
>>
>> It isn't well documented unfortunately. Best is to look at what others
>> do... and then find your way through.
>>
>> I agree somebody should write dome doco one day ... in the meantime,
>> feel free to ask questions here.
>>
>> Cheers,
>> Ben.
>>
>>
>>
>
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Sébastien Chrétien
Ok I am going to copy some examples.

2008/8/18, Benjamin Herrenschmidt <[EMAIL PROTECTED]>:
>
> On Mon, 2008-08-18 at 10:45 +0200, Sébastien Chrétien wrote:
> > Hello,
> >
> > I am developping a Linux for my PPC Board. I must write a
> > define_machine structure (marchdep_calls). Where can I find some
> > Information about functions of this structure ?
>
>
> It isn't well documented unfortunately. Best is to look at what others
> do... and then find your way through.
>
> I agree somebody should write dome doco one day ... in the meantime,
> feel free to ask questions here.
>
> Cheers,
> Ben.
>
>
>
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Re: [MPC7448] machdep_calls

2008-08-18 Thread Benjamin Herrenschmidt
On Mon, 2008-08-18 at 10:45 +0200, Sébastien Chrétien wrote:
> Hello,
> 
> I am developping a Linux for my PPC Board. I must write a
> define_machine structure (marchdep_calls). Where can I find some
> Information about functions of this structure ?

It isn't well documented unfortunately. Best is to look at what others
do... and then find your way through.

I agree somebody should write dome doco one day ... in the meantime,
feel free to ask questions here.

Cheers,
Ben.


___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

[MPC7448] machdep_calls

2008-08-18 Thread Sébastien Chrétien
Hello,

I am developping a Linux for my PPC Board. I must write a define_machine
structure (marchdep_calls). Where can I find some Information about
functions of this structure ?

Thanx
Sébastien Chrétien
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev