* 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).