07 Dec, 2013

2 commits

  • To avoid build problems and breaking dependencies between ACPI header
    files, should not be included directly by code outside
    of the ACPI core subsystem, but this is done by the ACPI iSCSI
    Boot Firmware code.

    The iBFT specification doesn't mention whether or not it can appear
    on a non-ACPI platform, but is says that ACPI 3.0b defines the
    mechanism. The current CONFIG_ISCSI_IBFT_FIND code doesn't use the
    ACPI tables API to locate the table, so it doesn't rely on CONFIG_ACPI
    directly.

    However, since iBFT is is an ACPI-based mechanism (please refer to
    the documentation link below for more information), it should be
    correct to make CONFIG_ISCSI_IBFT_FIND depend on CONFIG_ACPI (even
    though the table location can be implemented without using ACPI
    tables API).

    After that change, include/linux/iscsi_ibft.h can be modified to
    include instead of as appropriate.

    References: http://www.microsoft.com/whdc/system/platform/firmware/ibft.mspx
    Cc: Konrad Rzeszutek Wilk
    Cc: Peter Jones
    Signed-off-by: Lv Zheng
    [rjw: Subject and changelog]
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     
  • Replace direct inclusions of , and
    , which are incorrect, with
    inclusions and remove some inclusions of those files that aren't
    necessary.

    First of all, , and
    should not be included directly from any files that are built for
    CONFIG_ACPI unset, because that generally leads to build warnings about
    undefined symbols in !CONFIG_ACPI builds. For CONFIG_ACPI set,
    includes those files and for CONFIG_ACPI unset it
    provides stub ACPI symbols to be used in that case.

    Second, there are ordering dependencies between those files that always
    have to be met. Namely, it is required that be included
    prior to so that the acpi_pci_root declarations the
    latter depends on are always there. And which provides
    basic ACPICA type declarations should always be included prior to any other
    ACPI headers in CONFIG_ACPI builds. That also is taken care of including
    as appropriate.

    Signed-off-by: Lv Zheng
    Cc: Greg Kroah-Hartman
    Cc: Matthew Garrett
    Cc: Tony Luck
    Cc: "H. Peter Anvin"
    Acked-by: Bjorn Helgaas (drivers/pci stuff)
    Acked-by: Konrad Rzeszutek Wilk (Xen stuff)
    Signed-off-by: Rafael J. Wysocki

    Lv Zheng
     

12 May, 2010

1 commit

  • - Use struct acpi_table_ibft instead of struct ibft_table_header
    - Don't do reserve_ibft_region() on UEFI machines (section 1.4.3.1)
    - If ibft_addr isn't initialized when ibft_init() is called, check for
    ACPI-based tables.
    - Fix compiler error when CONFIG_ACPI is not defined.

    Signed-off-by: Konrad Rzeszutek Wilk
    Signed-off-by: Peter Jones
    Signed-off-by: Mike Christie

    Peter Jones
     

02 Apr, 2010

1 commit

  • This allows arch code could decide the way to reserve the ibft.

    And we should reserve ibft as early as possible, instead of BOOTMEM
    stage, in case the table is in RAM range and is not reserved by BIOS
    (this will often be the case.)

    Move to just after find_smp_config().

    Also when CONFIG_NO_BOOTMEM=y, We will not have reserve_bootmem() anymore.

    -v2: fix typo about ibft pointed by Konrad Rzeszutek Wilk

    Signed-off-by: Yinghai Lu
    LKML-Reference:
    Cc: Pekka Enberg
    Cc: Peter Jones
    Cc: Konrad Rzeszutek Wilk
    CC: Jan Beulich
    Signed-off-by: H. Peter Anvin

    Yinghai Lu
     

20 Apr, 2008

1 commit

  • Add /sysfs/firmware/ibft/[initiator|targetX|ethernetX] directories along with
    text properties which export the the iSCSI Boot Firmware Table (iBFT)
    structure.

    What is iSCSI Boot Firmware Table? It is a mechanism for the iSCSI tools to
    extract from the machine NICs the iSCSI connection information so that they
    can automagically mount the iSCSI share/target. Currently the iSCSI
    information is hard-coded in the initrd. The /sysfs entries are read-only
    one-name-and-value fields.

    The usual set of data exposed is:

    # for a in `find /sys/firmware/ibft/ -type f -print`; do echo -n "$a: "; cat $a; done
    /sys/firmware/ibft/target0/target-name: iqn.2007.com.intel-sbx44:storage-10gb
    /sys/firmware/ibft/target0/nic-assoc: 0
    /sys/firmware/ibft/target0/chap-type: 0
    /sys/firmware/ibft/target0/lun: 00000000
    /sys/firmware/ibft/target0/port: 3260
    /sys/firmware/ibft/target0/ip-addr: 192.168.79.116
    /sys/firmware/ibft/target0/flags: 3
    /sys/firmware/ibft/target0/index: 0
    /sys/firmware/ibft/ethernet0/mac: 00:11:25:9d:8b:01
    /sys/firmware/ibft/ethernet0/vlan: 0
    /sys/firmware/ibft/ethernet0/gateway: 192.168.79.254
    /sys/firmware/ibft/ethernet0/origin: 0
    /sys/firmware/ibft/ethernet0/subnet-mask: 255.255.252.0
    /sys/firmware/ibft/ethernet0/ip-addr: 192.168.77.41
    /sys/firmware/ibft/ethernet0/flags: 7
    /sys/firmware/ibft/ethernet0/index: 0
    /sys/firmware/ibft/initiator/initiator-name: iqn.2007-07.com:konrad.initiator
    /sys/firmware/ibft/initiator/flags: 3
    /sys/firmware/ibft/initiator/index: 0

    For full details of the IBFT structure please take a look at:
    ftp://ftp.software.ibm.com/systems/support/system_x_pdf/ibm_iscsi_boot_firmware_table_v1.02.pdf

    [akpm@linux-foundation.org: fix build]
    Signed-off-by: Konrad Rzeszutek
    Cc: Mike Christie
    Cc: Peter Jones
    Cc: James Bottomley
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Konrad Rzeszutek