From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.6) Gecko/20050302 Firefox/1.0.1 Fedora/1.0.1-1.3.2 Description of problem: When attempting to network boot using yaboot on a 7044-170 pSeries, the yaboot executable is transferred to the system via tftp. Then when executed I receive the following errors: Can't claim memory for TFTP download /pci@fef00000/ethernet@10::-1,/etc/yaboot.conf:Input/output error Can't open config file Version-Release number of selected component (if applicable): yaboot-1.3.12-7 How reproducible: Always Steps to Reproduce: 1. Configure tftp/bootp server with chroot jail 2. mkdir etc in chroot jail and place yaboot.conf file 3. put yaboot in chroot jail 4. At of prompt type: boot network:,yaboot Actual Results: After OF received and executed yaboot Can't claim memory for TFTP download /pci@fef00000/ethernet@10::-1,/etc/yaboot.conf:Input/output error Can't open config file Expected Results: Should have made tftp request for etc/yaboot.conf file Additional info: I can successfully load the config file using yaboot version 1.3.10. I used a symbolic link from yaboot to the different yaboot executable versions to make sure I was not changing anything, thus ruling out any external causes. It appears that the problem is in the source file fs_of.c file->buffer = prom_claim((void *)LOAD_BUFFER_POS, LOAD_BUFFER_SIZE, 0); if (file->buffer == (void *)-1) { prom_printf("Can't claim memory for TFTP download\n"); prom_close(file->of_device); DEBUG_LEAVE(FILE_IOERR); return FILE_IOERR; } The difference appears to be a change that was implemented by David Woodhouse: * Wed Jun 23 2004 David Woodhouse <dwmw2> - 1.3.12-4 - Increase TFTP load buffer size to 8MiB. --- yaboot-1.3.12/second/fs_of.c.orig 2004-06-23 14:47:40.376216240 +0100 +++ yaboot-1.3.12/second/fs_of.c 2004-06-23 14:47:54.925004488 +0100 @@ -44,7 +44,7 @@ #include "debug.h" #define LOAD_BUFFER_POS 0x600000 -#define LOAD_BUFFER_SIZE 0x400000 +#define LOAD_BUFFER_SIZE 0x800000 static int of_open(struct boot_file_t* file, const char* dev_name, struct partition_t* part, const char* file_name); I am investigating this change because there was a size limitation of 6mb for kernel and initrd images. It appears David updated to source to allow for 8mb, but it appears to have been untested.
8MiB apparently works on some hardware but not all. Upstream yaboot 1.3.13 has it set to 6MiB with a comment that it's not safe to increase it any further. If we need to do a yaboot erratum for RHEL4, we should change to 6MiB.
Nathan this is the bug which relates to yaboot's poor malloc...
This request was evaluated by Red Hat Product Management for inclusion, but this component is not scheduled to be updated in the current Red Hat Enterprise Linux release. If you would like this request to be reviewed for the next minor release, ask your support representative to set the next rhel-x.y flag to "?".
RHEL-4.9 was the last RHEL-4 regular update. As RHEL-4 now targets only security fixes, closing this bugzilla WONTFIX. Fix was already done in RHEL-5.