]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpress.c
ArmPlatformPkg/Bds: Fixed the size of the unicode string use to represent hexadecimal...
[mirror_edk2.git] / ArmPlatformPkg / ArmVExpressPkg / Library / NorFlashArmVExpressLib / NorFlashArmVExpress.c
CommitLineData
d5e12da4 1/** @file\r
2\r
3 Copyright (c) 2011, ARM Ltd. All rights reserved.<BR>\r
4 This program and the accompanying materials\r
5 are licensed and made available under the terms and conditions of the BSD License\r
6 which accompanies this distribution. The full text of the license may be found at\r
7 http://opensource.org/licenses/bsd-license.php\r
8\r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12 **/\r
13\r
14#include <PiDxe.h>\r
15#include <Library/DebugLib.h>\r
16#include <Library/IoLib.h>\r
17#include <Library/NorFlashPlatformLib.h>\r
18#include <ArmPlatform.h>\r
19\r
20#define NOR_FLASH_DEVICE_COUNT 4\r
21\r
22NOR_FLASH_DESCRIPTION mNorFlashDevices[NOR_FLASH_DEVICE_COUNT] = {\r
23 { // BootMon\r
24 ARM_VE_SMB_NOR0_BASE,\r
25 SIZE_256KB * 255,\r
26 SIZE_256KB,\r
27 {0xE7223039, 0x5836, 0x41E1, 0xB5, 0x42, 0xD7, 0xEC, 0x73, 0x6C, 0x5E, 0x59}\r
28 },\r
29 { // BootMon non-volatile storage\r
30 ARM_VE_SMB_NOR0_BASE + SIZE_256KB * 255,\r
31 SIZE_64KB * 4,\r
32 SIZE_64KB,\r
33 {0x02118005, 0x9DA7, 0x443A, 0x92, 0xD5, 0x78, 0x1F, 0x02, 0x2A, 0xED, 0xBB}\r
34 },\r
35 { // UEFI\r
36 ARM_VE_SMB_NOR1_BASE,\r
37 SIZE_256KB * 255,\r
38 SIZE_256KB,\r
39 {0x1F15DA3C, 0x37FF, 0x4070, 0xB4, 0x71, 0xBB, 0x4A, 0xF1, 0x2A, 0x72, 0x4A}\r
40 },\r
41 { // UEFI Variable Services non-volatile storage\r
42 ARM_VE_SMB_NOR1_BASE + SIZE_256KB * 255,\r
43 SIZE_64KB * 3, //FIXME: Set 3 blocks because I did not succeed to copy 4 blocks into the ARM Versatile Express NOR Flash in the last NOR Flash. It should be 4 blocks\r
44 SIZE_64KB,\r
45 {0xCC2CBF29, 0x1498, 0x4CDD, 0x81, 0x71, 0xF8, 0xB6, 0xB4, 0x1D, 0x09, 0x09}\r
46 }\r
47};\r
48\r
49EFI_STATUS\r
50NorFlashPlatformInitialization (\r
51 VOID\r
52 )\r
53{\r
54 // Everything seems ok so far, so now we need to disable the platform-specific\r
55 // flash write protection for Versatile Express\r
56 if ((MmioRead32 (ARM_VE_SYS_FLASH) & 0x1) == 0) {\r
57 // Writing to NOR FLASH is disabled, so enable it\r
58 MmioWrite32 (ARM_VE_SYS_FLASH,1);\r
59 DEBUG((DEBUG_BLKIO, "NorFlashWriteBlocks: informational - Had to enable HSYS_FLASH flag.\n" ));\r
60 }\r
61\r
62 return EFI_SUCCESS;\r
63}\r
64\r
65EFI_STATUS\r
66NorFlashPlatformGetDevices (\r
67 OUT NOR_FLASH_DESCRIPTION **NorFlashDevices,\r
68 OUT UINT32 *Count\r
69 )\r
70{\r
71 if ((NorFlashDevices == NULL) || (Count == NULL)) {\r
72 return EFI_INVALID_PARAMETER;\r
73 }\r
74\r
75 *NorFlashDevices = mNorFlashDevices;\r
76 *Count = NOR_FLASH_DEVICE_COUNT;\r
77\r
78 return EFI_SUCCESS;\r
79}\r