From 976d3bf528aaa22826c1451b8731bd00a194e192 Mon Sep 17 00:00:00 2001 From: Robert Sprowson <rsprowson@gitlab.riscosopen.org> Date: Sat, 17 Aug 2013 13:13:54 +0000 Subject: [PATCH] Probe earlier, declare device later Revision 0.87 moved the NVMemory probe too late for the kernel, which fell back to using its default table. Fixes problem of apparently lost configuration http://www.riscosopen.org/forum/forums/4/topics/2063 Video_Init capitalised like the other initialisation functions. Version 0.88. Tagged as 'OMAP3-0_88' --- VersionASM | 12 ++++++------ VersionNum | 20 ++++++++++---------- s/Boot | 14 ++++++++++---- s/NVMemory | 45 ++++++++++++++++++++++----------------------- s/Video | 4 ++-- 5 files changed, 50 insertions(+), 45 deletions(-) diff --git a/VersionASM b/VersionASM index 0f01dd2..e94a37f 100644 --- a/VersionASM +++ b/VersionASM @@ -11,13 +11,13 @@ GBLS Module_HelpVersion GBLS Module_ComponentName GBLS Module_ComponentPath -Module_MajorVersion SETS "0.87" -Module_Version SETA 87 +Module_MajorVersion SETS "0.88" +Module_Version SETA 88 Module_MinorVersion SETS "" -Module_Date SETS "15 Aug 2013" -Module_ApplicationDate SETS "15-Aug-13" +Module_Date SETS "17 Aug 2013" +Module_ApplicationDate SETS "17-Aug-13" Module_ComponentName SETS "OMAP3" Module_ComponentPath SETS "castle/RiscOS/Sources/HAL/OMAP3" -Module_FullVersion SETS "0.87" -Module_HelpVersion SETS "0.87 (15 Aug 2013)" +Module_FullVersion SETS "0.88" +Module_HelpVersion SETS "0.88 (17 Aug 2013)" END diff --git a/VersionNum b/VersionNum index 30e3da4..9d3976c 100644 --- a/VersionNum +++ b/VersionNum @@ -1,23 +1,23 @@ -/* (0.87) +/* (0.88) * * This file is automatically maintained by srccommit, do not edit manually. * Last processed by srccommit version: 1.1. * */ -#define Module_MajorVersion_CMHG 0.87 +#define Module_MajorVersion_CMHG 0.88 #define Module_MinorVersion_CMHG -#define Module_Date_CMHG 15 Aug 2013 +#define Module_Date_CMHG 17 Aug 2013 -#define Module_MajorVersion "0.87" -#define Module_Version 87 +#define Module_MajorVersion "0.88" +#define Module_Version 88 #define Module_MinorVersion "" -#define Module_Date "15 Aug 2013" +#define Module_Date "17 Aug 2013" -#define Module_ApplicationDate "15-Aug-13" +#define Module_ApplicationDate "17-Aug-13" #define Module_ComponentName "OMAP3" #define Module_ComponentPath "castle/RiscOS/Sources/HAL/OMAP3" -#define Module_FullVersion "0.87" -#define Module_HelpVersion "0.87 (15 Aug 2013)" -#define Module_LibraryVersionInfo "0:87" +#define Module_FullVersion "0.88" +#define Module_HelpVersion "0.88 (17 Aug 2013)" +#define Module_LibraryVersionInfo "0:88" diff --git a/s/Boot b/s/Boot index 5644b17..90b3ede 100644 --- a/s/Boot +++ b/s/Boot @@ -155,7 +155,7 @@ HALdescriptor DATA DCD HAL_Null - HAL_EntryTable MEND - IMPORT Video_init + IMPORT Video_Init IMPORT Interrupt_Init IMPORT Timer_Init IMPORT PRCM_SetClocks @@ -176,6 +176,7 @@ HALdescriptor DATA IMPORT GPIO_InitDevice IMPORT SDIO_InitDevices IMPORT NVMemory_Init + IMPORT NVMemory_InitDevice IMPORT TPS_Init IMPORT PandoraKB_Init IMPORT Enable_main_battery_charging @@ -595,15 +596,20 @@ Board_Init_IGEPv2 BL CPUClk_PreInit ; Go fast! [ MoreDebug - DebugTX "Video_init" + DebugTX "Video_Init" ] - BL Video_init ; Uses GPTIMER2 + BL Video_Init ; Uses GPTIMER2 [ MoreDebug DebugTX "USB_Init" ] BL USB_Init ; Uses GPTIMER2 + [ MoreDebug + DebugTX "NVMemory_Init" + ] + BL NVMemory_Init + [ MoreDebug DebugTX "Timer_Init" ] @@ -902,7 +908,7 @@ HAL_InitDevices DebugTime a1, "HAL_InitDevices @ " ; Common HAL devices BL CPUClk_Init - BL NVMemory_Init + BL NVMemory_InitDevice BL RTC_Init BL SDMA_Init BL VideoDevice_Init diff --git a/s/NVMemory b/s/NVMemory index 5e0e3ac..b6b10d6 100644 --- a/s/NVMemory +++ b/s/NVMemory @@ -25,6 +25,7 @@ AREA |Asm$$Code|, CODE, READONLY, PIC EXPORT NVMemory_Init + EXPORT NVMemory_InitDevice EXPORT HAL_NVMemoryType EXPORT HAL_NVMemorySize EXPORT HAL_NVMemoryPageSize @@ -300,11 +301,6 @@ NVMemory_Init BNE %BT45 50 ] - ; If some was found, create a placeholder HAL device - LDR a1, NVMemoryFound - TEQ a1, #0 - BLNE NVMemory_AddDevice - Pull "v1-v3, pc" NVMemory_Barrel16 @@ -330,13 +326,16 @@ NVMemory_Barrel16 Pull "v1-v2, pc" -NVMemory_AddDevice - ; void NVMemory_AddDevice(uint32_t bytesize) - Push "a1, lr" +NVMemory_InitDevice + ; void NVMemory_InitDevice(void) + LDR a3, NVMemoryFound + TEQ a3, #0 + MOVEQ pc, lr + Push "a3, lr" ; Copy over template ADRL a1, NVRAMWS - ADR a2, NVMemory_AddDevice_Template + ADR a2, NVMemory_Device_Template MOV a3, #HALDeviceSize BL memcpy @@ -346,12 +345,12 @@ NVMemory_AddDevice CLZ a1, a3 RSB a1, a1, #31 - 8 - ADR a4, NVMemory_AddDevice_IDs + ADR a4, NVMemory_Device_IDs MOV a3, a1, LSL #1 LDRH a3, [a4, a3] STRH a3, [a2, #HALDevice_ID] - ADR a4, NVMemory_AddDevice_Descs + ADR a4, NVMemory_Device_Descs MOV a3, #1 + :LEN:"24Cxx EEPROM" MLA a3, a3, a1, a4 STR a3, [a2, #HALDevice_Description] @@ -360,7 +359,7 @@ NVMemory_AddDevice MOV a1, #0 LDR pc, OSentries + 4*OS_AddDevice -NVMemory_AddDevice_Template +NVMemory_Device_Template DCW HALDeviceType_SysPeri + HALDeviceSysPeri_NVRAM DCW &1234 ; ID filled at runtime DCD HALDeviceBus_Ser + HALDeviceSerBus_IIC @@ -368,29 +367,29 @@ NVMemory_AddDevice_Template DCD &12345678 ; Description filled at runtime DCD 0 ; Address - N/A % 12 ; Reserved - DCD NVMemory_AddDevice_Activate - DCD NVMemory_AddDevice_Deactivate - DCD NVMemory_AddDevice_Reset - DCD NVMemory_AddDevice_Sleep + DCD NVMemory_Device_Activate + DCD NVMemory_Device_Deactivate + DCD NVMemory_Device_Reset + DCD NVMemory_Device_Sleep DCD -1 DCD 0 % 8 - ASSERT (. - NVMemory_AddDevice_Template) = HALDeviceSize + ASSERT (. - NVMemory_Device_Template) = HALDeviceSize -NVMemory_AddDevice_Activate +NVMemory_Device_Activate MOV a1, #1 MOV pc, lr -NVMemory_AddDevice_Sleep +NVMemory_Device_Sleep MOV a1, #0 -NVMemory_AddDevice_Deactivate -NVMemory_AddDevice_Reset +NVMemory_Device_Deactivate +NVMemory_Device_Reset MOV pc, lr -NVMemory_AddDevice_IDs +NVMemory_Device_IDs DCW HALDeviceID_NVRAM_24C02 DCW HALDeviceID_NVRAM_24C04 DCW HALDeviceID_NVRAM_24C08 DCW HALDeviceID_NVRAM_24C16 -NVMemory_AddDevice_Descs +NVMemory_Device_Descs DCB "24C02 EEPROM", 0 DCB "24C04 EEPROM", 0 DCB "24C08 EEPROM", 0 diff --git a/s/Video b/s/Video index bb4d82e..190ac32 100644 --- a/s/Video +++ b/s/Video @@ -34,7 +34,6 @@ AREA |Asm$$Code|, CODE, READONLY, PIC - EXPORT Video_init EXPORT HAL_VideoFlybackDevice EXPORT HAL_VideoSetMode EXPORT HAL_VideoWritePaletteEntry @@ -51,6 +50,7 @@ EXPORT HAL_VideoBufferAlignment EXPORT HAL_VideoOutputFormat + EXPORT Video_Init EXPORT VideoDevice_Init EXPORT Video_Power_VBC_DVI EXPORT Video_Power_VBC_Pandora @@ -69,7 +69,7 @@ LDR pc, OSentries + 4*$entry MEND -Video_init +Video_Init ; Configure GPIO pins so we can turn the DVI framer on/off LDRB a1, [sb, #BoardConfig_VideoGPIO] CMP a1, #255 -- GitLab