All of lore.kernel.org
 help / color / mirror / Atom feed
* Linux 2.6 on MPC5200. First port attempt ... Early problems ;(
@ 2004-03-05 12:02 Sylvain Munaut
  2004-03-05 17:01 ` Linux 2.6 on MPC5200. Early problems + 2.4 questions Sylvain Munaut
  0 siblings, 1 reply; 7+ messages in thread
From: Sylvain Munaut @ 2004-03-05 12:02 UTC (permalink / raw)
  To: LinuxPPC


Hello,

I'd like to run a 2.6 on a MPC5200 based board. Even if at first I'll
only use a 2.4 in production, I figured that the sooner I start to test
2.6, the sooner I'll be able to use it with enough stability. So I
started to tweak the 2.6.3 tree to make it boot on my LITE5200.

So, I've written/ported/copied some code for the console, the early
serial debug, ..., added the MPC to cputable.c and modified the
Kconfig/Makefile to build theses.
So far I don't seen anything on the serial console and  apparently, the
call the setup_common_caches ( in the cpu_setup_6xx.S ), never returns.
But the code is an exact copy of the 2.4 version ...

The method I use to trace where the execution goes or not is through the
leds connected to the GPIOs. From what I understood, the MBAR (
0xf0000000 ) is always mapped so I can trace with MMU on or off.

Anyone could give me a clue ?


Sylvain Munaut


PS: I'm not an expert in PPC arch. However, I've done such a port ( 2.4
-> 2.6 ) for an ARM architecture, so I'm not completly new to this
either ( even if ARM and PPC are little alike ... )

PS2: Sorry if it's a duplicate, I just had problems with my mail server
queue and don't know wich mail were 'lost'. After waiting 2h to see it
appear on the list and still nothing, I supposed the first one was lost.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6 on MPC5200. Early problems  + 2.4 questions
  2004-03-05 12:02 Linux 2.6 on MPC5200. First port attempt ... Early problems ;( Sylvain Munaut
@ 2004-03-05 17:01 ` Sylvain Munaut
  2004-03-08  7:43   ` Gerhard Jaeger
  0 siblings, 1 reply; 7+ messages in thread
From: Sylvain Munaut @ 2004-03-05 17:01 UTC (permalink / raw)
  To: LinuxPPC


I've got some updates on my problem.

Apparently it's not blocking at the cache activation. I just thought so
because apparently the 0xf000000 address is not mapped with the
not-cacheable flag and so the stw I used to power up/down the led on the
gpio was just waiting in the cache ...

My questions currently are :
 - Apparently 0xf0000000 is mapped to somewhere ( the MBAR ) but I don't
see where it's done ... And how do I tell it that it's IO and should not
be cached. Apparently on 2.4 it works but I don't see where is the piece
of code that just does that ...
 - The MPC5200 has 8 BAT, so shouldn't the CPU_FTR_HAS_HIGH_BATS feature
flag be set in the cputable.c of the 2.4 ? And also cfr my post on the
dev list about the code that clears those BAT. I thinks the wrong
register is used in head.S



Sylvain Munaut

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Linux 2.6 on MPC5200. Early problems  + 2.4 questions
  2004-03-05 17:01 ` Linux 2.6 on MPC5200. Early problems + 2.4 questions Sylvain Munaut
@ 2004-03-08  7:43   ` Gerhard Jaeger
  2004-03-08 11:50     ` linuxppc_2_4_devel Memory map on PPC / MPC5200 Sylvain Munaut
  0 siblings, 1 reply; 7+ messages in thread
From: Gerhard Jaeger @ 2004-03-08  7:43 UTC (permalink / raw)
  To: LinuxPPC


Hi,

On Friday 05 March 2004 18:01, Sylvain Munaut wrote:
[SNIPSNAP]
> My questions currently are :
>  - Apparently 0xf0000000 is mapped to somewhere ( the MBAR ) but I don't
> see where it's done ... And how do I tell it that it's IO and should not
> be cached. Apparently on 2.4 it works but I don't see where is the piece
> of code that just does that ...

checkout kernel/mpc5xxx_common.c

Ciao,
  Gerhard

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: linuxppc_2_4_devel Memory map on PPC / MPC5200
  2004-03-08  7:43   ` Gerhard Jaeger
@ 2004-03-08 11:50     ` Sylvain Munaut
  2004-03-08 14:11       ` Wolfgang Denk
  2004-03-11 20:43       ` io space mapping and sync Kevin A. Sapp
  0 siblings, 2 replies; 7+ messages in thread
From: Sylvain Munaut @ 2004-03-08 11:50 UTC (permalink / raw)
  To: Gerhard Jaeger; +Cc: LinuxPPC


Hi,

I've got more general question about the memory mapping on the MPC5200.


Gerhard Jaeger wrote:

>>My questions currently are :
>> - Apparently 0xf0000000 is mapped to somewhere ( the MBAR ) but I don't
>>see where it's done ... And how do I tell it that it's IO and should not
>>be cached. Apparently on 2.4 it works but I don't see where is the piece
>>of code that just does that ...
>>
>>
>
>checkout kernel/mpc5xxx_common.c
>
>
>
Thanks, I've seen this but that code is executed way later. I'm talking
about the mapping that exists at near the kernel entry point, in head.S.
Maybe it's just a residual mapping of U-Boot, I should check that.

But talking about this, I see in mpc5xxx_common


void __init
mpc5xxx_map_io(void)
{
        io_block_mapping(0x40000000, 0x40000000, 0x10000000, _PAGE_IO);
        io_block_mapping(0x50000000, 0x50000000, 0x01000000, _PAGE_IO);
        io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO);
        io_block_mapping(0xf0000000, 0xf0000000, 0x10000000, _PAGE_IO);
}

I've read the relevant part of the MPC5200 manual and still don't
understand ...

0x80000000 is the default address of the MBAR. But AFAIK, MBAR is
changed by U-Boot to remap the registers to 0xf0000000 ( physical
address space, not remapped using the mmu ).
So I see the last line as a 1:1 mapping of the internal mpc5200
registers. And looking at all the consts, it seems correct.
But then, what are the 3 other mappings ?

Also, to be sure of what I understood. When the 0xf0000000 area is 1:1
mapped via the BAT, I suppose it's just to get serial debug during early
init and the map_io call. Because the BAT2 is gonna be overwritten when
the kernel maps all the physical memory. I'm not sure whether the call
to map_io occurs after or before that. I suppose it's after, else the
same mapping would exists in two different ways and that's discribed as
a bad situation in the user manual.

Finally ( I know, I have a lot of questions ), the kernel doesn't use
the HIGH_BATS features ? I mean there is 8 BAT on this processor and I
don' t see where the 5 6 7 8 are gonna be used ? io_block_mapping could
be slightly modified to use them as well or am I wrong ?


Thanks,

    Sylvain Munaut


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: linuxppc_2_4_devel Memory map on PPC / MPC5200
  2004-03-08 11:50     ` linuxppc_2_4_devel Memory map on PPC / MPC5200 Sylvain Munaut
@ 2004-03-08 14:11       ` Wolfgang Denk
  2004-03-08 16:28         ` Sylvain Munaut
  2004-03-11 20:43       ` io space mapping and sync Kevin A. Sapp
  1 sibling, 1 reply; 7+ messages in thread
From: Wolfgang Denk @ 2004-03-08 14:11 UTC (permalink / raw)
  To: Sylvain Munaut; +Cc: Gerhard Jaeger, LinuxPPC


In message <404C5E13.9000700@246tNt.com> you wrote:
>
> But talking about this, I see in mpc5xxx_common
...
>         io_block_mapping(0x40000000, 0x40000000, 0x10000000, _PAGE_IO);
>         io_block_mapping(0x50000000, 0x50000000, 0x01000000, _PAGE_IO);
>         io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO);
>         io_block_mapping(0xf0000000, 0xf0000000, 0x10000000, _PAGE_IO);
> }
...
> But then, what are the 3 other mappings ?

See the U-Boot sources ("include/configs/IceCube.h").

Best regards,

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd@denx.de
How long does it take a  DEC  field  service  engineer  to  change  a
lightbulb?       It depends on how many bad ones he brought with him.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: linuxppc_2_4_devel Memory map on PPC / MPC5200
  2004-03-08 14:11       ` Wolfgang Denk
@ 2004-03-08 16:28         ` Sylvain Munaut
  0 siblings, 0 replies; 7+ messages in thread
From: Sylvain Munaut @ 2004-03-08 16:28 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: LinuxPPC


Hi

Wolfgang Denk wrote:

>In message <404C5E13.9000700@246tNt.com> you wrote:
>
>
>>But talking about this, I see in mpc5xxx_common
>>
>>
>...
>
>
>>        io_block_mapping(0x40000000, 0x40000000, 0x10000000, _PAGE_IO);
>>        io_block_mapping(0x50000000, 0x50000000, 0x01000000, _PAGE_IO);
>>        io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO);
>>        io_block_mapping(0xf0000000, 0xf0000000, 0x10000000, _PAGE_IO);
>>}
>>
>>
>...
>
>
>>But then, what are the 3 other mappings ?
>>
>>
>
>See the U-Boot sources ("include/configs/IceCube.h").
>
>
I've just read the IceCube.h file as well as the mpc5xxx init code ( in
the cpu/mpc5xxx, board/icecube and some in lib_ppc ).

So yes, indeed U-Boot, does change the MBAR from it's boot default to
0xf000000 and setup the PCI Mem & IO space to 0x40000000 & 0x50000000.
Sorry I should have searched more in details what uboot does before asking.

What still surprises me is that it's mapped before the 0x80000000, so
isn't that inside the zone of per-process mapping ? ( < TASK_SIZE ).

As far as I understand it, Uboot does not use the mmu, it just ensure
that it's all clear ( tlb, bat, ... ). And I don't see anywhere what
could 0x8000000 be ? It's not the MBAR anymore. And I don't see anything
there anymore but still it can't be a map to nowhere ?


Thanks a lot.

    Sylvain Munaut

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* io space mapping and sync
  2004-03-08 11:50     ` linuxppc_2_4_devel Memory map on PPC / MPC5200 Sylvain Munaut
  2004-03-08 14:11       ` Wolfgang Denk
@ 2004-03-11 20:43       ` Kevin A. Sapp
  1 sibling, 0 replies; 7+ messages in thread
From: Kevin A. Sapp @ 2004-03-11 20:43 UTC (permalink / raw)
  To: LinuxPPC


Hello,

I am using an 8275 and map memory.
When I map my LEDS physical 0x40000000 to 0x40000000
using a BAT I can hit them, several minutes into execution
during a sync, the system hangs.

I have tried to map this to a smaller region using the
mmu (io_block_mapping) but when I do the
region is no longer accessable.  THis is the
preferred method as I have a large region at
3000.0000 that I want to map using the remaining
BAT.

What should I do?  Any clues where to search for
an explaination of what is going on?


Thanks
Kevin


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-03-11 20:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-05 12:02 Linux 2.6 on MPC5200. First port attempt ... Early problems ;( Sylvain Munaut
2004-03-05 17:01 ` Linux 2.6 on MPC5200. Early problems + 2.4 questions Sylvain Munaut
2004-03-08  7:43   ` Gerhard Jaeger
2004-03-08 11:50     ` linuxppc_2_4_devel Memory map on PPC / MPC5200 Sylvain Munaut
2004-03-08 14:11       ` Wolfgang Denk
2004-03-08 16:28         ` Sylvain Munaut
2004-03-11 20:43       ` io space mapping and sync Kevin A. Sapp

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.