1 - Download the OEM 12c R2. It can be downloaded here:
  http://www.oracle.com/technetwork/oem/grid-control/downloads/index.html
   Note: it is a set of three huge zips.
  2 - Unzip the archives
  3 - Create a directory (as the oem-owner user) where the upgraded Middleware should be installed. For instance:
   $ mkdir /u01/app/oracle/Middleware12cR2
  4 - Back up OMS (Middleware home and inventory), Management Repository and Software Library.
   http://docs.oracle.com/cd/E24628_01/doc.121/e24473/ha_backup_recover.htm#EMADM10740
  5 - Ensure that the Management tables don't have snapshots:
   
   SQL> select master , log_table from all_mview_logs where log_owner='<EM_REPOS_USER>If there are snapshots drop them: 
   SQL> Drop snapshot log on <master>
  6 - Copy emkey  from existing OMS:
   $ <OMS_HOME>/bin/emctl config emkey -copy_to_repos [-sysman_pwd <sysman_pwd>]To verify whether the emkey is copied, run the following command: $ <OMS_HOME>/bin/emctl status emkeyIf the emkey is copied, then you will see the following message:The EMKey  is configured properly, but is not secure.Secure the EMKey by running "emctl config emkey -remove_from_repos".
  7 - Stop the OMS and the Agent
   $ <OMS_HOME>/bin/emctl stop oms
   $ <AGENT_HOME>/bin/emctl stop agent
  8 - from the unzipped directory, run
   $ ./runInstaller
  8a - Follow the wizard: Email / MOS; Software Updates: disable or leave empty.
  8b - Follow the wizard:  Installation type: Upgrade -> One System Upgrade.
  8c - Installation Details: Middleware home location: enter the directory created in step 3.
  8d - Enter the DB Connections Details. Credentials for SYS and SYSMAN.
  8e - Dialog comes: Stop the Job Gathering: click 'Yes'.
  8f- Warning comes: click 'OK'.
  8g - Select the plugins to deploy along with the upgrade process
  8h- Extend Weblogic: enter the password (recommended, the same password for the SYSMAN user).
  A new directory will be created, recommended:
   /u01/app/oracle/Middleware12cR2/gc_inst
  8i - Let the upgrade proceed by clicking 'Install'.
  8j - Run the following script (as root) and finish the 'installation':
   $ /u01/app/oracle/Middleware12R2/oms/allroot.sh
  9 - Turn on the Agent:
   $ <AGENT_HOME>/bin/emctl start agent
   Note that the $AGENT_HOME might be located in the old Middleware directory:
   $ /u01/app/oracle/Middleware/agent/agent_inst/bin/emctl start agent
  10 - go to the EM UI. Select the WebLogic Target and choose the option "Refresh WebLogic Domain" from the menu.
  11 - Update the Agents: Setup -> Manage Cloud Control -> Upgrade Agents -> Add (+)
  Note that the agents may take long to show up.
  ... and that's it! Or that should be it !