Re: [Qemu-devel] [PULL 0/2] M68k for 2.12 patches

2018-04-02 Thread Rob Landley
On 04/02/2018 02:05 PM, Laurent Vivier wrote:
> Le 02/04/2018 à 20:13, Rob Landley a écrit :
>>> The branch to use is q800-dev
...
>> It booted Linux to a shell prompt, I could wget a file from the internet, and
>> /home had the 2 gigabyte ext3 mount from the virtual block device.
>>
>> I.E. it works for me. Why is it still out of tree?
...
> I have to submit some enhancements in the FPU emulation...
> I have to add some specific m68k hardware emulation...
> but via support should be rewritten...
> I have to update some existing hardware emulation...
...
> So, this only needs some work and time.
10 years ago:

https://lists.gnu.org/archive/html/qemu-devel/2007-10/msg00248.html

6 years ago:

https://lists.gnu.org/archive/html/qemu-devel/2011-08/msg02123.html

> I hope q800 will be available in QEMU 2.13.

Good luck,

Rob



Re: [Qemu-devel] [PULL 0/2] M68k for 2.12 patches

2018-04-02 Thread Laurent Vivier
Le 02/04/2018 à 20:13, Rob Landley a écrit :
> On 03/30/2018 12:00 PM, Laurent Vivier wrote:
>> Le 30/03/2018 à 18:54, Rob Landley a écrit :
>>> On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is 
>>> needed
>>> to fix a problem
 in the m68k translator that can crash QEMU when translation
 cache has too many instructions:

   qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed.
   qemu: uncaught target signal 11 (Segmentation fault) - core dumped

 I have reproduced it in linux user mode, with "ghc", and in
 system mode with the debian-installer for unstable distro
 from debian-ports.
>>>
>>> If someone wanted to follow along with your "boot linux on qemu-system-m68k"
>>> work on https://github.com/vivier/qemu-m68k, which of the 51 branches should
>>> qemu-system-m68k with like -M q800 or whatever you had working be built 
>>> from?
>>
>> The branch to use is q800-dev
> 
> There isn't any m68k support in musl-libc yet, so I grabbed my old
> https://github.com/landley/aboriginal project, did a "./build.sh m68k", built
> your q800-dev branch, added the m68k-softmmu from that to the start of the
> $PATH, and ran "more/dev-environment-from-build.sh m68k".
> 
> It booted Linux to a shell prompt, I could wget a file from the internet, and
> /home had the 2 gigabyte ext3 mount from the virtual block device.
> 
> I.E. it works for me. Why is it still out of tree?

Remaining patches need some cleanup before being submitted.

I have to submit some enhancements in the FPU emulation, but as they
modify fpu/softfloat.c, I don't want to put them as is in an m68k pull-req:

target/m68k: manage FPU exceptions
softfloat: define floatx80_is_any_nan for m68k
softfloat: disable floatx80_invalid_encoding() for m68k

I have to add some specific m68k hardware emulation:

m68k: add via support
m68k: add video card
q800: Apple Sound Chip (ASC) emulation
q800: add Nubus support
q800: add a dummy SWIM floppy controller
m68k: define Macintosh Quadra 800

but via support should be rewritten as Mark has introduced a new generic
mos6522 VIA device.

I have to update some existing hardware emulation:

ESP: add pseudo-DMA as used by Macintosh
escc: introduce a selector for the register bit
dp8393x: fix receiving buffer exhaustion
dp8393x: put DMA temp buffer in the state, not in the stack
dp8393x: manage big endian bus
dp8393x: fix dp8393x_receive

So, this only needs some work and time. I hope q800 will be available in
QEMU 2.13.

Thanks,
Laurent



Re: [Qemu-devel] [PULL 0/2] M68k for 2.12 patches

2018-04-02 Thread Rob Landley
On 03/30/2018 12:00 PM, Laurent Vivier wrote:
> Le 30/03/2018 à 18:54, Rob Landley a écrit :
>> On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is 
>> needed
>> to fix a problem
>>> in the m68k translator that can crash QEMU when translation
>>> cache has too many instructions:
>>>
>>>   qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed.
>>>   qemu: uncaught target signal 11 (Segmentation fault) - core dumped
>>>
>>> I have reproduced it in linux user mode, with "ghc", and in
>>> system mode with the debian-installer for unstable distro
>>> from debian-ports.
>>
>> If someone wanted to follow along with your "boot linux on qemu-system-m68k"
>> work on https://github.com/vivier/qemu-m68k, which of the 51 branches should
>> qemu-system-m68k with like -M q800 or whatever you had working be built from?
> 
> The branch to use is q800-dev

There isn't any m68k support in musl-libc yet, so I grabbed my old
https://github.com/landley/aboriginal project, did a "./build.sh m68k", built
your q800-dev branch, added the m68k-softmmu from that to the start of the
$PATH, and ran "more/dev-environment-from-build.sh m68k".

It booted Linux to a shell prompt, I could wget a file from the internet, and
/home had the 2 gigabyte ext3 mount from the virtual block device.

I.E. it works for me. Why is it still out of tree?

Rob



Re: [Qemu-devel] [PULL 0/2] M68k for 2.12 patches

2018-03-30 Thread Laurent Vivier
Le 30/03/2018 à 18:54, Rob Landley a écrit :
> On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is 
> needed
> to fix a problem
>> in the m68k translator that can crash QEMU when translation
>> cache has too many instructions:
>>
>>   qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed.
>>   qemu: uncaught target signal 11 (Segmentation fault) - core dumped
>>
>> I have reproduced it in linux user mode, with "ghc", and in
>> system mode with the debian-installer for unstable distro
>> from debian-ports.
> 
> If someone wanted to follow along with your "boot linux on qemu-system-m68k"
> work on https://github.com/vivier/qemu-m68k, which of the 51 branches should
> qemu-system-m68k with like -M q800 or whatever you had working be built from?

The branch to use is q800-dev

> 
> Also, "git pull" of the last tree I had from there exploded into a fireball of
> automerge conflicts. Is there something I should know?

As I rebase the branch regularly, a simple "git pull" will not work.

If the branch already exist locally

  git checkout q800-dev
  git reset --hard vivier/q800-dev

  [I guess the remote name is "vivier"]

otherwise, a simple "git checkout q800-dev" should create the branch
from scrash.

Thanks,
Laurent



Re: [Qemu-devel] [PULL 0/2] M68k for 2.12 patches

2018-03-30 Thread Rob Landley
On 03/20/2018 04:08 AM, Laurent Vivier wrote:> This series of patches is needed
to fix a problem
> in the m68k translator that can crash QEMU when translation
> cache has too many instructions:
> 
>   qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed.
>   qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> 
> I have reproduced it in linux user mode, with "ghc", and in
> system mode with the debian-installer for unstable distro
> from debian-ports.

If someone wanted to follow along with your "boot linux on qemu-system-m68k"
work on https://github.com/vivier/qemu-m68k, which of the 51 branches should
qemu-system-m68k with like -M q800 or whatever you had working be built from?

Also, "git pull" of the last tree I had from there exploded into a fireball of
automerge conflicts. Is there something I should know?

Rob



Re: [Qemu-devel] [PULL 0/2] M68k for 2.12 patches

2018-03-20 Thread Peter Maydell
On 20 March 2018 at 09:08, Laurent Vivier  wrote:
> The following changes since commit 55901900ec69d6fd6f332003d8ab81b2f8a38529:
>
>   Merge remote-tracking branch 
> 'remotes/vivier2/tags/linux-user-for-2.12-pull-request' into staging 
> (2018-03-15 17:58:28 +)
>
> are available in the Git repository at:
>
>   git://github.com/vivier/qemu-m68k.git tags/m68k-for-2.12-pull-request
>
> for you to fetch changes up to ecc207d2fc1d45fabb16c38742a6675a7ba56cbc:
>
>   target/m68k: add a mechanism to automatically free TCGv (2018-03-20 
> 09:38:58 +0100)
>
> 
> This series of patches is needed to fix a problem
> in the m68k translator that can crash QEMU when translation
> cache has too many instructions:
>
>   qemu-m68k: tcg/tcg.c:883: tcg_temp_alloc: Assertion `n < 512' failed.
>   qemu: uncaught target signal 11 (Segmentation fault) - core dumped
>
> I have reproduced it in linux user mode, with "ghc", and in
> system mode with the debian-installer for unstable distro
> from debian-ports.
> 
>
> Laurent Vivier (2):
>   target/m68k: add DisasContext parameter to gen_extend()
>   target/m68k: add a mechanism to automatically free TCGv
>
>  target/m68k/translate.c | 102 
> +++-
>  1 file changed, 66 insertions(+), 36 deletions(-)

Applied, thanks.

-- PMM