diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 22:05:40 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-16 22:05:40 -0400 |
| commit | 63a93699c6a58795b854ff573542a08367684dae (patch) | |
| tree | 057ab4cbde66862c51867dde030be69a2fa7073f /Documentation/arm | |
| parent | 16d8775700f1815076f879719ce14b33f50a3171 (diff) | |
| parent | 21bd6d37cf23e643020bf28b41844ff0040c9393 (diff) | |
Merge branch 'remove' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'remove' of master.kernel.org:/home/rmk/linux-2.6-arm:
ARM: 6629/2: aaec2000: remove support for mach-aaec2000
ARM: lh7a40x: remove unmaintained platform support
Fix up trivial conflicts in
- arch/arm/mach-{aaec2000,lh7a40x}/include/mach/memory.h (removed)
- drivers/usb/gadget/Kconfig (USB_[GADGET_]LH7A40X removed, others added)
Diffstat (limited to 'Documentation/arm')
| -rw-r--r-- | Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen | 61 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/CompactFlash | 32 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/IOBarrier | 45 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/KEV7A400 | 8 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/LCDPanels | 59 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/LPD7A400 | 15 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/LPD7A40X | 16 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/SDRAM | 51 | ||||
| -rw-r--r-- | Documentation/arm/Sharp-LH/VectoredInterruptController | 80 |
9 files changed, 0 insertions, 367 deletions
diff --git a/Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen b/Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen deleted file mode 100644 index dc460f05564..00000000000 --- a/Documentation/arm/Sharp-LH/ADC-LH7-Touchscreen +++ /dev/null | |||
| @@ -1,61 +0,0 @@ | |||
| 1 | README on the ADC/Touchscreen Controller | ||
| 2 | ======================================== | ||
| 3 | |||
| 4 | The LH79524 and LH7A404 include a built-in Analog to Digital | ||
| 5 | controller (ADC) that is used to process input from a touchscreen. | ||
| 6 | The driver only implements a four-wire touch panel protocol. | ||
| 7 | |||
| 8 | The touchscreen driver is maintenance free except for the pen-down or | ||
| 9 | touch threshold. Some resistive displays and board combinations may | ||
| 10 | require tuning of this threshold. The driver exposes some of its | ||
| 11 | internal state in the sys filesystem. If the kernel is configured | ||
| 12 | with it, CONFIG_SYSFS, and sysfs is mounted at /sys, there will be a | ||
| 13 | directory | ||
| 14 | |||
| 15 | /sys/devices/platform/adc-lh7.0 | ||
| 16 | |||
| 17 | containing these files. | ||
| 18 | |||
| 19 | -r--r--r-- 1 root root 4096 Jan 1 00:00 samples | ||
| 20 | -rw-r--r-- 1 root root 4096 Jan 1 00:00 threshold | ||
| 21 | -r--r--r-- 1 root root 4096 Jan 1 00:00 threshold_range | ||
| 22 | |||
| 23 | The threshold is the current touch threshold. It defaults to 750 on | ||
| 24 | most targets. | ||
| 25 | |||
| 26 | # cat threshold | ||
| 27 | 750 | ||
| 28 | |||
| 29 | The threshold_range contains the range of valid values for the | ||
| 30 | threshold. Values outside of this range will be silently ignored. | ||
| 31 | |||
| 32 | # cat threshold_range | ||
| 33 | 0 1023 | ||
| 34 | |||
| 35 | To change the threshold, write a value to the threshold file. | ||
| 36 | |||
| 37 | # echo 500 > threshold | ||
| 38 | # cat threshold | ||
| 39 | 500 | ||
| 40 | |||
| 41 | The samples file contains the most recently sampled values from the | ||
| 42 | ADC. There are 12. Below are typical of the last sampled values when | ||
| 43 | the pen has been released. The first two and last two samples are for | ||
| 44 | detecting whether or not the pen is down. The third through sixth are | ||
| 45 | X coordinate samples. The seventh through tenth are Y coordinate | ||
| 46 | samples. | ||
| 47 | |||
| 48 | # cat samples | ||
| 49 | 1023 1023 0 0 0 0 530 529 530 529 1023 1023 | ||
| 50 | |||
| 51 | To determine a reasonable threshold, press on the touch panel with an | ||
| 52 | appropriate stylus and read the values from samples. | ||
| 53 | |||
| 54 | # cat samples | ||
| 55 | 1023 676 92 103 101 102 855 919 922 922 1023 679 | ||
| 56 | |||
| 57 | The first and eleventh samples are discarded. Thus, the important | ||
| 58 | values are the second and twelfth which are used to determine if the | ||
| 59 | pen is down. When both are below the threshold, the driver registers | ||
| 60 | that the pen is down. When either is above the threshold, it | ||
| 61 | registers then pen is up. | ||
diff --git a/Documentation/arm/Sharp-LH/CompactFlash b/Documentation/arm/Sharp-LH/CompactFlash deleted file mode 100644 index 8616d877df9..00000000000 --- a/Documentation/arm/Sharp-LH/CompactFlash +++ /dev/null | |||
| @@ -1,32 +0,0 @@ | |||
| 1 | README on the Compact Flash for Card Engines | ||
| 2 | ============================================ | ||
| 3 | |||
| 4 | There are three challenges in supporting the CF interface of the Card | ||
| 5 | Engines. First, every IO operation must be followed with IO to | ||
| 6 | another memory region. Second, the slot is wired for one-to-one | ||
| 7 | address mapping *and* it is wired for 16 bit access only. Second, the | ||
| 8 | interrupt request line from the CF device isn't wired. | ||
| 9 | |||
| 10 | The IOBARRIER issue is covered in README.IOBARRIER. This isn't an | ||
| 11 | onerous problem. Enough said here. | ||
| 12 | |||
| 13 | The addressing issue is solved in the | ||
| 14 | arch/arm/mach-lh7a40x/ide-lpd7a40x.c file with some awkward | ||
| 15 | work-arounds. We implement a special SELECT_DRIVE routine that is | ||
| 16 | called before the IDE driver performs its own SELECT_DRIVE. Our code | ||
| 17 | recognizes that the SELECT register cannot be modified without also | ||
| 18 | writing a command. It send an IDLE_IMMEDIATE command on selecting a | ||
| 19 | drive. The function also prevents drive select to the slave drive | ||
| 20 | since there can be only one. The awkward part is that the IDE driver, | ||
| 21 | even though we have a select procedure, also attempts to change the | ||
| 22 | drive by writing directly the SELECT register. This attempt is | ||
| 23 | explicitly blocked by the OUTB function--not pretty, but effective. | ||
| 24 | |||
| 25 | The lack of interrupts is a more serious problem. Even though the CF | ||
| 26 | card is fast when compared to a normal IDE device, we don't know that | ||
| 27 | the CF is really flash. A user could use one of the very small hard | ||
| 28 | drives being shipped with a CF interface. The IDE code includes a | ||
| 29 | check for interfaces that lack an IRQ. In these cases, submitting a | ||
| 30 | command to the IDE controller is followed by a call to poll for | ||
| 31 | completion. If the device isn't immediately ready, it schedules a | ||
| 32 | timer to poll again later. | ||
diff --git a/Documentation/arm/Sharp-LH/IOBarrier b/Documentation/arm/Sharp-LH/IOBarrier deleted file mode 100644 index 2e953e228f4..00000000000 --- a/Documentation/arm/Sharp-LH/IOBarrier +++ /dev/null | |||
| @@ -1,45 +0,0 @@ | |||
| 1 | README on the IOBARRIER for CardEngine IO | ||
| 2 | ========================================= | ||
| 3 | |||
| 4 | Due to an unfortunate oversight when the Card Engines were designed, | ||
| 5 | the signals that control access to some peripherals, most notably the | ||
| 6 | SMC91C9111 ethernet controller, are not properly handled. | ||
| 7 | |||
| 8 | The symptom is that some back to back IO with the peripheral returns | ||
| 9 | unreliable data. With the SMC chip, you'll see errors about the bank | ||
| 10 | register being 'screwed'. | ||
| 11 | |||
| 12 | The cause is that the AEN signal to the SMC chip does not transition | ||
| 13 | for every memory access. It is driven through the CPLD from the CS7 | ||
| 14 | line of the CPU's static memory controller which is optimized to | ||
| 15 | eliminate unnecessary transitions. Yet, the SMC requires a transition | ||
| 16 | for every write access. The Sharp website has more information about | ||
| 17 | the effect this power-conserving feature has on peripheral | ||
| 18 | interfacing. | ||
| 19 | |||
| 20 | The solution is to follow every write access to the SMC chip with an | ||
| 21 | access to another memory region that will force the CPU to release the | ||
| 22 | chip select line. It is important to guarantee that this access | ||
| 23 | forces the CPU off-chip. We map a page of SDRAM as if it were an | ||
| 24 | uncacheable IO device and read from it after every SMC IO write | ||
| 25 | operation. | ||
| 26 | |||
| 27 | SMC IO | ||
| 28 | BARRIER IO | ||
| 29 | |||
| 30 | Only this sequence is important. It does not matter that there is no | ||
| 31 | BARRIER IO before the access to the SMC chip because the AEN latch | ||
| 32 | only needs occurs after the SMC IO write cycle. The routines that | ||
| 33 | implement this work-around make an additional concession which is to | ||
| 34 | disable interrupts during the IO sequence. Other hardware devices | ||
| 35 | (the LogicPD CPLD) have registers in the same physical memory | ||
| 36 | region as the SMC chip. An interrupt might allow an access to one of | ||
| 37 | those registers while SMC IO is being performed. | ||
| 38 | |||
| 39 | You might be tempted to think that we have to access another device | ||
| 40 | attached to the static memory controller, but the empirical evidence | ||
| 41 | indicates that this is not so. Mapping 0x00000000 (flash) and | ||
| 42 | 0xc0000000 (SDRAM) appear to have the same effect. Using SDRAM seems | ||
| 43 | to be faster. Choosing to access an undecoded memory region is not | ||
| 44 | desirable as there is no way to know how that chip select will be used | ||
| 45 | in the future. | ||
diff --git a/Documentation/arm/Sharp-LH/KEV7A400 b/Documentation/arm/Sharp-LH/KEV7A400 deleted file mode 100644 index be32b14cd53..00000000000 --- a/Documentation/arm/Sharp-LH/KEV7A400 +++ /dev/null | |||
| @@ -1,8 +0,0 @@ | |||
| 1 | README on Implementing Linux for Sharp's KEV7a400 | ||
| 2 | ================================================= | ||
| 3 | |||
| 4 | This product has been discontinued by Sharp. For the time being, the | ||
| 5 | partially implemented code remains in the kernel. At some point in | ||
| 6 | the future, either the code will be finished or it will be removed | ||
| 7 | completely. This depends primarily on how many of the development | ||
| 8 | boards are in the field. | ||
diff --git a/Documentation/arm/Sharp-LH/LCDPanels b/Documentation/arm/Sharp-LH/LCDPanels deleted file mode 100644 index fb1b21c2f2f..00000000000 --- a/Documentation/arm/Sharp-LH/LCDPanels +++ /dev/null | |||
| @@ -1,59 +0,0 @@ | |||
| 1 | README on the LCD Panels | ||
| 2 | ======================== | ||
| 3 | |||
| 4 | Configuration options for several LCD panels, available from Logic PD, | ||
| 5 | are included in the kernel source. This README will help you | ||
| 6 | understand the configuration data and give you some guidance for | ||
| 7 | adding support for other panels if you wish. | ||
| 8 | |||
| 9 | |||
| 10 | lcd-panels.h | ||
| 11 | ------------ | ||
| 12 | |||
| 13 | There is no way, at present, to detect which panel is attached to the | ||
| 14 | system at runtime. Thus the kernel configuration is static. The file | ||
| 15 | arch/arm/mach-ld7a40x/lcd-panels.h (or similar) defines all of the | ||
| 16 | panel specific parameters. | ||
| 17 | |||
| 18 | It should be possible for this data to be shared among several device | ||
| 19 | families. The current layout may be insufficiently general, but it is | ||
| 20 | amenable to improvement. | ||
| 21 | |||
| 22 | |||
| 23 | PIXEL_CLOCK | ||
| 24 | ----------- | ||
| 25 | |||
| 26 | The panel data sheets will give a range of acceptable pixel clocks. | ||
| 27 | The fundamental LCDCLK input frequency is divided down by a PCD | ||
| 28 | constant in field '.tim2'. It may happen that it is impossible to set | ||
| 29 | the pixel clock within this range. A clock which is too slow will | ||
| 30 | tend to flicker. For the highest quality image, set the clock as high | ||
| 31 | as possible. | ||
| 32 | |||
| 33 | |||
| 34 | MARGINS | ||
| 35 | ------- | ||
| 36 | |||
| 37 | These values may be difficult to glean from the panel data sheet. In | ||
| 38 | the case of the Sharp panels, the upper margin is explicitly called | ||
| 39 | out as a specific number of lines from the top of the frame. The | ||
| 40 | other values may not matter as much as the panels tend to | ||
| 41 | automatically center the image. | ||
| 42 | |||
| 43 | |||
| 44 | Sync Sense | ||
| 45 | ---------- | ||
| 46 | |||
| 47 | The sense of the hsync and vsync pulses may be called out in the data | ||
| 48 | sheet. On one panel, the sense of these pulses determine the height | ||
| 49 | of the visible region on the panel. Most of the Sharp panels use | ||
| 50 | negative sense sync pulses set by the TIM2_IHS and TIM2_IVS bits in | ||
| 51 | '.tim2'. | ||
| 52 | |||
| 53 | |||
| 54 | Pel Layout | ||
| 55 | ---------- | ||
| 56 | |||
| 57 | The Sharp color TFT panels are all configured for 16 bit direct color | ||
| 58 | modes. The amba-lcd driver sets the pel mode to 565 for 5 bits of | ||
| 59 | each red and blue and 6 bits of green. | ||
diff --git a/Documentation/arm/Sharp-LH/LPD7A400 b/Documentation/arm/Sharp-LH/LPD7A400 deleted file mode 100644 index 3275b453bfd..00000000000 --- a/Documentation/arm/Sharp-LH/LPD7A400 +++ /dev/null | |||
| @@ -1,15 +0,0 @@ | |||
| 1 | README on Implementing Linux for the Logic PD LPD7A400-10 | ||
| 2 | ========================================================= | ||
| 3 | |||
| 4 | - CPLD memory mapping | ||
| 5 | |||
| 6 | The board designers chose to use high address lines for controlling | ||
| 7 | access to the CPLD registers. It turns out to be a big waste | ||
| 8 | because we're using an MMU and must map IO space into virtual | ||
| 9 | memory. The result is that we have to make a mapping for every | ||
| 10 | register. | ||
| 11 | |||
| 12 | - Serial Console | ||
| 13 | |||
| 14 | It may be OK not to use the serial console option if the user passes | ||
| 15 | the console device name to the kernel. This deserves some exploration. | ||
diff --git a/Documentation/arm/Sharp-LH/LPD7A40X b/Documentation/arm/Sharp-LH/LPD7A40X deleted file mode 100644 index 8c29a27e208..00000000000 --- a/Documentation/arm/Sharp-LH/LPD7A40X +++ /dev/null | |||
| @@ -1,16 +0,0 @@ | |||
| 1 | README on Implementing Linux for the Logic PD LPD7A40X-10 | ||
| 2 | ========================================================= | ||
| 3 | |||
| 4 | - CPLD memory mapping | ||
| 5 | |||
| 6 | The board designers chose to use high address lines for controlling | ||
| 7 | access to the CPLD registers. It turns out to be a big waste | ||
| 8 | because we're using an MMU and must map IO space into virtual | ||
| 9 | memory. The result is that we have to make a mapping for every | ||
| 10 | register. | ||
| 11 | |||
| 12 | - Serial Console | ||
| 13 | |||
| 14 | It may be OK not to use the serial console option if the user passes | ||
| 15 | the console device name to the kernel. This deserves some exploration. | ||
| 16 | |||
diff --git a/Documentation/arm/Sharp-LH/SDRAM b/Documentation/arm/Sharp-LH/SDRAM deleted file mode 100644 index 93ddc23c2fa..00000000000 --- a/Documentation/arm/Sharp-LH/SDRAM +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | README on the SDRAM Controller for the LH7a40X | ||
| 2 | ============================================== | ||
| 3 | |||
| 4 | The standard configuration for the SDRAM controller generates a sparse | ||
| 5 | memory array. The precise layout is determined by the SDRAM chips. A | ||
| 6 | default kernel configuration assembles the discontiguous memory | ||
| 7 | regions into separate memory nodes via the NUMA (Non-Uniform Memory | ||
| 8 | Architecture) facilities. In this default configuration, the kernel | ||
| 9 | is forgiving about the precise layout. As long as it is given an | ||
| 10 | accurate picture of available memory by the bootloader the kernel will | ||
| 11 | execute correctly. | ||
| 12 | |||
| 13 | The SDRC supports a mode where some of the chip select lines are | ||
| 14 | swapped in order to make SDRAM look like a synchronous ROM. Setting | ||
| 15 | this bit means that the RAM will present as a contiguous array. Some | ||
| 16 | programmers prefer this to the discontiguous layout. Be aware that | ||
| 17 | may be a penalty for this feature where some some configurations of | ||
| 18 | memory are significantly reduced; i.e. 64MiB of RAM appears as only 32 | ||
| 19 | MiB. | ||
| 20 | |||
| 21 | There are a couple of configuration options to override the default | ||
| 22 | behavior. When the SROMLL bit is set and memory appears as a | ||
| 23 | contiguous array, there is no reason to support NUMA. | ||
| 24 | CONFIG_LH7A40X_CONTIGMEM disables NUMA support. When physical memory | ||
| 25 | is discontiguous, the memory tables are organized such that there are | ||
| 26 | two banks per nodes with a small gap between them. This layout wastes | ||
| 27 | some kernel memory for page tables representing non-existent memory. | ||
| 28 | CONFIG_LH7A40X_ONE_BANK_PER_NODE optimizes the node tables such that | ||
| 29 | there are no gaps. These options control the low level organization | ||
| 30 | of the memory management tables in ways that may prevent the kernel | ||
| 31 | from booting or may cause the kernel to allocated excessively large | ||
| 32 | page tables. Be warned. Only change these options if you know what | ||
| 33 | you are doing. The default behavior is a reasonable compromise that | ||
| 34 | will suit all users. | ||
| 35 | |||
| 36 | -- | ||
| 37 | |||
| 38 | A typical 32MiB system with the default configuration options will | ||
| 39 | find physical memory managed as follows. | ||
| 40 | |||
| 41 | node 0: 0xc0000000 4MiB | ||
| 42 | 0xc1000000 4MiB | ||
| 43 | node 1: 0xc4000000 4MiB | ||
| 44 | 0xc5000000 4MiB | ||
| 45 | node 2: 0xc8000000 4MiB | ||
| 46 | 0xc9000000 4MiB | ||
| 47 | node 3: 0xcc000000 4MiB | ||
| 48 | 0xcd000000 4MiB | ||
| 49 | |||
| 50 | Setting CONFIG_LH7A40X_ONE_BANK_PER_NODE will put each bank into a | ||
| 51 | separate node. | ||
diff --git a/Documentation/arm/Sharp-LH/VectoredInterruptController b/Documentation/arm/Sharp-LH/VectoredInterruptController deleted file mode 100644 index 23047e9861e..00000000000 --- a/Documentation/arm/Sharp-LH/VectoredInterruptController +++ /dev/null | |||
| @@ -1,80 +0,0 @@ | |||
| 1 | README on the Vectored Interrupt Controller of the LH7A404 | ||
| 2 | ========================================================== | ||
| 3 | |||
| 4 | The 404 revision of the LH7A40X series comes with two vectored | ||
| 5 | interrupts controllers. While the kernel does use some of the | ||
| 6 | features of these devices, it is far from the purpose for which they | ||
| 7 | were designed. | ||
| 8 | |||
| 9 | When this README was written, the implementation of the VICs was in | ||
| 10 | flux. It is possible that some details, especially with priorities, | ||
| 11 | will change. | ||
| 12 | |||
| 13 | The VIC support code is inspired by routines written by Sharp. | ||
| 14 | |||
| 15 | |||
| 16 | Priority Control | ||
| 17 | ---------------- | ||
| 18 | |||
| 19 | The significant reason for using the VIC's vectoring is to control | ||
| 20 | interrupt priorities. There are two tables in | ||
| 21 | arch/arm/mach-lh7a40x/irq-lh7a404.c that look something like this. | ||
| 22 | |||
| 23 | static unsigned char irq_pri_vic1[] = { IRQ_GPIO3INTR, }; | ||
| 24 | static unsigned char irq_pri_vic2[] = { | ||
| 25 | IRQ_T3UI, IRQ_GPIO7INTR, | ||
| 26 | IRQ_UART1INTR, IRQ_UART2INTR, IRQ_UART3INTR, }; | ||
| 27 | |||
| 28 | The initialization code reads these tables and inserts a vector | ||
| 29 | address and enable for each indicated IRQ. Vectored interrupts have | ||
| 30 | higher priority than non-vectored interrupts. So, on VIC1, | ||
| 31 | IRQ_GPIO3INTR will be served before any other non-FIQ interrupt. Due | ||
| 32 | to the way that the vectoring works, IRQ_T3UI is the next highest | ||
| 33 | priority followed by the other vectored interrupts on VIC2. After | ||
| 34 | that, the non-vectored interrupts are scanned in VIC1 then in VIC2. | ||
| 35 | |||
| 36 | |||
| 37 | ISR | ||
| 38 | --- | ||
| 39 | |||
| 40 | The interrupt service routine macro get_irqnr() in | ||
| 41 | arch/arm/kernel/entry-armv.S scans the VICs for the next active | ||
| 42 | interrupt. The vectoring makes this code somewhat larger than it was | ||
| 43 | before using vectoring (refer to the LH7A400 implementation). In the | ||
| 44 | case where an interrupt is vectored, the implementation will tend to | ||
| 45 | be faster than the non-vectored version. However, the worst-case path | ||
| 46 | is longer. | ||
| 47 | |||
| 48 | It is worth noting that at present, there is no need to read | ||
| 49 | VIC2_VECTADDR because the register appears to be shared between the | ||
| 50 | controllers. The code is written such that if this changes, it ought | ||
| 51 | to still work properly. | ||
| 52 | |||
| 53 | |||
| 54 | Vector Addresses | ||
| 55 | ---------------- | ||
| 56 | |||
| 57 | The proper use of the vectoring hardware would jump to the ISR | ||
| 58 | specified by the vectoring address. Linux isn't structured to take | ||
| 59 | advantage of this feature, though it might be possible to change | ||
| 60 | things to support it. | ||
| 61 | |||
| 62 | In this implementation, the vectoring address is used to speed the | ||
| 63 | search for the active IRQ. The address is coded such that the lowest | ||
| 64 | 6 bits store the IRQ number for vectored interrupts. These numbers | ||
| 65 | correspond to the bits in the interrupt status registers. IRQ zero is | ||
| 66 | the lowest interrupt bit in VIC1. IRQ 32 is the lowest interrupt bit | ||
| 67 | in VIC2. Because zero is a valid IRQ number and because we cannot | ||
| 68 | detect whether or not there is a valid vectoring address if that | ||
| 69 | address is zero, the eigth bit (0x100) is set for vectored interrupts. | ||
| 70 | The address for IRQ 0x18 (VIC2) is 0x118. Only the ninth bit is set | ||
| 71 | for the default handler on VIC1 and only the tenth bit is set for the | ||
| 72 | default handler on VIC2. | ||
| 73 | |||
| 74 | In other words. | ||
| 75 | |||
| 76 | 0x000 - no active interrupt | ||
| 77 | 0x1ii - vectored interrupt 0xii | ||
| 78 | 0x2xx - unvectored interrupt on VIC1 (xx is don't care) | ||
| 79 | 0x4xx - unvectored interrupt on VIC2 (xx is don't care) | ||
| 80 | |||
