From e915b0ad8c6b5a2fa25c59bd56ae752f8c2c799d Mon Sep 17 00:00:00 2001 From: "Ricardo M. Matinata" Date: Mon, 20 Aug 2012 17:08:10 -0300 Subject: [PATCH] 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 --- second/fs_of.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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) { -- 2.39.2