On Tue, Dec 12, 2017 at 10:54 PM, Ard Biesheuvel <ard.biesheu...@linaro.org> wrote: > On 12 December 2017 at 17:15, <jassisinghb...@gmail.com> wrote: .... >> + >> +static int netsec_netdev_load_microcode(struct netsec_priv *priv) >> +{ >> + int err; >> + >> + err = netsec_netdev_load_ucode_region( >> + priv, NETSEC_REG_DMAC_HM_CMD_BUF, >> + le32_to_cpup(priv->eeprom_base + >> NETSEC_EEPROM_HM_ME_ADDRESS_H), >> + le32_to_cpup(priv->eeprom_base + >> NETSEC_EEPROM_HM_ME_ADDRESS_L), >> + le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_SIZE)); > > ... here, and in other places below, you are still dereferencing > eeprom_base as if it is a pointer, which is not allowed with in the > __iomem address space. This should use readl() instead [which happens > to incorporate the endian swap as well] > Ahh, how could it have been just two revisions!
thanks