diff options
Diffstat (limited to 'simulator/bcm5719_MII_mmap.cpp')
-rw-r--r-- | simulator/bcm5719_MII_mmap.cpp | 236 |
1 files changed, 139 insertions, 97 deletions
diff --git a/simulator/bcm5719_MII_mmap.cpp b/simulator/bcm5719_MII_mmap.cpp index 01a287b..b3c288b 100644 --- a/simulator/bcm5719_MII_mmap.cpp +++ b/simulator/bcm5719_MII_mmap.cpp @@ -42,119 +42,161 @@ /// @endcond //////////////////////////////////////////////////////////////////////////////// +#include <bcm5719_MII.h> #include <stdint.h> #include <utility> -#include <bcm5719_MII.h> -typedef std::pair<uint8_t*, uint32_t> ram_offset_t; +typedef std::pair<uint8_t *, uint32_t> ram_offset_t; -static uint32_t read_from_ram(uint32_t val, void* args) +static uint32_t read_from_ram(uint32_t val, void *args) { - ram_offset_t* loc = (ram_offset_t*)args; + ram_offset_t *loc = (ram_offset_t *)args; - uint8_t* base = loc->first; + uint8_t *base = loc->first; base += loc->second; - return *(uint32_t*)base; + return *(uint32_t *)base; } -static uint32_t write_to_ram(uint32_t val, void* args) +static uint32_t write_to_ram(uint32_t val, void *args) { - ram_offset_t* loc = (ram_offset_t*)args; + ram_offset_t *loc = (ram_offset_t *)args; - uint8_t* base = loc->first; + uint8_t *base = loc->first; base += loc->second; - *(uint32_t*)base = val; + *(uint32_t *)base = val; return val; } -void init_bcm5719_MII_mmap(void* base) +void init_bcm5719_MII_mmap(void *base) { - /** @brief Component Registers for @ref MII. */ - /** @brief Bitmap for @ref MII_t.Control. */ - MII.Control.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)0)); - MII.Control.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)0)); - - /** @brief Bitmap for @ref MII_t.Status. */ - MII.Status.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)1)); - MII.Status.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)1)); - - /** @brief Bitmap for @ref MII_t.PhyIdHigh. */ - MII.PhyIdHigh.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)2)); - MII.PhyIdHigh.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)2)); - - /** @brief Bitmap for @ref MII_t.PhyIdLow. */ - MII.PhyIdLow.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)3)); - MII.PhyIdLow.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)3)); - - /** @brief Bitmap for @ref MII_t.AutonegotiationAdvertisement. */ - MII.AutonegotiationAdvertisement.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)4)); - MII.AutonegotiationAdvertisement.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)4)); - - /** @brief Bitmap for @ref MII_t.AutonegotiationLinkPartnerAbilityBasePage. */ - MII.AutonegotiationLinkPartnerAbilityBasePage.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)5)); - MII.AutonegotiationLinkPartnerAbilityBasePage.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)5)); - - /** @brief Bitmap for @ref MII_t.AutonegotiationExpansion. */ - MII.AutonegotiationExpansion.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)6)); - MII.AutonegotiationExpansion.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)6)); - - /** @brief Bitmap for @ref MII_t.AutonegotiationNextPageTransmit. */ - MII.AutonegotiationNextPageTransmit.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)7)); - MII.AutonegotiationNextPageTransmit.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)7)); - - /** @brief Bitmap for @ref MII_t.AutonegotiationLinkPartnerAbilityNextPage. */ - MII.AutonegotiationLinkPartnerAbilityNextPage.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)8)); - MII.AutonegotiationLinkPartnerAbilityNextPage.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)8)); - - /** @brief Bitmap for @ref MII_t.1000baseTControl. */ - MII._1000baseTControl.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)9)); - MII._1000baseTControl.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)9)); - - /** @brief Bitmap for @ref MII_t.1000baseTStatus. */ - MII._1000baseTStatus.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)10)); - MII._1000baseTStatus.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)10)); - - /** @brief Bitmap for @ref MII_t.BroadreachLreAccess. */ - MII.BroadreachLreAccess.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)14)); - MII.BroadreachLreAccess.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)14)); - - /** @brief Bitmap for @ref MII_t.IeeeExtendedStatus. */ - MII.IeeeExtendedStatus.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)15)); - MII.IeeeExtendedStatus.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)15)); - - /** @brief Bitmap for @ref MII_t.PhyExtendedStatus. */ - MII.PhyExtendedStatus.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)17)); - MII.PhyExtendedStatus.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)17)); - - /** @brief Bitmap for @ref MII_t.ReceiveErrorCounter. */ - MII.ReceiveErrorCounter.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)18)); - MII.ReceiveErrorCounter.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)18)); - - /** @brief Bitmap for @ref MII_t.FalseCarrierSenseCounter. */ - MII.FalseCarrierSenseCounter.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)19)); - MII.FalseCarrierSenseCounter.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)19)); - - /** @brief Bitmap for @ref MII_t.LocalRemoteReceiverNotOkCounter. */ - MII.LocalRemoteReceiverNotOkCounter.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)20)); - MII.LocalRemoteReceiverNotOkCounter.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)20)); - - /** @brief Bitmap for @ref MII_t.AuxillaryStatusSummary. */ - MII.AuxillaryStatusSummary.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)25)); - MII.AuxillaryStatusSummary.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)25)); - - /** @brief Bitmap for @ref MII_t.InterruptStatus. */ - MII.InterruptStatus.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)26)); - MII.InterruptStatus.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)26)); - - /** @brief Bitmap for @ref MII_t.InterruptMask. */ - MII.InterruptMask.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)27)); - MII.InterruptMask.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)27)); - - /** @brief Bitmap for @ref MII_t.Test1. */ - MII.Test1.r16.installReadCallback(read_from_ram, new ram_offset_t((uint8_t*)base, (uint32_t)30)); - MII.Test1.r16.installWriteCallback(write_to_ram, new ram_offset_t((uint8_t*)base, (uint32_t)30)); - - + /** @brief Component Registers for @ref MII. */ + /** @brief Bitmap for @ref MII_t.Control. */ + MII.Control.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)0)); + MII.Control.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)0)); + + /** @brief Bitmap for @ref MII_t.Status. */ + MII.Status.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)1)); + MII.Status.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)1)); + + /** @brief Bitmap for @ref MII_t.PhyIdHigh. */ + MII.PhyIdHigh.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)2)); + MII.PhyIdHigh.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)2)); + + /** @brief Bitmap for @ref MII_t.PhyIdLow. */ + MII.PhyIdLow.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)3)); + MII.PhyIdLow.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)3)); + + /** @brief Bitmap for @ref MII_t.AutonegotiationAdvertisement. */ + MII.AutonegotiationAdvertisement.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)4)); + MII.AutonegotiationAdvertisement.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)4)); + + /** @brief Bitmap for @ref MII_t.AutonegotiationLinkPartnerAbilityBasePage. + */ + MII.AutonegotiationLinkPartnerAbilityBasePage.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)5)); + MII.AutonegotiationLinkPartnerAbilityBasePage.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)5)); + + /** @brief Bitmap for @ref MII_t.AutonegotiationExpansion. */ + MII.AutonegotiationExpansion.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)6)); + MII.AutonegotiationExpansion.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)6)); + + /** @brief Bitmap for @ref MII_t.AutonegotiationNextPageTransmit. */ + MII.AutonegotiationNextPageTransmit.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)7)); + MII.AutonegotiationNextPageTransmit.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)7)); + + /** @brief Bitmap for @ref MII_t.AutonegotiationLinkPartnerAbilityNextPage. + */ + MII.AutonegotiationLinkPartnerAbilityNextPage.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)8)); + MII.AutonegotiationLinkPartnerAbilityNextPage.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)8)); + + /** @brief Bitmap for @ref MII_t.1000baseTControl. */ + MII._1000baseTControl.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)9)); + MII._1000baseTControl.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)9)); + + /** @brief Bitmap for @ref MII_t.1000baseTStatus. */ + MII._1000baseTStatus.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)10)); + MII._1000baseTStatus.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)10)); + + /** @brief Bitmap for @ref MII_t.BroadreachLreAccess. */ + MII.BroadreachLreAccess.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)14)); + MII.BroadreachLreAccess.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)14)); + + /** @brief Bitmap for @ref MII_t.IeeeExtendedStatus. */ + MII.IeeeExtendedStatus.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)15)); + MII.IeeeExtendedStatus.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)15)); + + /** @brief Bitmap for @ref MII_t.PhyExtendedStatus. */ + MII.PhyExtendedStatus.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)17)); + MII.PhyExtendedStatus.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)17)); + + /** @brief Bitmap for @ref MII_t.ReceiveErrorCounter. */ + MII.ReceiveErrorCounter.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)18)); + MII.ReceiveErrorCounter.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)18)); + + /** @brief Bitmap for @ref MII_t.FalseCarrierSenseCounter. */ + MII.FalseCarrierSenseCounter.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)19)); + MII.FalseCarrierSenseCounter.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)19)); + + /** @brief Bitmap for @ref MII_t.LocalRemoteReceiverNotOkCounter. */ + MII.LocalRemoteReceiverNotOkCounter.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)20)); + MII.LocalRemoteReceiverNotOkCounter.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)20)); + + /** @brief Bitmap for @ref MII_t.AuxillaryStatusSummary. */ + MII.AuxillaryStatusSummary.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)25)); + MII.AuxillaryStatusSummary.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)25)); + + /** @brief Bitmap for @ref MII_t.InterruptStatus. */ + MII.InterruptStatus.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)26)); + MII.InterruptStatus.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)26)); + + /** @brief Bitmap for @ref MII_t.InterruptMask. */ + MII.InterruptMask.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)27)); + MII.InterruptMask.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)27)); + + /** @brief Bitmap for @ref MII_t.Test1. */ + MII.Test1.r16.installReadCallback( + read_from_ram, new ram_offset_t((uint8_t *)base, (uint32_t)30)); + MII.Test1.r16.installWriteCallback( + write_to_ram, new ram_offset_t((uint8_t *)base, (uint32_t)30)); } |