mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-13 05:55:02 -04:00
PXA: Remove PXA PCMCIA support
Say good bye to some ancient, very broken and unused code. Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
This commit is contained in:
parent
81f731ca7c
commit
c1ff6d8872
@ -1,56 +0,0 @@
|
|||||||
|
|
||||||
These are brief instructions on how to add support for CF adapters to
|
|
||||||
custom designed PXA boards. You need to set the parameters in the
|
|
||||||
config file. This should work for most implementations especially if you
|
|
||||||
follow the connections of the standard lubbock. Anyway just the block
|
|
||||||
marked memory configuration should be touched since the other parameters
|
|
||||||
are imposed by the PXA architecture.
|
|
||||||
|
|
||||||
EDIT 2010-07-01: in common/cmd_ide.c, having CONFIG_PXA_PCMCIA defined
|
|
||||||
would cause looping on inw()/outw() rather than using insw()/outsw(),
|
|
||||||
thus making sure IDE / ATA bytes are properly swapped. This behaviour
|
|
||||||
is now controlled by CONFIG_IDE_SWAP_IO, therefore PXA boards with
|
|
||||||
PCMCIA should #define CONFIG_IDE_SWAP_IO.
|
|
||||||
|
|
||||||
#define CONFIG_IDE_SWAP_IO
|
|
||||||
|
|
||||||
#define CONFIG_PXA_PCMCIA 1
|
|
||||||
#define CONFIG_PXA_IDE 1
|
|
||||||
|
|
||||||
#define CONFIG_PCMCIA_SLOT_A 1
|
|
||||||
/* just to keep build system happy */
|
|
||||||
|
|
||||||
#define CONFIG_SYS_PCMCIA_MEM_ADDR 0x28000000
|
|
||||||
#define CONFIG_SYS_PCMCIA_MEM_SIZE 0x10000000
|
|
||||||
|
|
||||||
#define CONFIG_SYS_MECR_VAL 0x00000000
|
|
||||||
#define CONFIG_SYS_MCMEM0_VAL 0x00004204
|
|
||||||
#define CONFIG_SYS_MCMEM1_VAL 0x00000000
|
|
||||||
#define CONFIG_SYS_MCATT0_VAL 0x00010504
|
|
||||||
#define CONFIG_SYS_MCATT1_VAL 0x00000000
|
|
||||||
#define CONFIG_SYS_MCIO0_VAL 0x00008407
|
|
||||||
#define CONFIG_SYS_MCIO1_VAL 0x00000000
|
|
||||||
/* memory configuration */
|
|
||||||
|
|
||||||
#define CONFIG_SYS_IDE_MAXBUS 1
|
|
||||||
/* max. 1 IDE bus */
|
|
||||||
#define CONFIG_SYS_IDE_MAXDEVICE 1
|
|
||||||
/* max. 1 drive per IDE bus */
|
|
||||||
|
|
||||||
#define CONFIG_SYS_ATA_IDE0_OFFSET 0x0000
|
|
||||||
|
|
||||||
#define CONFIG_SYS_ATA_BASE_ADDR 0x20000000
|
|
||||||
|
|
||||||
/* Offset for data I/O */
|
|
||||||
#define CONFIG_SYS_ATA_DATA_OFFSET 0x1f0
|
|
||||||
|
|
||||||
/* Offset for normal register accesses */
|
|
||||||
#define CONFIG_SYS_ATA_REG_OFFSET 0x1f0
|
|
||||||
|
|
||||||
/* Offset for alternate registers */
|
|
||||||
#define CONFIG_SYS_ATA_ALT_OFFSET 0x3f0
|
|
||||||
|
|
||||||
|
|
||||||
Another important point is that maybe you have to power the pcmcia
|
|
||||||
subsystem. This is very board specific, for an example on how to
|
|
||||||
do it please search for CONFIG_EXADRON1 in cmd_pcmcia.c
|
|
@ -27,7 +27,6 @@ LIB := $(obj)libpcmcia.o
|
|||||||
|
|
||||||
COBJS-$(CONFIG_I82365) += i82365.o
|
COBJS-$(CONFIG_I82365) += i82365.o
|
||||||
COBJS-$(CONFIG_8xx) += mpc8xx_pcmcia.o
|
COBJS-$(CONFIG_8xx) += mpc8xx_pcmcia.o
|
||||||
COBJS-$(CONFIG_PXA_PCMCIA) += pxa_pcmcia.o
|
|
||||||
COBJS-y += rpx_pcmcia.o
|
COBJS-y += rpx_pcmcia.o
|
||||||
COBJS-$(CONFIG_IDE_TI_CARDBUS) += ti_pci1410a.o
|
COBJS-$(CONFIG_IDE_TI_CARDBUS) += ti_pci1410a.o
|
||||||
COBJS-y += tqm8xx_pcmcia.o
|
COBJS-y += tqm8xx_pcmcia.o
|
||||||
|
@ -1,93 +0,0 @@
|
|||||||
#include <common.h>
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#include <pcmcia.h>
|
|
||||||
#include <asm/arch/pxa-regs.h>
|
|
||||||
#include <asm/io.h>
|
|
||||||
|
|
||||||
static inline void msWait(unsigned msVal)
|
|
||||||
{
|
|
||||||
udelay(msVal*1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
int pcmcia_on (void)
|
|
||||||
{
|
|
||||||
unsigned int reg_arr[] = {
|
|
||||||
0x48000028, CONFIG_SYS_MCMEM0_VAL,
|
|
||||||
0x4800002c, CONFIG_SYS_MCMEM1_VAL,
|
|
||||||
0x48000030, CONFIG_SYS_MCATT0_VAL,
|
|
||||||
0x48000034, CONFIG_SYS_MCATT1_VAL,
|
|
||||||
0x48000038, CONFIG_SYS_MCIO0_VAL,
|
|
||||||
0x4800003c, CONFIG_SYS_MCIO1_VAL,
|
|
||||||
|
|
||||||
0, 0
|
|
||||||
};
|
|
||||||
int i, rc;
|
|
||||||
|
|
||||||
#ifdef CONFIG_EXADRON1
|
|
||||||
int cardDetect;
|
|
||||||
volatile unsigned int *v_pBCRReg =
|
|
||||||
(volatile unsigned int *) 0x08000000;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
debug ("%s\n", __FUNCTION__);
|
|
||||||
|
|
||||||
i = 0;
|
|
||||||
while (reg_arr[i]) {
|
|
||||||
(*(volatile unsigned int *) reg_arr[i]) |= reg_arr[i + 1];
|
|
||||||
i += 2;
|
|
||||||
}
|
|
||||||
udelay (1000);
|
|
||||||
|
|
||||||
debug ("%s: programmed mem controller \n", __FUNCTION__);
|
|
||||||
|
|
||||||
#ifdef CONFIG_EXADRON1
|
|
||||||
|
|
||||||
/*define useful BCR masks */
|
|
||||||
#define BCR_CF_INIT_VAL 0x00007230
|
|
||||||
#define BCR_CF_PWRON_BUSOFF_RESETOFF_VAL 0x00007231
|
|
||||||
#define BCR_CF_PWRON_BUSOFF_RESETON_VAL 0x00007233
|
|
||||||
#define BCR_CF_PWRON_BUSON_RESETON_VAL 0x00007213
|
|
||||||
#define BCR_CF_PWRON_BUSON_RESETOFF_VAL 0x00007211
|
|
||||||
|
|
||||||
/* we see from the GPIO bit if the card is present */
|
|
||||||
cardDetect = !(GPLR0 & GPIO_bit (14));
|
|
||||||
|
|
||||||
if (cardDetect) {
|
|
||||||
printf ("No PCMCIA card found!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* reset the card via the BCR line */
|
|
||||||
*v_pBCRReg = (unsigned) BCR_CF_INIT_VAL;
|
|
||||||
msWait (500);
|
|
||||||
|
|
||||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSOFF_RESETOFF_VAL;
|
|
||||||
msWait (500);
|
|
||||||
|
|
||||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSOFF_RESETON_VAL;
|
|
||||||
msWait (500);
|
|
||||||
|
|
||||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSON_RESETON_VAL;
|
|
||||||
msWait (500);
|
|
||||||
|
|
||||||
*v_pBCRReg = (unsigned) BCR_CF_PWRON_BUSON_RESETOFF_VAL;
|
|
||||||
msWait (1500);
|
|
||||||
|
|
||||||
/* enable address bus */
|
|
||||||
GPCR1 = 0x01;
|
|
||||||
/* and the first CF slot */
|
|
||||||
MECR = 0x00000002;
|
|
||||||
|
|
||||||
#endif /* EXADRON 1 */
|
|
||||||
|
|
||||||
rc = check_ide_device (0); /* use just slot 0 */
|
|
||||||
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(CONFIG_CMD_PCMCIA)
|
|
||||||
int pcmcia_off (void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -313,8 +313,7 @@ extern u_int *pcmcia_pgcrx[];
|
|||||||
#define PCMCIA_PGCRX(slot) (*pcmcia_pgcrx[slot])
|
#define PCMCIA_PGCRX(slot) (*pcmcia_pgcrx[slot])
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD) \
|
#if defined(CONFIG_CMD_IDE) && defined(CONFIG_IDE_8xx_PCCARD)
|
||||||
|| defined(CONFIG_PXA_PCMCIA)
|
|
||||||
extern int check_ide_device(int slot);
|
extern int check_ide_device(int slot);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user