Re: [MPC7448] machdep_calls
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
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
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
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
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
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
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
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
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
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
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