<meta http-equiv="Content-Type" content="text/html; charset=GB18030"><div>Hi Mr. Andrew Jeffery</div><div><br></div><div>Thank you for your help. Now I know how LPC2AHB bridge work. Thank you very much!</div><div><br></div><div>Best Regards!</div><div>Liu Hongwei</div><div><br></div><div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;"><br></div>On Wed, 27 May 2020, at 22:30, 掴勸ムルシエラゴ wrote:<br>> Hi Mr. Andrew Jeffery<br>> <br>> Thank you very much for your help. I really thanks for your <br>> explanations, very detail and very clear.<br>> Now I am clear about the iLPC2AHB bridge. I found the iLPC2AHB bridge <br>> device in AST2500, but I do not find the LPC2AHB bridge. I think maybe <br>> it is integrated in LPC controller, and about how LPC2AHB work, perhaps <br>> I still need some time to study this.<br><br>Right, yes, it is "hidden" in the LPC controller. You want to look at registers <br>HICR7 and HICR8. Now, the descriptions for these two registers in the datasheet <br>are quite cryptic. You mentioned you had found the aspeed-lpc-ctrl driver in <br>the kernel earlier. This is the code that drives the LPC2AHB bridge, and it has <br>the following helpful comment:<br><br>                /*<br>             * The top half of HICR7 is the MSB of the BMC address of the<br>          * mapping.<br>            * The bottom half of HICR7 is the MSB of the HOST LPC<br>                 * firmware space address of the mapping.<br>              *<br>             * The 1 bits in the top of half of HICR8 represent the bits<br>           * (in the requested address) that should be ignored and<br>               * replaced with those from the top half of HICR7.<br>             * The 1 bits in the bottom half of HICR8 represent the bits<br>           * (in the requested address) that should be kept and pass<br>             * into the BMC address space.<br>                 */<br><br>         /*<br>             * It doesn't make sense to talk about a size or offset with<br>           * low 16 bits set. Both HICR7 and HICR8 talk about the top 16<br>                 * bits of addresses and sizes.<br>                */<br><br>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/soc/aspeed/aspeed-lpc-ctrl.c?h=v5.7#n101<br><br>Hope that clarifies how the LPC2AHB works!<br><br>Andrew<br></div>