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