Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Odyssey scom and cfam support both in kernel and sbefifo backend mode #79

Closed
wants to merge 5 commits into from

Commits on Dec 7, 2023

  1. odyssey bmc backend sbefifo device tree changes

    This commit is to cater for odyssey DDR5 device tree changes.
    
    Every proc chip will be associated with 8 ddr5 ocmb chips
    which are accessed through sbefifo.
    
    SBEFifo are configured as /dev/sbefifoXYY where X is the proc
    number and YY as the port number.
    
    Based on the fsi path found on the everest with ddr5 configuration
    "/i2cr101/slave@00:00/raw" configured the same in the device tree
    for kernel-fsi for each associated DDR5 chip.
    
    Ensured that existing DDR4 devices does not have any impact.
    
    Configured device path of the DDR5 OCMB odyssey chips in the
    bmc backend device tree
    
    get and put scom on ocmb chips will be using the newly configured
    ocmb device path for sbefifo access
    
    Tested:
    Ensured that the new ocmb odyssesy SBE targets are added
    and are probed verified both fsi and sbefifo probe is done
    sucessfully
    
    pdbg target path is /hmfsiocmb@101/sbefifo-ocmb@101
    pdbg compatible is ibm,kernel-sbefifo
    pdbg device-path is /dev/sbefifo101
    pdbg_target_probe  status is  0
    kernel_fsi_probe device_path /i2cr101/slave@00:00/raw
    kernel_fsi_probe path /sys/class/fsi-master//i2cr101/slave@00:00/raw success probed
    sbefifo_connect fifo_path /dev/sbefifo101
    
    pdbg_target_probe class name is sbefifo
    pdbg target path is /proc0/fsi/sbefifo@2400
    pdbg compatible is ibm,kernel-sbefifo
    pdbg device-path is /dev/sbefifo1
    pdbg_target_probe  status is  0
    kernel_fsi_probe device_path /fsi0/slave@00:00/raw
    kernel_fsi_probe path /sys/class/fsi-master//fsi0/slave@00:00/raw success probed
    sbefifo_connect fifo_path /dev/sbefifo1
    
    Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
    Change-Id: Ibf6c32ec578730ac79d7d732e545ed3be6c9ed0c
    devenrao committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    fcb9ce7 View commit details
    Browse the repository at this point in the history
  2. cater for odyssey get and put scom with sbefifo backend

    1) Uses the device path configured in the bmc backend device
    tree to perform get and put scom on odyssey ddr5 chip
    
    2) Checks attribute chip-id of the ocmb target  to differentiate
    between ddr4 and ddr5 ocmb chips for get/put scom
    
    3) For ddr4 ocmb targets parent proc sbefifo device path is used
    for get/put scom
    
    4) For ddr5 ocmb targets its corresponding sbefifo device path is
    used for get/put scom
    
    Tested:
    root@ever6bmc:/tmp# getscom odyssey c0002040 -pall
    odyssey k0:n0:s0:p02       0x0040010002000640
    odyssey k0:n0:s0:p03       0x0040010002000640
    odyssey k0:n0:s0:p34       0x0040010002000640
    odyssey k0:n0:s0:p35       0x0040010002000640
    /usr/bin/edbg getscom odyssey c0002040 -pall
    
    Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
    Change-Id: I55d438619b87b04e014bb6d8eaaef9aee986ae1b
    devenrao committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    5427b5e View commit details
    Browse the repository at this point in the history
  3. add seperate class name for odyssey sbefifo targets

    Introduced new class name for odyssey ocmb sbefifo targets,
    this helps in reducing the targets to search to find the sbefifo
    target for the corresponding odyssey ocmb chip.
    
    Tested
    odyssesy chip ocmb_getscom proc=0 ocmb index=2 addr= 0x08012400 value 0x40010002000640
    
    Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
    Change-Id: I776dbf5b8e0193b55a430f1661df6163ef7f0e7e
    devenrao committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    c0d8ff2 View commit details
    Browse the repository at this point in the history
  4. odyssey bmc backend kernel device tree changes

    Every proc chip will be associated with 8 ddr5 ocmb chips
    which are accessed through pib.
    
    pibs are configured as /dev/scomXYY where X is the proc
    number and YY as the port number.
    
    Ensured that existing DDR4 devices does not have any impact.
    
    Configured device path of the DDR5 OCMB odyssey chips in the
    bmc backend kernel device tree
    
    get and put scom on ocmb chips will be using the newly configured
    ocmb kernel device path
    
    hmfsi-ody@112 {
        #address-cells = <0x02>;
        #size-cells = <0x01>;
        compatible = "ibm,kernel-fsi";
        device-path = "/i2cr112/slave@00:00/raw";
        reg = <0x00 0x04 0x8000>;
        index = <0x04>;
        proc = <0x00>;
        port = <0x0c>;
        system-path = "/proc0/ocmb4/fsi";
    
        pib_ody@112 {
            #address-cells = <0x02>;
            #size-cells = <0x01>;
            reg = <0x00 0x04 0x8000>;
            compatible = "ibm,kernel-pib";
            index = <0x04>;
            proc = <0x00>;
            port = <0x0c>;
            device-path = "/dev/scom112";
            system-path = "/proc0/ocmb4";
        };
    };
    
    Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
    Change-Id: I8391301d93d34f8c861082cbe3d36d2759b59ece
    devenrao committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    6b9f31a View commit details
    Browse the repository at this point in the history
  5. cater for odyssey get and put scom with kernel backend

    1) Uses the device path configured in the kernel backend device
    tree to perform get and put scom on odyssey ddr5 chip
    
    2) Checks attribute chip-id of the ocmb target to differentiate
    between ddr4 and ddr5 ocmb chips for get/put scom
    
    4) For ddr5 ocmb targets its corresponding scom device path is
    used for get/put scom
    
    Tested:
    1) At present noticing kernel panic at kernel_pib_getscom method
       need to debug further.
    
    Signed-off-by: Marri Devender Rao <devenrao@in.ibm.com>
    Change-Id: Ic99d1e0963876ac60ce5a48c092bfac16d416855
    devenrao committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    b4d0996 View commit details
    Browse the repository at this point in the history