From d64e626387e21dc6a7ab374f17dec1e902cd9779 Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Sun, 14 Jan 2007 13:48:09 +0000 Subject: Start of work on a port to the Archos 'AV300' (AV320/340/380) - a working UI simulator (but with a dummy background image for now) and the beginnings of the target-specific firmare code. Port is temporarily using a 2bpp LCD buffer format - the AV300 has a 320x240 colour (YCbCr-based) LCD which will need a new framebuffer format and drawing routines, but the LCD is also capable of various paletted bitmap modes, one of which has an identical framebuffer format to the greyscale ipods. Buttons (and hence the button mappings) are identical to the Archos Recorder, with the exception that the PLAY button on the Recorder is replaced by pressing the joystick on the AV300 (which I call BUTTON_SELECT). The initial port will begin by being strictly HWCODEC, but will evolve to be a hybrid SWCODEC/HWCODEC platform - it has a MAS3587F but also a main CPU (54MHz arm7tdmi plus DSP) capable of software decoding of at least some formats. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12008 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/archos/av300/ata-target.h | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 firmware/target/arm/archos/av300/ata-target.h (limited to 'firmware/target/arm/archos/av300/ata-target.h') diff --git a/firmware/target/arm/archos/av300/ata-target.h b/firmware/target/arm/archos/av300/ata-target.h new file mode 100644 index 0000000000..f570ddd4b3 --- /dev/null +++ b/firmware/target/arm/archos/av300/ata-target.h @@ -0,0 +1,62 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id: ata-target.h 11655 2006-12-03 22:13:44Z amiconn $ + * + * Copyright (C) 2007 by Dave Chapman + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +/* Plain C read & write loops */ + +#define ATA_IOBASE 0x02400000 + +#define ATA_DATA (*((volatile unsigned short*)(ATA_IOBASE))) +#define ATA_ERROR (*((volatile unsigned char*)(ATA_IOBASE + 0x080))) +#define ATA_NSECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x100))) +#define ATA_SECTOR (*((volatile unsigned char*)(ATA_IOBASE + 0x180))) +#define ATA_LCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x200))) +#define ATA_HCYL (*((volatile unsigned char*)(ATA_IOBASE + 0x280))) +#define ATA_SELECT (*((volatile unsigned char*)(ATA_IOBASE + 0x300))) +#define ATA_CONTROL (*((volatile unsigned char*)(ATA_IOBASE + 0x340))) +#define ATA_COMMAND (*((volatile unsigned char*)(ATA_IOBASE + 0x380))) + +#define STATUS_BSY 0x80 +#define STATUS_RDY 0x40 +#define STATUS_DF 0x20 +#define STATUS_DRQ 0x08 +#define STATUS_ERR 0x01 +#define ERROR_ABRT 0x04 + +#define WRITE_PATTERN1 0xa5 +#define WRITE_PATTERN2 0x5a +#define WRITE_PATTERN3 0xaa +#define WRITE_PATTERN4 0x55 + +#define READ_PATTERN1 0xa5 +#define READ_PATTERN2 0x5a +#define READ_PATTERN3 0xaa +#define READ_PATTERN4 0x55 + +#define READ_PATTERN1_MASK 0xff +#define READ_PATTERN2_MASK 0xff +#define READ_PATTERN3_MASK 0xff +#define READ_PATTERN4_MASK 0xff + +#define SET_REG(reg,val) reg = (val) +#define SET_16BITREG(reg,val) reg = (val) + +void ata_reset(void); +void ata_enable(bool on); +bool ata_is_coldstart(void); +void ata_device_init(void); -- cgit v1.2.3