From: Ricardo M. Matinata Date: Mon, 20 Aug 2012 20:08:10 +0000 (-0300) Subject: Enhance network stack detection on IBM pSeries X-Git-Url: http://git.ozlabs.org/?a=commitdiff_plain;h=e915b0ad8c6b5a2fa25c59bd56ae752f8c2c799d;p=yaboot.git Enhance network stack detection on IBM pSeries Instead of testing for /packages/cas existence, as a criteria for using new-styled tftp in OFW, replace it by /ibm,fw-net-compatibility, which seems to be more appropriate (broader), for now. Signed-off-by: Ricardo M. Matinata Signed-off-by: Tony Breeds --- diff --git a/second/fs_of.c b/second/fs_of.c index 36bd354..fc88e8e 100644 --- a/second/fs_of.c +++ b/second/fs_of.c @@ -144,6 +144,8 @@ of_net_open(struct boot_file_t* file, char *filename = NULL; char *p; int new_tftp; + prom_handle root; + ihandle prom_net; DEBUG_ENTER; DEBUG_OPEN; @@ -165,11 +167,14 @@ of_net_open(struct boot_file_t* file, if (fspec->dev[strlen(fspec->dev)-1] != ':') strcat(buffer, ":"); - /* If /packages/cas exists the we have a "new skool" tftp. + /* If /ibm,fw-net-compatibility exists the we have a "new skool" tftp. * This means that siaddr is the tftp server and that we can add * {tftp,bootp}_retrys, subnet mask and tftp block size to the load * method */ - new_tftp = (prom_finddevice("/packages/cas") != PROM_INVALID_HANDLE); + new_tftp = 0; + root = prom_finddevice("/"); + if (prom_getprop(root, "ibm,fw-net-compatibility", &prom_net, sizeof(ihandle)) > 0) + new_tftp = 1; DEBUG_F("Using %s tftp style\n", (new_tftp? "new": "old")); if (new_tftp) {