Message ID | 1261473913-28442-1-git-send-email-avi@redhat.com |
---|---|
State | New |
Headers | show |
On Tue, Dec 22, 2009 at 11:25:13AM +0200, Avi Kivity wrote: > The first such option rom will load at address 0, which isn't very nice, > and the second will report a conflict and abort, which is horrible. > > Signed-off-by: Avi Kivity <avi@redhat.com> > --- > hw/loader.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/hw/loader.c b/hw/loader.c > index 2ceb8eb..c6bf0f1 100644 > --- a/hw/loader.c > +++ b/hw/loader.c > @@ -654,6 +654,9 @@ int rom_load_all(void) > Rom *rom; > > QTAILQ_FOREACH(rom, &roms, next) { > + if (!rom->addr) { > + continue; > + } Some roms needs to be loaded at address 0, it's the case for example of the arm versatile bootloader. Adding this code will break the board emulation. > if (addr > rom->addr) { > fprintf(stderr, "rom: requested regions overlap " > "(rom %s. free=0x" TARGET_FMT_plx > -- > 1.6.5.3 > > > >
On 12/22/2009 11:35 AM, Aurelien Jarno wrote: > On Tue, Dec 22, 2009 at 11:25:13AM +0200, Avi Kivity wrote: > >> The first such option rom will load at address 0, which isn't very nice, >> and the second will report a conflict and abort, which is horrible. >> >> Signed-off-by: Avi Kivity<avi@redhat.com> >> --- >> hw/loader.c | 3 +++ >> 1 files changed, 3 insertions(+), 0 deletions(-) >> >> diff --git a/hw/loader.c b/hw/loader.c >> index 2ceb8eb..c6bf0f1 100644 >> --- a/hw/loader.c >> +++ b/hw/loader.c >> @@ -654,6 +654,9 @@ int rom_load_all(void) >> Rom *rom; >> >> QTAILQ_FOREACH(rom,&roms, next) { >> + if (!rom->addr) { >> + continue; >> + } >> > Some roms needs to be loaded at address 0, it's the case for example of > the arm versatile bootloader. Adding this code will break the board > emulation. > The idea of keying bios-loading or host-loading on address is broken (another instance of mixing control and data). We need a separate control for this. I'll leave this to the authors of the code as I can't make heads or tails of it.
diff --git a/hw/loader.c b/hw/loader.c index 2ceb8eb..c6bf0f1 100644 --- a/hw/loader.c +++ b/hw/loader.c @@ -654,6 +654,9 @@ int rom_load_all(void) Rom *rom; QTAILQ_FOREACH(rom, &roms, next) { + if (!rom->addr) { + continue; + } if (addr > rom->addr) { fprintf(stderr, "rom: requested regions overlap " "(rom %s. free=0x" TARGET_FMT_plx
The first such option rom will load at address 0, which isn't very nice, and the second will report a conflict and abort, which is horrible. Signed-off-by: Avi Kivity <avi@redhat.com> --- hw/loader.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)