Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cf46c42 authored by GuanXuetao's avatar GuanXuetao
Browse files

unicore32: modify io_p2v and io_v2p macros, and adjust PKUNITY_mmio_BASEs



1. remove __REG macro
2. add (void __iomem *) to io_p2v macro
3. add (phys_addr_t) to io_v2p macro
4. add PKUNITY_AHB_BASE and PKUNITY_APB_BASE definitions
5. modify all PKUNITY_mmio_BASEs from physical addr to virtual addr
6. adjust prefix macro for all usage of PKUNITY_mmio_BASEs
  -- by advice with Arnd Bergmann

Signed-off-by: default avatarGuan Xuetao <gxt@mprc.pku.edu.cn>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 4fde87cb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
#include <asm/memory.h>
#include <asm/system.h>

#define PCI_IOBASE	io_p2v(PKUNITY_PCILIO_BASE)
#define PCI_IOBASE	PKUNITY_PCILIO_BASE
#include <asm-generic/io.h>

/*
+46 −42
Original line number Diff line number Diff line
@@ -22,83 +22,87 @@
 */
#define PKUNITY_SDRAM_BASE		0x00000000 /* 0x00000000 - 0x7FFFFFFF 2GB */
#define PKUNITY_MMIO_BASE		0x80000000 /* 0x80000000 - 0xFFFFFFFF 2GB */
#define PKUNITY_PCI_BASE		0x80000000 /* 0x80000000 - 0xBFFFFFFF 1GB */
#include "regs-pci.h"
#define PKUNITY_BOOT_ROM2_BASE		0xF4000000 /* 0xF4000000 - 0xF7FFFFFF 64MB */
#define PKUNITY_BOOT_SRAM2_BASE		0xF8000000 /* 0xF8000000 - 0xFBFFFFFF 64MB */
#define PKUNITY_BOOT_FLASH_BASE		0xFC000000 /* 0xFC000000 - 0xFFFFFFFF 64MB */

/*
 * PKUNITY Memory Map Addresses: 0x0D000000 - 0x0EFFFFFF (32MB)
 *	0x0D000000 - 0x0DFFFFFF 16MB: for UVC
 *	0x0E000000 - 0x0EFFFFFF 16MB: for UNIGFX
 */
#define PKUNITY_UVC_MMAP_BASE		0x0D000000 /* 0x0D000000 - 0x0DFFFFFF 16MB */
#define PKUNITY_UVC_MMAP_BASE		0x0D000000
#define PKUNITY_UVC_MMAP_SIZE		0x01000000 /* 16MB */
#define PKUNITY_UNIGFX_MMAP_BASE        0x0E000000 /* 0x0E000000 - 0x0EFFFFFF 16MB */
#define PKUNITY_UNIGFX_MMAP_BASE        0x0E000000
#define PKUNITY_UNIGFX_MMAP_SIZE        0x01000000 /* 16MB */

/*
 * PKUNITY System Bus Addresses (PCI): 0x80000000 - 0xBFFFFFFF (1GB)
 * 0x80000000 - 0x8000000B 12B    PCI Configuration regs
 * 0x80010000 - 0x80010250 592B   PCI Bridge Base
 * 0x80030000 - 0x8003FFFF 64KB   PCI Legacy IO
 * 0x90000000 - 0x97FFFFFF 128MB  PCI AHB-PCI MEM-mapping
 * 0x98000000 - 0x9FFFFFFF 128MB  PCI PCI-AHB MEM-mapping
 */
/* PCI Configuration regs */
#define PKUNITY_PCICFG_BASE             0x80000000 /* 0x80000000 - 0x8000000B 12B */
/* PCI Bridge Base */
#define PKUNITY_PCIBRI_BASE             0x80010000 /* 0x80010000 - 0x80010250 592B */
/* PCI Legacy IO */
#define PKUNITY_PCILIO_BASE             0x80030000 /* 0x80030000 - 0x8003FFFF 64KB */
/* PCI AHB-PCI MEM-mapping */
#define PKUNITY_PCIMEM_BASE             0x90000000 /* 0x90000000 - 0x97FFFFFF 128MB */
/* PCI PCI-AHB MEM-mapping */
#define PKUNITY_PCIAHB_BASE             0x98000000 /* 0x98000000 - 0x9FFFFFFF 128MB */
#define PKUNITY_PCI_BASE		io_p2v(0x80000000) /* 0x80000000 - 0xBFFFFFFF 1GB */
#include "regs-pci.h"

#define PKUNITY_PCICFG_BASE		(PKUNITY_PCI_BASE + 0x0)
#define PKUNITY_PCIBRI_BASE		(PKUNITY_PCI_BASE + 0x00010000)
#define PKUNITY_PCILIO_BASE		(PKUNITY_PCI_BASE + 0x00030000)
#define PKUNITY_PCIMEM_BASE		(PKUNITY_PCI_BASE + 0x10000000)
#define PKUNITY_PCIAHB_BASE		(PKUNITY_PCI_BASE + 0x18000000)

/*
 * PKUNITY System Bus Addresses (AHB): 0xC0000000 - 0xEDFFFFFF (640MB)
 */
#define PKUNITY_AHB_BASE		io_p2v(0xC0000000)

/* AHB-0 is DDR2 SDRAM */
/* AHB-1 is PCI Space */
#define PKUNITY_ARBITER_BASE		0xC0000000 /* AHB-2 */
#define PKUNITY_DDR2CTRL_BASE		0xC0100000 /* AHB-3 */
#define PKUNITY_DMAC_BASE		0xC0200000 /* AHB-4 */
#define PKUNITY_ARBITER_BASE		(PKUNITY_AHB_BASE + 0x000000) /* AHB-2 */
#define PKUNITY_DDR2CTRL_BASE		(PKUNITY_AHB_BASE + 0x100000) /* AHB-3 */
#define PKUNITY_DMAC_BASE		(PKUNITY_AHB_BASE + 0x200000) /* AHB-4 */
#include "regs-dmac.h"
#define PKUNITY_UMAL_BASE		0xC0300000 /* AHB-5 */
#define PKUNITY_UMAL_BASE		(PKUNITY_AHB_BASE + 0x300000) /* AHB-5 */
#include "regs-umal.h"
#define PKUNITY_USB_BASE		0xC0400000 /* AHB-6 */
#define PKUNITY_SATA_BASE		0xC0500000 /* AHB-7 */
#define PKUNITY_SMC_BASE		0xC0600000 /* AHB-8 */
#define PKUNITY_USB_BASE		(PKUNITY_AHB_BASE + 0x400000) /* AHB-6 */
#define PKUNITY_SATA_BASE		(PKUNITY_AHB_BASE + 0x500000) /* AHB-7 */
#define PKUNITY_SMC_BASE		(PKUNITY_AHB_BASE + 0x600000) /* AHB-8 */
/* AHB-9 is for APB bridge */
#define PKUNITY_MME_BASE		0xC0700000 /* AHB-10 */
#define PKUNITY_UNIGFX_BASE		0xC0800000 /* AHB-11 */
#define PKUNITY_MME_BASE		(PKUNITY_AHB_BASE + 0x700000) /* AHB-10 */
#define PKUNITY_UNIGFX_BASE		(PKUNITY_AHB_BASE + 0x800000) /* AHB-11 */
#include "regs-unigfx.h"
#define PKUNITY_NAND_BASE		0xC0900000 /* AHB-12 */
#define PKUNITY_NAND_BASE		(PKUNITY_AHB_BASE + 0x900000) /* AHB-12 */
#include "regs-nand.h"
#define PKUNITY_H264D_BASE		0xC0A00000 /* AHB-13 */
#define PKUNITY_H264E_BASE		0xC0B00000 /* AHB-14 */
#define PKUNITY_H264D_BASE		(PKUNITY_AHB_BASE + 0xA00000) /* AHB-13 */
#define PKUNITY_H264E_BASE		(PKUNITY_AHB_BASE + 0xB00000) /* AHB-14 */

/*
 * PKUNITY Peripheral Bus Addresses (APB): 0xEE000000 - 0xEFFFFFFF (128MB)
 */
#define PKUNITY_UART0_BASE		0xEE000000 /* APB-0 */
#define PKUNITY_UART1_BASE		0xEE100000 /* APB-1 */
#define PKUNITY_APB_BASE		io_p2v(0xEE000000)

#define PKUNITY_UART0_BASE		(PKUNITY_APB_BASE + 0x000000) /* APB-0 */
#define PKUNITY_UART1_BASE		(PKUNITY_APB_BASE + 0x100000) /* APB-1 */
#include "regs-uart.h"
#define PKUNITY_I2C_BASE		0xEE200000 /* APB-2 */
#define PKUNITY_I2C_BASE		(PKUNITY_APB_BASE + 0x200000) /* APB-2 */
#include "regs-i2c.h"
#define PKUNITY_SPI_BASE		0xEE300000 /* APB-3 */
#define PKUNITY_SPI_BASE		(PKUNITY_APB_BASE + 0x300000) /* APB-3 */
#include "regs-spi.h"
#define PKUNITY_AC97_BASE		0xEE400000 /* APB-4 */
#define PKUNITY_AC97_BASE		(PKUNITY_APB_BASE + 0x400000) /* APB-4 */
#include "regs-ac97.h"
#define PKUNITY_GPIO_BASE		0xEE500000 /* APB-5 */
#define PKUNITY_GPIO_BASE		(PKUNITY_APB_BASE + 0x500000) /* APB-5 */
#include "regs-gpio.h"
#define PKUNITY_INTC_BASE		0xEE600000 /* APB-6 */
#define PKUNITY_INTC_BASE		(PKUNITY_APB_BASE + 0x600000) /* APB-6 */
#include "regs-intc.h"
#define PKUNITY_RTC_BASE		0xEE700000 /* APB-7 */
#define PKUNITY_RTC_BASE		(PKUNITY_APB_BASE + 0x700000) /* APB-7 */
#include "regs-rtc.h"
#define PKUNITY_OST_BASE		0xEE800000 /* APB-8 */
#define PKUNITY_OST_BASE		(PKUNITY_APB_BASE + 0x800000) /* APB-8 */
#include "regs-ost.h"
#define PKUNITY_RESETC_BASE		0xEE900000 /* APB-9 */
#define PKUNITY_RESETC_BASE		(PKUNITY_APB_BASE + 0x900000) /* APB-9 */
#include "regs-resetc.h"
#define PKUNITY_PM_BASE			0xEEA00000 /* APB-10 */
#define PKUNITY_PM_BASE			(PKUNITY_APB_BASE + 0xA00000) /* APB-10 */
#include "regs-pm.h"
#define PKUNITY_PS2_BASE		0xEEB00000 /* APB-11 */
#define PKUNITY_PS2_BASE		(PKUNITY_APB_BASE + 0xB00000) /* APB-11 */
#include "regs-ps2.h"
#define PKUNITY_SDC_BASE		0xEEC00000 /* APB-12 */
#define PKUNITY_SDC_BASE		(PKUNITY_APB_BASE + 0xC00000) /* APB-12 */
#include "regs-sdc.h"
+5 −6
Original line number Diff line number Diff line
@@ -17,17 +17,16 @@

#include "PKUnity.h"

#ifndef __ASSEMBLY__
#define io_p2v(x)	(void __iomem *)((x) - PKUNITY_MMIO_BASE)
#define io_v2p(x)	(phys_addr_t)((x) + PKUNITY_MMIO_BASE)
#else
#define io_p2v(x)	((x) - PKUNITY_MMIO_BASE)
#define io_v2p(x)	((x) + PKUNITY_MMIO_BASE)

#ifndef __ASSEMBLY__

# define __REG(x)	(void __iomem *)io_p2v(x)

#endif

#define PCIBIOS_MIN_IO			0x4000 /* should lower than 64KB */
#define PCIBIOS_MIN_MEM			PKUNITY_PCIMEM_BASE
#define PCIBIOS_MIN_MEM			io_v2p(PKUNITY_PCIMEM_BASE)

/*
 * We override the standard dma-mask routines for bouncing.
+2 −2
Original line number Diff line number Diff line
@@ -45,8 +45,8 @@ void puv3_pci_adjust_zones(unsigned long *size, unsigned long *holes);
#define is_pcibus_device(dev)	(dev &&			\
				(strncmp(dev->bus->name, "pci", 3) == 0))

#define __virt_to_pcibus(x)     (__virt_to_phys(x) + PKUNITY_PCIAHB_BASE)
#define __pcibus_to_virt(x)     __phys_to_virt((x) - PKUNITY_PCIAHB_BASE)
#define __virt_to_pcibus(x)     (__virt_to_phys((x) + PKUNITY_PCIAHB_BASE))
#define __pcibus_to_virt(x)     (__phys_to_virt(x) - PKUNITY_PCIAHB_BASE)

/* kuser area */
#define KUSER_VECPAGE_BASE	(KUSER_BASE + UL(0x3fff0000))
+10 −10
Original line number Diff line number Diff line
@@ -2,16 +2,16 @@
 * PKUnity AC97 Registers
 */

#define PKUNITY_AC97_CONR		__REG(PKUNITY_AC97_BASE + 0x0000)
#define PKUNITY_AC97_OCR		__REG(PKUNITY_AC97_BASE + 0x0004)
#define PKUNITY_AC97_ICR		__REG(PKUNITY_AC97_BASE + 0x0008)
#define PKUNITY_AC97_CRAC		__REG(PKUNITY_AC97_BASE + 0x000C)
#define PKUNITY_AC97_INTR		__REG(PKUNITY_AC97_BASE + 0x0010)
#define PKUNITY_AC97_INTRSTAT		__REG(PKUNITY_AC97_BASE + 0x0014)
#define PKUNITY_AC97_INTRCLEAR		__REG(PKUNITY_AC97_BASE + 0x0018)
#define PKUNITY_AC97_ENABLE		__REG(PKUNITY_AC97_BASE + 0x001C)
#define PKUNITY_AC97_OUT_FIFO		__REG(PKUNITY_AC97_BASE + 0x0020)
#define PKUNITY_AC97_IN_FIFO		__REG(PKUNITY_AC97_BASE + 0x0030)
#define PKUNITY_AC97_CONR		(PKUNITY_AC97_BASE + 0x0000)
#define PKUNITY_AC97_OCR		(PKUNITY_AC97_BASE + 0x0004)
#define PKUNITY_AC97_ICR		(PKUNITY_AC97_BASE + 0x0008)
#define PKUNITY_AC97_CRAC		(PKUNITY_AC97_BASE + 0x000C)
#define PKUNITY_AC97_INTR		(PKUNITY_AC97_BASE + 0x0010)
#define PKUNITY_AC97_INTRSTAT		(PKUNITY_AC97_BASE + 0x0014)
#define PKUNITY_AC97_INTRCLEAR		(PKUNITY_AC97_BASE + 0x0018)
#define PKUNITY_AC97_ENABLE		(PKUNITY_AC97_BASE + 0x001C)
#define PKUNITY_AC97_OUT_FIFO		(PKUNITY_AC97_BASE + 0x0020)
#define PKUNITY_AC97_IN_FIFO		(PKUNITY_AC97_BASE + 0x0030)

#define AC97_CODEC_REG(v)               FIELD((v), 7, 16)
#define AC97_CODEC_VAL(v)               FIELD((v), 16, 0)
Loading