[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader |
Date: |
Mon, 6 Jan 2014 14:32:23 +1000 |
On Mon, Jan 6, 2014 at 2:22 PM, Li Guang <address@hidden> wrote:
> Peter Crosthwaite wrote:
>>
>> On Mon, Jan 6, 2014 at 1:55 PM, Li Guang<address@hidden> wrote:
>>
>>>
>>> Li Guang wrote:
>>>
>>>>
>>>> Paolo Bonzini wrote:
>>>>
>>>>>
>>>>> Il 02/01/2014 11:51, Peter Crosthwaite ha scritto:
>>>>>
>>>>>>>>
>>>>>>>> No, please use "realize" and avoid init. This way you can use an
>>>>>>>> Error*
>>>>>>>> to report the error.
>>>>>>>>
>>>>>>>> Also, the actual load_image_targphys call probably should be done in
>>>>>>>> a
>>>>>>>> reset handler, not at realize time.
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>> Ok I think that settles it. The actual blobbing needs to happen at
>>>>>> reset time. Perhaps the correct approach is to do as much as possible
>>>>>> (file-path / address sanitsation etc) at realize time, then only the
>>>>>> actual blob load happens at reset. Going on what Paolo said, I think
>>>>>> for this device ::init is actually a nop.
>>>>>>
>>>>>
>>>>> Yeah, also because init is in fact a legacy interface to realize.
>>>>>
>>>>> Paolo
>>>>>
>>>>>
>>>>
>>>> Ok, thanks!
>>>>
>>>>
>>>>
>>>
>>> Sorry, seems load blob at reset handler can't do the right job,
>>> while the same action can play very well at init or realize.
>>>
>>
>> What's the exact problem with the reset idea?
>>
>>
>>
>
> code snippet:
> static void blob_loader_reset(DeviceState *dev)
> {
> BlobLoaderState *s = BLOB_LOADER(dev);
>
> if (load_image_targphys(s->file, s->hwaddr, MAX_BLOB_SIZE) < 0) {
> error_report("can't load %s\n", s->file);
> exit(1);
> }
> }
>
> if it is device reset handler, no result,
> kernel doesn't find and parse blob,
> if it is called at device realize phase,
> it works.
>
Need to figure out why I think. There's no fundamental problem here
AFAIK. It must be a bug somewhere.
> Thanks!
>
>
>>> any suggestion to figure out this problem?
Run QEMU in GDB and break on your new reset function to see if it is
ever called. If not have a look into QOM/qdev to see how resets work
and how that plays with -device args. If yes, have a look into
load_image_targphys and see why that's not working.
Regards,
Peter
>>>
>>> Thanks!
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
- [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/02
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Peter Crosthwaite, 2014/01/02
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/02
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Paolo Bonzini, 2014/01/02
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Peter Crosthwaite, 2014/01/02
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Paolo Bonzini, 2014/01/02
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/05
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/05
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Peter Crosthwaite, 2014/01/05
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/05
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader,
Peter Crosthwaite <=
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/05
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/06
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Peter Crosthwaite, 2014/01/06
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Li Guang, 2014/01/06
- Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Paolo Bonzini, 2014/01/06
Re: [Qemu-devel] [PATCH] hw/misc/blob-loader: add a generic blob loader, Peter Maydell, 2014/01/06