[OpenBIOS] PReP PowerPC "emulation"
Andreas Färber
andreas.faerber at web.de
Sun Sep 26 20:53:30 CEST 2010
Am 26.09.2010 um 14:12 schrieb Mark Cave-Ayland:
> Andreas Färber wrote:
>
>> The following patch does wonders, it changes the ppc config to
>> match sparc64 wrt ISO9660:
>
> Ah wait a second - I think I know what's happening here. Several
> months ago I found a couple of bugs in fs/iso9660/* related to
> loading files from CD. I seem to recall:
>
> i) The filenames all had to be in capital letters
> ii) Sometimes I had to put an extra . at the end
>
> I found these bugs by stepping through iso9660_opendir() under gdb.
> So that is likely what's happening here - OpenBIOS is unable to
> locate the file from the filesystem at boot time.
iso9660_open() actually succeeds for lowercase \ppc\chrp\bootfile.exe.
Replacing strcmp() with strcasecmp() in seek_name() made no visible
difference. It probably depends on the case on the disk, some
directories are uppercase here, some lowercase.
diff --git a/fs/iso9660/iso9660_opendir.c b/fs/iso9660/iso9660_opendir.c
index 10cb89d..49eab4b 100644
--- a/fs/iso9660/iso9660_opendir.c
+++ b/fs/iso9660/iso9660_opendir.c
@@ -55,7 +55,7 @@ static struct iso_directory_record *
seek_name(iso9660_VOLUME *volume,
while ((idr = iso9660_readdir(dir)) != NULL)
{
iso9660_name(volume, idr, name_buf);
- if (strcmp(name, name_buf) == 0)
+ if (strcasecmp(name, name_buf) == 0)
{
result = idr_new(idr);
iso9660_closedir(dir);
Some random observations:
* Changing some file in fs/iso9660/ and re-running `make` in obj-ppc
causes LD to fail with multiple/undefined symbols. Removing ./libfs.a
first and then re-running `make` works fine.
* The ofmem_claim() hack I tried for Haiku does not help with AIX. AIX
tries to claim 0x00200000 bytes at location 0x07e00000, which overlaps
with OpenBIOS at rom_base()==0x07f00000. Haiku by comparison claims
0x00100000 bytes at 0x0 and ended up at a different location by my
patch (0x07e00000 vs. 0x07f00000).
* The two AIX "NULL phandle" messages go away and the processor count
is detected as 1 when running with -m 1024:
-------------------------------------------------------------------------------
Welcome to AIX.
boot image timestamp: 01:75 2B/75
NULL ihandle The current time and date: 00:00:00
156828/00/0008
processor count: 1; memory size: 1024MB; kernel size: 8391752
boot device: cd:\ppc\chrp\bootfile.exe
Validation failed: the "/rtas" device node does not exist.
EXIT
0 >
The "NULL ihandle" stems from call-method being called with 0x0
ihandle for get-time. This is caused by open for the rtc node
returning 0x0 on ppc64. ppc output follows:
-------------------------------------------------------------------------------
Welcome to AIX.
boot image timestamp: 01:75 2B/75
The current time and date: 18:08:20 09/26/2010
processor count: 1; memory size: 1024MB; kernel size: 8391752
boot device: cd:\ppc\chrp\bootfile.exe
ERROR: This system is not supported for use with AIX 6.1.
model: Power Macintosh processor: PowerPC,750
AIX 6.1 requires the POWER4 (or later) processor.
EXIT
0 >
Andreas
More information about the OpenBIOS
mailing list