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

Conversation

devenrao
Copy link
Contributor

@devenrao devenrao commented Dec 6, 2023

No description provided.

libpdbg/kernel.c Outdated Show resolved Hide resolved
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
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
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
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
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants