[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Help - `flush_icache_range' MacPPC
From: |
Scott Wood |
Subject: |
Re: [Qemu-devel] Help - `flush_icache_range' MacPPC |
Date: |
Wed, 8 Feb 2012 17:29:57 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2 |
On 02/07/2012 04:57 PM, Alexander Graf wrote:
>
> On 07.02.2012, at 23:29, Brad Smith wrote:
>
>> On 07/02/12 5:12 PM, malc wrote:
>>> On Tue, 7 Feb 2012, Alexander Graf wrote:
>>>
>>>>
>>>> On 07.02.2012, at 22:12, malc wrote:
>>>>
>>>>> On Tue, 7 Feb 2012, Alexander Graf wrote:
>>>>>
>>>>>>
>>>>>> On 07.02.2012, at 13:52, Maurizio Caloro wrote:
>>>>>>
>>>>>>> Hello Together
>>>>>>> Here i drive with me MiniMac G4 1.4Ghz and i try to run Qemu 1.0. i
>>>>>>> wan't run one Virt. MS Server2008 it's this realistic?.
>>>>>>>
>>>>>>> Unfortunitly from the first (other) Mailinglist i don't become any
>>>>>>> Answer.
>>>>>>>
>>>>>>> on a possible error recovery support, I would grateful to you.
>>>>>>> Thanks and best regards
>>>>>>> Mauri
>>>>>>>
>>>>>>>> NetBSD powermac.G4 5.1 NetBSD 5.1 (GENERIC) #0: Sat Nov 6 17:09:11
>>>>>>>> UTC>2010
>>>>>>>> address@hidden:/home/builds/ab/netbsd-5-1->RELEASE/macppc/201011061943Z-obj/home/builds/ab/netbsd-5-1->RELEASE/src/sys/arch/macppc/compile/GENERIC
>>>>>>>> macppc
>>>>>>>>
>>>>>>>> # gmake
>>>>>>>> CC i386-softmmu/memory.o
>>>>>>>> LINK i386-softmmu/qemu-system-i386
>>>>>>>> ld: warning: libintl.so.0, needed by /usr/pkg/lib/libgthread-2.0.so,
>>>>>>>> may conflict with libintl.so.8
>>>>>>>> tcg/tcg.o: In function `tcg_prologue_init':
>>>>>>>> /usr/source/qemu-1.0/tcg/tcg.c:268: undefined reference to
>>>>>>>> `flush_icache_range'
>>>>>>>> tcg/tcg.o: In function `ppc_tb_set_jmp_target':
>>>>>>>> /usr/source/qemu-1.0/tcg/ppc/tcg-target.c:1291: undefined reference to
>>>>>>>> `flush_icache_range'
>>>>>>>> tcg/tcg.o: In function `tcg_gen_code':
>>>>>>>> /usr/source/qemu-1.0/tcg/tcg.c:2191: undefined reference to
>>>>>>>> `flush_icache_range'
>>>>>>
>>>>>> I'd say your gcc is too old / buggy.
>>>>>
>>>>> You probably missed the NetBSD part (anyway originally i did)
>>>>
>>>> Gcc on NetBSD doesn't implement the cache flush helpers? They're just a
>>>> bunch of instructions, so I don't see how that'd be target os specific.
>>>>
>>>
>>> Take a look at cache-utils.c, it conditionally (depending on the host OS
>>> type) tries to gigure out the cache line sizes, there's code to do that
>>> on Linux, OSX, AIX and FreeBSD. I have no idea if FreeBSD method works
>>> for Net/Open/Dragonfly.. so..
>>
>> The FreeBSD method will not work with NetBSD. For NetBSD you have to use
>> the machdep.cacheinfo sysctl MIB. For OpenBSD this is the only local patch
>> we have since there is no sysctl (yet) to retrieve the cache line size.
>> DragonFly has no PowerPC support.
>
> Eh, this patch:
>
> diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c
> index f5d9bf3..f9793e6 100644
> --- a/tcg/ppc/tcg-target.c
> +++ b/tcg/ppc/tcg-target.c
> @@ -1260,6 +1260,17 @@ static void tcg_out_brcond2 (TCGContext *s, const
> TCGArg *args,
> tcg_out_bc (s, (BC | BI (7, CR_EQ) | BO_COND_TRUE), args[5]);
> }
>
> +#ifdef __NetBSD__
> +static void flush_icache_range(unsigned long begin, unsigned long end)
> +{
> + unsigned int i = begin & ~15UL;
> + for (; i < end; i+=16) {
> + asm("icbi 0,%0" : : "r"(i));
> + }
> + asm("isync");
> +}
> +#endif
What about flushing the data cache first, as the other
flush_icache_range does?
Why isn't the cache-utils.h version of flush_icache_range being seen?
It's only ppc_init_cacheline_sizes() that is OS-conditional -- shouldn't
that be what the undefined reference is for? Is _ARCH_PPC failing to be
defined?
-Scott
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, (continued)
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, malc, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, malc, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Brad Smith, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Maurizio Caloro, 2012/02/07
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC,
Scott Wood <=
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/08
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Scott Wood, 2012/02/08
- Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, Alexander Graf, 2012/02/08
Re: [Qemu-devel] Help - `flush_icache_range' MacPPC, malc, 2012/02/07