mirror of
https://github.com/pvvx/RTL00MP3.git
synced 2026-07-09 21:15:40 +00:00
update
This commit is contained in:
parent
629e5fdc28
commit
bd42ffa334
212 changed files with 35447 additions and 223 deletions
|
|
@ -244,7 +244,7 @@ HAL_GPIO_IP_DeInit(
|
|||
|
||||
|
||||
|
||||
//extern u16 GPIOState[_PORT_MAX-1]; // побитно 16 бит для каждого порта (A..K), бит=номер задействованного пина в порту на периферию.
|
||||
extern u16 GPIOState[_PORT_MAX]; // побитно 16 бит для каждого порта (A..K), бит=номер задействованного пина в порту на периферию.
|
||||
|
||||
#endif // end of "#define _HAL_GPIO_H_"
|
||||
|
||||
|
|
|
|||
|
|
@ -16,12 +16,6 @@
|
|||
|
||||
#define SYSTEM_CLK PLATFORM_CLOCK
|
||||
|
||||
#define SDR_SDRAM_BASE 0x30000000
|
||||
#define SYSTEM_CTRL_BASE 0x40000000
|
||||
#define PERI_ON_BASE 0x40000000
|
||||
#define VENDOR_REG_BASE 0x40002800
|
||||
#define SPI_FLASH_BASE 0x98000000
|
||||
#define SDR_CTRL_BASE 0x40005000
|
||||
|
||||
#define PERIPHERAL_IRQ_STATUS 0x04
|
||||
#define PERIPHERAL_IRQ_MODE 0x08
|
||||
|
|
@ -34,13 +28,21 @@
|
|||
|
||||
#define TIMER_CLK 32*1000
|
||||
|
||||
#define SDR_SDRAM_BASE 0x30000000
|
||||
#define SYSTEM_CTRL_BASE 0x40000000
|
||||
#define PERI_ON_BASE 0x40000000
|
||||
#define SPI_FLASH_BASE 0x98000000
|
||||
|
||||
//3 Peripheral IP Base Address
|
||||
|
||||
#define GPIO_REG_BASE 0x40001000
|
||||
#define TIMER_REG_BASE 0x40002000
|
||||
#define VENDOR_REG_BASE 0x40002800
|
||||
#define NFC_INTERFACE_BASE 0x40002400
|
||||
#define LOG_UART_REG_BASE 0x40003000
|
||||
#define I2C2_REG_BASE 0x40003400
|
||||
#define I2C3_REG_BASE 0x40003800
|
||||
#define SDR_CTRL_BASE 0x40005000
|
||||
#define SPI_FLASH_CTRL_BASE 0x40006000
|
||||
#define ADC_REG_BASE 0x40010000
|
||||
#define DAC_REG_BASE 0x40011000
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
#ifndef _HAL_SDR_CONTROLLER_H_
|
||||
#define _HAL_SDR_CONTROLLER_H_
|
||||
|
||||
#if 1 // def CONFIG_SDR_EN
|
||||
#if 1 //def CONFIG_SDR_EN
|
||||
|
||||
typedef enum _DRAM_TYPE_ {
|
||||
DRAM_DDR_1 = 1,
|
||||
|
|
@ -187,5 +187,5 @@ typedef struct _DRAM_DEVICE_INFO_ {
|
|||
#define HAL_SDRAM_READ8(addr) HAL_READ8(SDR_SDRAM_BASE, addr)
|
||||
|
||||
#endif // CONFIG_SDR_EN
|
||||
// extern unsigned int rand_x; // in rtl_bios_data.h
|
||||
//extern unsigned int rand_x;
|
||||
#endif // end of "#ifndef _HAL_SDR_CONTROLLER_H_"
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ enum _SPIC_BIT_MODE_ {
|
|||
#define FLASH_EON 5
|
||||
|
||||
//#define FLASH_MXIC_MX25L4006E 0
|
||||
//#define FLASH_MXIC_MX25L8073E 0
|
||||
//#define FLASH_MXIC_MX25L8073E 1
|
||||
//#define FLASH_MICRON_N25Q512A 1
|
||||
// The below parts are based on the flash characteristics
|
||||
//====== Flash Command Definition ======
|
||||
|
|
@ -244,6 +244,7 @@ enum _SPIC_BIT_MODE_ {
|
|||
|
||||
|
||||
//#endif
|
||||
|
||||
#if 0
|
||||
#if FLASH_MXIC_MX25L4006E
|
||||
#define FLASH_RD_2IO_EN 1
|
||||
|
|
|
|||
|
|
@ -0,0 +1,130 @@
|
|||
/*
|
||||
* Routines to access hardware
|
||||
*
|
||||
* Copyright (c) 2015 Realtek Semiconductor Corp.
|
||||
*
|
||||
* This module is a confidential and proprietary property of RealTek and
|
||||
* possession or use of this module requires written permission of RealTek.
|
||||
*/
|
||||
|
||||
#include "rtl8195a.h"
|
||||
#include "build_info.h"
|
||||
#include "PinNames.h"
|
||||
#include "serial_api.h"
|
||||
|
||||
extern void serial_init (serial_t *obj, PinName tx, PinName rx);
|
||||
extern void serial_free (serial_t *obj);
|
||||
extern void serial_baud (serial_t *obj, int baudrate);
|
||||
extern void serial_format (serial_t *obj, int data_bits, SerialParity parity, int stop_bits);
|
||||
extern int main(void);
|
||||
|
||||
void iar_data_init_fw_loader(void);
|
||||
void fw_loader_main(void);// __attribute__ ((weak));
|
||||
|
||||
#pragma section=".image2.start.table1"
|
||||
#pragma section=".fwloader_ram.bss"
|
||||
|
||||
FW_LOADER_START_RAM_FUN_SECTION
|
||||
RAM_START_FUNCTION gFWLoaderEntryFun0 = {fw_loader_main};
|
||||
|
||||
u8* __image4_entry_func__;
|
||||
u8* __image4_validate_code__;
|
||||
u8* __fwloader_bss_start__;
|
||||
u8* __fwloader_bss_end__;
|
||||
|
||||
FW_LOADER_VALID_PATTEN_SECTION const u8 RAM_FW_LOADER_VALID_PATTEN[20] = {
|
||||
'R', 'T', 'K', 'W', 'i', 'n', 0x0, 0xff,
|
||||
(FW_VERSION&0xff), ((FW_VERSION >> 8)&0xff),
|
||||
(FW_SUBVERSION&0xff), ((FW_SUBVERSION >> 8)&0xff),
|
||||
(FW_CHIP_ID&0xff), ((FW_CHIP_ID >> 8)&0xff),
|
||||
(FW_CHIP_VER),
|
||||
(FW_BUS_TYPE),
|
||||
(FW_INFO_RSV1),
|
||||
(FW_INFO_RSV2),
|
||||
(FW_INFO_RSV3),
|
||||
(FW_INFO_RSV4)
|
||||
};
|
||||
/**
|
||||
* @brief Main program.
|
||||
* @param None
|
||||
* @retval None
|
||||
*/
|
||||
void fw_loader_main(void)
|
||||
{
|
||||
#if defined ( __ICCARM__ )
|
||||
iar_data_init_fw_loader();
|
||||
#endif
|
||||
u32 Image2Len, Image2Addr, ImageIndex, SpicBitMode, SpicImageIndex;
|
||||
u32 Image2LoadAddr = 0x13000;
|
||||
DBG_8195A("===== Enter FW Loader Image ====\n");
|
||||
|
||||
|
||||
#ifdef BOOTLOADER
|
||||
main();
|
||||
#endif
|
||||
|
||||
IGMAE4:
|
||||
PRAM_START_FUNCTION Image4EntryFun=(PRAM_START_FUNCTION)__image4_entry_func__;
|
||||
|
||||
Image2Len = HAL_READ32(SPI_FLASH_BASE, Image2LoadAddr);
|
||||
Image2Addr = HAL_READ32(SPI_FLASH_BASE, (Image2LoadAddr+0x4));
|
||||
|
||||
DBG_8195A("Flash FW Loader:Addr 0x%x, Len %d, Load to SRAM 0x%x\n", Image2LoadAddr, Image2Len, Image2Addr);
|
||||
|
||||
SpicImageIndex = 0;
|
||||
for (ImageIndex = 0x10 + Image2LoadAddr; ImageIndex < (Image2Len + Image2LoadAddr + 0x10); ImageIndex = ImageIndex + 4) {
|
||||
HAL_WRITE32(Image2Addr, SpicImageIndex,
|
||||
HAL_READ32(SPI_FLASH_BASE, ImageIndex));
|
||||
|
||||
SpicImageIndex += 4;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef CONFIG_SDR_EN
|
||||
u32 Image3LoadAddr;
|
||||
u32 Image3Len;
|
||||
u32 Image3Addr;
|
||||
|
||||
Image3LoadAddr = Image2LoadAddr + Image2Len+0x10;
|
||||
Image3Len = HAL_READ32(SPI_FLASH_BASE, Image3LoadAddr);
|
||||
Image3Addr = HAL_READ32(SPI_FLASH_BASE, Image3LoadAddr + 0x4);
|
||||
|
||||
if( (Image3Len==0xFFFFFFFF) || (Image3Len==0) || (Image3Addr!=0x30000000)){
|
||||
DBG_8195A("No Image3\n\r");
|
||||
}else{
|
||||
DBG_8195A("Image3 length: 0x%x, Image3 Addr: 0x%x\n",Image3Len, Image3Addr);
|
||||
SpicImageIndex = 0;
|
||||
|
||||
for (ImageIndex = 0x10 + Image3LoadAddr;
|
||||
ImageIndex < (Image3Len + Image3LoadAddr + 0x10);
|
||||
ImageIndex = ImageIndex + 4) {
|
||||
HAL_WRITE32(Image3Addr, SpicImageIndex,
|
||||
HAL_READ32(SPI_FLASH_BASE, ImageIndex));
|
||||
|
||||
SpicImageIndex += 4;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
//3 3) Jump to image 4
|
||||
DBG_8195A("InfraStart: %p, Img2 Sign %s \n", __image4_entry_func__, (char*)__image4_validate_code__);
|
||||
if (_strcmp((char *)__image4_validate_code__, "RTKWin")) {
|
||||
while (1) {
|
||||
DBG_8195A("Invalid Image4 Signature\n");
|
||||
RtlConsolRom(1000);//each delay is 100us
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef BOOTLOADER
|
||||
deinit_platform_bootloader();
|
||||
#endif
|
||||
Image4EntryFun->RamStartFun();
|
||||
}
|
||||
|
||||
void iar_data_init_fw_loader(void)
|
||||
{
|
||||
__image4_entry_func__ = (u8*)__section_begin(".image2.start.table1");
|
||||
__image4_validate_code__ = __image4_entry_func__+4;//(u8*)__section_begin(".image2.start.table2");
|
||||
__fwloader_bss_start__ = (u8*)__section_begin(".fwloader_ram.bss");
|
||||
__fwloader_bss_end__ = (u8*)__section_end(".fwloader_ram.bss");
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
decompiled low_level_io.o
|
||||
*/
|
||||
#include ......
|
||||
//-------------------------------------------------------------------------
|
||||
// Function declarations
|
||||
void mode_init();
|
||||
void HalSerialPutcRtl8195a(int c, int a2, char a3);
|
||||
signed int DiagPrintf(const char *fmt, ...);
|
||||
void log_uart_enable_printf();
|
||||
void log_uart_disable_printf();
|
||||
//-------------------------------------------------------------------------
|
||||
// Data declarations
|
||||
uint32_t backupWarn;
|
||||
uint32_t backupErr;
|
||||
uint32_t backupInfo;
|
||||
int disablePrintf;
|
||||
// extern _UNKNOWN use_mode;
|
||||
// extern _UNKNOWN ConfigDebugErr;
|
||||
// extern _UNKNOWN ConfigDebugInfo;
|
||||
// extern _UNKNOWN ConfigDebugWarn;
|
||||
|
||||
//-----
|
||||
void mode_init()
|
||||
{
|
||||
use_mode = 1;
|
||||
}
|
||||
|
||||
//-----
|
||||
void HalSerialPutcRtl8195a(int c)
|
||||
{
|
||||
signed int v3; // r3@2
|
||||
|
||||
if ( disablePrintf != 1 )
|
||||
{
|
||||
v3 = 6540;
|
||||
do
|
||||
{
|
||||
if ( !--v3 )
|
||||
break;
|
||||
a3 = v40003014;
|
||||
}
|
||||
while ( !(v40003014 & 0x60) );
|
||||
if ( c == 10 ) a3 = 13;
|
||||
v40003000 = c;
|
||||
if ( c == 10 ) v40003000 = a3;
|
||||
}
|
||||
}
|
||||
|
||||
//-----
|
||||
signed int DiagPrintf(const char *fmt, ...)
|
||||
{
|
||||
va_list va;
|
||||
|
||||
va_start(va, fmt);
|
||||
if ( disablePrintf != 1 )
|
||||
VSprintf(0, fmt, va);
|
||||
return 1;
|
||||
}
|
||||
|
||||
//-----
|
||||
void log_uart_enable_printf()
|
||||
{
|
||||
disablePrintf = 0;
|
||||
ConfigDebugErr = backupErr;
|
||||
ConfigDebugInfo = backupInfo;
|
||||
ConfigDebugWarn = backupWarn;
|
||||
}
|
||||
|
||||
//-----
|
||||
void log_uart_disable_printf()
|
||||
{
|
||||
disablePrintf = 1;
|
||||
backupErr = ConfigDebugErr;
|
||||
backupInfo = ConfigDebugInfo;
|
||||
backupWarn = ConfigDebugWarn;
|
||||
ConfigDebugErr = 0;
|
||||
ConfigDebugInfo = 0;
|
||||
ConfigDebugWarn = 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -911,30 +911,30 @@
|
|||
#define BIT_CTRL_FLUSH_FIFO(x) (((x) & BIT_MASK_FLUSH_FIFO) << BIT_SHIFT_FLUSH_FIFO)
|
||||
|
||||
//=================== Register Address Definition ============================//
|
||||
#define REG_SPIC_CTRLR0 0x0000//O
|
||||
#define REG_SPIC_CTRLR1 0x0004//O
|
||||
#define REG_SPIC_SSIENR 0x0008//O
|
||||
#define REG_SPIC_MWCR 0x000C
|
||||
#define REG_SPIC_SER 0x0010//O
|
||||
#define REG_SPIC_BAUDR 0x0014//O
|
||||
#define REG_SPIC_TXFTLR 0x0018
|
||||
#define REG_SPIC_RXFTLR 0x001C//O
|
||||
#define REG_SPIC_TXFLR 0x0020//O
|
||||
#define REG_SPIC_RXFLR 0x0024
|
||||
#define REG_SPIC_SR 0x0028
|
||||
#define REG_SPIC_IMR 0x002C//O
|
||||
#define REG_SPIC_ISR 0x0030
|
||||
#define REG_SPIC_RISR 0x0034
|
||||
#define REG_SPIC_TXOICR 0x0038
|
||||
#define REG_SPIC_RXOICR 0x003C
|
||||
#define REG_SPC_RXUICR 0x0040
|
||||
#define REG_SPIC_MSTICR 0x0044
|
||||
#define REG_SPIC_ICR 0x0048
|
||||
#define REG_SPIC_DMACR 0x004C
|
||||
#define REG_SPIC_DMATDLR0 0x0050
|
||||
#define REG_SPIC_DMATDLR1 0x0054
|
||||
#define REG_SPIC_IDR 0x0058
|
||||
#define REG_SPIC_VERSION 0x005C
|
||||
#define REG_SPIC_CTRLR0 0x0000 //O 0x1040300
|
||||
#define REG_SPIC_CTRLR1 0x0004 //O 0x10
|
||||
#define REG_SPIC_SSIENR 0x0008 //O 0
|
||||
#define REG_SPIC_MWCR 0x000C // 0
|
||||
#define REG_SPIC_SER 0x0010 //O 1
|
||||
#define REG_SPIC_BAUDR 0x0014 //O 1
|
||||
#define REG_SPIC_TXFTLR 0x0018 // 0
|
||||
#define REG_SPIC_RXFTLR 0x001C //O 0x1F
|
||||
#define REG_SPIC_TXFLR 0x0020 //O 0
|
||||
#define REG_SPIC_RXFLR 0x0024 // 0
|
||||
#define REG_SPIC_SR 0x0028 // 6
|
||||
#define REG_SPIC_IMR 0x002C //O 0x1FF
|
||||
#define REG_SPIC_ISR 0x0030 // 4
|
||||
#define REG_SPIC_RISR 0x0034 // 4
|
||||
#define REG_SPIC_TXOICR 0x0038 // 0
|
||||
#define REG_SPIC_RXOICR 0x003C // 0
|
||||
#define REG_SPC_RXUICR 0x0040 // 0
|
||||
#define REG_SPIC_MSTICR 0x0044 // 0
|
||||
#define REG_SPIC_ICR 0x0048 // 0
|
||||
#define REG_SPIC_DMACR 0x004C // 0
|
||||
#define REG_SPIC_DMATDLR0 0x0050 // 0
|
||||
#define REG_SPIC_DMATDLR1 0x0054 // 0
|
||||
#define REG_SPIC_IDR 0x0058 // 0x10001
|
||||
#define REG_SPIC_VERSION 0x005C // 0x40470603
|
||||
#define REG_SPIC_DR0 0x0060
|
||||
#define REG_SPIC_DR1 0x0064
|
||||
#define REG_SPIC_DR2 0x0068
|
||||
|
|
@ -966,26 +966,26 @@
|
|||
#define REG_SPIC_DR28 0x00D0
|
||||
#define REG_SPIC_DR29 0x00D4
|
||||
#define REG_SPIC_DR30 0x00D8
|
||||
#define REG_SPIC_DR31 0x00DC
|
||||
#define REG_SPIC_READ_FAST_SINGLE 0x00E0//O
|
||||
#define REG_SPIC_READ_DUAL_DATA 0x00E4//O
|
||||
#define REG_SPIC_READ_DUAL_ADDR_DATA 0x00E8//O
|
||||
#define REG_SPIC_READ_QUAD_DATA 0x00EC//O
|
||||
#define REG_SPIC_READ_QUAD_ADDR_DATA 0x00F0//O
|
||||
#define REG_SPIC_WRITE_SIGNLE 0x00F4//O
|
||||
#define REG_SPIC_WRITE_DUAL_DATA 0x00F8//O
|
||||
#define REG_SPIC_WRITE_DUAL_ADDR_DATA 0x00FC//O
|
||||
#define REG_SPIC_WRITE_QUAD_DATA 0x0100//O
|
||||
#define REG_SPIC_WRITE_QUAD_ADDR_DATA 0x0104//O
|
||||
#define REG_SPIC_WRITE_ENABLE 0x0108//O
|
||||
#define REG_SPIC_READ_STATUS 0x010C//O
|
||||
#define REG_SPIC_CTRLR2 0x0110//O
|
||||
#define REG_SPIC_FBAUDR 0x0114//O
|
||||
#define REG_SPIC_ADDR_LENGTH 0x0118//O
|
||||
#define REG_SPIC_AUTO_LENGTH 0x011C//O
|
||||
#define REG_SPIC_VALID_CMD 0x0120//O
|
||||
#define REG_SPIC_FLASE_SIZE 0x0124//O
|
||||
#define REG_SPIC_FLUSH_FIFO 0x0128//O
|
||||
#define REG_SPIC_DR31 0x00DC // MXIC (DeviceID: FC, Flash Size: 1048576 bytes, FlashID: C22014/1, SpicMode: DIO)
|
||||
#define REG_SPIC_READ_FAST_SINGLE 0x00E0 //O 0x0B
|
||||
#define REG_SPIC_READ_DUAL_DATA 0x00E4 //O 0x3B
|
||||
#define REG_SPIC_READ_DUAL_ADDR_DATA 0x00E8 //O 0x3B
|
||||
#define REG_SPIC_READ_QUAD_DATA 0x00EC //O 0x6B
|
||||
#define REG_SPIC_READ_QUAD_ADDR_DATA 0x00F0 //O 0xEB
|
||||
#define REG_SPIC_WRITE_SIGNLE 0x00F4 //O 0x02
|
||||
#define REG_SPIC_WRITE_DUAL_DATA 0x00F8 //O 0xA2
|
||||
#define REG_SPIC_WRITE_DUAL_ADDR_DATA 0x00FC//O 0xA2
|
||||
#define REG_SPIC_WRITE_QUAD_DATA 0x0100 //O 0x32
|
||||
#define REG_SPIC_WRITE_QUAD_ADDR_DATA 0x0104//O 0x38
|
||||
#define REG_SPIC_WRITE_ENABLE 0x0108 //O 0x06
|
||||
#define REG_SPIC_READ_STATUS 0x010C //O 0x05
|
||||
#define REG_SPIC_CTRLR2 0x0110 //O 0x51
|
||||
#define REG_SPIC_FBAUDR 0x0114 //O 0x1
|
||||
#define REG_SPIC_ADDR_LENGTH 0x0118 //O 0x3
|
||||
#define REG_SPIC_AUTO_LENGTH 0x011C //O 0x20030011/0x20030021
|
||||
#define REG_SPIC_VALID_CMD 0x0120 //O 0x202
|
||||
#define REG_SPIC_FLASE_SIZE 0x0124 //O 0x0E
|
||||
#define REG_SPIC_FLUSH_FIFO 0x0128 //O 0
|
||||
|
||||
VOID SpicInitRtl8195A(u8 InitBaudRate, u8 SpicBitMode); // spi-flash controller initialization
|
||||
VOID SpicRxCmdRtl8195A(u8 cmd); // recieve command
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -7,13 +7,21 @@
|
|||
* possession or use of this module requires written permission of RealTek.
|
||||
*/
|
||||
#include "rtl8195a.h"
|
||||
#include "platform_opts.h"
|
||||
#include "hal_sdr_controller.h"
|
||||
#include "rtl8195a_sdr.h"
|
||||
#include "flash_api.h"
|
||||
|
||||
#ifdef CONFIG_SDR_EN
|
||||
|
||||
#ifndef USE_SRC_ONLY_BOOT
|
||||
#define USE_SRC_ONLY_BOOT 0
|
||||
#endif
|
||||
|
||||
#if !USE_SRC_ONLY_BOOT
|
||||
#define SDRAM_INIT_USE_TCM_HEAP
|
||||
#define SDRAM_INIT_USE_FLASH_API
|
||||
#endif
|
||||
|
||||
|
||||
#if 0
|
||||
|
|
@ -122,9 +130,11 @@ u32 SdrCalibration(VOID);
|
|||
//#define Sdr_Rand2 Rand
|
||||
|
||||
#ifndef SDRAM_INIT_USE_TCM_HEAP
|
||||
#if !USE_SRC_ONLY_BOOT
|
||||
//3 Note: stack overfloat if the arrary is declared in the task
|
||||
HAL_CUT_B_RAM_DATA_SECTION
|
||||
u32 AvaWds[2][REC_NUM];
|
||||
#endif
|
||||
#else
|
||||
typedef struct {
|
||||
u32 m[2][REC_NUM];
|
||||
|
|
@ -138,6 +148,12 @@ unsigned int rand_x = 123456789;
|
|||
*/
|
||||
#ifdef CONFIG_SDR_EN
|
||||
|
||||
//#pragma arm section code = ".hal.sdrc.text"
|
||||
#pragma arm section rodata = ".rodata.hal.sdrc"
|
||||
//, rwdata = ".hal.sdrc.data"
|
||||
//, zidata = ".hal.sdrc.bss"
|
||||
//#pragma arm section bss = ".hal.sdrc.bss"
|
||||
|
||||
#ifdef CONFIG_SDR_VERIFY
|
||||
enum{
|
||||
LLT,
|
||||
|
|
@ -744,8 +760,10 @@ SdrCalibration(
|
|||
u32 valid;
|
||||
union { u8 b[4]; u32 l;} value;
|
||||
////
|
||||
#ifdef SDRAM_INIT_USE_FLASH_API
|
||||
flash_turnon();
|
||||
if(fspic_isinit == 0) flash_init(&flashobj);
|
||||
#endif
|
||||
////
|
||||
|
||||
u32 CpuType = ((HAL_READ32(SYSTEM_CTRL_BASE, REG_SYS_CLK_CTRL1) & (0x70)) >> 4);
|
||||
|
|
@ -776,11 +794,16 @@ SdrCalibration(
|
|||
}
|
||||
#endif
|
||||
|
||||
#if !USE_SRC_ONLY_BOOT
|
||||
#ifdef SDRAM_INIT_USE_TCM_HEAP
|
||||
pAvaWds AvaWds = (pAvaWds) tcm_heap_calloc(sizeof(u32)*REC_NUM*2);
|
||||
#else
|
||||
_memset((u8*)AvaWds, 0, sizeof(u32)*REC_NUM*2);
|
||||
#endif
|
||||
#else
|
||||
u32 AvaWds[2][REC_NUM];
|
||||
_memset((u8*)AvaWds, 0, sizeof(u32)*REC_NUM*2);
|
||||
#endif
|
||||
|
||||
volatile struct ms_rxi310_portmap *ms_ctrl_0_map;
|
||||
ms_ctrl_0_map = (struct ms_rxi310_portmap*) SDR_CTRL_BASE;
|
||||
|
|
@ -981,7 +1004,7 @@ SdrCalibration(
|
|||
return Result;
|
||||
} // SdrCalibration
|
||||
|
||||
|
||||
HAL_RAM_DATA_SECTION
|
||||
/*
|
||||
|
||||
HAL_SDRC_TEXT_SECTION
|
||||
|
|
@ -1062,7 +1085,7 @@ u8 IsSdrPowerOn(
|
|||
|
||||
#else // ifndef CONFIG_SDR_EN
|
||||
|
||||
VOID SdrPowerOff(
|
||||
HAL_SDRC_TEXT_SECTION VOID SdrPowerOff(
|
||||
VOID
|
||||
)
|
||||
{
|
||||
|
|
@ -1072,7 +1095,6 @@ VOID SdrPowerOff(
|
|||
}
|
||||
|
||||
|
||||
|
||||
HAL_SDRC_TEXT_SECTION VOID SdrCtrlInit(VOID)
|
||||
{
|
||||
DBG_SDR_ERR("No SDRAM!\n");
|
||||
|
|
|
|||
|
|
@ -12,8 +12,9 @@
|
|||
|
||||
#include "rtl8195a_spi_flash.h"
|
||||
|
||||
#pragma arm section code = ".hal.flash.text", rodata = ".hal.flash.rodata", rwdata = ".hal.flash.data", zidata = ".hal.flash.bss"
|
||||
|
||||
#define SPI_CTRL_BASE 0x1FFEF000
|
||||
//#define SPI_CTRL_BASE 0x1FFEF000
|
||||
#define SPI_DLY_CTRL_ADDR 0x40000300 // [7:0]
|
||||
#define MIN_BAUDRATE 0x01
|
||||
#define MAX_BAUDRATE 0x04
|
||||
|
|
@ -633,7 +634,6 @@ SpicReadIDRtl8195A(
|
|||
}
|
||||
/* Disable SPI_FLASH User Mode */
|
||||
HAL_SPI_WRITE32(REG_SPIC_SSIENR, 0);
|
||||
|
||||
}
|
||||
|
||||
HAL_FLASH_TEXT_SECTION
|
||||
|
|
@ -645,7 +645,7 @@ SpicCalibrationRtl8195A
|
|||
)
|
||||
{
|
||||
|
||||
u32 rd_data, /*id_no,*/ baudr, autolen, dly_line;
|
||||
u32 rd_data, baudr, autolen, dly_line;
|
||||
u32 total_ava_wds=0;
|
||||
u32 tmp_str_pt, tmp_end_pt, pass, last_pass;
|
||||
struct ava_window max_wd;
|
||||
|
|
@ -841,9 +841,7 @@ SpicConfigAutoModeRtl8195A
|
|||
BIT_RD_DUAL_IO |
|
||||
BIT_RD_DUAL_I))));//Disable all the four and two bit commands.
|
||||
}
|
||||
|
||||
|
||||
if (SpicDualBitMode == SpicBitMode) {
|
||||
else if (SpicDualBitMode == SpicBitMode) {
|
||||
#if FLASH_RD_2IO_EN
|
||||
HAL_SPI_WRITE32(REG_SPIC_READ_DUAL_ADDR_DATA, FLASH_CMD_2READ);
|
||||
#endif
|
||||
|
|
@ -856,8 +854,7 @@ SpicConfigAutoModeRtl8195A
|
|||
(HAL_SPI_READ32(REG_SPIC_VALID_CMD)|(FLASH_VLD_DUAL_CMDS)));
|
||||
|
||||
}
|
||||
|
||||
if (SpicQuadBitMode == SpicBitMode) {
|
||||
else if (SpicQuadBitMode == SpicBitMode) {
|
||||
#if FLASH_WR_4IO_EN
|
||||
HAL_SPI_WRITE32(REG_SPIC_WRITE_QUAD_ADDR_DATA, FLASH_CMD_4PP);
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue