03-07-2016, 10:42 AM
Hi,
there is no elaborate RSB information in the manual. For a generic register and functionality description you can look at the A80 manual, which is somewhere at linux-sunxi.org. There is _some_ information about the A64 specific whereabouts of the RSB, namely the MMIO address, the GPIO lines and the interrupt, hidden in the various sections of the A64 manual, namely the "Memory Mapping", the GIC description and the port controller section. Searching for "RSB" in the manual should give you the bits.
For further details usually the most reliable information is in the BSP, preferrably in the Linux kernel tree, but also the U-Boot code is a good source and easier to parse mostly. In the case of the RSB it's not too much information there, since in the Allwinner firmware the RSB is only driven by the arisc, which is the separate OpenRISC core (called CPUS in Allwinner's manual) in the SoC. Therefore this information is mostly hidden in this (closed source) blob. And that's why you actually shouldn't drive the AXP from Linux, since you will definitely step on the arisc's toes. You can do so when you either not disable the arisc code or leave it out at all.
In my experiments with U-Boot (without the arisc) I didn't manage to initialize the RSB properly, despite apperently having the proper bits set. I need to investigate if this is related to some default security settings forbidding access to the RSB from the non-secure world. I hope that we get away without driving the arisc from Linux by just setting up the proper bits once in U-Boot at boot time.
Cheers,
Andre
there is no elaborate RSB information in the manual. For a generic register and functionality description you can look at the A80 manual, which is somewhere at linux-sunxi.org. There is _some_ information about the A64 specific whereabouts of the RSB, namely the MMIO address, the GPIO lines and the interrupt, hidden in the various sections of the A64 manual, namely the "Memory Mapping", the GIC description and the port controller section. Searching for "RSB" in the manual should give you the bits.
For further details usually the most reliable information is in the BSP, preferrably in the Linux kernel tree, but also the U-Boot code is a good source and easier to parse mostly. In the case of the RSB it's not too much information there, since in the Allwinner firmware the RSB is only driven by the arisc, which is the separate OpenRISC core (called CPUS in Allwinner's manual) in the SoC. Therefore this information is mostly hidden in this (closed source) blob. And that's why you actually shouldn't drive the AXP from Linux, since you will definitely step on the arisc's toes. You can do so when you either not disable the arisc code or leave it out at all.
In my experiments with U-Boot (without the arisc) I didn't manage to initialize the RSB properly, despite apperently having the proper bits set. I need to investigate if this is related to some default security settings forbidding access to the RSB from the non-secure world. I hope that we get away without driving the arisc from Linux by just setting up the proper bits once in U-Boot at boot time.
Cheers,
Andre