02-08-2023, 11:17 AM
(02-08-2023, 10:57 AM)维格纳朋友 提到: 如果superiotool正常工作,大概superio的部分也会被正常生成。
老实说这个状态,感觉开发者可以用SSH直接远程调试。
romstage.c里的void mainboard_config_superio并没有被正常配置。
注释掉就好了吧?
设备树那边用h81m-p33设备树里的
直接换掉生成的代码:chip superio/nuvoton/nct6779d
device pnp 4e.1 off end # Parallel
device pnp 4e.2 on # UART A
io 0x60 = 0x3f8
irq 0x70 = 4
end
device pnp 4e.3 off end # UART B, IR
device pnp 4e.5 on # Keyboard
io 0x60 = 0x60
io 0x62 = 0x64
irq 0x70 = 1
irq 0x72 = 12
end
device pnp 4e.6 off end # CIR
device pnp 4e.7 off end # GPIO6-8
device pnp 4e.8 off end # WDT1, GPIO0, GPIO1
device pnp 4e.108 on end # GPIO0
device pnp 4e.9 off end # GPIO1-8
device pnp 4e.109 off end # GPIO1
device pnp 4e.209 off end # GPIO2
device pnp 4e.309 off end # GPIO3
device pnp 4e.409 off end # GPIO4
device pnp 4e.509 off end # GPIO5
device pnp 4e.609 off end # GPIO6
device pnp 4e.709 off end # GPIO7
device pnp 4e.a on end # ACPI
device pnp 4e.b on # H/W Monitor, FP LED
io 0x60 = 0x290
io 0x62 = 0
irq 0x70 = 0
end
device pnp 4e.d off end # WDT1
device pnp 4e.e off end # CIR Wake-up
device pnp 4e.f off end # Push-pull/Open-drain
device pnp 4e.14 off end # Port 80 UART
device pnp 4e.16 off end # Deep Sleep
end
?代码:subsystemid 0x1462 0x7817
autoport 没有生成 superio 代码的功能,这块还是要自己做。
h81m-p33 的 superio 初始化是在 bootblock.c 的 mainboard_config_superio 实现的,目的是把串口打开,从而可以利用串口获取调试信息。而 devicetree.cb 里面的 superio 是 ramstage 初始化 superio 用的,属于后续细化的操作。
h81m-p33 的 lpc 下面没有 subsystemid 这行,是因为它的 devicetree.cb 在 "device domain 0 on" 那行下面已经有一行 "subsystemid 0x1462 0x7817 inherit", 所以下面节点相同 subsystemid 的那些 "subsystemid 0x1462 0x7817" 都可以省略掉,你可以考虑做相同的简化。“chip superio/nuvoton/nct6779d” 这整块代码的确可以直接贴到 LPC 下,也就是 “device pci 1f.0 on” 这个节点。