When installing FC5test2 on a Cell Blade the installation works fine except that after the first reboot yaboot cannot find its configuration file: 0 > yaboot Reading...relocating...go! Couldn't determine boot device ok 1 > after setting the boot-device to the partition where yaboot.conf is located yaboot starts without any problems "setenv boot-device /disk:2" or from linux "nvsetenv boot-device /disk:2" The OF implementation used on these blades does not support yet names like /pci@..../ide../disk... but as only one disk can be connected this should be no big problem. So if the nvram would be set correctly during installation no extra changes would be necessary to install Fedora. # cat /proc/cpuinfo processor : 0 cpu : Cell Broadband Engine, altivec supported clock : 2400.000000MHz revision : 4.0 (pvr 0070 0400) processor : 1 cpu : Cell Broadband Engine, altivec supported clock : 2400.000000MHz revision : 4.0 (pvr 0070 0400) processor : 2 cpu : Cell Broadband Engine, altivec supported clock : 2400.000000MHz revision : 4.0 (pvr 0070 0400) processor : 3 cpu : Cell Broadband Engine, altivec supported clock : 2400.000000MHz revision : 4.0 (pvr 0070 0400) timebase : 14318000 machine : CHRP IBM,0150-250
Created attachment 124035 [details] device tree tarball
Can you also attach the yaboot.conf generated by the installer. And a printout of the partitions. A pointer in the standards to your expectations of behaviour, and the output of a boot with a yaboot built with debugging enabled would be useful. Is the JS20 SLOF definition of yaboot still pretty accurate: \ Where files are loaded. Not the same as where they are executed. 10000 CONSTANT load-base \ Load secondary boot loader from disk @ sector 63. 512kB should be enough. : read-yaboot 3f 400 load-base disk-read ; : yaboot cr ." Reading..." read-yaboot ." relocating..." load-base load-elf-file ." go!" start-elf ;
The yaboot definition has not really changed, this is out current code: 10000 CONSTANT LOAD-BASE : read-yaboot set-disk-read 3f 400 load-base disk-read ; : yaboot set-bootargs set-bootpath cr ." Reading..." read-yaboot ." relocating..." load-base load-elf-file drop ." go!" s" yaboot" rot start-elf client-data ; $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda3 9918956 2605204 6801764 28% / /dev/hda2 99075 21025 72935 23% /boot tmpfs 500056 0 500056 0% /dev/shm $ ls -la /etc/yaboot.conf lrwxrwxrwx 1 root root 23 Jan 17 12:17 /etc/yaboot.conf -> ../boot/etc/yaboot.conf $ cat /etc/yaboot.conf # yaboot.conf generated by anaconda boot=/dev/hda1 init-message=Welcome to Fedora Core!\nHit <TAB> for boot options partition=2 timeout=80 install=/usr/lib/yaboot/yaboot delay=5 enablecdboot enableofboot enablenetboot nonvram fstype=raw image=/vmlinuz-2.6.15-1.1826.2.10_FC5 label=linux read-only initrd=/initrd-2.6.15-1.1826.2.10_FC5.img append="console=hvc0 rhgb quiet root=LABEL=/" 0 > yaboot Reading...relocating...go! Adding OF methods... prom_init - OF interface initialized. yaboot_start - Malloc buffer allocated at 00300000 (1048576 bytes) yaboot_start - reloc_offset : 0 (should be 0) yaboot_start - test_bss : 0 (should be 0) yaboot_start - test_data : 0 (should be 0) yaboot_start - &test_data : 00227454 yaboot_start - &test_bss : 00227458 yaboot_start - linked at : 0x00200000 yaboot_start - Running on _machine = 4 yaboot_main - /chosen/bootargs = yaboot_main - /chosen/bootpath = /disk:2 yaboot_main - After parse_device_path: dev=/disk, part=2, file= yaboot_main - After path kludgeup: dev=/disk, part=2, file=/etc/yaboot.conf open_file - dev_path = /disk file_name = /etc/yaboot.conf partition = 2 open_file - device is a block device partitions_lookup - block size of device is 512 partitions: file_block_open - number: 03, start: 0x00033ed0, length: 0x01387e30 file_block_open - number: 02, start: 0x00001f80, length: 0x00031f50 (match) file_block_open - Using OF defaults.. (found = 00308028) --> ext2_open ext2_open - dev=/disk, part=0x00308028 (2), file_name=/etc/yaboot.conf ext2_open - partition offset: 4128768 ext2_open - </disk:0> ext2_open - file->of_device = 0128fbc8 <-- ext2_open - FILE_ERR_OK ext2_read - ext_read() from pos 0x0, size: 0x32768x Config file read, 1024 bytes ext2_close - ext2_close called Can't set item boot to value /dev/hda1 Can't set item to to value <NULL> Can't set item Fedora to value <NULL> Can't set item Core!nHit to value <NULL> Can't set item <TAB> to value <NULL> Can't set item for to value <NULL> Can't set item boot to value <NULL> Can't set item options to value <NULL> Can't set item install to value /usr/lib/yaboot/yaboot Can't set item delay to value 5 Can't set item enablecdboot to value <NULL> Can't set item enableofboot to value <NULL> Can't set item enablenetboot to value <NULL> Can't set item nonvram to value <NULL> Can't set item fstype to value raw load_config_file - Config file successfully parsed, 1024 bytes Welcome Welcome to yaboot version 1.3.13 (Red Hat 1.3.13-0.16.1.1) Enter "help" to get some basic usage information boot: linux get_params - after parse_device_path: dev=/disk part=2 file=/vmlinuz-2.6.15-1.1826.2.10_FC5 get_params - Parsing initrd path </initrd-2.6.15-1.1826.2.10_FC5.img> Please wait, loading kernel... open_file - dev_path = /disk file_name = /vmlinuz-2.6.15-1.1826.2.10_FC5 partition = 2 open_file - device is a block device partitions_lookup - block size of device is 512 partitions: file_block_open - number: 03, start: 0x00033ed0, length: 0x01387e30 file_block_open - number: 02, start: 0x00001f80, length: 0x00031f50 (match) file_block_open - Using OF defaults.. (found = 0030ac44) --> ext2_open ext2_open - dev=/disk, part=0x0030ac44 (2), file_name=/vmlinuz-2.6.15-1.1826.2.10_FC5 ext2_open - partition offset: 4128768 ext2_open - </disk:0> ext2_open - file->of_device = 01297cc8 <-- ext2_open - FILE_ERR_OK ext2_read - ext_read() from pos 0x0, size: 0x20x ext2_read - ext_read() from pos 0x14, size: 0x44x load_elf64 - Elf64 header: load_elf64 - e.e_type = 2 load_elf64 - e.e_machine = 21 load_elf64 - e.e_version = 1 load_elf64 - e.e_entry = 0x0000000000000000 load_elf64 - e.e_phoff = 0x0000000000000040 load_elf64 - e.e_shoff = 0x0000000000593190 load_elf64 - e.e_flags = 0 load_elf64 - e.e_ehsize = 0x00000040 load_elf64 - e.e_phentsize = 0x00000038 load_elf64 - e.e_phnum = 2 ext2_read - ext_read() from pos 0x40, size: 0x112x load_elf64 - Before prom_claim, mem_sz: 0x00800000 load_elf64 - After ELF parsing, load base: 01400000, mem_sz: 0x00800000 load_elf64 - wanted load base: 0x01400000, mem_sz: 0x00800000 ext2_read - ext_read() from pos 0x10000, size: 0x5779456x Elf64 kernel loaded... ext2_close - ext2_close called Loading ramdisk... open_file - dev_path = /disk file_name = /initrd-2.6.15-1.1826.2.10_FC5.img partition = 2 open_file - device is a block device partitions_lookup - block size of device is 512 partitions: file_block_open - number: 03, start: 0x00033ed0, length: 0x01387e30 file_block_open - number: 02, start: 0x00001f80, length: 0x00031f50 (match) file_block_open - Using OF defaults.. (found = 0030d0c4) --> ext2_open ext2_open - dev=/disk, part=0x0030d0c4 (2), file_name=/initrd-2.6.15-1.1826.2.10_FC5.img ext2_open - partition offset: 4128768 ext2_open - </disk:0> ext2_open - file->of_device = 01297d58 <-- ext2_open - FILE_ERR_OK ext2_read - ext_read() from pos 0x0, size: 0x4194304x ext2_close - ext2_close called ramdisk loaded at 01c00000, size: 891 Kbytes yaboot_text_ui - setting kernel args to: ro console=hvc0 rhgb quiet root=LABEL=/ yaboot_text_ui - flushing icache... yaboot_text_ui - done yaboot_text_ui - birec at 00700000 yaboot_text_ui - Kernel entry point = 01400000 yaboot_text_ui - kernel: arg1 = 01c00000, arg2 = 0x000dec00, prom = 01110274, arg4 = 0, arg5 = 0 yaboot_text_ui - Entering kernel... OF stdout device is: /serial command line: ro console=hvc0 rhgb quiet root=LABEL=/ memory layout at init: memory_limit : 0000000000000000 (16 MB aligned) alloc_bottom : 0000000001cdf000 alloc_top : 0000000020000000 alloc_top_hi : 0000000040000000 rmo_top : 0000000020000000 ram_top : 0000000040000000 Looking for displays instantiating rtas at 0x000000001fff8000 ... done 0000000000000000 : boot cpu 0000000000000000 0000000000000002 : starting cpu hw idx 0000000000000002... done copying OF device tree ... Building dt strings... Building dt structure... Device tree strings 0x0000000001ce0000 -> 0x0000000001ce06ce Device tree struct 0x0000000001ce1000 -> 0x0000000001cf0000 Calling quiesce ... returning from prom_init Page orders: linear mapping = 24, others = 12 0xc000000001c00000:0xc000000001cdec00 lize btext ... t a display ! PC64 #1 SMP Wed Jan 11 18:15:42 EST 2006 ------------------------------------- = 0x0 controller = 0x3 = 0x1000 ze = 0x40000000 che_line_size = 0x80 che_line_size = 0x80 = 0xc00000003f000000 = 0x1ffff ------------------------------------- 100 *** 0000 : MM Init it 100 *** 0000 : MM Init Done it Done 6.15-1.1826.2.10_FC5 (bhcompile.redhat.com) (gcc version 4.1.0 20060106 (Red Hat 4.1.0-0.14)) #1 SMP Wed Jan 116 012 *** 0000 : Setup Arch Arch 000000, Total RAM: 0x40000000 : 0MB
OK parted /dev/hda print and can you try setting boot-device to be /disk: (no partition) and test that please.
I don't understand: "OK parted /dev/hda print" Should I do something? Sorry. Yaboot works also with boot-device set to /disk: (didn't knew that this was possible). As yaboot is able to find its configuration file with this information this could also be something the firmware could set as default value in the nvram (if that makes sense). 0 > yaboot Reading...relocating...go! Adding OF methods... prom_init - OF interface initialized. yaboot_start - Malloc buffer allocated at 00300000 (1048576 bytes) yaboot_start - reloc_offset : 0 (should be 0) yaboot_start - test_bss : 0 (should be 0) yaboot_start - test_data : 0 (should be 0) yaboot_start - &test_data : 00227454 yaboot_start - &test_bss : 00227458 yaboot_start - linked at : 0x00200000 yaboot_start - Running on _machine = 4 yaboot_main - /chosen/bootargs = yaboot_main - /chosen/bootpath = /disk: yaboot_main - After parse_device_path: dev=/disk, part=-1, file= yaboot_main - After path kludgeup: dev=/disk, part=-1, file=/etc/yaboot.conf open_file - dev_path = /disk file_name = /etc/yaboot.conf partition = -1 open_file - device is a block device partitions_lookup - block size of device is 512 partitions: file_block_open - number: 03, start: 0x00033ed0, length: 0x01387e30 --> ext2_open ext2_open - dev=/disk, part=0x00308084 (3), file_name=/etc/yaboot.conf ext2_open - partition offset: 108896256 ext2_open - </disk:0> ext2_open - file->of_device = 0128fb78 ext2_open - ext2fs_namei error #2133571404 while loading file /etc/yaboot.conf <-- ext2_open - -2 file_block_open - number: 02, start: 0x00001f80, length: 0x00031f50 --> ext2_open ext2_open - dev=/disk, part=0x00308028 (2), file_name=/etc/yaboot.conf ext2_open - partition offset: 4128768 ext2_open - </disk:0> ext2_open - file->of_device = 0128fbc0 <-- ext2_open - FILE_ERR_OK ext2_read - ext_read() from pos 0x0, size: 0x32768x Config file read, 1024 bytes ext2_close - ext2_close called
Sorry the parted was supposed to be run from the running system - don't panic. Setting to the device: not device:,N is what we expect on CHRP (which we pretend Cell is, and I believe you were trying to make SLOF on Cell compliant with the extensions of) and I believe would be consistent with other boxes you ship. I think this would be a sensible default as it doesn't assume anything about disk layout. Again if you let me know exactly what parts of the 1275 standard you are following (or if you have a 1275 platform binding paper for Cell) for boot procedure I can check if yaboot's assumptions are correct. We can not set nonvram on cell, if it's really required too.
>I think this would be a sensible default as it doesn't assume anything about > disk layout. Again if you let me know exactly what parts of the 1275 standard > you are following (or if you have a 1275 platform binding paper for Cell) for > boot procedure I can check if yaboot's assumptions are correct. You make it sound like if we have a plan or a written specification :-) I cannot say anything about this because I do not know it. We will now set boot-device to /disk: and then there are no changes required in anaconda. Thanks for your help.