/*++

Copyright (c) 2006, Intel Corporation                                                         
All rights reserved. This program and the accompanying materials                          
are licensed and made available under the terms and conditions of the BSD License         
which accompanies this distribution.  The full text of the license may be found at        
http://opensource.org/licenses/bsd-license.php                                            
                                                                                          
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             

Module Name:

  FlashLayout.h
   
Abstract:

  Platform specific flash layout

  BugBug: We need a better way

--*/

#ifndef __EFI_FLASH_LAYOUT__
#define __EFI_FLASH_LAYOUT__

//
// Firmware Volume Information for Nt32
// adding one working block before FFS FV,
// and another one for spare block behind FFS FV
//
//
// Note: When block number is changed in .dsc file,
//       this value should be changed accordingly!!!
//
#define FIRMWARE_BLOCK_NUMBER                         0x28

#define EFI_WINNT_FIRMWARE_OFFSET                     0x0
#define EFI_WINNT_FIRMWARE_LENGTH                     (0x10000 * FIRMWARE_BLOCK_NUMBER)

#define EFI_WINNT_RUNTIME_UPDATABLE_OFFSET            (EFI_WINNT_FIRMWARE_OFFSET + EFI_WINNT_FIRMWARE_LENGTH)

#define EFI_WINNT_RUNTIME_UPDATABLE_LENGTH            0x10000

#define EFI_WINNT_FTW_SPARE_BLOCK_OFFSET              (EFI_WINNT_RUNTIME_UPDATABLE_OFFSET + EFI_WINNT_RUNTIME_UPDATABLE_LENGTH)

#define EFI_WINNT_FTW_SPARE_BLOCK_LENGTH              0x10000

#define EFI_WINNT_RUNTIME_UPDATABLE_FV_HEADER_LENGTH  0x48

#define EFI_VARIABLE_STORE_OFFSET                     (EFI_WINNT_RUNTIME_UPDATABLE_OFFSET + EFI_WINNT_RUNTIME_UPDATABLE_FV_HEADER_LENGTH)

#define EFI_VARIABLE_STORE_LENGTH                     (0x00C000 - EFI_WINNT_RUNTIME_UPDATABLE_FV_HEADER_LENGTH)

#define EFI_EVENT_LOG_OFFSET                          (EFI_VARIABLE_STORE_OFFSET + EFI_VARIABLE_STORE_LENGTH)

#define EFI_EVENT_LOG_LENGTH                          0x002000

#define EFI_FTW_WORKING_OFFSET                        (EFI_EVENT_LOG_OFFSET + EFI_EVENT_LOG_LENGTH)

#define EFI_FTW_WORKING_LENGTH                        0x002000

#endif

