static int apcie_glue_init(struct apcie_dev *sc)
{
glue_set_region(sc, AEOLIA_FUNC_ID_PCIE, 2, 0xbf018000, 0x7fff);
sc_info("Aeolia chip revision: %08x:%08x:%08x\n",
ioread32(sc->bar2 + APCIE_REG_CHIPID_0),
ioread32(sc->bar2 + APCIE_REG_CHIPID_1),
ioread32(sc->bar2 + APCIE_REG_CHIPREV));
…
}
kernel_init()
Kernel base = ffffffff9bfbc000
Direct map base = ffff88f600000000
pmap_protect patch successful (found at 0xffffffff9c29f0ca)
pmap_protect(pmap, 0xffffffff9cad8000, 0xffffffff9cae0000, 7)
Testing global variable access (write protection)...
OK.
Kernel interface initialized
Installing sys_kexec to system call #153
kexec_init() successful
PS4 Linux Loader for 5.05 by valentinbreiz
kernel base is:0xffffffff9bfbc000
uaddr is:0x00000002002dc000
sys_kexec invoked
sys_kexec(0x8887a0020, 6193616, 0x888d90020, 4081343, "panic=0 clocksource=tsc console=tty0 console=ttyS0,115200n8 console=uart8250,mmio32,0xd0340000 video=HDMI-A-1:1920x1080-24@60 consoleblank=0 net.ifnames=0 drm.debug=0 amdgpu.dpm=0 pci=nobios acpi_rsdp=0xe0000 pcie_aspm=off")
dumpMCFG started
Skipping FACP
Skipping APIC
MCFG found, length=60
MMIO[0].baseAddressECM=0x00000000f8000000
MMIO[0].pciSegmentGroup=0
MMIO[0].startPCIBus=0
MMIO[0].endPCIBus=63
...
[bus=0, dev=0, func=4] headerType=80
--vendorId: 104D, deviceId: 90DB (This is Sony Baikal PCI Express Glue and Miscellaneous Devices)
--status: 0x10, command: 0x546
--classCode: 0x8, subclass: 0x80, progIF: 0x4, revisionId: 0x0
--bar#0[type=mem, noOfBits=64, addr=0xc8000000(barLow=c8000004, barHigh=0), size=0, prefetchable=0]
--bar#2[type=mem, noOfBits=64, addr=0xc8800000(barLow=c8800004, barHigh=0), size=0, prefetchable=0]
--bar#4[type=mem, noOfBits=64, addr=0xc9000000(barLow=c9000004, barHigh=0), size=0, prefetchable=0]
--subsystemVendorId: 104D, subsystemId: 90DF
--capabilitiesPointer: 80, reserved0: 0
--cardbusCISpointer: 0
apcie glue probe
__raw_writel(0x7fff, [b]0xffff88f6[/b]c91c80d0)
__raw_writel(0xbf018000, [b]0xffff88f6[/b]c91c80d4)
Device capabilities for ven=104d, dev=90db at address ffff88f6f8004000 ...
----Start enum capabilities...
Skipping capability=0x10 at address ffff88f6f8004080 ...
----MSICapabilities.MSIEnable=1
----MSICapabilities.MultipleMessageCapable=5
----MSICapabilities.MultipleMessageEnable=5
----MSICapabilities.address64Capable=1
----MSICapabilities.messageAddress[low=0x3eeff000, high=0x0, full=0x3eeff000]
----MSICapabilities.messageData=160
----PMCapabilities.Version=0x3
----PMCapabilities.PME Support[PMED3Cold=0, PMED3Hot=0, PMED2=0, PMED1=0, PMED0=0, D2=0, D1=0]
----PMCapabilities.DeviceSpecificInitialization=0x0
----PMCapabilities.ControlStatus=0
----PMCapabilities.PMEEnable=0
----PMCapabilities.PowerState=0
...done
...
void do_icc_init(void) {
u8 svc = 0x10;
u8 reply[0x30];
static const u8 led_config[] = {
3, 1, 0, 0,
0x10, 1, /* Blue: on */
2, 0xff, 2, 1, 0x00,
0x11, 1, /* White: off */
2, 0x00, 2, 1, 0x00,
0x02, 3, /* Orange: delay and pulse, loop forever */
1, 0x00, 4, 1, 0xbf,
2, 0xff, 5, 1, 0xff,
2, 0x00, 5, 1, 0xff,
};
...
Ps3ita Team
4205
19 dic 2006, 15:22
nell' anno 1977
Rancid0x0
4.05
valera ha scritto:Also would like to add the following info:
If you have symptoms like me (black screen+white light+hang), there is probability you have similar PS4 with Baikal PCI Express Glue and Miscellaneous Devices which hangs on reading chip info from memory this device memory.
The code that changes the light colour from white to blue on normal boot is a part of this glue device driver (\drivers\ps4\ps4-apcie-icc.c)
- Codice: Seleziona tutto
void do_icc_init(void) {
u8 svc = 0x10;
u8 reply[0x30];
static const u8 led_config[] = {
3, 1, 0, 0,
0x10, 1, /* Blue: on */
2, 0xff, 2, 1, 0x00,
0x11, 1, /* White: off */
2, 0x00, 2, 1, 0x00,
0x02, 3, /* Orange: delay and pulse, loop forever */
1, 0x00, 4, 1, 0xbf,
2, 0xff, 5, 1, 0xff,
2, 0x00, 5, 1, 0xff,
};
...
And this code is either not reached at all or glue-device is not properly initialized and unable to send ICC messages.
Please correct me if I'm wrong.
Ps3ita Team
4205
19 dic 2006, 15:22
nell' anno 1977
Rancid0x0
4.05
Rancid(o) ha scritto:Interesting.. Can you send me a kernel dump via PM?
I've found in my kernel dump references to APCIE_REG_CHIPID_0, APCIE_REG_CHIPID_1 and APCIE_REG_CHIPREV but they are for Aeolia..
Visitano il forum: Nessuno e 0 ospiti