qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] U-Boot patch for qemu -M mips
@ 2007-10-02 10:07 Vlad Lungu
  2007-10-02 16:40 ` Thiemo Seufer
  0 siblings, 1 reply; 12+ messages in thread
From: Vlad Lungu @ 2007-10-02 10:07 UTC (permalink / raw)
  To: qemu-devel, wd

[-- Attachment #1: Type: text/html, Size: 13582 bytes --]

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-02 10:07 [Qemu-devel] U-Boot patch for qemu -M mips Vlad Lungu
@ 2007-10-02 16:40 ` Thiemo Seufer
  2007-10-03  8:29   ` Vlad Lungu
  0 siblings, 1 reply; 12+ messages in thread
From: Thiemo Seufer @ 2007-10-02 16:40 UTC (permalink / raw)
  To: Vlad Lungu; +Cc: qemu-devel, wd

Vlad Lungu wrote:
>  Fix for mips GOT relocation bug, NE2000 bugs, add support for qemu -M mips target.
[snip]
>  diff --git a/board/qemu-mips/config.mk b/board/qemu-mips/config.mk
>  new file mode 100644
>  index 0000000..39eb60a
>  --- /dev/null
>  +++ b/board/qemu-mips/config.mk
>  @@ -0,0 +1,32 @@
>  +#
>  +# (C) Copyright 2003
>  +# Wolfgang Denk, DENX Software Engineering, [3]wd@denx.de.
>  +#
>  +# See file CREDITS for list of people who contributed to this
>  +# project.
>  +#
>  +# This program is free software; you can redistribute it and/or
>  +# modify it under the terms of the GNU General Public License as
>  +# published by the Free Software Foundation; either version 2 of
>  +# the License, or (at your option) any later version.
>  +#
>  +# This program is distributed in the hope that it will be useful,
>  +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>  +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  +# GNU General Public License for more details.
>  +#
>  +# You should have received a copy of the GNU General Public License
>  +# along with this program; if not, write to the Free Software
>  +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
>  +# MA 02111-1307 USA
>  +#
>  +
>  +#
>  +# AMD development board AMD Alchemy DbAu1x00, MIPS32 core

Incorrect comment.

>  +#
>  +
>  +# ROM version
>  +TEXT_BASE = 0xbfc00000
>  +
>  +# RAM version
>  +#TEXT_BASE = 0x80100000

This could be as low as 0x80001000 (assuming the space for exception
handlers isn't reserved by other means).

[snip]
>  diff --git a/board/qemu-mips/lowlevel_init.S b/board/qemu-mips/lowlevel_init.S
>  new file mode 100644
>  index 0000000..855e8ab
>  --- /dev/null
>  +++ b/board/qemu-mips/lowlevel_init.S
>  @@ -0,0 +1,47 @@
>  +/* Memory sub-system initialization code */
>  +
>  +#include <config.h>
>  +#include <version.h>
>  +#include <asm/regdef.h>
>  +#include <asm/mipsregs.h>
>  +
>  +       .text
>  +       .set noreorder
>  +       .set mips32
>  +
>  +       .globl  lowlevel_init
>  +lowlevel_init:
>  +
>  +       /*
>  +        * Step 2) Establish Status Register
>  +        * (set BEV, clear ERL, clear EXL, clear IE)
>  +        */
>  +       li      t1, 0x00400000
>  +       mtc0    t1, CP0_STATUS
>  +
>  +       /*
>  +        * Step 3) Establish CP0 Config0
>  +        * (set OD, set K0=3)
>  +        */
>  +       li      t1, 0x00080003
>  +       mtc0    t1, CP0_CONFIG

OD is a processor-specific flag, it does nothing on Qemu.

>  +       /*
>  +        * Step 5) Disable the performance counters
>  +        */
>  +       mtc0    zero, CP0_PERFORMANCE
>  +       nop

This field isn't required to exist (as per architecture spec), which
means you can get an exception when writing it. Since perfctr
interrupts are guaranteed to be disabled, the best option is not to
touch the register in early startup code.

(If you want to use performance counters, first check via the config
registers if they are implemented. You won't have much luck on Qemu:
The registers are implemented, but they don't do anything useful.)

>  +       /*
>  +        * Step 7) Establish Cause
>  +        * (set IV bit)
>  +        */
>  +       li      t1, 0x00800000
>  +       mtc0    t1, CP0_CAUSE
>  +
>  +       /* Establish Wired (and Random) */
>  +       mtc0    zero, CP0_WIRED
>  +       nop
>  +
>  +       j       ra
>  +       nop
>  diff --git a/board/qemu-mips/qemu-mips.c b/board/qemu-mips/qemu-mips.c
>  new file mode 100644
>  index 0000000..76c093c
>  --- /dev/null
>  +++ b/board/qemu-mips/qemu-mips.c
>  @@ -0,0 +1,48 @@
>  +/*
>  + * (C) Copyright 2007
>  + * [5]vlad@comsys.ro

A name in addition would look nicer. :-)

>  + *
>  + * See file CREDITS for list of people who contributed to this
>  + * project.
>  + *
>  + * This program is free software; you can redistribute it and/or
>  + * modify it under the terms of the GNU General Public License as
>  + * published by the Free Software Foundation; either version 2 of
>  + * the License, or (at your option) any later version.
>  + *
>  + * This program is distributed in the hope that it will be useful,
>  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  + * GNU General Public License for more details.
>  + *
>  + * You should have received a copy of the GNU General Public License
>  + * along with this program; if not, write to the Free Software
>  + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
>  + * MA 02111-1307 USA
>  + */
>  +
>  +#include <common.h>
>  +#include <command.h>
>  +#include <asm/mipsregs.h>
>  +
>  +long int initdram(int board_type)
>  +{
>  +       /* Sdram is setup by assembler code */
>  +       /* If memory could be changed, we should return the true value here */
>  +       return MEM_SIZE*1024*1024;

Qemu gets the amount of RAM passed via a command line switch, the
qemu-mips emulation sets up a Linux kernel like "command line" in
memory where u-boot could parse it from.

>  +}
>  +
>  +
>  +int checkboard (void)
>  +{
>  +       u32 proc_id;
>  +
>  +       proc_id = read_32bit_cp0_register(CP0_PRID);
>  +
>  +       switch (proc_id >> 24) {
>  +       default:
>  +               printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
>  +       }
>  +
>  +       return 0;
>  +}

Huh? What is this code good for?


Thiemo

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-02 16:40 ` Thiemo Seufer
@ 2007-10-03  8:29   ` Vlad Lungu
  2007-10-03 13:37     ` Thiemo Seufer
  0 siblings, 1 reply; 12+ messages in thread
From: Vlad Lungu @ 2007-10-03  8:29 UTC (permalink / raw)
  To: qemu-devel; +Cc: wd

Thiemo Seufer wrote:
> Vlad Lungu wrote:
>   
>>  Fix for mips GOT relocation bug, NE2000 bugs, add support for qemu -M mips target.
>>     
> [snip]
>   
>>  diff --git a/board/qemu-mips/config.mk b/board/qemu-mips/config.mk
>>     
[snip]
>>  +#
>>  +# AMD development board AMD Alchemy DbAu1x00, MIPS32 core
>>     
>
> Incorrect comment.
>
>   
didn't spot that
>>  +#
>>  +
>>  +# ROM version
>>  +TEXT_BASE = 0xbfc00000
>>  +
>>  +# RAM version
>>  +#TEXT_BASE = 0x80100000
>>     
>
> This could be as low as 0x80001000 (assuming the space for exception
> handlers isn't reserved by other means).
>   
I think I saw that difference in Linux 2.6 too. I suppose you're right.
> [snip]
>   
>>  diff --git a/board/qemu-mips/lowlevel_init.S b/board/qemu-mips/lowlevel_init.S
>>  new file mode 100644
>>  index 0000000..855e8ab
>>  --- /dev/null
>>  +++ b/board/qemu-mips/lowlevel_init.S
>>  @@ -0,0 +1,47 @@
>>  +/* Memory sub-system initialization code */
>>  +
>>  +#include <config.h>
>>  +#include <version.h>
>>  +#include <asm/regdef.h>
>>  +#include <asm/mipsregs.h>
>>  +
>>  +       .text
>>  +       .set noreorder
>>  +       .set mips32
>>  +
>>  +       .globl  lowlevel_init
>>  +lowlevel_init:
>>  +
>>  +       /*
>>  +        * Step 2) Establish Status Register
>>  +        * (set BEV, clear ERL, clear EXL, clear IE)
>>  +        */
>>  +       li      t1, 0x00400000
>>  +       mtc0    t1, CP0_STATUS
>>  +
>>  +       /*
>>  +        * Step 3) Establish CP0 Config0
>>  +        * (set OD, set K0=3)
>>  +        */
>>  +       li      t1, 0x00080003
>>  +       mtc0    t1, CP0_CONFIG
>>     
>
> OD is a processor-specific flag, it does nothing on Qemu.
>
>   
>>  +       /*
>>  +        * Step 5) Disable the performance counters
>>  +        */
>>  +       mtc0    zero, CP0_PERFORMANCE
>>  +       nop
>>     
>
> This field isn't required to exist (as per architecture spec), which
> means you can get an exception when writing it. Since perfctr
> interrupts are guaranteed to be disabled, the best option is not to
> touch the register in early startup code.
>
> (If you want to use performance counters, first check via the config
> registers if they are implemented. You won't have much luck on Qemu:
> The registers are implemented, but they don't do anything useful.)
>   
Well, I didn't get any exception . And nobody complained about OD 
either. The stuff that barfed on me, I deleted right away.
I'll delete this too, no problem.
>>  +       /*
>>  +        * Step 7) Establish Cause
>>  +        * (set IV bit)
>>  +        */
>>  +       li      t1, 0x00800000
>>  +       mtc0    t1, CP0_CAUSE
>>  +
>>  +       /* Establish Wired (and Random) */
>>  +       mtc0    zero, CP0_WIRED
>>  +       nop
>>  +
>>  +       j       ra
>>  +       nop
>>  diff --git a/board/qemu-mips/qemu-mips.c b/board/qemu-mips/qemu-mips.c
>>  new file mode 100644
>>  index 0000000..76c093c
>>  --- /dev/null
>>  +++ b/board/qemu-mips/qemu-mips.c
>>  @@ -0,0 +1,48 @@
>>  +/*
>>  + * (C) Copyright 2007
>>  + * [5]vlad@comsys.ro
>>     
>
> A name in addition would look nicer. :-)
>
>   
Names are so passe :-)
>>  + *
>>  + * See file CREDITS for list of people who contributed to this
>>  + * project.
>>  + *
>>  + * This program is free software; you can redistribute it and/or
>>  + * modify it under the terms of the GNU General Public License as
>>  + * published by the Free Software Foundation; either version 2 of
>>  + * the License, or (at your option) any later version.
>>  + *
>>  + * This program is distributed in the hope that it will be useful,
>>  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>>  + * GNU General Public License for more details.
>>  + *
>>  + * You should have received a copy of the GNU General Public License
>>  + * along with this program; if not, write to the Free Software
>>  + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
>>  + * MA 02111-1307 USA
>>  + */
>>  +
>>  +#include <common.h>
>>  +#include <command.h>
>>  +#include <asm/mipsregs.h>
>>  +
>>  +long int initdram(int board_type)
>>  +{
>>  +       /* Sdram is setup by assembler code */
>>  +       /* If memory could be changed, we should return the true value here */
>>  +       return MEM_SIZE*1024*1024;
>>     
>
> Qemu gets the amount of RAM passed via a command line switch, the
> qemu-mips emulation sets up a Linux kernel like "command line" in
> memory where u-boot could parse it from.
>
>   
Does it, or just when you pass -kernel to it? I'll check.
>>  +}
>>  +
>>  +
>>  +int checkboard (void)
>>  +{
>>  +       u32 proc_id;
>>  +
>>  +       proc_id = read_32bit_cp0_register(CP0_PRID);
>>  +
>>  +       switch (proc_id >> 24) {
>>  +       default:
>>  +               printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 24, proc_id);
>>  +       }
>>  +
>>  +       return 0;
>>  +}
>>     
>
> Huh? What is this code good for?
>
>   
Checking for the type of board, I suppose :-)  I think all BSPs have it 
and it's called early in the boot process. I could either do only a 
return 0 or actually decode CP0_PRID and print something meaningful, if 
Qemu sets it to something sensible. Or just print a nice banner.

Thanks for the input. This is a first version and it does what it's 
supposed to do, it booted in qemu HEAD on linux-x86 and in stock 0.90 
for Windows and loaded a linux kernel via dhcp/tftp, nfs, ext2 and fat 
partitions on IDE. I say it can only go up from here :-) Any other 
suggestions are welcome, and if you don't feel like compiling it for a 
test, I can send you a binary by e-mail.


Vlad

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-03  8:29   ` Vlad Lungu
@ 2007-10-03 13:37     ` Thiemo Seufer
  2007-10-03 13:49       ` Vlad Lungu
  0 siblings, 1 reply; 12+ messages in thread
From: Thiemo Seufer @ 2007-10-03 13:37 UTC (permalink / raw)
  To: Vlad Lungu; +Cc: qemu-devel, wd

Vlad Lungu wrote:
[snip]
>>>  +long int initdram(int board_type)
>>>  +{
>>>  +       /* Sdram is setup by assembler code */
>>>  +       /* If memory could be changed, we should return the true value 
>>> here */
>>>  +       return MEM_SIZE*1024*1024;
>>>     
>>
>> Qemu gets the amount of RAM passed via a command line switch, the
>> qemu-mips emulation sets up a Linux kernel like "command line" in
>> memory where u-boot could parse it from.
>>
>>   
> Does it, or just when you pass -kernel to it? I'll check.

Hm, you are right, it does that only for -kernel. Would it make sense
to change that in Qemu?

Since the mips_r4k machine doesn't correspond to any real hardware we
have a bit of leeway with the "hardware" design.

>>>  +}
>>>  +
>>>  +
>>>  +int checkboard (void)
>>>  +{
>>>  +       u32 proc_id;
>>>  +
>>>  +       proc_id = read_32bit_cp0_register(CP0_PRID);
>>>  +
>>>  +       switch (proc_id >> 24) {
>>>  +       default:
>>>  +               printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 
>>> 24, proc_id);
>>>  +       }
>>>  +
>>>  +       return 0;
>>>  +}
>>>     
>>
>> Huh? What is this code good for?
>>
>>   
> Checking for the type of board, I suppose :-)  I think all BSPs have it and 
> it's called early in the boot process. I could either do only a return 0 or 
> actually decode CP0_PRID and print something meaningful, if Qemu sets it to 
> something sensible. Or just print a nice banner.

As it is, this code prints a nice "Unsupported CPU" banner no matter what
(and proceeds anyway instead of bailing out).

Latest CVS Qemu supports a number of different CPUs (see the -cpu switch),
the default for 32 bit is a 24Kf, and for 64 bit a R4000.


Thiemo

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-03 13:37     ` Thiemo Seufer
@ 2007-10-03 13:49       ` Vlad Lungu
  2007-10-03 19:47         ` Thiemo Seufer
  0 siblings, 1 reply; 12+ messages in thread
From: Vlad Lungu @ 2007-10-03 13:49 UTC (permalink / raw)
  To: qemu-devel

Thiemo Seufer wrote:
> Vlad Lungu wrote:
> [snip]
>   
>>>>  +long int initdram(int board_type)
>>>>  +{
>>>>  +       /* Sdram is setup by assembler code */
>>>>  +       /* If memory could be changed, we should return the true value 
>>>> here */
>>>>  +       return MEM_SIZE*1024*1024;
>>>>     
>>>>         
>>> Qemu gets the amount of RAM passed via a command line switch, the
>>> qemu-mips emulation sets up a Linux kernel like "command line" in
>>> memory where u-boot could parse it from.
>>>
>>>   
>>>       
>> Does it, or just when you pass -kernel to it? I'll check.
>>     
>
> Hm, you are right, it does that only for -kernel. Would it make sense
> to change that in Qemu?
>   
IDK.  Maybe I can probe the  RAM size in U-Boot , or if this does not 
work, put some info somewhere (RAM, register,
emulated DIP-dwitch), like RAM size, endianness of the CPU.
> Since the mips_r4k machine doesn't correspond to any real hardware we
> have a bit of leeway with the "hardware" design.
>
>   
>>>>  +}
>>>>  +
>>>>  +
>>>>  +int checkboard (void)
>>>>  +{
>>>>  +       u32 proc_id;
>>>>  +
>>>>  +       proc_id = read_32bit_cp0_register(CP0_PRID);
>>>>  +
>>>>  +       switch (proc_id >> 24) {
>>>>  +       default:
>>>>  +               printf ("Unsupported cpu %d, proc_id=0x%x\n", proc_id >> 
>>>> 24, proc_id);
>>>>  +       }
>>>>  +
>>>>  +       return 0;
>>>>  +}
>>>>     
>>>>         
>>> Huh? What is this code good for?
>>>
>>>   
>>>       
>> Checking for the type of board, I suppose :-)  I think all BSPs have it and 
>> it's called early in the boot process. I could either do only a return 0 or 
>> actually decode CP0_PRID and print something meaningful, if Qemu sets it to 
>> something sensible. Or just print a nice banner.
>>     
>
> As it is, this code prints a nice "Unsupported CPU" banner no matter what
> (and proceeds anyway instead of bailing out).
>   
True, because it does not care much about this at the moment. Nor do I. 
But that can change.
> Latest CVS Qemu supports a number of different CPUs (see the -cpu switch),
> the default for 32 bit is a 24Kf, and for 64 bit a R4000.
>
>   
I'll look into this and see what use can we make of CP0_PRID.

Vlad

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-03 13:49       ` Vlad Lungu
@ 2007-10-03 19:47         ` Thiemo Seufer
  2007-10-04 10:52           ` Vlad Lungu
  2007-10-04 13:26           ` [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2 Vlad Lungu
  0 siblings, 2 replies; 12+ messages in thread
From: Thiemo Seufer @ 2007-10-03 19:47 UTC (permalink / raw)
  To: Vlad Lungu; +Cc: qemu-devel

Vlad Lungu wrote:
> Thiemo Seufer wrote:
>> Vlad Lungu wrote:
>> [snip]
>>   
>>>>>  +long int initdram(int board_type)
>>>>>  +{
>>>>>  +       /* Sdram is setup by assembler code */
>>>>>  +       /* If memory could be changed, we should return the true value 
>>>>> here */
>>>>>  +       return MEM_SIZE*1024*1024;
>>>>>             
>>>> Qemu gets the amount of RAM passed via a command line switch, the
>>>> qemu-mips emulation sets up a Linux kernel like "command line" in
>>>> memory where u-boot could parse it from.
>>>>
>>>>         
>>> Does it, or just when you pass -kernel to it? I'll check.
>>>     
>>
>> Hm, you are right, it does that only for -kernel. Would it make sense
>> to change that in Qemu?
>>   
> IDK.  Maybe I can probe the  RAM size in U-Boot , or if this does not work, 

mips_r4k implements no probable memory controller, so this won't work.

> put some info somewhere (RAM, register,
> emulated DIP-dwitch), like RAM size, endianness of the CPU.

Endianness is rather pointless. If your U-Boot binary doesn't explode
immediately you got the right endianness. :-)


Thiemo

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-03 19:47         ` Thiemo Seufer
@ 2007-10-04 10:52           ` Vlad Lungu
  2007-10-04 11:43             ` Thiemo Seufer
  2007-10-04 13:26           ` [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2 Vlad Lungu
  1 sibling, 1 reply; 12+ messages in thread
From: Vlad Lungu @ 2007-10-04 10:52 UTC (permalink / raw)
  To: qemu-devel

Thiemo Seufer wrote:
> Vlad Lungu wrote:
>   
>> Thiemo Seufer wrote:
>>     
>>> Vlad Lungu wrote:
>>> [snip]
>>>   
>>>       
>>>>>>  +long int initdram(int board_type)
>>>>>>  +{
>>>>>>  +       /* Sdram is setup by assembler code */
>>>>>>  +       /* If memory could be changed, we should return the true value 
>>>>>> here */
>>>>>>  +       return MEM_SIZE*1024*1024;
>>>>>>             
>>>>>>             
>>>>> Qemu gets the amount of RAM passed via a command line switch, the
>>>>> qemu-mips emulation sets up a Linux kernel like "command line" in
>>>>> memory where u-boot could parse it from.
>>>>>
>>>>>         
>>>>>           
>>>> Does it, or just when you pass -kernel to it? I'll check.
>>>>     
>>>>         
>>> Hm, you are right, it does that only for -kernel. Would it make sense
>>> to change that in Qemu?
>>>   
>>>       
>> IDK.  Maybe I can probe the  RAM size in U-Boot , or if this does not work, 
>>     
>
> mips_r4k implements no probable memory controller, so this won't work.
>   
I say let's stick it into a "DIP-switch", so nobody can overwrite it by 
mistake. And you don't have to parse it.
>> put some info somewhere (RAM, register,
>> emulated DIP-dwitch), like RAM size, endianness of the CPU.
>>     
>
> Endianness is rather pointless. If your U-Boot binary doesn't explode
> immediately you got the right endianness. :-)
>
>   
It doesn't actually explode, it sort of almost hits the exception 
handler and freezes there. I don't have a mipsel gdb at hand
to watch it, but it should be fun.
 
pc=EPC   0xbfc00380
ds 0006

STATUS    0x00400006
CAUSE     0x00000428
CONFIG0 0x80000082
CONFIG1 0x9e190c8b

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-04 11:43             ` Thiemo Seufer
@ 2007-10-04 10:58               ` vlad
  0 siblings, 0 replies; 12+ messages in thread
From: vlad @ 2007-10-04 10:58 UTC (permalink / raw)
  To: qemu-devel

> Vlad Lungu wrote:
> [snip]
>>>> put some info somewhere (RAM, register,
>>>> emulated DIP-dwitch), like RAM size, endianness of the CPU.
>>>>
>>>
>>> Endianness is rather pointless. If your U-Boot binary doesn't explode
>>> immediately you got the right endianness. :-)
>>>
>>>
>> It doesn't actually explode, it sort of almost hits the exception
>> handler
>> and freezes there. I don't have a mipsel gdb at hand
>> to watch it, but it should be fun.
>> pc=EPC   0xbfc00380
>> ds 0006
>>
>> STATUS    0x00400006
>> CAUSE     0x00000428
>> CONFIG0 0x80000082
>> CONFIG1 0x9e190c8b
>
> Try "qemu-system-mipsel ... -d all", and watch /tmp/qemu.log. :-)

Oh crap. Now I see the problem. Either I misread the 0.90 "info reg" or
there's a difference in how it's handled. It dies on the first instruction
anyway.

Vlad

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips
  2007-10-04 10:52           ` Vlad Lungu
@ 2007-10-04 11:43             ` Thiemo Seufer
  2007-10-04 10:58               ` vlad
  0 siblings, 1 reply; 12+ messages in thread
From: Thiemo Seufer @ 2007-10-04 11:43 UTC (permalink / raw)
  To: qemu-devel

Vlad Lungu wrote:
[snip]
>>> put some info somewhere (RAM, register,
>>> emulated DIP-dwitch), like RAM size, endianness of the CPU.
>>>     
>>
>> Endianness is rather pointless. If your U-Boot binary doesn't explode
>> immediately you got the right endianness. :-)
>>
>>   
> It doesn't actually explode, it sort of almost hits the exception handler 
> and freezes there. I don't have a mipsel gdb at hand
> to watch it, but it should be fun.
> pc=EPC   0xbfc00380
> ds 0006
>
> STATUS    0x00400006
> CAUSE     0x00000428
> CONFIG0 0x80000082
> CONFIG1 0x9e190c8b

Try "qemu-system-mipsel ... -d all", and watch /tmp/qemu.log. :-)


Thiemo

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2
  2007-10-03 19:47         ` Thiemo Seufer
  2007-10-04 10:52           ` Vlad Lungu
@ 2007-10-04 13:26           ` Vlad Lungu
  2007-10-04 13:55             ` Wolfgang Denk
  1 sibling, 1 reply; 12+ messages in thread
From: Vlad Lungu @ 2007-10-04 13:26 UTC (permalink / raw)
  To: qemu-devel; +Cc: wd

Now with board config file included, so it can be built :-)
Thiemo, I'll think about the memory size issue and get back to you on that.
How about a git repo for U-Boot, if this thing takes off?  

Vlad


-------------------------------------------------------------------
diff --git a/Makefile b/Makefile
index 85885b1..8f650d2 100644
--- a/Makefile
+++ b/Makefile
@@ -2444,6 +2444,12 @@ pb1000_config		:	unconfig
 	@echo "#define CONFIG_PB1000 1" >>$(obj)include/config.h
 	@$(MKCONFIG) -a pb1x00 mips mips pb1x00
 
+qemu_mips_config		:	unconfig
+	@mkdir -p $(obj)include
+	@ >$(obj)include/config.h
+	@echo "#define CONFIG_QEMU_MIPS 1" >>$(obj)include/config.h
+	@$(MKCONFIG) -a qemu-mips mips mips qemu-mips
+
 #########################################################################
 ## MIPS64 5Kc
 #########################################################################
diff --git a/board/qemu-mips/Makefile b/board/qemu-mips/Makefile
new file mode 100644
index 0000000..23be447
--- /dev/null
+++ b/board/qemu-mips/Makefile
@@ -0,0 +1,45 @@
+#
+# (C) Copyright 2003-2006
+# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS	= $(BOARD).o flash.o
+SOBJS	= lowlevel_init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	 $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/qemu-mips/README b/board/qemu-mips/README
new file mode 100644
index 0000000..39570b1
--- /dev/null
+++ b/board/qemu-mips/README
@@ -0,0 +1,11 @@
+By Vlad Lungu vlad@comsys.ro 2007-Oct-01
+----------------------------------------
+Qemu is a full system emulator. See
+
+http://fabrice.bellard.free.fr/qemu
+
+Limitations & comments
+----------------------
+Supports the "-m mips" configuration of qemu: serial,NE2000,IDE.
+Support is big endian only for now (or at least this is what I tested).
+Derived from au1x00 with a lot of things cut out.
diff --git a/board/qemu-mips/config.mk b/board/qemu-mips/config.mk
new file mode 100644
index 0000000..61269ce
--- /dev/null
+++ b/board/qemu-mips/config.mk
@@ -0,0 +1,11 @@
+
+#
+# Qemu -M mips system emulator
+# See http://fabrice.bellard.free.fr/qemu
+#
+
+# ROM version
+TEXT_BASE = 0xbfc00000
+
+# RAM version
+#TEXT_BASE = 0x80001000
diff --git a/board/qemu-mips/flash.c b/board/qemu-mips/flash.c
new file mode 100644
index 0000000..d419f41
--- /dev/null
+++ b/board/qemu-mips/flash.c
@@ -0,0 +1,43 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#if 0
+flash_info_t flash_info[CFG_MAX_FLASH_BANKS];	/* info for FLASH chips */
+#endif
+/*-----------------------------------------------------------------------
+ * flash_init()
+ *
+ * sets up flash_info and returns size of FLASH (bytes)
+ */
+unsigned long flash_init (void)
+{
+	printf ("Skipping flash_init\n");
+	return (0);
+}
+
+int write_buff (/*flash_info_t */ void * info, uchar * src, ulong addr, ulong cnt)
+{
+	printf ("write_buff not implemented\n");
+	return (-1);
+}
diff --git a/board/qemu-mips/lowlevel_init.S b/board/qemu-mips/lowlevel_init.S
new file mode 100644
index 0000000..28166bc
--- /dev/null
+++ b/board/qemu-mips/lowlevel_init.S
@@ -0,0 +1,41 @@
+/* Memory sub-system initialization code */
+
+#include <config.h>
+#include <version.h>
+#include <asm/regdef.h>
+#include <asm/mipsregs.h>
+
+	.text
+	.set noreorder
+	.set mips32
+
+	.globl	lowlevel_init
+lowlevel_init:
+
+	/*
+	 * Step 2) Establish Status Register
+	 * (set BEV, clear ERL, clear EXL, clear IE)
+	 */
+	li	t1, 0x00400000
+	mtc0	t1, CP0_STATUS
+
+	/*
+	 * Step 3) Establish CP0 Config0
+	 * (set K0=3)
+	 */
+	li	t1, 0x00000003
+	mtc0	t1, CP0_CONFIG
+
+	/*
+	 * Step 7) Establish Cause
+	 * (set IV bit)
+	 */
+	li	t1, 0x00800000
+	mtc0	t1, CP0_CAUSE
+
+	/* Establish Wired (and Random) */
+	mtc0	zero, CP0_WIRED
+	nop
+
+	j	ra
+	nop
diff --git a/board/qemu-mips/qemu-mips.c b/board/qemu-mips/qemu-mips.c
new file mode 100644
index 0000000..66ad97d
--- /dev/null
+++ b/board/qemu-mips/qemu-mips.c
@@ -0,0 +1,83 @@
+/*
+ * (C) Copyright 2007
+ * Vlad Lungu vlad@comsys.ro
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+#include <command.h>
+#include <asm/mipsregs.h>
+
+long int initdram(int board_type)
+{
+	/* Sdram is setup by assembler code */
+	/* If memory could be changed, we should return the true value here */
+	return MEM_SIZE*1024*1024;
+}
+
+
+int checkboard (void)
+{
+	u32 proc_id;
+	u32 config1;
+	
+	proc_id = read_32bit_cp0_register(CP0_PRID);
+	printf("Board: Qemu -M mips CPU: ");
+	switch (proc_id) {
+	case 0x00018000:
+    		printf("4Kc");
+    		break;
+	case 0x00018400:
+    		printf("4KEcR1");
+    		break;
+	case 0x00019000:
+    		printf("4KEc");
+    		break;
+	case 0x00019300:
+		config1 = read_mips32_cp0_config1();
+		if (config1&1)
+    		    printf("24Kf");
+    		    else
+    		    printf("24Kc");
+    		break;
+	case 0x00019500:
+    		printf("34Kf");
+    		break;
+	case 0x00000400:
+    		printf("R4000");
+    		break;
+	case 0x00018100:
+		config1 = read_mips32_cp0_config1();
+		if (config1&1)
+    		    printf("5Kf");
+    		    else
+    		    printf("5Kc");
+    		break;
+	case 0x000182a0:
+    		printf("20Kc");
+    		break;
+	
+	default:
+    		printf("unknown");
+	}
+		printf (" proc_id=0x%x\n", proc_id);
+
+	return 0;
+}
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
new file mode 100644
index 0000000..10c9917
--- /dev/null
+++ b/board/qemu-mips/u-boot.lds
@@ -0,0 +1,69 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk Engineering, <wd@denx.de>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+*/
+OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")
+OUTPUT_ARCH(mips)
+ENTRY(_start)
+SECTIONS
+{
+	. = 0x00000000;
+
+	. = ALIGN(4);
+	.text       :
+	{
+	  *(.text)
+	}
+
+	. = ALIGN(4);
+	.rodata  : { *(.rodata) }
+
+	. = ALIGN(4);
+	.data  : { *(.data) }
+
+	. = ALIGN(4);
+	.sdata  : { *(.sdata) }
+
+	_gp = ALIGN(16);
+
+	__got_start = .;
+	.got  : { *(.got) }
+	__got_end = .;
+
+	.sdata  : { *(.sdata) }
+
+	. = .;
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
+
+	uboot_end_data = .;
+	num_got_entries = (__got_end - __got_start) >> 2;
+
+	. = ALIGN(4);
+	.sbss  : { *(.sbss) }
+	.bss  : { *(.bss) }
+	uboot_end = .;
+}
diff --git a/cpu/mips/start.S b/cpu/mips/start.S
index e91e213..1e5b302 100644
--- a/cpu/mips/start.S
+++ b/cpu/mips/start.S
@@ -349,6 +349,7 @@ in_ram:
 	/* Now we want to update GOT.
 	 */
 	lw	t3, -4(t0)	/* t3 <-- num_got_entries	*/
+	sub     t3,2		/* If skipping two entries, adjust length*/
 	addi	t4, gp, 8	/* Skipping first two entries.	*/
 	li	t2, 2
 1:
diff --git a/drivers/ne2000.c b/drivers/ne2000.c
index b7ed876..0bfe74e 100644
--- a/drivers/ne2000.c
+++ b/drivers/ne2000.c
@@ -755,7 +755,7 @@ static void pcnet_reset_8390(void)
 #endif
 	n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD);
 
-	n2k_outb(n2k_inb(nic_base + PCNET_RESET), PCNET_RESET);
+	n2k_outb(n2k_inb(PCNET_RESET), PCNET_RESET);
 
 	for (i = 0; i < 100; i++) {
 		if ((r = (n2k_inb(EN0_ISR) & ENISR_RESET)) != 0)
@@ -833,6 +833,7 @@ static int plen[NB];
 static int nrx = 0;
 
 static int pkey = -1;
+static int initialized=0;
 
 void uboot_push_packet_len(int len) {
 	PRINTK("pushed len = %d, nrx = %d\n", len, nrx);
@@ -846,7 +847,12 @@ void uboot_push_packet_len(int len) {
 	}
 	plen[nrx] = len;
 	dp83902a_recv(&pbuf[nrx*2000], len);
+/*Just pass it to the upper layer*/
+	NetReceive(&pbuf[nrx*2000], plen[nrx]);
+/*eth_rx() was gutted, so this is not needed anymore*/
+#if 0
 	nrx++;
+#endif
 }
 
 void uboot_push_tx_done(int key, int val) {
@@ -903,37 +909,21 @@ int eth_init(bd_t *bd) {
 	if (dp83902a_init() == false)
 		return -1;
 	dp83902a_start(dev_addr);
+	initialized=1;
 	return 0;
 }
 
 void eth_halt() {
 
 	PRINTK("### eth_halt\n");
-
-	dp83902a_stop();
+	if(initialized)
+		dp83902a_stop();
+	initialized=0;
 }
 
 int eth_rx() {
-	int j, tmo;
-
-	PRINTK("### eth_rx\n");
-
-	tmo = get_timer (0) + TOUT * CFG_HZ;
-	while(1) {
-		dp83902a_poll();
-		if (nrx > 0) {
-			for(j=0; j<nrx; j++) {
-				NetReceive(&pbuf[j*2000], plen[j]);
-			}
-			nrx = 0;
-			return 1;
-		}
-		if (get_timer (0) >= tmo) {
-			printf("timeout during rx\n");
-			return 0;
-		}
-	}
-	return 0;
+dp83902a_poll();
+return 1;
 }
 
 int eth_send(volatile void *packet, int length) {
diff --git a/drivers/ne2000.h b/drivers/ne2000.h
index 2955533..6c31f47 100644
--- a/drivers/ne2000.h
+++ b/drivers/ne2000.h
@@ -42,7 +42,7 @@ are GPL, so this is, of course, GPL.
  this file might be covered by the GNU General Public License.
 
  Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
- at http://sources.redhat.com/ecos/ecos-license/ */
+ at http://sources.redhat.com/ecos/ecos-license/ 
  -------------------------------------------
 ####ECOSGPLCOPYRIGHTEND####
 ####BSDCOPYRIGHTBEGIN####
diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
new file mode 100644
index 0000000..b8fc049
--- /dev/null
+++ b/include/configs/qemu-mips.h
@@ -0,0 +1,172 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * This file contains the configuration parameters for the dbau1x00 board.
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#define CONFIG_MIPS32		1  /* MIPS32 CPU core	*/
+#define CONFIG_QEMU_MIPS        1
+#undef DEBUG
+
+#define CONFIG_ETHADDR		52:54:00:12:34:56    /* Ethernet address */
+#define CONFIG_IPADDR		10.0.2.15    	     /* Our IP address */
+#define CONFIG_SERVERIP		10.0.2.2	     /* Server IP address*/
+
+#define CONFIG_BOOTDELAY	10	/* autoboot after 10 seconds	*/
+
+#define CONFIG_BAUDRATE		115200
+
+/* valid baudrates */
+#define CFG_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
+
+#define	CONFIG_TIMESTAMP		/* Print image info with timestamp */
+#undef	CONFIG_BOOTARGS
+
+#define	CONFIG_EXTRA_ENV_SETTINGS					\
+	"addmisc=setenv bootargs ${bootargs} "				\
+		"console=ttyS0,${baudrate} "				\
+		"panic=1\0"						\
+	"bootfile=/tftpboot/vmlinux\0"				\
+	"load=tftp 80500000 ${u-boot}\0"				\
+	""
+
+#define CONFIG_BOOTCOMMAND	"bootp;bootelf"
+
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE
+#define CONFIG_BOOTP_BOOTPATH
+#define CONFIG_BOOTP_GATEWAY
+#define CONFIG_BOOTP_HOSTNAME
+
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_BDI
+#undef CONFIG_CMD_BEDBUG
+#define CONFIG_CMD_ELF
+#undef CONFIG_CMD_ENV
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_EXT2
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_MII
+#undef CONFIG_CMD_RUN
+
+
+#define CONFIG_CMD_DHCP
+#undef CONFIG_CMD_LOADB
+#undef CONFIG_CMD_LOADS
+#define CONFIG_CMD_NET
+#undef CONFIG_CMD_FLASH
+#undef CONFIG_CMD_IMLS
+
+#define CONFIG_DRIVER_NE2000
+#define CONFIG_DRIVER_NE2000_BASE	(0xb4000300)
+
+#define CFG_NO_FLASH
+#define CFG_NS16550
+#define CFG_NS16550_SERIAL
+#define CFG_NS16550_REG_SIZE    1
+#define CFG_NS16550_CLK         115200
+#define CFG_NS16550_COM1        (0xb40003f8)
+#define CONFIG_CONS_INDEX	1
+
+#define CONFIG_CMD_IDE
+#define CONFIG_DOS_PARTITION
+
+#define CFG_IDE_MAXBUS	2
+#define CFG_ATA_IDE0_OFFSET	(0x1f0)
+#define CFG_ATA_IDE1_OFFSET	(0x170)
+#define CFG_ATA_DATA_OFFSET	(0)
+#define CFG_ATA_REG_OFFSET	(0)
+#define CFG_ATA_BASE_ADDR	(0xb4000000)
+
+#define CFG_IDE_MAXDEVICE	(4)
+/*3f6*/
+
+/*
+ * Miscellaneous configurable options
+ */
+#define	CFG_LONGHELP				/* undef to save memory      */
+
+#define	CFG_PROMPT		"qemu-mips # "	/* Monitor Command Prompt    */
+
+#define	CFG_CBSIZE		256		/* Console I/O Buffer Size   */
+#define	CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)  /* Print Buffer Size */
+#define	CFG_MAXARGS		16		/* max number of command args*/
+
+#define CFG_MALLOC_LEN		128*1024
+
+#define CFG_BOOTPARAMS_LEN	128*1024
+
+#define CFG_MHZ			132
+
+#define CFG_HZ                  (CFG_MHZ * 1000000) /* FIXME causes overflow in net.c */
+
+#define CFG_SDRAM_BASE		0x80000000     /* Cached addr */
+
+#define	CFG_LOAD_ADDR		0x81000000     /* default load address	*/
+
+#define CFG_MEMTEST_START	0x80100000
+#define CFG_MEMTEST_END		0x80800000
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+
+/* The following #defines are needed to get flash environment right */
+#define	CFG_MONITOR_BASE	TEXT_BASE
+#define	CFG_MONITOR_LEN		(192 << 10)
+
+#define CFG_INIT_SP_OFFSET	0x400000
+
+/* We boot from this flash, selected with dip switch */
+#define CFG_FLASH_BASE		0xbfc00000
+
+#define	CFG_ENV_IS_NOWHERE	1
+
+/* Address and size of Primary Environment Sector	*/
+#define CFG_ENV_SIZE		0x10000
+#undef CONFIG_NET_MULTI
+
+#define MEM_SIZE 128
+
+#undef CONFIG_MEMSIZE_IN_BYTES
+
+/*-----------------------------------------------------------------------
+ * Cache Configuration
+ */
+#define CFG_DCACHE_SIZE		16384
+#define CFG_ICACHE_SIZE		16384
+#define CFG_CACHELINE_SIZE	32
+
+#endif	/* __CONFIG_H */

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2
  2007-10-04 13:26           ` [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2 Vlad Lungu
@ 2007-10-04 13:55             ` Wolfgang Denk
  2007-10-04 16:33               ` Vlad Lungu
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2007-10-04 13:55 UTC (permalink / raw)
  To: Vlad Lungu; +Cc: qemu-devel

In message <4704EA18.3050603@comsys.ro> you wrote:
> Now with board config file included, so it can be built :-)
> Thiemo, I'll think about the memory size issue and get back to you on that.
> How about a git repo for U-Boot, if this thing takes off?  

We actually have already a lot of them -  the  master  repo  and  the
custodian  repositories. Logically, your code should go into the MIPS
repo. I think you should start posting on  the  U-Boot  mailing  list
instead     of     sending     to     my    direct    address;    see
http://www.denx.de/wiki/UBoot/WebHome for details.

BTW: Your code has a few minor coding style  violations  (indentation
by spaces instead of TAB), and the signed-off-ny line is missing.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
"To IBM, 'open' means there is a modicum  of  interoperability  among
some of their equipment."                            - Harv Masterson

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

* Re: [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2
  2007-10-04 13:55             ` Wolfgang Denk
@ 2007-10-04 16:33               ` Vlad Lungu
  0 siblings, 0 replies; 12+ messages in thread
From: Vlad Lungu @ 2007-10-04 16:33 UTC (permalink / raw)
  To: Wolfgang Denk; +Cc: qemu-devel

Wolfgang Denk wrote:
> In message <4704EA18.3050603@comsys.ro> you wrote:
>   
>> Now with board config file included, so it can be built :-)
>> Thiemo, I'll think about the memory size issue and get back to you on that.
>> How about a git repo for U-Boot, if this thing takes off?  
>>     
>
> We actually have already a lot of them -  the  master  repo  and  the
> custodian  repositories. Logically, your code should go into the MIPS
> repo. I think you should start posting on  the  U-Boot  mailing  list
> instead     of     sending     to     my    direct    address;    see
> http://www.denx.de/wiki/UBoot/WebHome for details.
>   
Actually, this was directed at the Qemu list. But thanks for the offer. 
I suppose they could just point
to your repo in the source release/dev tree and  store the corresponding 
source snapshot when doing a binary
release with information included in the README, and it would be kosher 
Re: GPL.
> BTW: Your code has a few minor coding style  violations  (indentation
> by spaces instead of TAB), and the signed-off-ny line is missing.
>   
Might be. I use joe/mcedit/vi in random order to edit source files, 
that's the source of the spaces, and the patch was rather
informal so no signoff. I'll re-branch and do a 3-part (GOT,NE2000,qemu) 
patchset .

Vlad
 

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

end of thread, other threads:[~2007-10-04 16:34 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-02 10:07 [Qemu-devel] U-Boot patch for qemu -M mips Vlad Lungu
2007-10-02 16:40 ` Thiemo Seufer
2007-10-03  8:29   ` Vlad Lungu
2007-10-03 13:37     ` Thiemo Seufer
2007-10-03 13:49       ` Vlad Lungu
2007-10-03 19:47         ` Thiemo Seufer
2007-10-04 10:52           ` Vlad Lungu
2007-10-04 11:43             ` Thiemo Seufer
2007-10-04 10:58               ` vlad
2007-10-04 13:26           ` [Qemu-devel] U-Boot patch for qemu -M mips TAKE 2 Vlad Lungu
2007-10-04 13:55             ` Wolfgang Denk
2007-10-04 16:33               ` Vlad Lungu

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).